Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » MMGOC (Massive Multiplayer Game On-Calc)
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

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


Précédente 1, 2, 3, 4, 5, 6, 7 Suivante
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 20/01/2014 20:50 | #


Alors ça avance votre projet ? J'ai hâte
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 20/01/2014 20:51 | #


Plus ou moins, je planche sur un algorithme pour initialiser la connection, mais c'est chaud de synchroniser le serveur et la calto...

Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Eltoredo Hors ligne Modérateur Points: 4301 Défis: 35 Message

Citer : Posté le 20/01/2014 20:51 | #


Je comprend, vous êtes entrain de faire la mise à jour pour crée une calcIphone
La procrastination est une vertu. (voir ma description pour comprendre mon raisonnement)
Gollum Hors ligne Membre Points: 1262 Défis: 2 Message

Citer : Posté le 02/02/2014 15:29 | #


j'y pense, mon topic serait il lié à celui là ?
Et je n'ai pas compris, la connéxion se ferra par internet ?
https://telegram.me/BrokenClock
Je suis de l'autre coté de la manche maintenant. Yay.
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 02/02/2014 15:50 | #


Contrairement à ton topic, ici il s'agit plus d'une connexion filaire: on branche la caltos sur l'arduino directement, ce qui est plus simple à mettre en oeuvre, de plus le nombre de fils est réduit: 3 fils par caltos, sachant qu'un de ces 3 doit être relié à la masse (GND): le référentiel; tandis qu'il faut généralement plus de fils pour la com à distance.
Pour ce qui est de l'internet, il suffirait d'avoir des modules Ethernet qui assureraient la com avec un serveur distant pour transmettre des infos à une autre carte relié à l'internet et donc à une caltos qui y serait branché, mais il faut le serveur... Et je doute qu'une seule arduino avec une extension ethernet fasse l'affaire (à moins d'utiliser la TRE, bien plus rapide)
Gollum Hors ligne Membre Points: 1262 Défis: 2 Message

Citer : Posté le 02/02/2014 16:01 | #


Oui mais le processeur de la TRE est un TI
au secours !
Ils sont partout !

https://telegram.me/BrokenClock
Je suis de l'autre coté de la manche maintenant. Yay.
Dark storm Hors ligne Labélisateur Points: 11641 Défis: 176 Message

Citer : Posté le 02/02/2014 16:03 | #


Si un jour je fais un serveur sur Internet, je ferai le serveur directement sur le Web, et non sur une Arduino.
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 02/02/2014 16:03 | #


@Gollum: Et alors, c'est plutôt bien qu'il ait fait appel à des gars compétant dans ce domaine, 1gHz pour le processeur c'est plutôt cool non? Sur le plan des calculatrices je dis rien mais là tu exagère, TI fait d'assez bon trucs quand même.

Sinon c'est vrai que c'est mieux sur le web direct, une arduino c'est sympa mais ça a des limites
Gollum Hors ligne Membre Points: 1262 Défis: 2 Message

Citer : Posté le 02/02/2014 16:05 | #


Je sais mais si je déc***e pas, qui vas le faire ?
https://telegram.me/BrokenClock
Je suis de l'autre coté de la manche maintenant. Yay.
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 02/02/2014 19:03 | #


C'est pas possible de faire ça en branchant directement sur un ordi ? Parce faire du multi joueur si personne n'a le matériel bof.
Alphacreator Hors ligne Membre Points: 1464 Défis: 43 Message

Citer : Posté le 02/02/2014 19:43 | #


A moins de faire un logiciel qui gère le serial pour la caltos, et l'internet, mais ça devrait être possible (par contre ne comptez pas sur moi pour ça)
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 02/02/2014 21:05 | #


Il suffit d'accéder au port Usb de l'ordi et puis c'est comme avec l'arduino, sans l'arduino. (enfin je pense)
Gollum Hors ligne Membre Points: 1262 Défis: 2 Message

Citer : Posté le 08/02/2014 07:51 | #


Pas sur que ce soit si simple.
déjà,il faudra trouver dans quel mode de connexion la calto doit se mettre.
ensuite, il faut faire un programme qui trouve la-dite calto.(je ne sais pas si on a les sources de screen receiver mais ça pourrait être bien)
et après, pour gérer un refresh auto sur une calto tout en continuant de jouer et de voir les autres joueurs jouer et se déplacer je pense qu'il y a du pain sur la planche


https://telegram.me/BrokenClock
Je suis de l'autre coté de la manche maintenant. Yay.
Darkysun Hors ligne Membre Points: 1747 Défis: 52 Message

