Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

08.05.2010, 18:01

Eigene Skript-Sprache entwerfen

Ich wünsch euch allen ein schönen Tag ;)

Doch so schön der Tag hier auch sein mag, nervt es mich grad, dass ich nun schon wieder meinen ganzen Code Haufen über die planke spingen lassen durfte. Nun habe ich mir gedacht, dass ich mich nun einfach schritt für Schritt hoch arbeite. Anfangen möchte ich mit den Teilen, die möglichst unabhängig vom restlichen Framework funktionieren. Sponan fällt mir dabei eine eigene Skript-Sprache ein. Keine wirklich komplexe, einfach eine mit der man rechnen kann und gegebenenfalls ein paar Funktionen aus dem Programm aufrufen kann.

Ich wollte schon seit längerem eine Skript-Sprache entwerfen, deswegen habe ich mir darüber auch schon ein paar gedanken gemacht. Wie das ganze funktionieren könnte wüsste ich schon, aber ob meine Lösung auch wirklich die beste ist, ist wiederrum fragwürdig. Deswegen habe ich versucht mich bei Google ein wenig schlau zu machen, aber wenn man sowas eingibt wie "Script C++" oder "Script Tutorial" bekommt man leider keine Ergebnisse die einem zeigen wie man eine eigene Sprache entwirft, sondern eher wie man eine vorhandene benutzt.

Darum wollte ich mal fragen, ob vllt jemand von euch Ahnung davon hat, oder gutes Nachschlagewerk dazu kennt?

C-/C++-Quelltext

1
2
3
4
while(true)
{
    printf("Schon wieder aufgehangen!?");
}

2

08.05.2010, 18:24

Also du kannst nicht einfach drauf loscoden und hoffen, dass du es schon irgendwie hinbekommst. Planung ist das A und O. Gerade bei größeren Projekten wie Frameworks. Ich würde dir vielleicht erstmal empfehlen ein Input oder Sound Modul zu coden um etwas Erfahrung zu sammeln. Aber auch dort sollte man sich vorher gut überlegen, wie man das ganze aufbaut und welche Funktionen welche Klassen haben sollen. Es reicht auch nicht wenn man das im Kopf hat. Wenn man sich das aufschreibt, merkt man erst später, was einem alles entfallen wäre, wenn man es nicht aufgeschrieben hätte.
Du kannst auch nicht einfach mal eben eine Skriptsprache coden ohne irgendwelche Zusatzmodule. Wenn du es trotzdem probieren möchtest, dann würde mir jetzt nur "3D Grafikprogrammierung Kompendium" von Stefan Zerbst einfallen. Da wird eine kleine Skriptsprache als Zusatz zu einer Engine entwickelt (Welche auch im Buch komplett gecoded wird).
Ansonsten:
http://www.gamedev.net/reference/programming/features/esse/
http://www.gamedev.net/reference/articles/article1633.asp
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

3

09.05.2010, 00:01

Ich habe das Buch hier, aber soweit ich weiß wird dort nur gezeigt wie man die ZBL/0 Scriptsprache benutzt, aber nicht wie man eine entwickelt. Kann mich aber auch irren! Welche Seite bzw Kapittel steht dies denn?

C-/C++-Quelltext

1
2
3
4
while(true)
{
    printf("Schon wieder aufgehangen!?");
}

4

09.05.2010, 08:17

Hast Recht, da wird die Skriptsprache nur vorgestellt. Die nächste Möglichkeit wäre mal auf der Buch CD zu schauen, ob du dir den Source der Skriptsprache angucken kannst. Ich hab meine leider grad nicht zur Hand, ich kann aber sonst nachher nochmal nachschauen.
Ansonsten denke ich mal, dass dieses mehrteilige Tutorial auf GameDev.net ganz gut sein dürfte, denn die haben da meist ziemlich passende Einsteiger Tutorials.
Ich hatte irgendwo im Inhaltsverzeichnis von einer Skriptsprache gelesen, wenn ich mit recht erinnere, aber da müsste ich erst nochmal suchen.
Ansonsten habe ich noch das gefunden: http://www.flipcode.com/archives/Impleme…_Overview.shtml
und eine weitere Möglichkeit wäre auf devmaster.net nach 3D Engine's mit eigener Skript Sprache zu suchen und den Source zu lesen.
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

5

09.05.2010, 12:11

Im Buch von David Scherfgen steht auch was darüber, wie man eine Skriptsprache erstellt.
Dort geht das Grob gesagt so vor, dass das Skript Zeile für Zeile Durchgegangen wird, und halt die Entsprechende Funktion dann aufgerufen wird. Das funktioniert dann so, dass du ein Array von Funktionspointern + Namen hast. Du guckst ob du den Namen im Array findest, und Rufst dann die Funktion mit Parametern auf.

Bei Variablen, Operatoren, ... Wird es dann aber schon Schwer.

Warum nimmst du nicht einfach Lua ? Es ist eine Gute, Sehr umfangreiche und Verbreitete Skriptsprache.

Ansonsten würe ich sagen, es gibt ja auch fertige Tools, die dir deine Skritpsprache von selbst schreiben.

6

09.05.2010, 17:33

Mit den Funktionszeigern hatte ich mir das auch schon so gedacht, das ist auch weiter kein Problem. Kritisch wird das eher mit den ganzen Operatoren, Klammern, etc ... Halt der Parser. Mal schauen was bei flipcode steht :)

LUA könnte ich benutzen, will ja aber auch was lernen ;)

C-/C++-Quelltext

1
2
3
4
while(true)
{
    printf("Schon wieder aufgehangen!?");
}

Tobiking

1x Rätselkönig

  • Private Nachricht senden

7

09.05.2010, 17:54

Da hilft dir vielleicht schon etwas Theorie. Compilerbau/Übersetzerbau ist meist fester Bestandteil eines Informatik Studiums, und dementsprechend gibt es einiges an Vorlesungsmaterial von verschiedenen Unis. Mit der richtigen Grammatik bekommst du z.B. die Prioritäten der Operatoren schon fast von alleine.

Beiträge: 721

Wohnort: /dev/null

Beruf: Software-Entwickler/Nerd

  • Private Nachricht senden

8

09.05.2010, 18:13

Wenn du dich mit Compiler-Bau im generellen auseinandersetzen willst , empfehle ich dir das Drachenbuch. http://de.wikipedia.org/wiki/Drachenbuch :D Damit hat man dann sowieso erstmal längere Zeit zu tun , aber das Buch ist sehr zu empfehlen und wie bereits angesprochen , ein Standard-Werk für Studenten.

MfG

Mordrak

1x Contest-Sieger

Beiträge: 121

Wohnort: München

Beruf: Junior IT Consultant

  • Private Nachricht senden

9

09.05.2010, 20:47

Aloha,

Bei mir hat vor einigen Jahren sehr gut Lex und Yacc funktioniert, um meine eigene Scriptsprache in einen Pseudo-Assembler umzuwandeln. Dieser ließ sich dann sehr leicht abarbeiten, weil alles Knifflige (Ausdrücke, Verschachtelungen, usw.) eben vom Compilerlauf bereits aufgelöst war.

Grüße,
Mordrak
What's yellow and equivalent to the axiom of choice? The Lemmon of Zorn!

10

10.05.2010, 01:52

Was genau Lex und Yacc ist habe ich noch nicht ganz verstanden.

C-/C++-Quelltext

1
2
3
4
while(true)
{
    printf("Schon wieder aufgehangen!?");
}

Werbeanzeige