Forums Casio - Projets de programmation

Index du Forum | Projets de programmation | MMGOC (Massive Multiplayer Game On-Calc)
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9452
Défis: 170
Message
Posté le 09/12/2013 18:32

MMGOC (Massive Multiplayer Game On-Calc) :

Je cherche des volontaires, actifs ou non, sachant coder en C, pour participer à un projet d'envergure : créer le premier MMO-RPG mode calto : MMGOC (Massive Multiplayer Game On-Calc).

Le principe est simple : une carte Arduino sert de serveur, qui organise les requêtes des différents joueurs connectés à l'Arduino.
Le jeu sera une sorte de RPG hyper simplifié (au début du moins) : on peut bouger sur une carte, voir les joueurs, et comme interaction les attaquer.

L'objectif initial est de créer la prouesse de connecter 5 joueurs minimum. (Sachant qu'une carte Arduino Mega peut accueillir jusqu'à 25 caltos )

Dans un premier temps, les caltos seront connectées via le port série (3-pins) directement sur la carte. Ensuite, si c'est faisable (et ça l'est, faut juste de l'huile de coude), connecter le serveur via un port Ethernet en ligne de manière à ce que chacun puisse jouer en ligne. Et là ça serai classe 8)


Bien entendu, ça ne sert à rien, sinon qu'à doubler les TI-men dans la quête du concept le plus innovant (et un peu à se divertir bien sur)


J'ai créé (pour moi, et pour les intéressés) un repo sur Bitbucket de manière à ce que les dévellopeurs aient facilement accès au code.