Citer : Posté le 15/03/2014 13:10 | #


j'ai hâte moi aussi de voir ce que ca va donner
Quand même un mmorpg sur calto... vous y allez fort !Vous pensez faire quel terme de mmorpg à terme ? un jeux d'entraide ou chacun joue contre un objectif commun ou un jeu où tout le monde se tape sur la gueule est ennemi ?
Si je ne réponds pas à un post depuis trop longtemps : envoyez-moi un message pour me le rappeler !




Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 15/03/2014 13:22 | #


Pour synchroniser l'Arduino et la calto, tu ne peux pas simplement leur faire envoyer un message particulier ?

Ensuite, chaque fois que tu envoies un paquet de données, tu le commences et le termines par deux octets différents prédéfinis.
Ainsi, la calculatrice sait où commencent et se terminent les paquets. Si elle reçoit des données fragmentées, elle les ignore.
De cette manière, on a une sorte de synchronisation entre les deux périphériques.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 16/03/2014 10:34 | #


Et avec un truc comme ça ? C'est pas plus simple, du coup il n'y a pas de serveur.

Tu as une connection directe entre les calculettes. Le protocole d'échange est plus simple :
Chaque calto à un code, un identifiant.
A chaque fois elles envoient leur identifiant suivit du paquet puis un octet de fin.
Et cela chaqu'un son tour, les caltos réceptionnent le message et agissent en fonction.
1,2,3,1,2,3,1,2,3,1,2,...
Le paquet donne s'implement la position du joueur, sa direction, son action,... à chaque frame.
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 16/03/2014 10:38 | #


Ça dépend si Dark Storm relie le port 3 broches de la caluclatrice à ceux de l'Arduino ou le port USB.
Mais de toute manière, on est obligé d'avoir un serveur pour coordonner les actions des joueurs.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 16/03/2014 10:40 | #


Pourquoi un serveur ? Si on est moins de 5 ça doit bien fonctionner sans.
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 16/03/2014 10:43 | #


D'abord, la calulatrice n'a pas un nombre infini de ports. On ne peut pas les relier en chaîne, ce serait ingérable.
Ensuite, les calculatrices ne font qu'appliquer les ordres qu'elles reçoivent et envoyer les requêtes de l'utilisateur.

Il faut bien quelque chose pour traiter tour ça. Quand tu joues en muiltijoueur, il y a toujours soit un serveur soit un hôte, mais dans ce cas-là celui-ci peut communiquer directement avec toutes les machines.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Ninestars Hors ligne Membre Points: 2462 Défis: 24 Message

Citer : Posté le 16/03/2014 10:52 | #


On ne peut pas les relier en chaîne, ce serait ingérable.
C'est exactement ce qui se passe pour l'USB en fait, et ça fonctionne très bien.

les calculatrices ne font qu'appliquer les ordres qu'elles reçoivent
Et ? si on leur dit d'envoyer leurs informations quand la calculatrice avec l'identifiant juste inférieur a fini. (par exemple la calto 2 envoie... ensuite la 3... ensuite la 4) Le système tourne tout seul (faut gérer le cas maximal, mais c'est rien ça).
Lephenixnoir Hors ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 16/03/2014 11:11 | #


Quand je dis les relier en chaîne, ce serait plutôt ça:
C1 -- C2 -- C3 -- C4 -- C5
Là où c'est problématique c'est que si C1 veut envoyer des infos à C5, elle est obligée de passer par toutes les machines entre elles.
Mais le vrai problème, c'est que si au même moment C3 envoie aussi des infos à C5, alors les paquets pourront être mélangés et les informations mal interprétées ; c'est trop compliqué à mettre en place.

La solution avec un serveur est plus pratique:
C1 ---- |
C2 ---- | Serveur
C3 ---- |
Celui-ci reçoit tous les ordres (en fait il va lire de son propre chef donc les informations ne se mélangent pas), sait les interpréter correctement et c'est lui qui, en partant d'une requête de C1, va la transformer en un ordre pour C2.
De plus, lui connaît toutes les données et peut les envoyer en même temps (ou presque) à toutes les calculatrices, cela permet une meilleure coordination et évite que les machines soit en permanence en train de s'échanger des informations dans tous les sens.

De plus, la première solution ne propose qu'une fluidité limitée par rapport à la deuxième, voire insuffisante.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Précédente 1, 2, 3, 4, 5, 6, 7 Suivante

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 222 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd