IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Programmiersprachen: welche Sprache?
AntwortenNeues ThemaNeue Umfrage

Programmiersprachen: welche Sprache?

Geschrieben um 23:08 am 11.02.2003 | Zitat | Editieren | Löschen
bdoppler
Mitglied
Student Gumby
Beiträge: 24

Welche Programmiersprachen eignen sich gut um IFs zu proggen...

Mit TAG isses mir ein bisschen zu kompliziert, und ich weis wie leicht es in machnchen Sprachen geht...

Koenntet ihr mir eine Sprache sagen, den Link zu einem Compiler und wnen moeglich auch ein Link zu Tutorien geben?

Danke im Voraus!

Geschrieben um 23:38 am 11.02.2003 | Zitat | Editieren | Löschen
Gerrit
Mitglied
Student Gumby
Beiträge: 31

bdoppler:

Mit TAG isses mir ein bisschen zu kompliziert,

Als bis jetzt dachte ich immer TAG wäre die einfachste Sprache, die es hier gibt. Sie leicht zu verstehen, dafür aber glaube ich nicht so komplex wie Inform.

bdoppler:

ich weis wie leicht es in machnchen Sprachen geht... ,

Komplett auf Parser zu verzichten. Würde ich als noch komplizierten ansehen, da man ja erst die ganze Umgebung programmieren muss. Ich weiß natürlich nicht welche Programmiersprachen du sonst behrerrscht, aber des größte Problem bei TAG war für mich anstatt "if" "wenn" schreiben zu müssen.

Geschrieben um 03:06 am 12.02.2003 | Zitat | Editieren | Löschen
Ally
Mitglied
Master Gumby
Beiträge: 126

bdoppler:

Welche Programmiersprachen eignen sich gut um IFs zu proggen...

Mit TAG isses mir ein bisschen zu kompliziert, und ich weis wie leicht es in machnchen Sprachen geht...

Koenntet ihr mir eine Sprache sagen, den Link zu einem Compiler und wnen moeglich auch ein Link zu Tutorien geben?

Uhmmm... das ist natürlich kaum eindeutig zu beantworten. Was genau hast du denn vor, wieviel Programmiererfahrung hast du, möchtest du deutsch-, englisch- oder sonstwiesprachige IF schreiben, "brauchst" du Multimedia-Elemente, soll's mit Parser sein oder irgendwas "Reduziertes" wie z.B. Multiple Choice?

Eine gute Übersicht über IF-Autorensysteme ("Cloak of Darkness") und weitere Informationen zum Thema findest du hier: http://www.firthworks.com/roger/ -- allerdings fehlen u.a. deutschsprachige Autorensysteme und das neue TADS 3.

Findest du TAG kompliziert, weil es eine vergleichsweise einfache und unflexible Sprache ist, weil es deiner gewohnten Herangehensweise nicht entgegenkommt, weil du wenig Programmiererfahrung hast, weil du die Dokumentation nicht lesen magst... oder warum?

In welchen "manchen Sprachen" geht was genau leicht? Meinst du damit, daß XY in Python, Java oder C++ (oder TADS oder Inform oder Hugo oder anderen "mächtigeren" IF-Autorensystemen) leichter von der Hand geht als in TAG?

Sicher ist sind die grade genannten Sprachen und Autorensysteme flexibler und Feature-reicher, und ich würde kompliziertere Dinge auch nicht gerade in TAG angehen wollen -- aber: TAGs deutscher Parser ist wirklich nicht von schlechten Eltern, und mit dem Tutorium stellen sich auch schnell erste Erfolgserlebnisse ein. Bei Problemen kannst du sicher Hilfe hier im Forum finden. Und daß man in TAG ordentliche (wenn auch leider, leider vollkommen un-multimediale) IF schreiben kann, hat sich auch schon mehrfach gezeigt (Der Angstbaum, Im Bannkreis, ...).

IF zu programmieren, die so einigermaßen die Erwartungen an Infocom oder Magnetic Scrolls oder neuere Inform- und TADS-Spiele gewöhnter Spieler erfüllt, erfordert nun mal ein wenig Einarbeitungszeit.

Wenn du IF schreiben willst, die nicht nur von zwei Freunden freiwillig gespielt wird, und du (wie die allermeisten Autoren) dazu nicht erst deinen eigenen Parser und dein eigenes Weltmodell entwickeln willst (oder kannst), empfehlen sich Allzwecksprachen schon mal nicht. Und was deutschsprachige IF betrifft, sind TAG und Inform meines Wissens die einzigen wirklich einsatzbereiten Autorensysteme, die in Frage kommen -- zumal du da auch davon ausgehen kannst, daß dir bei Problemen geholfen wird. (Einer der "Konkurrenten", Floyd, machte einen angenehm sauberen und syntaktisch wohlvertrauten Eindruck, ist aber wohl nicht ganz fertig und dann auch irgendwie verschwunden oder sowas.)

(An sich favorisiere ich offensichtlich TADS 3, obwohl ich die noch undokumentierte dazugehörige IF-Library (adv3) kaum kapiere und mich in absehbarer Zeit auch kaum trauen werde, sie ins Deutsche übertragen (dabei soll T3 ja leicht übersetzbar sein.) Wie's aussieht, macht T3 es allerdings relativ leicht, selber einen Parser zu entwickeln -- nicht, daß "leicht" wirklich der angemessene Ausdruck wäre, aber vieles von der Drecksarbeit des Strings-Zerlegens, Wörter-Objekten-Zuordnens usw. wird einem auch ohne Verwendung von adv3 abgenommen. Für Anfänger oder mit IF noch sehr Unerfahrene ist T3 aber auch unter Verwendung der adv3-Lib noch nicht zu empfehlen (ich gehe jetzt mal davon aus, daß du kein Code-Guru bist) -- nicht, solange es keine einsteigerfreundliche Dokumentation dazu gibt.)

Wenn du "nur" Multiple Choice schreiben willst, kannst du natürlich mit allem arbeiten, von HTML über dedizierte MC-Autorensysteme wie Adventurebook oder C-TAC und IF-Sprachen wie Inform oder TADS bis hin zu "webbigen" Sprachen wie PHP und Allzwecksprachen von Basic über Delphi/Kylix, Java und C++ und zurück, wobei ich im Sinne der Plattformunabhängigkeit vielleicht zu IF- oder einer HTML-/"Websprachen"-Kombination raten würde.

Für GUI-orientierte (evtl. auch illustrierte) Textadventures a la "LucasArts ohne Animation" (oder "Eric the Unready/Tass Times/Spellcasting x0x ohne Parser") würde ich aufgrund der Einfachheit, mit Fenstern, Schriften, HTML-Tabellen, Grafiken, Buttons etc. zu arbeiten spontan TADS 3 empfehlen, aber so direkt loslegen wie im Falle traditioneller, parser-gesteuerter IF könntest du da auch nicht. Schließlich ist T3s adv3-Library für Parser-IF gedacht. Ähnliches gilt für Inform und Hugo, die ebenfalls Multimedia-Features haben, ohne daß ihre Libraries für grafische Spielen ausgelegt wären. Solche Spiele sind vielleicht in Delphi oder VisualIrgendwas oder Sprache-deiner-Wahl oder C++-mit-irgendeiner-GUI-Lib genauso einfach/schwer zu bewerkstelligen. Kenn mich da nicht aus. Vielleicht gibt es aber auch Sprachen, die bereits auf solche Spiele gemünzt sind.

Für reine Grafikadventures im Stil von Maniac Mansion oder The Longest Journey oder King's Quest bieten sich u.a. SLUDGE oder AGS an (Google hilft. Ich weiß sonst eigentlich nichts über die, außer daß AGS ein umständliches DOS-Tool ist und noch nicht ganz in der Neuzeit angekommen, was bei grafischen Spielen doch etwas stört. SLUDGE sieht aber lecker aus. Yum.) http://trumgottist.com/crowsnest/ verrät bei Interesse mehr zu Engines, die für Spiele in LucasArts-/Sierra-Manier gedacht sind. Das ist hier aber off-topic, also wohl nicht, wonach du suchst.

Uff. Das war's.

Geschrieben um 11:47 am 12.02.2003 | Zitat | Editieren | Löschen
Walafrid
Mitglied
Dr Gumby
Beiträge: 238

http://www.textadventures.de/

Geschrieben um 15:19 am 12.02.2003 | Zitat | Editieren | Löschen
Gerrit
Mitglied
Student Gumby
Beiträge: 31

Walafrid:

Gerrit:

Ich weiß natürlich nicht welche Programmiersprachen du sonst beherrscht, aber des größte Problem bei TAG war für mich anstatt "if" "wenn" schreiben zu müssen.

Echt? Ich finde TAG intuitiv. Manchmal schreibe ich einfach drauflos, ohne mich genau zu erinnern, was im Handbuch steht, und der Code funktioniert trotzdem beim ersten Versuch. Selbst bei etwas schwierigeren Sachen.

So war das auch nicht gemeint. Ich denke aber immernoch wenn ich mir überlege wie ich es schreiben will. " IF ... THEN ... ". Mittlerweile geht es einigermaßen. Jetzt habe ich das Problem andersherum. Ich schreibe in Delphi "Wenn" anstatt "If".

Grundsätzlich halte ich TAG aber für eine Sprache in der man gut und einfach Programmieren kann. Gerade als Anfängen (der der englischen Sprache nicht sehr mächtig ist) kann man sich gut vorstellen, was das Programm jetzt eingendlich macht.

Sprich "WENN, DANN SONST".

Geschrieben um 15:38 am 12.02.2003 | Zitat | Editieren | Löschen
bdoppler
Mitglied
Student Gumby
Beiträge: 24

In QBasic habe ich einige, die fuer Textadventures total reichen!

C++ hab ich auch mal angefangen, hatte aber in letzter Zeit keine Zeit mehr... oder nicht mehr so viel!

Ich habe das Tutorium gelesen (uuuuuuuuhhhhh :wink: ) und weis aber noch nicht so richtig wie man Zeitschleifen macht... also, zB. in 15 Runden geht irgendson Tor auf, wo dann ein Gegner kommt.. bis dahin muss man weg sein oder so)...

Naja, Multiple-Choice Lehne ich ohne viel zu ueberlegen ab...

Di Raetsel in diesen Spielen sind sehr einfach (da man ja nur 1 Taste druecken muss und man sieht ja was man da macht.. zB: (1) schaue unter tisch, (2) gehe wieder - sehr einfach "unter tisch schauen :D ") ausserdem gibt es meistens 4 Antworten, wo 2 zum Tode fuehren, 1 in ne Sackgasse und 1 Richtig ist - Spielspass is schnell weg!

Naja, ich weis dass es in QBasic, C und C++ relativ leicht ist ein IF zu entwickeln...

Ich verusche es einfach weiterhin mit TAG, bis mir jemand eine gute Sprache sagen kann :wink:

Geschrieben um 16:19 am 12.02.2003 | Zitat | Editieren | Löschen
Ally
Mitglied
Master Gumby
Beiträge: 126

bdoppler:

In QBasic habe ich einige, die fuer Textadventures total reichen!

(Einige was? Und wenn sie total reichen, wieso nimmst du sie dann nicht? Ich glaub, ich verstehe nicht wirklich, was du willst...)

Zitat:

Ich habe das Tutorium gelesen (uuuuuuuuhhhhh :wink: ) und weis aber noch nicht so richtig wie man Zeitschleifen macht... also, zB. in 15 Runden geht irgendson Tor auf, wo dann ein Gegner kommt.. bis dahin muss man weg sein oder so)...

(Das ist jetzt keine Schleife, aber egal:) du kannst mit "Aktion *" Aktionen definieren, die am Ende jeder Runde automatisch ausgeführt werden. Eine solche könntest du benutzen, um in jeder Runde eine Variable (Flagge), die zu Beginn des Countdowns auf 15 gesetzt wird, um 1 zu dekrementieren (verringern, Befehl "Dekr"). Wenn die Flagge dadurch auf 0 rutscht, kommt der Gegner. Das steht aber so ähnlich auch im Manual ("zeitabhängige Ereignisse").

Zitat:

Naja, Multiple-Choice Lehne ich ohne viel zu ueberlegen ab...

Di Raetsel in diesen Spielen sind sehr einfach (da man ja nur 1 Taste druecken muss und man sieht ja was man da macht.. zB: (1) schaue unter tisch, (2) gehe wieder - sehr einfach "unter tisch schauen :D ") ausserdem gibt es meistens 4 Antworten, wo 2 zum Tode fuehren, 1 in ne Sackgasse und 1 Richtig ist - Spielspass is schnell weg!

Ich fände es auch langweilig, MC zu programmieren, aber "A Dark and Stormy Entry" (Emily Short) oder auch "Halb Zwei" (Wala) funktionieren ganz, ganz anders als dein Beispiel. Mit Rätselknacken oder "Gewinnen" hat das dann nüscht zu tun, eher mit dem Erforschen von Möglichkeiten vage rumfabulier

Zitat:

Naja, ich weis dass es in QBasic, C und C++ relativ leicht ist ein IF zu entwickeln...

In so ziemlich jeder IF-Sprache ist es sehr viel leichter. Aber vielleicht haben wir auch ganz unterschiedliche Vorstellungen vom technischen Innenleben eines Textadventures/IF-Dingsbumses.

Zitat:

Ich verusche es einfach weiterhin mit TAG, bis mir jemand eine gute Sprache sagen kann :wink:

Das haben wir ja schon getan... insofern viel Glück mit TAG. (Wenn du wirklich meinst, IF in C wäre relativ leicht zu entwickeln, könnte dir allerdings auch Inform zusagen.)

Geschrieben um 16:20 am 12.02.2003 | Zitat | Editieren | Löschen
Tanan
Mitglied
Prof Gumby
Beiträge: 404

Zitat:

Naja, ich weis dass es in QBasic, C und C++ relativ leicht ist ein IF zu entwickeln...

Aber nur ohne Parser. Parser programmieren ist ziemlich kompliziert.

Zitat:

Ich verusche es einfach weiterhin mit TAG, bis mir jemand eine gute Sprache sagen kann

Da kannst Du warscheinlich lange warten - außer TAG und Inform gibt es halt nichts Vernünftiges für deutsche IF.

Zitat:

und weis aber noch nicht so richtig wie man Zeitschleifen macht... also, zB. in 15 Runden geht irgendson Tor auf, wo dann ein Gegner kommt

Mit einer "Aktion *". Die wird automatisch nach jedem Zug ausgeführt:


Aktion *

Ausf

Wenn (tor hier)

inkr sesam

Wenn (sesam = 15) dann

Text 'Das Tor öffnet sich und der Schnorb springt daraus hervor.

Sofort schnorbt er dich heftig. Vor Schreck bekommst du einen

Herzanfall.[#]'

gestorben

Ende

EndeAusf
Geschrieben um 16:23 am 12.02.2003 | Zitat | Editieren | Löschen
Christoph
Mitglied
Student Gumby
Beiträge: 37

Ally:

Ich weiß sonst eigentlich nichts über die, außer daß AGS ein umständliches DOS-Tool ist und noch nicht ganz in der Neuzeit angekommen, was bei grafischen Spielen doch etwas stört.

Trotz OT kann ich als member der AGS-community (Ja, ich bekenne :wink:) natürlich nicht so stehen lassen. Adventure Game Studio hat inzwischen eine reine Windows-Oberfläche bekommen, die wirklich viel einfacher und intuitiver ist, als die DOS-Geschichte. Wer wirklich mit dem Gedanken spielt, ein Grafik-Adventure zu machen, der sollte sich AGS unbedingt mal ansehen. (www.agsforums.com)

Was die IF-Sprache angeht, so kann ich gerade Einsteigern ("Anfänger" sagt man ja nicht mehr) nur TAG empfehlen. Wenn man sich ein bisschen reinfuchst, stellen sich die Erfolgserlebnisse sehr schnell ein, und der wirklich erstklassige Parser bewahrt einen eine ganze Weile davor, sich über vermurkste Grammatik zu ärgern. Wer das allerdings mag, wird Inform lieben. :D

Geschrieben um 16:49 am 12.02.2003 | Zitat | Editieren | Löschen
Walafrid
Mitglied
Dr Gumby
Beiträge: 238

http://www.textadventures.de/

Geschrieben um 16:52 am 12.02.2003 | Zitat | Editieren | Löschen
Ally
Mitglied
Master Gumby
Beiträge: 126

Christoph:

Adventure Game Studio hat inzwischen eine reine Windows-Oberfläche bekommen, die wirklich viel einfacher und intuitiver ist, als die DOS-Geschichte.

Die fand ich wirklich wirr. Hätte mir wohl denken sollen, daß die mal ersetzt wird...

Geschrieben um 20:57 am 12.02.2003 | Zitat | Editieren | Löschen
ChrisW
Mitglied
Dr Gumby
Beiträge: 275

Ally:

bdoppler:

Naja, ich weis dass es in QBasic, C und C++ relativ leicht ist ein IF zu entwickeln...

In so ziemlich jeder IF-Sprache ist es sehr viel leichter.

Die Herangehensweise unterscheidet sich natürlich etwas. Bei IF-Sprachen wie TAG und Inform ist vieles schon vorhanden, wie bspw. der Parser.

D.h. man muss schon lernen, wie man damit umgeht, das ist aber immer noch deutlich weniger Aufwand als Parser und User-Interface usw. alles selbst zu schreiben.

Wie jemand TAG schwerer als C++ finden kann, ist mir zwar ein Rätsel, aber wenn's an der Syntax liegt, läge dir vielleicht wirklich eher Inform. Ich persönlich find's zwar schwerer als TAG, aber es ist immer noch viieel leichter als alles selbst in C++ zu schreiben.

Woher weißt du eigentlich, dass es in QBasic oder C, C++ so einfach wäre? Hast du schon irgendwas fertiggestellt? Ich meine, so richtig fertig??

bdoppler:

Ich verusche es einfach weiterhin mit TAG, bis mir jemand eine gute Sprache sagen kann.

Soll das heissen, TAG wäre keine gute Sprache? Da hab ich mich hoffentlich verlesen. :wink:

Geschrieben um 21:42 am 12.02.2003 | Zitat | Editieren | Löschen
bdoppler
Mitglied
Student Gumby
Beiträge: 24

Naja, ich habe fertige Produkte gehabt, die ich jetzt leider nicht mehr habe ^.^'' wie schon gesagt, hab die diesketten bis zu gaenze gebraucht!

Ich will nicht sagen dass TAG schlecht ist, nur die Syntax und die Befehle von TAG wirken auf mich ein bisschen verwirrent ^.^'''

Geschrieben um 00:17 am 13.02.2003 | Zitat | Editieren | Löschen
Mo
Mitglied
Dr Gumby
Beiträge: 290

bdoppler:

Naja, ich weis dass es in QBasic, C und C++ relativ leicht ist ein IF zu entwickeln...

Da schließe ich mich den anderen hier an: ich weiß, dass es extrem schwierig ist, in o.g. Sprachen IF zu entwickeln, da sie zunächst überhaupt keine IF-spezifische Unterstützung bieten. Allein für Merkmale wie Raum- und Objektverwaltung muss das Rad neu erfunden werden, vom Parser ganz zu schweigen.

Wenn es wirklich so leicht wäre, gäbe es sicher viel mehr sehr gute Spiele, die in Basic oder C/C++ programmiert wurden.

Andererseits kannst Du uns gerne das Gegenteil beweisen :)

bdoppler:

Ich verusche es einfach weiterhin mit TAG, bis mir jemand eine gute Sprache sagen kann :wink:

Ich hoffe, dass Du uns Deine Entdeckung dann nicht vorenthältst und uns über die Programmiersprache Deiner Wahl informierst.

Tanan:

Mit einer "Aktion *". Die wird automatisch nach jedem Zug ausgeführt:



... gesnippt ...

Ende

EndeAusf```

Genau so einen Code bezeichne ich als "leicht zu entwickeln". In C++ ist das wirklich noch einfacher zu erledigen?

**bdoppler:**
> Naja, ich habe fertige Produkte gehabt, die ich jetzt leider nicht mehr habe

Meinst Du mit "Produkten" fertige Spiele oder geeignete Programmiersprachen? Vielleicht fällt Dir ja noch der ein oder andere Produktname ein?

**bdoppler:**
> Ich will nicht sagen dass TAG schlecht ist, nur die Syntax und die Befehle von TAG wirken auf mich ein bisschen verwirrent ^.^'''

Deine "Recht"schreibung hat die gleiche Wirkung auf mich...
Geschrieben um 14:34 am 13.02.2003 | Zitat | Editieren | Löschen
Ally
Mitglied
Master Gumby
Beiträge: 126

Walafrid:

(...)Ich finde TAG intuitiv. Manchmal schreibe ich einfach drauflos, ohne mich genau zu erinnern, was im Handbuch steht, und der Code funktioniert trotzdem beim ersten Versuch. Selbst bei etwas schwierigeren Sachen.

Vielleicht hat der Schwierigkeitsgrad von TAG wenig mit TAG selbst zu tun, sondern steigt mit zunehmender 'Schädigung' durch zuvor Verwendetes? Wenn ich bei dem, was ich mir vornehme, von Anfang an in Strukturen wie "for (local obj = firstObj(vTemplate) ; obj != nil ; obj = nextObj(obj, vTemplate)) game.vList += obj;" denke, ist das bei TAG natürlich wenig hilfreich. Aber Richtige Programmierer sind davon vielleicht unabhängig.

Geschrieben um 14:45 am 13.02.2003 | Zitat | Editieren | Löschen
bdoppler
Mitglied
Student Gumby
Beiträge: 24

Naja, ich meine mit Produkte natuerlich Spiele :wink:

Ich werde halt viel mehr Zeit fuer TAG verbringen muessen, als nur 2 Wochen!

Achja, meine "Recht"schreibung schreibt sich falsch ^.^'' das kommt aber nur daher, dass ich eigentlich nur "drauf-los" tippe, also keinen 10-Fingersatz verwende, so wie dieser ueblich ist. Da schleichen sich manchmal Fehler ein, obwohl ich - finde ich - fuer meine sehr schnelle (ca. 2500 Anschlaege hab ich mal unter 10 minuten getipp ^.^ mit nur 2 FEHLER!) Tippweise, fast keine Fehler habe ^.^

Geschrieben um 12:53 am 15.02.2003 | Zitat | Editieren | Löschen
Maik
Mitglied
Dr Gumby
Beiträge: 199

TAG erfordert eine gewissen Einarbeitungszeit, aber das bringt auch Ergebnisse, sag ich dir. Schau dir Dinge von anderen Quellcodes ab, such die Stichworte in den Anleitungen, halte deinen Quellcode übersichtlich und es muss gehen.

Geschrieben um 16:57 am 15.02.2003 | Zitat | Editieren | Löschen
bdoppler
Mitglied
Student Gumby
Beiträge: 24

Ok, danke ^.^

Ich werd mich halt mal naeher damit beschaeftigen, aber mal guckn.... eventuell werd ich auch nur kleinere IFs schreiben, die eigentlich komplett unsinnig sind :wink:

Danke nochma

Geschrieben um 17:04 am 16.02.2003 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Ein C++-Progg-Papst:

aber mal guckn.... eventuell werd ich auch nur kleinere IFs schreiben, die eigentlich komplett unsinnig sind

Komisch. Davon war ich auch ohne Ankündigung ausgegangen.

Wenn das Adventure schon klein und unsinnig ist, ist hoffentlich die Entwicklung des Parsers eine Herausforderung für Dich. Dann solltest Du doch vielleicht C++ benutzen.

Andererseits besitzt C++ eine strenge Syntax und beachtet Groß-, Klein- und Rechtschreibung. Du solltest auf jeden Fall deine normale Tippgeschwindigkeit reduzieren.

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz