IF-Forum

» IF-Forum - Autorencafé - Schreiben! - Textadventures in Ruby
AntwortenNeues ThemaNeue Umfrage

Textadventures in Ruby

Geschrieben um 13:29 am 23.04.2005 | Zitat | Editieren | Löschen
jix
Mitglied
Baby Gumby
Beiträge: 5

Ich habe mir überlegt eine Textadventure Bibliothek für die Programmiersprache Ruby zu schreiben.

Für die die noch nichts von Ruby gehört haben:

Ruby ist eine objektorientierte, dynamische Programmiersprache die frei Verfügbar ist. Mehr über Ruby findet man unter http://www.ruby-lang.org/ und auf Wikipedia: http://de.wikipedia.org/wiki/Ruby . Für Windows User gibt es hier ( http://rubyforge.org/frs/?group_id=167 ) einen einfachen Installer für Ruby. Linux User dürften Ruby in ihrem Paketsystem haben (unbedingt darauf achten das es 1.8 ist und nicht die alte 1.6 Version), können aber auch problemlos von Source installieren. Ich selber arbeite unter Mac OS X mit Version 1.8.2.

Als erstes will ich eine Parser Bibliothek schreiben die Sätze in einen Baum von Objekten zerlegt. Das nächste wird eine Satz-Bau Bibliothek die dabei helfen soll das Sachen wie "Öffne die Tür; Sie ist verschlossen; Öffne das Tor; Sie ist verschlossen" nicht vorkommen. Ein Feature was ich mir auch überlegt habe ist ein Kontext-System das sich merkt worüber gerade geredet wird. Dadurch sollen Sachen wie "Öffne die Tür; Sie ist verschlossen; Tritt sie ein; Die Tür geht kaputt" gehen.

Ich weiß nicht ob ich das alles schaffe, und wie viel Zeit ich aufbringen kann, aber ich versuche eine Bibliothek zu schreiben die einem hilft Textadventures in Ruby zu schreiben.

Ich bin offen für alle Vorschläge und Ideen und beantworte auch gerne Fragen zu Ruby.

PS: Ich suche noch einen Namen für die Bibliothek. Wenn ich einen habe, findet man den Programmiercode und die Dokumentation unter http://darcs.jix.qz-b.de/name-der-bibliothek

Geschrieben um 21:35 am 26.04.2005 | Zitat | Editieren | Löschen
Thomas
Mitglied
Pupil Gumby
Beiträge: 11

Hallo Jix,

scheint, ich bin bisher der einzige, der Dein Projekt gut findet. Wollte selbst irgendwann mal eine Textadventure-Lib für Java schreiben, weil ich mir wünschte, einerseits komfortabel und schnell einfache Adventures zu erstellen (Parser und Grundstrukturen fertig), aber gleichzeitig die prinzipielle Unbegrenztheit und syntaktische Flexibilität einer "Allzweck-Programmiersprache" zu nutzen.

Nur schien mir Java zu schwerfällig und das mögliche Dekompilieren durch den User zu einfach. Vielleicht ist das letztere Argument auch nicht so wichtig - wie ist das bei Ruby? Wenn man Script-Artige, unveschlüsselte Quelltexte hat, wäre das ungünstig.

Als Windows-User müsste ich zunächst Ruby erst einmal installieren, die Aussicht darauf ist sicher eine gewisse Barriere.

Gibt es auch Ruby-Pakete, die kleiner als 10 MB sind? Und wie könnte dann Installation und Ausführung eines Spiels mit Deiner Lib aussehen?

Noch was: Denk daran, dass durch T. A. G. und Inform die Ansprüche an einen Parser "bei den Textexperten hier" sehr hoch sind. Ich hoffe, Deine Engine steht dem nicht nach.

Ansonsten wünsch' ich Dir frischen Mut für Dein Projekt

Thomas

Geschrieben um 21:53 am 26.04.2005 | Zitat | Editieren | Löschen
Thomas
Mitglied
Pupil Gumby
Beiträge: 11

Nachtrag:

Hatte mir die Ankündigung von Oliver für ein JAVA-Authoring-Tool noch gar nicht genauer angesehen. Jedenfalls wurde dort schon ordentlich diskutiert.

Prinzipiell find' ich aber wie gesagt beide Ansätze interessant. Ob's für mich oder andere was bringt, entscheiden vermutlich sehr stark die Details der Umsetzung.

Thomas

Geschrieben um 23:28 am 26.04.2005 | Zitat | Editieren | Löschen
jix
Mitglied
Baby Gumby
Beiträge: 5

Im Moment hat Ruby noch keinen Bytecode (Version 2 wird wahrscheinlich eine VM haben die auch Bytecode kann). Nur Sourcecode Dateien. Das finde ich allerdings nicht so schlimm, da diejenigen die Spass am Adventure haben wollen lieber selber rumprobieren als den Code zu lesen. Die die sich den Spass verderben sind ja selber schuld. Die größe von Ruby ist kein Problem. Ohne diverse zusatz Bibliotheken ist Ruby nicht so groß (Hier unter Mac OS X ist die Binary datei 1.5 MB groß, gezippt 600kb) und es gibt ein Programm um nur die nötigsten Bibliotheken und das Programm inklusive Ruby in eine EXE zu packen.

Die Idee für das Projekt ist mir gekommen als ich mich geärgert habe das es außer Inform für Mac OS X keine Textadventure Sprache/Biblothek gibt.

Inzwischen habe ich es zwar geschaft Floyd mit dem Free Pascal Compiler zu kompilieren aber es stürzt mir noch oft ab (das versuche ich noch zu beheben. Wenn ich viel Zeit überhabe schreibe ich auch ein Mac OS X Interface für Floyd)

Geschrieben um 10:34 am 27.04.2005 | Zitat | Editieren | Löschen
Gast
Gast

jix:

Die Idee für das Projekt ist mir gekommen als ich mich geärgert habe das es außer Inform für Mac OS X keine Textadventure Sprache/Biblothek gibt.

Neben der Portierung von Floyd wäre auch eine gute Idee, TAG und TAM zu portieren. TAM wurde schon mit Free Pascal auf Linux portiert. Den Quelltext gibt es beim Autor.

An deiner Stelle würde ich mich darauf konzentrieren, denn:

Thomas:

Noch was: Denk daran, dass durch T. A. G. und Inform die Ansprüche an einen Parser "bei den Textexperten hier" sehr hoch sind. Ich hoffe, Deine Engine steht dem nicht nach.

... ich wette, dass du das nicht schaffst. (Ich gebe zu, dass ich mich manchmal täusche und dass auch Rolf Lautenbach einen sehr guten Parser gebaut hat, soweit man das anhand der kurzen Spiele bisher beurteilen kann.)

Geschrieben um 10:41 am 27.04.2005 | Zitat | Editieren | Löschen
Thomas
Mitglied
Pupil Gumby
Beiträge: 11

Hallo jix,

wenn das Spiel mitsamt Interpreter und Ruby-Engine in eine EXE ginge, wäre nicht schlecht. Natürlich sollte auch der Interpreter unabhängig von der Spieldatei weitergegeben werden können, damit das Spiel z. B. nur bis 50 kB verbraucht. Dafür müsste man sicherlich auf gut trennbare Codedateien achten oder mit Batch arbeiten bzw. meinst Du, dass letzteres überhaupt geht?

Daneben wäre eventuell eine einfache Verschlüsselung der Spieltexte interessant. Die verschlüsselten Strings könnten ja direkt im Scriptcode verbleiben. Ansonsten ist schon die Versuchung sehr groß, im Script nach Texten und anderen Zusammenhängen zu stöbern oder auch am Spiel herum zu manipulieren.

... aber Du wirst das schon machen.

Mal ganz davon abgesehen: Wenn Du schon versucht hast, Floyd zu portieren fände ich auch den Versuch interessant, den T. A. G. für Mac zu compilieren (ist ja auch ein Turbo Pascal/Delphi Code). Dann gäbe es endlich eine Version für dieses verbreitete System. Bzw. fällt mir gerade ein, gibt es auf dem Mac nicht gut funktionierende DOS-Emulatoren?

Na, soweit -

Gruß

Thomas

Geschrieben um 10:45 am 27.04.2005 | Zitat | Editieren | Löschen
Thomas
Mitglied
Pupil Gumby
Beiträge: 11

Ooops,

den letzten Beitrag habe ich gerade geschrieben und abgesendet, ohne zu sehen, dass der vorstehende Gast seinen inzwischen gesendet hat, aber ich sehe wir hatten ähnliche Gedanken.

Thomas

Geschrieben um 14:47 am 27.04.2005 | Zitat | Editieren | Löschen
jix
Mitglied
Baby Gumby
Beiträge: 5

Ich hatte auch schon daran gedacht TAG und TAM zu portieren, habe aber im Internet den Sourcecode nicht gefunden. Ich werde mal den Author anfragen (oder gibt es den Code im Internet?). Die Programmiercode Dateien unleserlich zu machen ist auch nicht sehr problematisch da man in Ruby einen String der Programmiercode enthält ausführen kann. Ich denke auch das ich mich erstmal mit der Portierung von bestehenden Systemen beschäftigen werde, und dann meine eigene Bibliothek schreibe (ich kann sicherlich noch von den Anderen lernen)

Geschrieben um 16:22 am 27.04.2005 | Zitat | Editieren | Löschen
Thomas
Mitglied
Pupil Gumby
Beiträge: 11

Hallo jix,

bezüglich TAM / TAG müsstest Du Dich schon mit Martin Oehm unterhalten. Der Sourcecode liegt nicht einfach so herum.

Das ist natürlich auch vom Konzept etwas völlig anderes als eine Engine als Ruby-Bibliothek, wo letztendlich Ruby-Code geschrieben werden könnte.

Die Möglichkeit, Code aus Strings auszuführen, finde ich natürlich äußerst interessant (eins dieser typischen Pearl-Konzept, oder?).

bis neulich

Thomas

Geschrieben um 17:06 am 27.04.2005 | Zitat | Editieren | Löschen
jix
Mitglied
Baby Gumby
Beiträge: 5

Soweit ich weiß ist es bei interpretierten Sprachen üblich das es so ein Feature gibt. Man sollte aber aufpassen wann man es benutzt, da es eine potentielle Sicherheitslücke ist. Ich habe festgestellt das der Free Pascal Compiler für Mac OS X noch nicht sehr ausgereift ist und die kompilierten Programme sehr oft abstürzen :( Desshalb sieht es mit dem Portieren doch relativ schlecht aus.

PS: Es heißt perl nicht pearl ;)

Geschrieben um 19:57 am 20.05.2005 | Zitat | Editieren | Löschen
Oliver
Mitglied
Baby Gumby
Beiträge: 8

jix:

Ich habe mir überlegt eine Textadventure Bibliothek für die Programmiersprache Ruby zu schreiben.

Für die die noch nichts von Ruby gehört haben:

Ruby ist eine objektorientierte, dynamische Programmiersprache die frei Verfügbar ist. Mehr über Ruby findet man unter http://www.ruby-lang.org/ und auf Wikipedia: http://de.wikipedia.org/wiki/Ruby . Für Windows User gibt es hier ( http://rubyforge.org/frs/?group_id=167 ) einen einfachen Installer für Ruby. Linux User dürften Ruby in ihrem Paketsystem haben (unbedingt darauf achten das es 1.8 ist und nicht die alte 1.6 Version), können aber auch problemlos von Source installieren. Ich selber arbeite unter Mac OS X mit Version 1.8.2.

Als erstes will ich eine Parser Bibliothek schreiben die Sätze in einen Baum von Objekten zerlegt. Das nächste wird eine Satz-Bau Bibliothek die dabei helfen soll das Sachen wie "Öffne die Tür; Sie ist verschlossen; Öffne das Tor; Sie ist verschlossen" nicht vorkommen. Ein Feature was ich mir auch überlegt habe ist ein Kontext-System das sich merkt worüber gerade geredet wird. Dadurch sollen Sachen wie "Öffne die Tür; Sie ist verschlossen; Tritt sie ein; Die Tür geht kaputt" gehen.

Ich weiß nicht ob ich das alles schaffe, und wie viel Zeit ich aufbringen kann, aber ich versuche eine Bibliothek zu schreiben die einem hilft Textadventures in Ruby zu schreiben.

Ich bin offen für alle Vorschläge und Ideen und beantworte auch gerne Fragen zu Ruby.

Das ist wahrscheinlich ungefähr sowas ähnliniches wie ich auch vorhabe. Mit Ruby kenne ich mich nicht so großartig aus, aber soweit mein Kenntnisstand reicht, ist das auch nur "yet anoter OO programming language", d.h. eine Portierung des Quellcodes z.B. nach Java, Python oder Object-Pascal dürfte nicht sooo das Riesenproblem sein. Ich werde jetzt mal sehen, daß ich mit meinem eigenen Projekt mal so langsam in die Hufe komme (ich habe hier schon ziemlich viel angekündigt, jetzt sollen so langsam mal Taten folgen ;-).

Gruß,

Oliver

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