2 points par GN⁺ 2023-12-22 | 1 commentaires | Partager sur WhatsApp

Moteur de jeu Moddio 2

  • Moddio est un moteur de jeu conçu avec le multijoueur comme priorité.
  • Il intègre du code réseau à autorité serveur, l’interpolation par instantanés et des mécanismes de compensation côté client.
  • Il prend en charge plus de 50 joueurs simultanés ou plus de 300 objets en mouvement sur une VM à 5 dollars par mois.

Démo

  • Inclus d’emblée : moteur physique Box2D, code réseau à autorité serveur, système d’inventaire et d’objets, attributs intégrés (HP, énergie, etc.) et leur taux de régénération, système de dialogue, boutique, contrôle des unités, projectiles avec prédiction côté client et déplacement des unités, IA des unités et pathfinding A*, contrôles mobiles, etc.

Comment lancer le jeu

  • Node 18 ou version ultérieure est requis.
  • Après avoir configuré le dépôt, allez dans le répertoire /src, renommez game-sample.json en game.json, revenez au répertoire racine et lancez le serveur.
  • Vous pouvez ensuite jouer au jeu sur http://localhost:80.

Comment créer un nouveau jeu à partir de zéro

  • Les jeux Moddio sont créés et modifiés avec l’éditeur de jeux Moddio disponible sur https://www.modd.io.
  • Après avoir créé un jeu, vous pouvez exporter un game.json utilisable dans une installation locale.
  • Renommez le JSON du jeu exporté en game.json et déplacez-le dans le répertoire ./src.

Comment contribuer

  • Moddio est entièrement gratuit et open source sous licence MIT.
  • Pour savoir comment devenir contributeur, consultez la page expliquant comment contribuer.

Crédits

  • Isogenic Game Engine, Phaser, PlanckJS, uWebsocket, Box2D, assets Kenney, Hero Icons, etc. sont utilisés.

Avis de GN⁺

  • Le moteur de jeu Moddio est spécialisé dans le développement de jeux multijoueurs et offre des fonctionnalités puissantes permettant de prendre en charge de nombreux joueurs à faible coût.
  • Open source, il continue d’évoluer grâce aux contributions de la communauté, ce qui le rend aussi accessible aux ingénieurs logiciels débutants.
  • Il intègre de nombreuses fonctionnalités nécessaires au développement de jeux, offrant aux développeurs un environnement où ils peuvent créer rapidement des prototypes et les tester.

1 commentaires

 
GN⁺ 2023-12-22
Commentaires Hacker News
  • Inquiétude concernant le fait que la page d’inscription de l’application Android demande de saisir le nom d’utilisateur et le mot de passe Google dans ce qui ressemble à un formulaire web intégré à l’application

    • L’utilisateur ne peut pas savoir si l’application espionne le mot de passe
    • Question sur le fait de savoir s’il est difficile d’implémenter le schéma habituel où l’application ouvre la page de connexion puis revient, ou s’il s’agit d’un problème de prise en charge multiplateforme
  • Il n’est pas facile d’attirer des utilisateurs pour un moteur de jeu, surtout s’il est en source fermée

    • Question sur la manière dont la galerie de jeux du site a été aussi bien entretenue, et sur le fait qu’il s’agisse de travaux de quelques amis ou du produit d’une communauté active
  • Expression de surprise face au fait que modd.io soit un framework/une plateforme populaire pour créer des jeux .io

  • L’une des façons les plus sûres de ne jamais terminer un jeu est de commencer par écrire son moteur

    • On peut créer sa propre technologie, mais elle doit être adaptée au projet et ne pas chercher à devenir une plateforme de jeu généraliste
  • Curiosité à propos de l’expérience de jeu à environ 50 joueurs en rejoignant le serveur Brains

    • Instabilité des mouvements due aux WebSockets
    • Questions sur la compression réseau, en particulier sur le fait de savoir si la compression LZ-string est suffisante
    • Les coûts de bande passante cloud peuvent être élevés, donc il y a beaucoup de marge d’amélioration côté réseau
  • Question sur la motivation derrière la création d’un nouveau moteur

    • Pourquoi certaines fonctionnalités sont intégrées au moteur, comme le système d’armes, la boutique, les projectiles avec prédiction côté client et le déplacement des unités
    • Doute sur le fait que ces fonctionnalités relèvent vraiment d’un moteur de jeu, ou s’il s’agit plutôt d’un moteur destiné à un genre de jeu particulier
  • Avantages d’un éditeur interactif low-code qui semble bien adapté à un projet hobby

    • Intérêt pour la génération de cartes et de mondes
    • Question sur le fait de savoir si le meilleur moyen consiste à exporter le jeu en JSON, le modifier par programmation, puis le réimporter
    • Crainte de devoir comprendre et modifier du JSON, et demande de suggestions sur l’approche à adopter
  • Remarque selon laquelle un backend multijoueur basé sur Node.js peut devenir de plus en plus lent à mesure que le nombre de connexions augmente

    • Question sur la manière dont ce problème a été résolu et sur des alternatives comme Go
  • Expression de gratitude pour le projet open source et intention d’examiner le code en détail pendant les vacances de fin d’année

  • Mention que cela pourrait être utile pour créer des agents IA en tant que PNJ, avec des remerciements pour avoir mis ce travail en open source