Si vous voulez faire partie de la team (pas besoin de venir souvent, juste de savoir lire et d'y ajouter votre pierre lorsque vous voulez), n'hésitez pas, je suis ouvert.

Bon, après, si y'a personne c'est pas un problème mais j'aurai personne avec qui tester une fois arrivé au réseau en ligne

Bref, qu'en dites-vous ?


Lien du repo

Soutenez-les !





#YAPHPH


Pages: 1, 2, 3, 4, 5, 6 | Suivante

Intelligide
Hors ligne
Banni de la Shoutbox
Niveau: Vétéran
Points: 602
Défis: 5
Message
Citer : Posté le 09/12/2013 18:38 | #
Pas mal comme projet réalisable mais il faudra du temps ce qui est domage j'aurai bien voulu participer mais j'ai déjà 2 projets pour 2014
----------------------------------
Alphacreator
Hors ligne
Membre
Niveau: Confirmé
Points: 1464
Défis: 43
Message
Citer : Posté le 09/12/2013 18:50 | #
Je pense pouvoir t'aider, ça m'intéresse car j'ai du matos arduino même si j'ai pas ce qu'il faut pour la connection entre les 2 mais je peux t'aider niveau prog!
----------------------------------
Ziqumu
Hors ligne
Membre d'honneur
Niveau: Intermédiaire
Points: 2911
Défis: 9
Message
Citer : Posté le 09/12/2013 19:59 | #
J'aime bien le projet, tu t'en doute je risque de pas pouvoir beaucoup t'aider, par contre j'ai une question : Tu ne souhaites pas que les sources soient ouvertes (ton repo n'est pas publique) ?

Je trouve ça dommage quand on fait un programme comme ça, qui a pour but de faire ce que personne n'a fait avant, de ne pas laisser ça publique. Enfin ce n'est que mon avis
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9452
Défis: 170
Message
Citer : Posté le 09/12/2013 20:01 | #
J'avais pas fait attention. Je modifie ça
----------------------------------
Soutenez-les !





#YAPHPH
Ziqumu
Hors ligne
Membre d'honneur
Niveau: Intermédiaire
Points: 2911
Défis: 9
Message
Citer : Posté le 09/12/2013 20:11 | #
Et t'en est où pour l'instant ? T'as réfléchis au protocol et comment va fonctionner le serveur ? Où tu commence déjà par faire le jeu ?
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9452
Défis: 170
Message
Citer : Posté le 09/12/2013 20:29 | #
J'ai réfléchi (et je continue de le faire) sur le protocole. Je vais commencer par l'échange d'infos entre serveur et calto, puis je construirai le jeu en lui même (déplacements, interactions, etc). Pour ce qui est des collisions, je laisserai le serveur gérer ça.
----------------------------------
Soutenez-les !





#YAPHPH
Ninestars
Hors ligne
Membre
Niveau: Confirmé
Points: 1725
Défis: 22
Message
Citer : Posté le 09/12/2013 21:43 | #
Et comment ça se passe pour faire ton jeu ?
En fait tu envoies le code de l'action que tu souhaites faire au serveur, celui ci attends pour toutes les calto, puis fait tourner le jeu et renvoie aux calto la position, l'action, ... De chaques objets ?
----------------------------------
Ray
Hors ligne
Membre
Niveau: Confirmé
Points: 1338
Défis: 18
Message
Citer : Posté le 09/12/2013 23:48 | #
C'est très intéressant, le problème étant que je n'ai pas de shield ethernet pour l'arduino, il y aura un moyen de pouvoir connecter plusieurs caltos à l'arduino pour jouer dans être connecté (par exemple si j'emmène mon câble d'alimentation et que je fais des parties multijoueur directement au lycée sans brancher l'arduino à internet (je me suis surement très mal expliqué )) ?
----------------------------------
Projets que je soutiens
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9452
Défis: 170
Message
Citer : Posté le 10/12/2013 06:55 | #
C'est la phase 1 du programme : on branché en local les caltos, et on joue entre amis sur le meme arduino
Ce n'est que après que je testerai une version en ligne.
----------------------------------
Soutenez-les !





#YAPHPH
Alphacreator
Hors ligne
Membre
Niveau: Confirmé
Points: 1464
Défis: 43
Message
Citer : Posté le 10/12/2013 18:46 | #
J'ai une question: peut-on gérer l'USB avec un add-in (j'aurai peut-être la arduino yùn à Noël et j'aimerai savoir si la com USB est possible)
----------------------------------
Dodormeur
Hors ligne
Ancien rédacteur
Niveau: Confirmé
Points: 3928
Défis: 82
Message
Citer : Posté le 10/12/2013 18:58 | #
On peut

Par contre ce n'est pas évident quand on ne peut pas tester en live

syscall.h
#ifndef _SYSCALL
#define _SYSCALL

/**********************************************************/
/** Les syscall suivants servent à l'acces au port série **/
/** Le buffer de réception fait 1ko,                     **/
/** et le buffer d'envoi fait 256 octets.                **/
/**********************************************************/
void App_RUNMAT(int runMode, unsigned short stripNum);

//Lit un caractère du buffer de réception et le copie a l'adresse pointée par 'dest'
//Retourne 0 en cas de succes, 1 si le buffer est vide, 3 si la connexion n'est pas établie
int Serial_ReadByte(unsigned char *dest);

//Lit 'max' octets du buffer de réception et les écrit dans 'dest'
//'size' donne le nombre d'octets lu
//Retourne 0 en cas de succes, 1 si le buffer est vide, 3 si la connexion n'est pas établie
int Serial_ReadBytes(unsigned char *dest, int max, short *size);

//Ecrit 'byte' dans le buffer d'envoi
//Retourne 0
int Serial_WriteByte(unsigned char byte);

//Ecrit 'size' octets dans le buffer d'envoi depuis l'adresse 'scr'
//Retourne 0 en cas de succes, 2 si le buffer est trop plein, 3 si la connexion n'est pas établie
int Serial_WriteBytes(unsigned char *src, int size);

//FIFO = first in first out
int Serial_WriteByteFIFO(unsigned char byte);

//Retourne la taille des données du buffer de réception
int Serial_GetRxBufferSize(void);

//Retourne l'espace disponible dans le buffer d'envoi
int Serial_GetTxBufferFreeCapacity(void);

//Vide le buffer de réception
//Retourne 0 en cas de succes, 3 si la connexion n'est pas établie
int Serial_ClearReceiveBuffer(void);

//Vide le buffer d'envoi
//Retourne 0
int Serial_ClearTransmitBuffer(void);

//Ouvre et prépare l'interface de communication
//Pour plus de détails, consulter fxreverse-doc-1.pdf ci joint
int Serial_Open(unsigned char *conf);

//Ferme l'interface de communication et vide les buffers d'envoi et de réception
//Si 'mode'==1, la communication est coupée sans regarder s'il reste des données a transmettre
//Si 'mode'!=1, la fonction ne ferme pas l'interface de communication s'il reste des données a transmettre
//et retourne 5
//Retourne 0 en cas de succes (communication terminée) et 5 s'il reste des données a transmettre
int Serial_Close(int mode);

//Copie l'octet numéro 'index' du buffer de réception vers 'dest' si 'index' ne dépasse pas les données du buffer
//Retourne 0 en cas de succes, 1 si 'index' dépasse les données du buffer, 3 si la communication n'est pas établie
int Serial_Peek(int index, unsigned char *dest);

//Récupère le statut de la connexion
//Retourne 1 si la connexion est établie, 3 sinon
int Serial_IsOpen();


#endif


syscall.src
.SECTION P,CODE,ALIGN=4

    .MACRO SYSCALL FUNO, SYSCALLNAME, TAIL=nop
    .export \SYSCALLNAME'
\SYSCALLNAME'
    mov.l #h'\FUNO, r0
    mov.l #H'80010070, r2
    jmp @r2
    \TAIL'
    .ENDM

    SYSCALL 040C,    _Serial_ReadByte
    SYSCALL 040D,    _Serial_ReadBytes
    SYSCALL 040E,    _Serial_WriteByte
    SYSCALL 040F,    _Serial_WriteBytes
    SYSCALL 0410,    _Serial_WriteByteFIFO
    SYSCALL 0411,    _Serial_GetRxBufferSize
    SYSCALL 0412,    _Serial_GetTxBufferFreeCapacity
    SYSCALL 0413,    _Serial_ClearReceiveBuffer
    SYSCALL 0414,    _Serial_ClearTransmitBuffer
    SYSCALL 0418,    _Serial_Open
    SYSCALL 0419,    _Serial_Close
    SYSCALL 0422,    _Serial_Peek
    SYSCALL 0425,    _Serial_IsOpen
    SYSCALL 0AAE,    _App_RUNMAT
    .end
----------------------------------
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux :D
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets

pokemon



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Alphacreator
Hors ligne
Membre
Niveau: Confirmé
Points: 1464
Défis: 43
Message
Citer : Posté le 10/12/2013 19:00 | #
Bon, j’essayerai si j'ai la yùn
----------------------------------
Louloux
Hors ligne
Ancien administrateur
Niveau: Élite
Points: 6952
Défis: 61
Message
Citer : Posté le 10/12/2013 20:04 | #
Je veux bien participer au projet dans la réalisation du moteur de jeu (maps, déplacements, combats), mais je te laisse la partie serveur et connexion des machines. Pour les tests on peut se voir et je peux fournir des calculatrices nécessaires aux tests
Alphacreator
Hors ligne
Membre
Niveau: Confirmé
Points: 1464
Défis: 43
Message
Citer : Posté le 10/12/2013 20:18 | #
Je pourrai aider juste au niveau de la prog du jeu aussi je pense
----------------------------------
Dark storm
Hors ligne
Administrateur
Niveau: Aucun
Points: 9452
Défis: 170
Message
Citer : Posté le 10/12/2013 21:06 | #
Pour les tests, je veux bien.

J'ai réfléchi aujourd'hui, et je me suis vu confronté à un petit problème :

Dans le cas d'un jeu en temps réel (type LOL), la quantité d'infos par frames est proportionnelle au nombre de joueurs à prendre en compte. Ce qui fait que même en laissant à l'Arduino gérer les priorités, c'est à dire dire quelles infos et de qui il faut envoyer (pas besoin de savoir qu'untel à l'autre bout de la map combat avec un autre), il faut imaginer au minimum récupérer les infos de 3 persos.

Dans ce cas, 1 perso prend :

son ID (1 octet, j'espère ne pas avoir à connecter pour le moment plus de 255 caltos)
position X (4 octets, c'est forcément un int si on veut une carte digne de ce nom)
position Y (4 octets, idem)
action en cours (1 octets, ça laisse 255 possibilités, ça devrait aller)
vie (1 octet, vie max = 100. On n'est pas obligé de l'afficher)

Total : minimum 10 octets par perso, soit plus de 30 octets à récupérer à chaque frame...
Pour du 20 fps, ça veut dire 600 octets par seconde... Je doute pouvoir assurer une telle fluidité...

Sinon, l'autre option consiste à faire un jeu au tour par tour type "Dofus", mais dans ce cas d'un, c'est moins cool, de deux il risque d'y avoir des attentes assez chiantes (genre le cas du mec qui oublie de jouer), même avec un compteur.

Qu'en pensez vous ?
----------------------------------
Soutenez-les !





#YAPHPH
Kirafi
Hors ligne
Membre
Niveau: Confirmé
Points: 1993
Défis: 10
Message
Citer : Posté le 10/12/2013 21:08 | #
... ben ... je pense que Dofus est plus simple pour commençer
Même si c'est moi cool que LOL
----------------------------------
iPod
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Réussiras-tu à rendre uniforme la grille Spin (élu Jeu Du Mois)
Autres
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
L'adaptation du célèbre jeu de reflexion 2048 Tactile (élu Jeu Du Mois)
Remet de l'ordre dans cette mare à grenouille de délinquants dans Hopper
[/spoiler]
Louloux
Hors ligne
Ancien administrateur
Niveau: Élite
Points: 6952
Défis: 61
Message
Citer : Posté le 10/12/2013 21:20 | #
Un jeu tour par tour n'a pas besoin de plusieurs caltos, et c'est moins stylé. On peut viser un truc simple mais simultané.
Btl
Hors ligne
Modérateur
Niveau: Vétéran
Points: 3879
Défis: 107
Message
Citer : Posté le 10/12/2013 21:32 | #
pas non plus besoin de savoir gérer 10 caltos en même temps comme pour LOL
Mais c'est sur que trouver un petit jeu en temps réel dès le début pourrait être sympa

Kirafi tu joues encore à lol? c'est pas pour moi, c'est pour que limachi ait un ou 2 copains dans sa liste d'ami
----------------------------------
Un excellent tuto video qui vous explique comment transférer des fichiers de l'ordinateur vers la calculatrice et vice versa ma chaine youtube
mes jeux

Jouez à 6 sur une seule calto : Curve Fever
Un die and retry qui vous fera bieeeen rager Test Andropov
un très bon sokoban
le seul vrai jeu de foot en basic : FIFA 12
Ca c'est ce que j'appelle un jeu de reflexion jewel master
Qui vaincra l'intelligence artificielle de cet othello
Le célèbre pacman
Et tant d'autres BTL's games

Le jeu du mois de Novembre et award du jeu le plus dur de l'année 2013 MultiTask, testez-le
Dodormeur
Hors ligne
Ancien rédacteur
Niveau: Confirmé
Points: 3928
Défis: 82
Message
Citer : Posté le 10/12/2013 21:34 | #
ou sinon tu fait comme dans guild wars, des donjons avec 2-3 personnes, et par exemple dans les villes avec tout le monde tu devra transférer moins d'info
----------------------------------
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux :D
un jeu avec des niveaux de gris mais compatible SH4 (mais en monochrome pour les SH4) => bomberman
envie de plonger dans la mer pour ramasser des tresors? => ballon sea
envie de sauver l'univers dans un jeu avec une longue durée de vie? => saviors of the future
un add-in addictif avec plein de secret et de trophées => evasion survival
un shmup bien dur et sadique => saviors 2

projets

pokemon



encodage des données de combat (sprite, attaques et nom)
   100%

systeme de combat
   100%

encodage des données de pokemon (niveau d'apprentisage et evolution)
   100%


moteur de la carte
   50%

level design
   1%

finition de pokemon jade
   42%

merci a tout le monde pour son soutien


projets que je soutiens
minecraft de limachi
zelda prizm de smashmaster (en esperant qu'il puisse le finir)
les tests de marmotti
un RPG de dark storm (dont je connais le nom, mais pas vous ) Arcuz !
Kirafi
Hors ligne
Membre
Niveau: Confirmé
Points: 1993
Défis: 10
Message
Citer : Posté le 10/12/2013 21:35 | #
je sais !!! Gravity Guy d'ailleurs en parlant de ça, il faudrait voir à changer un petit truc, si je suis pas en facile, c'est trop sensible, j’appuie une fois et ça compte comme 2, donc mon personnage meurt tout le temps
----------------------------------
iPod
Jusqu'où pourras-tu aller dans ce jeu "partie rapide" qu'est Dextris (élu Jeu Du Mois)
Pourras-tu survivre plus de 20 secondes dans ce fameux tunnel appelé Graviton
Rebondis entre les murs en évitant les piques dans SpikeBird
Pourras-tu éviter de te faire écraser dans FallBlocs (élu Jeu Du Mois)
Réussiras-tu à rendre uniforme la grille Spin (élu Jeu Du Mois)
Autres
Deviens l'amiral de la marine dans SeaRush (jeu concours) (élu Jeu Du Mois)
La version 2048 tactile amélioré au plus haut point : 2048 Delux !
Pars à la recherche des morceaux d'étoile dans Lumyce (élu Jeu Du Mois)
L'adaptation du célèbre jeu de reflexion 2048 Tactile (élu Jeu Du Mois)
Remet de l'ordre dans cette mare à grenouille de délinquants dans Hopper
[/spoiler]

Pages: 1, 2, 3, 4, 5, 6 | Suivante

Index du Forum | Projets de programmation | MMGOC (Massive Multiplayer Game On-Calc)
Publicité et partenaires
Casio Education
Casio éducation

TI-Planet
Casiopeia
Casiopeia
CasioFan, la communauté ClassPad
CasioFan
CodeWalrus
CodeWalrus

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2015 | Il y a 79 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Rugby Manager | Jeu de basket | Jeu de handball | Jeu de tennis | Nova Raider | Réparation téléphone | Soccer Rush | Tasty Tale

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd