Ist es eine gute Idee, eine charakterbasierte Spiel-Engine so zu vereinfachen, dass das Erlernen von Skripten / Programmieren nicht mehr erforderlich ist?

9

Ich erinnere mich und denke immer noch, dass man nicht einmal ein prototypisiertes 3D-Spiel erstellen kann, um nur einfache Verhaltensweisen zu testen, ohne gigantische Tools wie Unity zu verwenden oder umfangreiche C ++ - Programmierung, Entwurfsmuster, eine anständige oder grundlegende 3D-Engine usw. zu kennen.

Jetzt frage ich mich, da ich Programmieren kenne, ob ich noch mehr Glück habe als diejenigen, die Programmieren lernen müssen, bevor sie wissen, wie man etwas macht. Sogar Skript-Engines wie Unity sind nichts für Kinder, und meiner Meinung nach diktieren sie ihre Arbeitsweise. Dies ist bei Motoren wie Ogre oder Irrlicht nicht der Fall.

Jetzt denke ich, dass charakterbasierte Spiele einen großen Teil des Spielemarktes einnehmen. Halten Sie es für eine gute Idee, eine auf Charaktersteuerung ausgerichtete Spiel-Engine zu entwickeln, mit der KI nur unter Ausschluss anderer Elemente erstellt werden kann?

Wenn ich Prototyp sage, meine ich auch "generisch" in dem Sinne, dass man schnell aus einer Reihe von Spielparametern wie dem Szenenmanager, dem Kamera-POV des Spielers, den Steuerelementen, einigen sehr grundlegenden Kollisionen / Physik und Integration auswählen kann der Grundlenkung (OpenSteer zum Beispiel). Die Hauptidee besteht darin, eine KI-Sandbox in 3D zu erstellen, damit sie ohne 2D-Einschränkungen demonstriert werden kann (und sie auch besser für den Prototyp in 3D für ein 3D-Projekt anstelle von 2D geeignet ist).

Jokoon
quelle
Eine "einfache" 3D-Engine ist nicht riesig und C ++ ist für das Prototyping schrecklich. Versuchen Sie dafür Python.
Die kommunistische Ente

Antworten:

6

Ich mag die unterschätzte Spiel-Engine in Blender sehr. (http://www.blender.org) Das Sensor-Controller-Aktuator-Modell ist auch für Nicht-Programmierer sehr einfach zu befolgen und es ist möglich, ein einigermaßen vollständiges Spiel zu erstellen (einen animierten Charakter bewegen, eine Waffe abfeuern, Ziele zerstören , Punktzahl anzeigen, Gesundheit verfolgen, Level zurücksetzen oder zu einem neuen wechseln) ohne Programmierung.

Natürlich müssen einige Dinge programmiert werden (insbesondere das Abrufen von Mauseingaben für einen FPS). Blender enthält jedoch bereits Python, und Python-Skripte sind sehr gut in das Modell eingebunden, sodass Sie Sensor-Aktoren niemals durch Python ersetzen müssen. Stattdessen wechseln Sie einfach von einem sehr einfachen Pass-Through-Controller zu einem vollständigen Python-Skript, das alle Sensoren in der Szene lesen und die Steuerung an alle Aktuatoren übergeben kann.

Es ist durchaus möglich, in wenigen Tagen in Blender einen Spielprototyp zu erstellen (ich habe ihn letztes Jahr für ein Projekt in einem örtlichen Kindermuseum gemacht.)

Natürlich ersetzt nichts das gute alte Programmier-Know-how, und schließlich muss ein Entwickler die Programmierung verstehen.

Zwei pi
quelle
Das wäre ganz nett, diese Spiel-Engine mit Code anstelle von Boxen zu verwenden ... vielleicht ist sie nicht sauber genug, um sie zu verwenden, aber ich frage mich ...
Jokoon
4

Unabhängig vom Eingabemechanismus müssen Sie am Ende des Tages immer noch eine Methode einrichten, um dem Spiel die Logik zu erklären. "Scripting" ist dafür eine gute umgangssprachliche Bezeichnung. Grundsätzlich stimme ich der Behauptung nicht zu, dass Sie etwas so vereinfachen können, dass Sie "Scripting" nicht mehr kennen müssen.

Allerdings müssen nicht alle Skripte mit einer textbasierten Programmiersprache erstellt werden. Es wurde einige Arbeit (aber nicht viel) an der Erstellung eines visuellen Skriptsystems geleistet. Das Level-Scripting-Tool von Unreal, Kismet, ist ein ziemlich gutes Beispiel dafür. Die Quell-Engine hat eine ähnliche Mechanik, verwendet jedoch Entitäten auf der Welt anstatt auf einer flachen Ebene.

Grundsätzlich haben Sie Boxen, die Sie in einer Umgebung mit Ein- und Ausgängen ziehen. Wenn Sie eine Art Verzweigungsausgabe benötigen, haben Sie eine Box mit einem Eingang und mehreren Ausgängen. Diese Ausgaben können für Aktionen verwendet werden, an die Daten gebunden sind (z. B. "An diesen Punkt verschieben", "Diese Zeile sagen", "Diese Frage stellen" usw.). Es ist normalerweise eine deutlich niedrigere Eintrittsbarriere, um etwas in einer visuellen Sprache zum Laufen zu bringen, da Sie keine Schlüsselwörter oder Syntax kennen müssen, sondern nur eine begrenzte Anzahl von Feldern zur Auswahl haben, aus denen alle Verhaltensweisen definiert haben, und Sie nur verbinde sie miteinander.

Ich bin jedoch der Meinung, dass Visual Scripting Engines die Mühe nicht wirklich wert sind. Sie müssen strukturiert und logisch denken können, um der Engine erfolgreich mitzuteilen, was Sie tun möchten. Wenn Sie so denken können, ist der Sprung von Feldern mit Ein- / Ausgaben zu grundlegenden Verzweigungsanweisungen und Funktionsaufrufen in einer Skriptsprache keine so große Sache. Tatsächlich ist der visuelle Teil nach einer Weile wahrscheinlich ein Hindernis. Außerdem ist es viel mehr Arbeit auf der Motorseite. Sie müssen Dinge wie Rückgängig machen, Kopieren / Einfügen implementieren und möglicherweise einige übergeordnete Funktionen zum Organisieren Ihrer Skripte haben. Mit einer textbasierten Sprache können Sie all das der IDE überlassen.

Tetrad
quelle
Du meinst wie Unreal Kismet?
DeadMG
1

Es wird im Allgemeinen ein Kompromiss sein. Wenn Sie wirklich die Notwendigkeit von Skripten beseitigen möchten, werden Sie im Allgemeinen darüber sprechen, eine Art Schnittstelle zu erstellen, die die Skripte im Hintergrund zusammenfügt (oder nur logische Objekte verbindet oder was nicht). Es gibt ganze Spiele, bei denen das der springende Punkt ist, eine gut definierte Umgebung, in der Sie Funktionen per Drag & Drop verschieben können, um zu sehen, wie sie damit interagieren.

Am Ende des Tages wird es jedoch immer ein Kompromiss sein. Je einfacher Sie versuchen, die Benutzeroberfläche zu gestalten, desto einfacher werden die über diese Benutzeroberfläche erstellten Dinge.

James
quelle