Geschrieben um 17:19 am 30.01.2010 | Zitat | Editieren | Löschen | |
Mitglied Baby Gumby Beiträge: 1 | Hallo alle miteinander, auf der Suche nach neuen Ideen hat es mich zu Euch verschlagen. Textadventures sind mir schon von früheren Tagen wohl bekannt. Ganze Nächte habe ich mit diesen verbracht. :-) Erstaunlich, jedoch auch bestens nachvollziehbar, dass sich hierum eine Gemeinschaft aufgebaut hat. Inzwischen betreibe ich eine virtuelle Welt, die mit Client/Server Architektur serverseitig auf C# läuft. Bei uns tummeln sich bis zu 100 Player in der Prime Time. Für die Player ist das spielen kostenlos, auch Werbung gibt es keine, es ist eben mein Hobby. Warum schreibe ich Euch das alles? Mir ist jüngst der Gedanke gekommen, die reichhaltig vorhandenen Textadventures in unsere virtuelle Welt zu integrieren. Die verschiedenen Z-Code Interpreter, zwei sind es wohl ;-) in C#, habe ich mir angeschaut und mich für ZLR entschieden. Ein erster Test der Verheiratung ist sehr erfolgreich verlaufen. Eine Integration in unsere virtuelle Welt scheint machbar zu sein. Ich habe dennoch ein paar Fragen an Euch und hoffe, dass mir der eine oder andere von Euch mit einem Tip weiter helfen kann.
Ich möchte noch sagen, dass ich es äußerst schade finden würde, wenn die Textadventures verschwinden würden. Bevor ihr Server abschalten solltet und Content verschwindet, könnt ihr gerne bei mir anfragen. Auf einem meiner vier Server findet sich sicher noch ein trockenes Plätzchen. Ich Danke Euch! Grüße, Ton'aleu |
Geschrieben um 09:29 am 04.02.2010 | Zitat | Editieren | Löschen | |
Mitglied Prof Gumby Beiträge: 634 | Ton'aleu:
Das technische Problem der Integration scheinst Du ja gelöst zu haben. Dass das einfache Einbauen vorhandener Textadventures in Eure virtuelle Welt eine gute Idee ist, bezweifle ich aber. Die "reichhaltig vorhandenen" Textadventures sind zwar meist Freeware, aber Du solltest vor der Anreicherung Eurer Welt die Einwilligung der Autoren einholen. Außerdem spielen nur wenige der Adventures in einer Welt, die mit Ultima vergleichbar wäre. Da sehe ich wenige Möglichkeiten, einen content boost herauszuschlagen. Ton'aleu:
Außer einigen Testbeispielen gibt es kaum Übersetzungen von Spielen. Oh, ja, A Bear's Night Out. Ob das aber in Bordermarch oder in Serpent's Hold spielt, weiß ich nicht mehr so genau. Ein Spiel in einer Z-Code-Datei auf Deutsch und Englisch anzubieten, ist wenig praktikabel, da man je entweder den deutschen oder den englischen Parser einbindet. Außerdem müssen ja alle Texte doppelt abgelegt werden, und die machen den Löwenanteil der in ihrer Größe auf 512k beschränkten Z-Datei aus. (Es gibt zwar immer mal Leute, die so etwas probieren wollen, aber die verzetteln sich meist in tausend Details, so dass nichts herauskommt.) Ton'aleu:
Z-Code erzeugt man mit Inform. Entweder klassisch mit Inform 6 (oder kurz I6), einer Programmiersprache, die C nicht ganz unähnlich ist, oder mit Inform 7 (I7), das ein natürlichsprachiges, aber nicht immer intuitives Frontend zu I6 ist. Beide Systeme werden hier im Forum diskutiert. Eigene Quests zu schreiben scheint mir sowieso der bessere Weg zu sein. Nicht nur, weil dann die Quests besser in Eure Welt passen, sondern auch, weil Du deren Ausgang besser kontrollieren kannst. Ton'aleu:
Die Z-Code-Spieldatei gibt keinen Wert an das System zurück. Es kann sein, dass der Interpreter einen Fehlercode zurückgibt, aber der hat wohl eher etwas damit zu tun, ob es einen Fehler beim Abspielen der Datei gab und weniger mit dem Spiel selbst. Ob das Spiel mit Erfolg abgeschlossen wird, steht in der globalen Variable deadflag. Du müsstest also in deinem C#-Terp nur beim Opcode @quit diese Variable auslesen. Sie hat den Wert 0, wenn das Spiel noch läuft (wenn also der Spieler das Spiel explizit mit "quit" oder "Ende" abbricht), 1, wenn der Spieler stirbt, und 2, wenn er gewinnt. Andere Werte sind möglich und bezeichnen vom Autoren definierte Spielenden. Das Problem ist, dass deadflag in einem der 240 Register für globale Variablen steht. Nur in welchem? Das kann von Spiel zu Spiel unterschiedlich sein, je nachdem, ob vor dem Einbinden der Lib schon Variablen definiert werden und welche Version der Lib verwendet wird. Vermutlich wird es immer, sagen wir mal, die globale Variable 34 sein, aber wenn es dann bei einem Spiel nicht so ist, fällst Du auf die Nase. Wenn Du Deine eigenen Spiele schreibst, kannst Du aber die Library so ändern, dass vor Beginn und nach dem Ende Zustandsdateien eingelesen und herausgeschrieben werden, die dann die Informationen zum jeweiligen Quest enthalten. Du könntest also neben der Information, ob die Queste erfolgreich war, auch andere Dinge herausschreiben: Anzahl der gefundenen Golstücke, neuen Skill erlernt, Riesenfortschtitte in Spirituality, aber leider Punktabzug in Compassion, und so weiter. Ton'aleu:
Steht denn eine Serverabschaltung an? Das wäre mir neu. |