le début du prototype...

Bonjour à tous,

Premier devlog après un mois et demi de développement. Première impression, hé bien coder un jeu multijoueur, c’est pas aussi facile que ça en a l’air. ^^ Les principaux problèmes que j’ai rencontrés portent sur la partie réseau (pas encore totalement débuguée), le système de navigation et la caméra principale.

Voici une liste des différentes fonctionnalités pour le moment implémentées (mais qui seront sûrement modifiées avec le temps):

  • un manager capable de renvoyer une information au joueur lorsqu’une erreur est rencontrée.
  • un manager capable de charger les différentes scènes à l’aide de transitions.
  • un menu avec la possibilité de créer / rejoindre une partie, de choisir un nom d’utilisateur et de quitter le jeu. (les autres fonctionnalités ne sont pas encore implémentées)
  • un manager réseau capable de créer une partie (publique / privée) de 1 à 4 joueurs, de rejoindre une partie parmi la liste des parties publiques ou de rejoindre une partie privée. Il gère également le changement d’hôte (en cas de déconnexion de l’hôte) et sauvegarde en temps réel les données du joueur lors d’une déconnexion (via les joueurs encore en jeu), ce qui permet de revenir en jeu sans avoir perdu ses informations (attention, après déconnexion la partie est déclarée privée et doit être rejointe comme telle, j’ai implémenté cette fonctionnalité histoire d’éviter un joueur inconnu ne prenne la place).
  • une interface basique pour choisir un personnage personnalisé parmi plusieurs choix (sexe, classe, couleur de peau / vêtements…) lors de la création.
  • une chatbox capable d’envoyer des informations système, des informations liées au jeu ainsi que les messages des différents joueurs.
  • une interface basique comprenant les portraits et informations des joueurs, ainsi qu’une minimap.
  • un système de navigation de type point and click.
  • une caméra pseudo intelligente capable de s’adapter à son environnement.
  • un système de pooling pour essayer d’optimiser les performances (quoique à ce stade là ça n’a guère d’intérêt).

 

Au final, il reste encore pas mal de boulot avant même d’envisager la partie gameplay (j’entends par là tout ce qui tourne autour de la partie rôle play et des combats tactiques) :

  • corriger le bug à ce jour le plus important à mes yeux : lorsqu’on souhaite rejoindre une partie, ou lorsqu’on tente de se reconnecter à la partie après une déconnexion (pour x ou y raison), il faut parfois s’y reprendre à plusieurs fois. Comme c’est aléatoire je suspecte un bug pernicieux dans la méthode gérant la connexion au serveur, mais je compte bien lui faire sa peau !
  • repenser certains morceaux de code. J’essaye de me focaliser sur une méthode de travail où le développement est dirigé à partir des données. Cela permet d’éviter les instances statiques et donc de ne plus rendre interdépendantes les différentes fonctionnalités. Ainsi chaque comportement est auto-existant et modulaire, super pratique pour avancer dans le développement sans tout casser ! 🙂
  • développer un système de « téléportation » entre différentes scènes et le coupler avec la partie réseau pour mettre à jour les informations reçues par les différentes joueurs lors de la « téléportation ».
  • développer un système pour monter et descendre d’une échelle.
  • être plus rigoureux dans le code en ajoutant des « try catch » pour gérer les erreurs.

Merci à tous ceux qui auront pris le temps de tester et de reporter les différents bugs rencontrés. 🙂

Cherubchucky

Comments (4)

Salut duruti,

Il y a deux possibilités à cela :
– soit tu as rencontré le bug de connexion que je dois corriger au plus vite (auquel cas il peut falloir plusieurs tentatives avant de se connecter avec succès, en général entre 1 et 4).
– soit c’est lié à ta connexion. je m’explique, chez moi cela fonctionne sans souci, mais j’ai déjà fait des tentatives de connexion dans des endroits où le débit était vraiment très faible, notamment lors d’un salon et dans le tgv. Et il est vrai que dans ces cas-là je n’ai pas été capable de me connecter. Je ne pensais juste pas que cela pouvait arriver pour une connexion domestique. Il faudra que je règle également ce souci.
Merci

Je vais essayer de voir si je peux trouver une solution à ce problème. Sinon j’implémenterai également une option pour jouer seul sans passer par le réseau, ce qui permettra de faire tester tout le monde (bien que l’expérience de jeu sera légèrement différente).

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.