MMGOC (Massive Multiplayer Game On-Calc)
Posté le 09/12/2013 18:32
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
Citer : Posté le 16/03/2014 14:33 | #
Tant qu'à faire si tu peux garder le maximum de ressources pour ce qui est propre à la calculatrice (affichage et refresh de l'écran, etc...) c'est mieux je suppose
Citer : Posté le 16/03/2014 14:43 | #
Ninestars, je suis d'accord qu'on ne vas pas faire n'importe quoi non plus.
Mais comme le dit Nemhardy, mieux vaut s'ouvrir le plus de portes possibles.
Et puis la 3d ça bouffe en ressources
Citer : Posté le 16/03/2014 14:47 | #
et pis Unity n'est pas encore pris en charge sur caltos
Citer : Posté le 16/03/2014 14:52 | #
Vous êtes allés un peu vite, j'ai pris 10 minutes à tout lire.
Pour reprendre les différentes idées émises, voici quelques rappels qui vous prouvent qu'un serveur est nécessaire :
-> Imaginons qu'il n'y en ai pas, que chaque calto envoie à une sorte de réseau local ses données : la calto A envoie un paquet "A, 1, 2, 3, 0", et la calto B un paquet "B, 1, 2, 3, 0" en même temps. La calto C recevra dans son buffer de réception "A, B, 1, 1, 2, 2, 3, 3, 0, 0", ce qui est impossible à traiter (surtout si y'a des décalages entre les paquets).
-> Imaginons encore que la calto fait tout les calculs toute seule. Dans le cas le joueur A tire, dans sa ligne de mire il a un ennemi B. B doit donc perdre de la vie. Or, A a un léger retard de 0,3 secondes, et B s'est décalé entre temps. B, au moment où il reçoit le message "A a tiré dans cette direction", n'est plus à l'endroit où A à tiré. On a donc chez A "B a perdu de la vie", et chez B "A a tiré à coté'. Je sais pas si vous avez suivi
La calculatrice ne gère que ce qui est indépendant des autres joueurs : collisions avec des obstacles fixes. Le reste est dirigé par le serveur. D'où la nécessité de programmer une interface multitâche performante coté serveur. Le reste se fera tout seul une fois cette étape franchie.
Ajouté le 16/03/2014 à 14:53 :
et pis Unity n'est pas encore pris en charge sur caltos
Sur Prizm t'as déjà la SDL
Citer : Posté le 16/03/2014 14:53 | #
J'essaye actuellement d'écrire une lib pour la modélisation 3d
Je pense que ce serait une bonne chose que tout le monde puisse y avoir accès.
Du coup, nous sommes 3 à développer notre moteur 3d: LImachi pour son Minecraft, Dark Storm qui l'a mentionné une fois sur le chat, et moi-même.
Par contre, c'est la galère
Citer : Posté le 16/03/2014 14:56 | #
Si on a un jour 3 moteurs 3D fonctionnels, ça va être cool pour développer tout un tas de jeux
Mais j'ai pas l'intention de faire MMGOC en 3D, ça bouffera trop de ressources (faut pas oublier que la liaison série n'est pas non plus hyper rapide en lecture/écriture)
Citer : Posté le 16/03/2014 14:56 | #
Pas avec ma solution, puisque les caltos envoient l'une après l'autres les paquets.
Regarde au début de la page 4
Pourquoi dire à B qu'on a tiré sur lui ? il suffit de lui dire qu'on l'a touché et c'est réglé.
Citer : Posté le 16/03/2014 14:58 | #
Pas avec ma solution, puisque les caltos envoient l'une après l'autres les paquets.
Dans ce cas, je pense que ça larguera à mort. Pour un jeu type "Dofus", au tour par tour, c'est la bonne solution, sinon c'est pas hyper adapté.
Au passage, fait moi un schéma de comment tu organiserai les liaisons physiques, je te rappelle qu'il ne faut pas mélanger les câbles d'émission et de réception
Citer : Posté le 16/03/2014 15:05 | #
Dans ce cas, je pense que ça larguera à mort.
Ah, enfin quelqu'un qui me soutient
Au fait Dark Storm, tu communiques par le 3 broches ? Si oui, tu le gères comment ?
Citer : Posté le 16/03/2014 15:07 | #
Si tu envoies 10, ou plus large 20 octets à chaque émission c'est super rapide.
Le shéma c'est pour une calto :
- calcul de tout : du décors, calcul des collisions...
- tu envoies tes infos : position, direction , ...
en boucle et pendant qu'elle travail, les paquets des autres arrivent dans le buffer et affiche les autres joueurs, gère les collision avec en fonction de ces données
Si on branche tout en commun, emission et récéption de tout le monde, au pire celle qui envoie reçoit ce qu'elle envoie
A part si mettre une tension sur la borne d'émision est dangereux.
Citer : Posté le 16/03/2014 15:10 | #
Au fait Dark Storm, tu communiques par le 3 broches ? Si oui, tu le gères comment ?
Il y a des syscalls qui gères le 3-broches assez facilement
Citer : Posté le 16/03/2014 15:16 | #
@ 9* : faudrait faire des tests, mais les fonctions de sérial restent relativement lentes...
Citer : Posté le 16/03/2014 15:57 | #
Ok, dans ce cas ce qui est bien avec ma méthode, c'est que la calto n'attend jamais de réponse. Elle envoie et pendant qu'elle travaille, elle reçoit les infos des autres. Au pire des cas elle a une frame d'avance sur les autres caltos du groupe.
Alors qu'avec un serveur, il y a plus de transmissions donc plus de temps d'attente
Citer : Posté le 16/03/2014 15:59 | #
Oui, mais les calculatrices sont plus synchrones et ça offre une plus grande puissance
Enfin, on ne va pas débattre la-dessus des heures.
De toute façon c'est Dark Storm qui bosse sur le projet
Citer : Posté le 16/03/2014 16:04 | #
Elles sont synchrones... et alors on s'en fou Si elles ont un décalage de (au pire) 0.2s, ça change rien !
Enfin oui après il fait comme il veut, mais c'est bien d'avoir différents points de vue
Citer : Posté le 20/03/2014 21:46 | #
Alors le projet avance ? Sinon je rebondit sur l'idée de Kirafi, un dofus serait bien (surtout que j'y joue en ce moment )
Mais un jeu comme dodormeur a dit, en multi ou même en add-in tout simple serait génial !
Citer : Posté le 24/05/2014 06:39 | #
je voudrai vraiment y participer, mais je ne suis q'un débutant en la matière.
si je m'améliore d'ici la, je vous rejoint sans problème dans ce projet
S-Sempaï
Pour 100
ClrGrph
Citer : Posté le 24/05/2014 10:00 | #
Alors le projet avance ? Sinon je rebondit sur l'idée de Kirafi, un dofus serait bien (surtout que j'y joue en ce moment )
Mais un jeu comme dodormeur a dit, en multi ou même en add-in tout simple serait génial !
http://www.planet-casio.com/Fr/forums/topic12887-1-Un-Ankama-games-sur-CasioWakcalc.html
@zolobou, je te conseille d'apprendre le C(le C casio et le C arduino) et éventuellement le Mysql(gestion de BDD) si DS décide de le mettre sur internet
Citer : Posté le 24/05/2014 10:05 | #
Je ne te fais pas remarquer que le message d'ElToredo est de plus d'un moins antérieur à la création de ton topic
Citer : Posté le 24/05/2014 10:11 | #
Bon, vu que y'a de l'activité, j'en profite pour exposer l'avancement du projet :
J'ai peu bossé dessus ces derniers mois, pour cause d'autres projets, de boulot, etc. mais j'ai beaucoup fait de théorie sur la méthode de synchronisation des données par l'arduino. Je pense tenir un truc, mais c'est pas dit que ça fonctionne... Bref, du coup le projet est à moitié en pause, mais je compte bien avancer pendant les vacances (pour une fois que j'ai 2 mois de libre )
En tout cas, si quelqu'un est motivé pour reprendre le projet, je veux bien lui passer les sources de ce qui existe (mais c'est pas très fonctionnel )
Citer : Posté le 24/05/2014 10:12 | #
Vu que j'ai maintenant le matériel et deux caltos... comme toi, je m'y mettrai probablement après le bac.