Ich arbeite derzeit an einem weltraumbasierten Sandkastenspiel, das die Möglichkeit bietet, Ihre Systeme individuell zu programmieren. Ich möchte das so umsetzen, dass es beides ist
- zugänglich,
- mächtig (das Nötigste wäre Vollständigkeit)
- schnell zu codieren.
Textbasierte Sprachen erfüllen im Allgemeinen nur die beiden letztgenannten Anforderungen, und obwohl es nicht schwierig ist, eine visuelle Sprache zu entwerfen, die die ersten beiden erfüllt, ist die Programmierung visueller Sprachen schwierig, da eine umfangreiche Mausbenutzung erforderlich ist. Obwohl es einige sehr leicht zugängliche textbasierte Sprachen gibt, möchte ich, dass sich vollständige Nicht-Programmierer in die Programmierung einarbeiten können.
game-design
software-engineering
Dimitriye98
quelle
quelle
Antworten:
Die einzige Möglichkeit, alle Funktionen zu nutzen, besteht darin, mehrere Schnittstellen zu implementieren. Zugänglich und leistungsstark sind oft zwei Enden eines Spektrums. Der einfachste Weg, dies zu tun, ist die Implementierung eines leistungsstarken Systems mit einer zusätzlichen Schnittstelle, über die Anfänger auf intuitive Weise mit dem System interagieren können.
Unter Berücksichtigung eines Systems, mit dem Anfänger visuell programmieren können, möglicherweise ähnlich wie bei den Lego Mindstorms-Programmiertools :
Wo gibt es Drag & Drop-Komponenten. Die Komponenten haben Ein- und Ausgänge. Komponenten können einfache Dinge
AND
oderOR
Tore sein oder komplexer wie ein Test für in der Nähe befindliche Feinde.Idealerweise sollte die visuelle Darstellung ein schriftliches Sprachskript im Hintergrund kompilieren. Dies bietet ein leistungsstarkes Tool zum Erlernen der Sprache. Wenn ein Anfänger sein Programm visuell "schreiben" kann, dann lesen Sie den Code, den es erzeugt. Es ist weitaus wahrscheinlicher, dass er ihn versteht und den erzeugten Code modifizieren kann. Schließlich in der Lage zu sein, leistungsfähigeren Code zu schreiben, als es die visuellen Werkzeuge alleine erlauben. Dies erfüllt die Anforderung, die Benutzer in die Programmierung einzubeziehen.
Das Rückgrat des Systems ist natürlich eine geschriebene Sprache. Die visuellen Tools dienen lediglich dazu, den Benutzern eine schnelle Möglichkeit zu geben, etwas Einfaches zu programmieren und Anfängern den Einstieg zu ermöglichen.
Die geschriebene Sprache ermöglicht fortgeschrittenen Benutzern, fortgeschrittene Dinge zu tun. Sie können Benutzern sogar erlauben, ihre eigenen Komponenten zu erstellen, indem Sie benutzerdefinierte Skripts erstellen. Dann können sie Komponenten, die sie in einer schnellen und einfachen Schnittstelle für eine schnelle Programmierung hergestellt haben, wiederverwenden.
Viel Glück! Klingt nach einem lustigen Projekt.
quelle
Vielleicht möchten Sie einen Blick auf Googles Block werfen . Sie kombinieren die visuellen Elemente mit erkennbaren Programmierbegriffen und behalten dabei ein angemessenes Maß an Barrierefreiheit bei.
Sie können sich die Maze-Demo ansehen, um sich inspirieren zu lassen. Viele meiner Freunde, die keine Programmierer waren, waren in der Lage, den größten Teil der Rätsel damit zu lösen, und erfüllten zumindest einige Ihrer Kriterien.
quelle
Ich bin überrascht, dass dies noch nicht erwähnt wurde, aber MITs Scratch verwendet eine Blockschnittstelle, die schnell zu codieren ist. Sie ermöglicht es Benutzern, ihre eigenen Funktionen zu erstellen und kann für eine Sprache, die entwickelt wurde, um Kindern beizubringen, wie man es macht, überraschend komplex werden Code.
Stencyl ist ein weiteres Beispiel für eine Blockcodierung, die etwas ähnlicheres macht als das, was Sie wollen. Das Codieren mit solchen Blöcken ist wesentlich effizienter und zeitsparender als visuelle Programmierschnittstellen wie die von Lego NXT. Mit Stencyl können Benutzer entweder in Actionscript oder in Blöcken codieren.
Ich entschuldige mich für den Mangel an Bildern, ich habe noch nicht genug Ruf um Bilder zu posten.
quelle
Die Programmiersprache BPEL verfügt über eine visuelle Darstellung und viele Werkzeuge, die damit arbeiten. Es ist eine Workflow-Sprache, keine Programmiersprache, aber absolut vollständig. Es ist ausführlich, aber sowohl für Programmierer als auch für Geschäftsleute leicht zu schreiben und leicht von visueller in textuelle Form zu übersetzen. Ich denke nicht, dass es eine gute Spielsprache wäre, aber es kann als Inspirationsquelle dienen. Und angesichts der Menge an BPEL-Engines und -Tools sollte es möglich sein, einige Ideen und / oder Code wiederzuverwenden.
BPEL-ähnliche Sprache fühlt sich nicht wie Programmieren an, sondern eher wie Routing- und Verbindungssysteme. Sie können also ein Zielsystem mit einer dazwischen liegenden Logik an ein Geschützsystem anschließen.
quelle
Betrachten Sie diesen Ansatz:
Das ist der schnellste Weg, den ich mir vorstellen kann, um all die Süßigkeiten ohne allzu große Schmerzen zu bekommen. Sie bekommen die Click'n'Drag Noobs sowie die Vim-Geeks an Bord. Und wenn Sie die Mechanik einfach halten (z. B. Auslöser -> Bedingung -> Aktion), müssen Sie nicht viele Jahre in die Entwicklung einer Benutzeroberfläche für einen leistungsstarken und dennoch benutzerfreundlichen grafischen Skripteditor investieren.
Einige Beispiele um zu verdeutlichen, was ich meine:
quelle