Moteur de jeu avec une bonne création / gestion de l'entité Lua [fermé]

11

Je recherche un moteur qui construit ses entités en utilisant Lua ou un autre langage de script. C'est pour trouver l'inspiration et le faire aussi dans mon propre moteur.

Je sais que CryEngine utilise Lua pour créer leurs entités, mais je voulais savoir s'il existe d'autres alternatives que je peux rechercher.

Merci!

Mr.Gando
la source

Réponses:

7

Je recommanderais de jeter un œil à LÖVE "un cadre génial que vous pouvez utiliser pour créer des jeux 2D dans Lua. Il est gratuit, open-source et fonctionne sur Windows, Mac OS X et Linux." Ce n'est clairement pas une alternative au Cryengine, mais devrait certainement montrer comment utiliser efficacement le potentiel de Lua pour la création d'entités et la logique de jeu. Combinez ces connaissances avec la façon dont Cryengine / d'autres moteurs AAA utilisent les backends de script, et vous devriez avoir toute l'inspiration dont vous avez besoin pour créer votre propre moteur avec des capacités de script robustes. :)

Ari Patrick
la source
4

À ma connaissance, la série de moteurs d'essence de Relic (telle qu'utilisée dans Company of Heroes et Dawn of War II ) utilise Lua ou un de ses dialectes pour les statistiques de l'unité et les scripts de mission. Il n'y a pas de véritables sources Web pour cela, mais vous pouvez toujours consulter certains des mods sur RelicNews.com pour vous demander si vous êtes intéressé.

Le Spark Engine de Unknown Worlds tel qu'utilisé dans leur prochain jeu Natural Selection 2 permet à la plupart du code de jeu d'être à Lua pour autant que je sache. Le SDK est fourni avec la précommande du jeu et est actuellement en version bêta, tout comme le jeu.

Eufloria (anciennement Dyson ) était un autre jeu qui était autrefois fortement encouragé en s'appuyant sur Lua . Il y a aussi une référence de modding Lua sur leurs forums.

Le jeu coopératif gratuit de Valve, Alien Swarm, utilise beaucoup un langage de script appelé "Squirrel" qui a été influencé par Lua. Le SDK Alien Swarm devrait être disponible en téléchargement sur Steam. ( Dev wiki )

EDIT: Comment aurais-je pu oublier World in Conflict ! Le jeu fait beaucoup de choses en Python, comme cela devient évident lorsque l'on regarde des mods comme le Modern Warfare Mod qui implémentent des mécanismes complètement nouveaux.

Koarl
la source
Ajout de vos liens pour vous.
The Communist Duck
Je vous remercie! // Suppression du commentaire contenant des liens non formatés ...
Koarl
Excellente réponse, j'espère que plus de gens pourront ajouter à cette question, car à l'avenir, je suis absolument sûr qu'il y aura plus de réponses. Merci beaucoup Koarl (je suis un grand fan de reliques btw)
Mr.Gando
2

Voici quelques exemples de jeux (open source) qui utilisent des scripts pour implémenter le comportement des entités:

Frogato implémente des entités à l'aide d'un langage de script personnalisé. Battle for Wesnoth implémente des entités à l'aide d'un langage de description personnalisé dans lequel les scripts Lua peuvent être intégrés. KQ implémente le comportement des entités à l'aide de scripts Lua.

Edit: Liens publiés maintenant que je suis autorisé à ...

hmn
la source
Frogato est très proche de ce que je recherche, c'est un peu bavard cependant, mais toujours très intéressant. Un exemple équivalent à Lua basculerait :)
Mr.Gando
2

Je le fais dans mon moteur ( source disponible , mais ne vaut probablement pas la peine d'être déchiffrée).

Dans mon cas, une «entité» est un concept qui existe entièrement au sein de Lua. Il n'y a pas de support C ++ pour les "entités". En tant que telle, une «entité» est tout ce dont un jeu spécifique a besoin. Parfois, c'est juste un tableau avec quelques petites données attachées, parfois c'est un élément Frame 2d (notez que les cadres sont entièrement des constructions Lua aussi, j'ai juste une bibliothèque d'interface utilisateur standard), parfois c'est quelque chose de compliqué avec l'IA et le rendu et ensuite c'est encore juste une chose créée à Lua.

Beaucoup de gens utilisent Lua pour scripter des systèmes d'objets qui ont un support C ++, de sorte que l'entité "vit" en C ++ et appelle Lua pour son script. J'avais l'habitude de faire cela, mais je me suis retrouvé de plus en plus heureux en déplaçant le code de C ++ vers Lua. À ce stade, j'utilise C ++ uniquement pour gérer les appels de l'API OS, et toute la logique de mise en page / rendu / IA / jeu est en 100% Lua pur.

Conseillé.

N'hésitez pas à poser des questions, je suis tout à fait disposé à y répondre :)

ZorbaTHut
la source
Comment glorp se compare-t-il à love2d?
deft_code
Si je comprends bien, love2d a un chemin de rendu considérablement défini. glorp ne le fait pas - il a des liaisons OpenGL, et vous restituez tout ce que vous voulez (bien qu'il ait des fonctions d'assistance pour les choses standard.) glorp a un système intégré "menu principal / pause / retour au menu", il fait à distance rapport d'erreurs sur les plantages, et il générera automatiquement des programmes d'installation pour le système d'exploitation sur lequel vous le construisez. glorp n'est pas vraiment conçu comme une API, cependant - c'est un cadre qui est constamment modifié pour tout ce dont j'ai besoin. Pas du tout compatible à l'envers :)
ZorbaTHut