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 En ligne Labélisateur Points: 11631 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
Kirafi Hors ligne Membre Points: 2180 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
Pour des parties rapides
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)
Autres
Franchement ils valent le coups
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)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 10/12/2013 21:44 | #


Louloux, je t'ajoute au repo demain (je peux pas pour le moment), mais ton aide est la bienvenue.
Par contre, faudra que tu retourne au C, c'est comme ça (en fait c'est juste que c'est plus facile à gérer pour l'envoi de données qu'en C++)
Je suis en train de construire au brouillon l'architecture Serveur (je met des majuscules lorsque je parle des algos : Serveur / Calto != serveur / calto), sachant que c'est lui qui calculera les collisions et les affichages (une Arduino Uno devrait largement suffire côté puissance jusqu'à 5 caltos. Après il faudra, je pense, passer à la Mega)

Si tu veut attaquer la partie Game du code Calto, y'a pas de soucis, tu peut commencer. On en parlera en privé pour ce qui est de l'architecture, mais il n'y a que quelques trucs a prendre en compte : initialisation (récupérer les noms des joueurs stockes sur le serveur pour ensuite les afficher en fonction de leur ID, etc. ), le déplacement et les interactions (attaquer, pour le moment. Faut prévoir plus d'interactions, comme différentes attaques, des soins, etc. )

Pour revenir à ce qui est des données, on peut déjà commencer par plusieurs persos qui se déplacent uniquement dans l'écran (ça permet d'économiser 6 octets par joueur)

Bien entendu, c'est un projet de faisabilité, on arrivera jamais à un wolfenstein 3D en niveaux de gris (quoi que...)
Le but étant de faire du mieux possible
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 10/12/2013 21:46 | #


En soit, il y aurait moyen de faire un wolfenstein en 3D, mais ça serait au niveau de la calto que ça gérerait l'affichage
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
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
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



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
Cliquer pour enrouler
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 !
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 10/12/2013 21:46 | #


On peut très bien faire des déplacements type Wolf 3D, il suffit de communiquer 3 données : x, y et angle.

Ajouté le 10/12/2013 à 21:46 :
Mais il y a plus intéressant à faire.
Btl Hors ligne Ancien modérateur Points: 3879 Défis: 107 Message

Citer : Posté le 10/12/2013 21:49 | #


bah un wolf 3D en réseau, ça aurait la classe quand même
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
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
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 10/12/2013 21:50 | #


pour un wolf 3D, il suffit de 2 octets pour les 3 données , un octet suffit pour le déplacement XY (0xXY), et un octet pour l'angle si on utilise un orientation en 256 quartiers
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 10/12/2013 21:50 | #


J'ai pas envie de réviser un Wolf
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 10/12/2013 21:51 | #


et dans wolf 3D, il y a moins de 256 orientations (peut être 16), donc on peut récupérer des bit pour des booléens, pour savoir si un joueur tire par exemple
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 10/12/2013 21:55 | #


Le truc c'est que si tu raisonne en déplacement, il suffit d'un lag pour que tu ne soit plus du tout ou tu devrais être...

Ajouté le 10/12/2013 à 21:56 :
Sinon on raisonne aussi en déplacement pour le RPG... Ça revient au meme
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 11/12/2013 18:05 | #


D'ailleurs on fait comment pour faire un moteur de 3d ?
Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 11/12/2013 18:14 | #


Ben soit tu te démerde avec les cos et sin (pour un vrai moteur 3D) ou alors tu fait une pseudo 3D en utilisant la distance connue entre toi et le mur, pour l'afficher +/- grand (wolfenstein 3D)
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
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
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



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
Cliquer pour enrouler
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 !
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 11/12/2013 19:04 | #


ok merci

Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 11/12/2013 19:09 | #


lancelot, si tu as des questions, ça fait deux ans que je travaille sur la 3D et le raycasting (pseudo 3D)
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Ninestars Hors ligne Membre Points: 2461 Défis: 24 Message

Citer : Posté le 11/12/2013 20:00 | #


Dodormeur a écrit :
Ben soit tu te démerde avec les cos et sin (pour un vrai moteur 3D) ou alors tu fait une pseudo 3D en utilisant la distance connue entre toi et le mur, pour l'afficher +/- grand (wolfenstein 3D)
et c'est quand tu passes en pratique que tu te rends compte que c'est pas si facile.
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 11/12/2013 20:12 | #


si, a vrai dire les cos et le sin, on y touche 20 minutes au début de la création du programme de 3D, puis on y revient plus. c'est plus ce qui va autour qui pose problème (la fameuse occlusion, le chargement d'un monde 3D, etc)


float** rotationMatrix(const unsigned char rx,const unsigned char ry,const unsigned char rz, float **matrix)
{
    matrix[0][0]=lcos[rz]*lcos[ry];
    matrix[1][0]=lsin[rz]*lcos[ry];
    matrix[2][0]=-lsin[ry];
    matrix[0][1]=lcos[rz]*lsin[ry]*lsin[rx] - lsin[rz]*lcos[rx];
    matrix[1][1]=lsin[rz]*lsin[ry]*lsin[rx] + lcos[rx]*lcos[rz];
    matrix[2][1]=lsin[rx]*lcos[ry];
    matrix[0][2]=lcos[rz]*lsin[ry]*lcos[rx] + lsin[rz]*lsin[rx];
    matrix[1][2]=lsin[rz]*lsin[ry]*lcos[rx] - lcos[rz]*lsin[rx];
    matrix[2][2]=lcos[rx]*lcos[ry];
    
    return matrix;
}

