[Jeu Multi] Boat Craft

a marqué ce sujet comme résolu.

Présentation :

Boat craft, est un jeu multijoueur en vue de dessus sur Mobile, qui s’inspire de la vague des jeux .io.

Vous prenez le contrôle d’un bateau armé d’un canon que vous pourrez faire évoluer au long de la partie.

Objectif / Motivation :

Faire un jeu massivement multijoueur était une idée qui me tenais à cœurs depuis longtemps. C’est donc un projet prototype pour approfondir mes compétences dans ce domaine et c’est également l’occasion de découvrir de nouvelles librairies/technos. Mon objectif premier était de réaliser un jeu multijoueur stable, apprendre les concepts de la prédiction, réconciliation, load balancing. Mais également faire face au problème de lag, throttle, packet drop élevé…

Et ensuite, éventuellement essayer de faire quelque chose de sympa à jouer :D Mais je dois avouer que cette partie (améliorer le Gameplay) est assez compliquée et demandera de nombreuses itérations avant d’avoir d’obtenir un jeu marrant et équilibré !

C’est un projet que j’estimais faire en 2 semaines, et au final j’en ai consacré plus du double pour en arriver à cette premiere version de production.

Aspect technique :

J’utilise la librairie bas niveau Enet, dont l’un des points majeurs est de pouvoir bénéficier des avantages du protocole udp (rapidité), tout en garantissant la reception des donnés(reliability), en respectant l’ordre d’envoie/reception, le séquencement/rassemblement des packets, et ainsi que de nombreux autres avantages… Je compresse/décompresse les packets avec Zlib (ce qui me donne ~30% de réduction de bande passantes). Le client mobile iOS/Android utilise C++/Opengl ES 2.0 ainsi Firebase pour le coté analytique (mesurer l’acquisition, les cohortes démographiques, le temps d’utilisation du jeu, les crashs…). Et pour ce qui est du back end, j’ai un masterServer et N gameServer, développés en C++ avec Enet et Sqlite3 (pour stocker les données persistantes comme les scores, noms…). Pour la GUI j’utilise une "immediate mode gui" : Nuklear (dans le même genre que Imgui ). L’ "immediate mode gui" donne l’avantage de pouvoir réaliser des interfaces graphiques très rapidement, au coup de performances en comparaisons des "Retained mode"

Pour ce qui est de la location ma configuration est la suivante :

  • Le masterServer : 1 Vps chez OVH
  • Les gameServers : 2 serveurs dédiés chez Kimsufi localisés 1 en Canada et l’autre en France. Et 1 instance chez Amazon EC2

Le gameServer n’est pas coûteux en performances (en partie car il est actuellement configuré à 10 tick, soit 10 rafraîchissement par seconde, ce qui semble être suffisant pour un jeu mobile) Je peux aisément héberger 10 gameServers (de 50 place chacun) par serveur dédié.

Disponibilité :

Prochaine mise à jour :

  • Ajouter un tchat
  • Régler un problème d’interpolation coté client (jitter)
  • Ajouter plus de Canons/skins
  • Équilibrer les armes et autres stats
  • Prendre en compte le ping de l’utilisateur pour le Load balancing

Tous retours/questions/avis sur le jeu sont les bienvenus !

L’idée me parrait sympas, je testerai dès que j’ai un peu de temps ;)

EDIT : le temps on en trouve quand on veut :p (bon, pas toujours)
J’ai testé ce petit jeu et j’adère déjà plus que les jeux .io classique, en plus c’est fluide, rapide à prendre en main et fun. Bref, j’aime bien :)

+1 -0

Le jeu est sympas, mais très mal équilibré je trouve, au début du jeu tu peines à couler des bateaux, au niveau 30, je n’ai pas pu amélioré la vitesse de mes boulets à fond mais c’était tout, j’étais un sac à PV qui en deux coups coulait tous (oui, j’ai atteind le niveau max qui est le 30 avec un score de 30 000 points avant de quitter).
Je pense que c’est le seul soucis majeur, c’est le manque d’équilibre. Dans les jeux .io que j’ai rencontré, le 1er du jeu pouvais mourir aussi facilement que celui qui viens de spawn… moi, à 5 sur moi je les rasais et basta :/

Voili voilou ^^

Salut Dryusdan !

Merci d’avoir pris le temps de tester et donner ton retour, cale m’est d’une grande aide.

Le jeu est sympas, mais très mal équilibré je trouve, au début du jeu tu peines à couler des bateaux, au niveau 30, je n’ai pas pu amélioré la vitesse de mes boulets à fond mais c’était tout, j’étais un sac à PV qui en deux coups coulait tous (oui, j’ai atteind le niveau max qui est le 30 avec un score de 30 000 points avant de quitter).

Oui je suis conscient du manque d’équilibre. Et j’essaie de palier à ce problème, mais c’est sans succès jusqu’à maintenant (ex : diminuer la vitesse du bateau plus il augmente de niveau). Il m’a également été suggéré de rajouter des bots agressifs (ex : des requins) qui s’attaqueraient seulement aux joueurs de haut niveaux. Je pensais ajouter cette idée qui pourrait apporter un vrai challenge une fois atteint le level 30.

Ou bien tout simplement réduire toutes les stats afin qu’un level 1 puisse faire face à un level 30 ?

Qu’en penses tu ?

Salut smartties !

J’ai passé une petite demie heure sur ton jeu (c’est très rare pour moi sur mobile :D ), j’ai atteint le niveau 30 assez facilement, et après c’est vrai que c’est presque impossible de se faire couler :)

En tout cas, le jeu est pas mal foutu pour un premier jet, ça se prend facilement en main, et c’est assez fun !

J’ai vu que pour l’équilibrage, tu avais réduis la vitesse des plus haut niveau, je pense que tu peux la réduire encore. Pourquoi ne pas aussi augmenter la taille du bateau ? Histoire que la hitbox soit plus grande, ça rendrait l’esquive plus difficile et les petits auraient moins de mal à lui faire des dégâts.

Bref, je vais suivre ton projet du coin de l’oeil pour voir son évolution !

+2 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte