Nach meinem besten Wissen verwendet Relics Essence Engine-Serie (wie sie in Company of Heroes und Dawn of War II verwendet wird) Lua oder einen Dialekt davon für Einheitenstatistiken und Missionsskripte. Es gibt keine echten Webquellen dafür, aber Sie können sich jederzeit einige der Mods auf RelicNews.com ansehen , um sich bei Interesse umzusehen .
Die Spark Engine von Unknown Worlds, wie sie in ihrem kommenden Spiel Natural Selection 2 verwendet wird, ermöglicht es meines Wissens, dass sich der größte Teil des Spielcodes in Lua befindet. Das SDK wird mit der Vorbestellung des Spiels geliefert und befindet sich derzeit in der Beta, ebenso wie das Spiel.
Ein anderes Spiel, das einst stark von Lua abhängig war , war Eufloria (ehemals Dyson ). Es gibt auch eine Lua-Modding-Referenz in ihren Foren.
Valves kostenloses Koop-Spiel Alien Swarm verwendet stark eine Skriptsprache namens "Squirrel", die von Lua beeinflusst wurde. Das Alien Swarm SDK sollte auf Steam zum Download verfügbar sein. ( Dev Wiki )
EDIT: Wie hätte ich World in Conflict vergessen können ! Das Spiel macht eine Menge Dinge in Python, wie sich bei Mods wie dem Modern Warfare Mod zeigt, die völlig neue Mechaniken implementieren.
Hier sind einige Beispiele für (Open Source-) Spiele, die Skripte verwenden, um das Verhalten von Entitäten zu implementieren:
Frogato implementiert Entitäten mithilfe einer benutzerdefinierten Skriptsprache. Battle for Wesnoth implementiert Entitäten mithilfe einer benutzerdefinierten Beschreibungssprache, in die Lua-Skripte eingebettet werden können. KQ implementiert das Entitätsverhalten mithilfe von Lua-Skripten.
Bearbeiten: Gepostete Links jetzt, wo ich ...
quelle
Ich mache das in meiner Engine ( Quelle verfügbar , aber wahrscheinlich nicht entzifferenswert).
In meinem Fall ist eine "Entität" ein Konzept, das vollständig in Lua existiert. Es gibt keine C ++ - Unterstützung für "Entitäten". Als solches ist eine "Entität" alles, was dieses spezifische Spiel benötigt. Manchmal ist es nur eine Tabelle mit ein paar Daten, manchmal ist es ein 2D-Frame-Element (beachten Sie, dass Frames ebenfalls reine Lua-Konstruktionen sind, ich habe nur eine Standard-UI-Bibliothek), manchmal ist es etwas kompliziertes mit KI und Rendering und dann ist es immer noch nur eine Sache, die in Lua geschaffen wurde.
Viele Leute verwenden Lua, um Objektsysteme mit C ++ - Unterstützung zu skripten, so dass die Entität in C ++ "lebt" und Lua für ihre Skripterstellung aufruft. Früher habe ich das gemacht, aber ich wurde immer glücklicher, als ich Code aus C ++ nach Lua verschob. Zu diesem Zeitpunkt verwende ich C ++ ausschließlich zur Verarbeitung der OS-API-Aufrufe, und die gesamte Layout- / Rendering- / AI- / Spielelogik ist in 100% reinem Lua.
Empfohlen.
Fühlen Sie sich frei, Fragen zu stellen, ich bin durchaus bereit zu beantworten :)
quelle