voila, c'est la seule fois (ou presque) que les fonctions (ou tables dans le cas présent) sinus et cosinus sont utilisés dans un moteur 3D (en tout cas, dans le mien)
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Lancelot Hors ligne Membre Points: 1274 Défis: 160 Message

Citer : Posté le 11/12/2013 20:45 | #


Hyper impressionnant! Je regarde et j'essaye de comprendre le code et puis je reviendrais pour poser des questions.
Calculatrices : Casio 35+ SH4 (modifiée 75) et fx-CG 20 PRIZM
Projets que je soutiens
Des exemples parmi tant d'autres
Pokémon Jade de Dododormeur
Zelda de Smashmaster
Super Geek Brothers de Siapran
Mes Programmes
Mes Programmes
Mes Projets
Mes Projets
ColorLib
Add-ins Jetpack Joyride et Pac-Man sur PRIZM (les 2 non commencés mais en réflexion)
A la recherche des sprites jetpack Joride si quelqu'un les a en couleur
Limachi Hors ligne Youtuber Points: 2798 Défis: 67 Message

Citer : Posté le 11/12/2013 21:17 | #


ce code seul n'est pas suffisant, il faut savoir comment utiliser cette matrice après

(si tu sais comment multiplier des matrices, il suffit de mettre les coordonnées des points a faire tourner sous forme de matrice 3*1 et multiplier par cette matrice et tu obtiens les coordonnées ayant tourné de rx quartiers sur l'axe x, ry sur l'axe y et rz sur l'axe z)

Ajouté le 11/12/2013 à 21:18 :
bon, ce n'est pas le bon topic pour en parler, donc je pense que je vais m’arrêter là, tu peux me demander par MP par contre
Mes Programmes
Cliquer pour enrouler
-en basic: un programme nommé PICFMLIM convertissant une picture en code basic.
-en C:
-Un pong.
-Un projet en pause. Je compte le reprendre de temps en temps: Summer Cursed


-mon tuto sur les Str


Mes calto: G25+, G75
Mon minecraft en dévelopement


Projets et Programmes que je soutiens (sur une idée de Marmotti)
Cliquer pour enrouler
-Pokemon Jade de Dodormeur
-Portal2D de JavierXD
-CalCraft de Wime
-GeekBros du groupe GeekBrothers (Eiyeron,Siapran,KevKevVTT,Adbook,LIMachi)
Dark storm En ligne Labélisateur Points: 11631 Défis: 176 Message

Citer : Posté le 15/12/2013 20:41 | #


J'ai énormément avancé le projet ce week-end, je vous invite à aller constater par vous même sur le site.

Le serveur est normalement fonctionnel. En tout cas, on peut l'installer sur une carte, modifiez juste avant les numéros des pins pour les ports série (en début de fichier).
Toutefois, le jeu en lui même n'a pas été compilé, il se peut que celle-ci plante si vous essayez chez vous. Dans le cas contraire, vous pouvez tester la communication

J'espère pouvoir sortir une première release officielle pour Noël

Ajouté le 16/12/2013 à 21:38 :
Bref, j'ai créé l'addin, qui tourne lentement a cause des cotés de la carte (ben oui, un carré de 65535xl de coté c'est long à afficher ) mais j'ai corrigé ça sur la version HL.

Comme on pouvais s'en douter, le protocole de communication n'est pas encore au point, du coup, si vous avez des idées je suis preneur. Voici les infos à transmettre ( dans le sens Serveur -> Calto, dans le sens Calto -> Serveur)


Infos persos (structure "Player") qui contiennent les données statiques comme le pseudo
Infos dynamiques (structure "DataPlayer" qui est une version allégée de "Player", pour aller plus vite)
Nombre de joueurs
Puis les infos sur les joueurs (structure "Player")

Les fonctions "DataPlayer2Player" et "Player2DataPlayer sont fonctionnelles, donc pas besoin d'aide là-dessus.

Le plus dur est de synchroniser les échanges, ou en tout cas d'attendre les réponses échangées sans arrêter le serveur qui tourne en permanence (pas question de faire ralentir voir stopper la partie parce que quelqu'un se connecte).

Vous pouvez proposer un protocole en C ou en langage naturel, je sèche juste sur l'organisation du transfert.
Pour la partie serveur qui ne peux pas s'arrêter, je faisais une variable avec l'état de la communication puis un switch une fois arrivé au tour de la calto en question.

Bref, je coince, donc c'est énervant en étant parti sur une aussi bonne lancée
Finir est souvent bien plus difficile que commencer. — Jack Beauregard
Dodormeur Hors ligne Ancien rédacteur Points: 3965 Défis: 84 Message

Citer : Posté le 16/12/2013 21:43 | #


Ben déjà pour éviter un ralentissement tu peut fixer les fps
void setFps(int fpsWish)
{
static unsigned int fps = 0, fps_count = 0;

do
{
fps = time_getTicks();
}
while(fps < fps_count+fpsWish);
fps_count = time_getTicks();

}

Et sinon, tu peut aussi faire par partie, comme par exemple on réunit une équipe avant un donjon, et personne ne peut se co une fois dans le donjon pour justement éviter les baisses de framerate
Pokemon !!!!!! => pokemon stadium/battle

mes meilleurs jeux
Cliquer pour enrouler
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
Cliquer pour enrouler

pokemon
Cliquer pour enrouler



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
Cliquer pour enrouler
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 !
Louloux Hors ligne Ancien administrateur Points: 7035 Défis: 61 Message

Citer : Posté le 24/12/2013 12:22 | #


Ajouté aux projets majeurs (en page d'accueil).
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)
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 93 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