Spiel-Engine mit guter Erstellung / Verwaltung von Lua-Entitäten [geschlossen]

11

Ich suche nach einer Engine, die ihre Entitäten mithilfe von Lua oder einer anderen Skriptsprache erstellt. Dies dient dazu, Inspiration zu finden und dies auch in meinem eigenen Motor zu tun.

Ich weiß, dass CryEngine Lua verwendet, um ihre Entitäten zu erstellen, aber ich wollte wissen, ob es andere Alternativen gibt, nach denen ich suchen kann.

Vielen Dank!

Mr.Gando
quelle

Antworten:

7

Ich würde empfehlen, einen Blick auf LÖVE zu werfen. "Ein großartiges Framework, mit dem Sie 2D-Spiele in Lua erstellen können. Es ist kostenlos, Open Source und funktioniert unter Windows, Mac OS X und Linux." Es ist eindeutig keine Alternative zur Cryengine, sollte aber auf jeden Fall zeigen, wie das Potenzial von Lua für die Erstellung von Entitäten und die Spielelogik effektiv genutzt werden kann. Kombinieren Sie dieses Wissen mit der Verwendung von Skript-Backends durch Cryengine / andere AAA-Engines, und Sie sollten alle Inspirationen haben, die Sie benötigen, um Ihre eigene Engine mit robusten Skriptfunktionen zu erstellen. :) :)

Ari Patrick
quelle
4

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.

Koarl
quelle
Fügte Ihre Links für Sie hinzu.
Die kommunistische Ente
Vielen Dank! // Löschte den Kommentar mit unformatierten Links ...
Koarl
Tolle Antwort, ich hoffe, dass mehr Leute zu dieser Frage beitragen können, da ich in Zukunft absolut sicher bin, dass es mehr Antworten geben wird. Vielen Dank Koarl (ich bin übrigens ein großer Relic-Fan)
Mr.Gando
2

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 ...

hmn
quelle
Frogato sieht sehr nah an dem aus, wonach ich suche, es ist zwar etwas ausführlich, aber immer noch sehr interessant. Ein gleichwertiges Beispiel in Lua würde rocken :)
Mr.Gando
2

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 :)

ZorbaTHut
quelle
Wie vergleicht sich Glorp mit Love2d?
Deft_code
So wie ich es verstehe, hat love2d einen deutlich in Stein gemeißelten Rendering-Pfad. glorp nicht - es hat OpenGL-Bindungen und Sie rendern einfach, was Sie wollen (obwohl es Hilfsfunktionen für Standard-Sachen hat). glorp hat ein eingebautes "Hauptmenü / Pause / Zurück zum Menü" -System, es macht Remote Fehlerberichterstattung bei Abstürzen, und es werden automatisch Installationsprogramme für jedes Betriebssystem generiert, auf dem Sie es erstellen. glorp ist jedoch nicht wirklich als API konzipiert - es ist ein Framework, das ständig für alles geändert wird, was ich brauche.
Überhaupt