CUBE : Mon moteur de jeux isométriques


     4


Alaa-eddine

Voici entre autres l’une des raisons de mon absence ces derniers jours, je travaille en effet sur un moteur de jeux isométriques dont le but est de réaliser des mini-jeux ou RPG multi-joueurs style 2.5d, le tout en html5, donc jouable sur navigateur 😉

 

A ce stade le moteur permet de gérer les mouvements dans huit directions, les collisions ainsi que le calcul de chemins à l’aide d’un algorithme A* légèrement modifié.

 

Il permet également de gérer deux types de cartes isométriques : diamond et staggered

J’ai essayé de séparer la logique du rendu afin de rendre le moteur indépendant, ainsi, il est possible d’utiliser plusieurs moteurs de rendu avec le même moteur de logique du jeu. La démo ci-dessous utilise un moteur de rendu se basant sur l’API canvas native, une version WebGL sera probablement développée plustard … mais on peut aussi utiliser des librairies de plus haut niveau comme JCanvaScript, Raphael, Caat Engine, EaslJS, Jaws… etc

Pour la partie serveur, c’est node.js qui sera utilisé pour les websockets : dans la démo ci-dessous la partie serveur est très basique, elle permet simplement de gérer les déplacements des joueurs et d’envoyer des messages.

Il n y a pas encore de persistance, mais pour la partie base de données j’opterais fort probablement pour MongoDB pour sa gestion native de coordonnées géographiques.

La démo est hébergée gratuitement chez @Nodester.

 

 

Comment utiliser la démo :

Lors de votre connexion vous serez invité à saisir votre nom/pseudo, comme il n y a pas de réelle authentification ce pseudo sera votre identifiant.

Pour bouger, cliquer dans la carte et pour envoyer un message entrer le texte dans la zone en dessous de la carte puis cliquez sur le bouton Send.

Enfin pour visualiser la recherche de chemin ; maintenez la touche « p » en bougeant la souris dans la carte.

La carte utilisée comporte 300×200 tuiles, soit un total de 60000 tuiles. En toute théorie le nombre de tuiles ne doit pas dégrader les performances du jeu.

A noter que la démo n’est pas aboutie et ne représente pas un jeu, c’est simplement un « proof of concept » pour le moteur, il peut y avoir des dysfonctionnements. Si vous constatez des bugs n’hésitez pas à les rapporter en commentant cet article 🙂

 

Il est recommandé d’utiliser la dernière version de chrome ou de firefox pour cette démo.

 

Cliquez ici pour lancer la démo

 

 

 



 

A lire également

 
  • sychedelix

    Bonne continuation et j’espère que se sera libre…

  • ali

    Bonne chance

  • Nerdyprog

    dead link ?
     

  • was down for maintenance 🙂 (server moving) … lot of performance improvements and some new features …
    check the link back in some hours the time for DNS propagation to take effect 😉