Nein . Zumindest, wahrscheinlich nicht.
Dies ist ein sehr häufiger Fall, in dem das Rad in der Spieleentwicklung neu erfunden wird - ein Fehler, der immer noch sehr beliebt ist.
Wenn Sie diese Frage stellen, werden Sie sehr wahrscheinlich von den Aktivitäten anderer beeinflusst. Schauen Sie sich also an, was Epic Games gerade mit der Unreal Engine gemacht hat:
- UE3 hatte eine benutzerdefinierte, seltsame, nicht optimierte, schwer zu debuggende UnrealScript-Sache,
- Wenn das Gerücht wahr ist, wird seine Unterstützung in UE4 zugunsten von hot-reloadbaren C ++ - DLLs entfernt.
Glaubst du, du kannst es besser als Epic?
Das Erstellen von Programmiersprachen gehört den Programmiersprachenentwicklern und nicht den Spielingenieuren .
Es dauert Jahre, bis eine Sprache vollständig ausgereift ist und das zugehörige Toolset (Compiler, Linker, Interpreter, Debugger usw.) verwendet werden kann. Heutzutage haben Sie eine Menge verfügbarer Lösungen zur Hand, sodass es absolut keinen wirklichen Grund gibt, eine neue Sache von Grund auf neu zu beginnen, zumindest nicht, wenn das Ziel einfach darin besteht, ein Spiel zu machen. Zeitraum.
Um Ihre Nebenfragen zu beantworten, nein, aus genau diesen Gründen habe ich noch nie meine eigene Skriptsprache implementiert. Aber ich habe viel mit einigen halbgebackenen gelitten. Weil sie mit einem sehr engen Funktionsumfang erstellt wurden, hatten sie immer diese kleinen verrückten Macken, die dich verrückt machen. Oft verbringst du sehr viel Zeit damit, die Sprachbeschränkungen zu umgehen, anstatt nur dein Spiel zu machen.
Wenn der Grund , warum Sie eine Sprache erstellen möchten, weil sie für die Nutzung durch Personen bestimmt, die nicht wissen , sehr gut programmieren, oder wenn Sie glauben , dass Sie es brauchen , weil Sie etwas sehr domänenspezifische wollen, lassen Sie mich Ihnen sagen , diese sind auch schlechte Gründe. Sie können eine API auf sehr hoher Ebene schreiben, die Funktionen do_what_they_say_and_say_what_they_do()
und sehr einfachen Code enthält, der die grundlegende Verwendung offenlegt. Ihre weniger technischen Benutzer werden sich freuen, ein wenig Programmieren zu lernen, und Sie werden sich freuen, nicht von einer schlecht implementierten Sprache eingeschränkt zu werden.
So, wie dies ein wenig abrupt oder auch hart klingen wird, werde ich sagen , dass es ein Fall , in dem es könnte Sinn machen: Wenn Sie erfahren möchten , wie eine Skriptsprache gemacht wird. Aber bitte, bitte, wenn Sie dies tun: Zwingen Sie andere nicht, es zu benutzen.
Bearbeiten
Ich habe mir gerade die Cave Story-Befehlsliste angesehen, die Sie verlinkt haben. Autsch:
<ECJx:y [EC?] Jump @ Jump to event Y if any npc with ID X is present
Ich möchte dem Entwickler hinter Cave Story keine Respektlosigkeit zeigen, aber dies ist ein perfektes Beispiel für eine einfache Befehlsliste, die in einer unkontrollierbaren benutzerdefinierten Skriptsprache mutiert ist. Dies mag für einen einzelnen Entwickler oder ein sehr kleines Team noch brauchbar sein, aber zu diesem Zeitpunkt rate ich, auf eine korrekte, vollständige und bewährte Sprache (z. B. Lua) zu wechseln, in der Sie Folgendes tun können:
if (npc.id == x) then
jump_to_event(y)
end
Dies erleichtert die Arbeit erheblich, wenn Sie beispielsweise eine komplexere Bedingung benötigen:
if (npc.id == x) or (npc.type == "enemy") then
jump_to_event(y)
end