Wer hat Lust ein Text-Adventure zu programmieren? (C64 Basic 2.0)

Es gibt 86 Antworten in diesem Thema, welches 16.595 mal aufgerufen wurde. Der letzte Beitrag (10. März 2019 um 02:24) ist von JeeK.

  • Garbage-Collection-Problematik

    Wird das Hauptproblem sein, wenn man auf purem BASIC2.0 beharrt und Strings benutzen will (was natürlich naheliegt und nicht sehr schwer zu programmieren ist), auch Compilen hilft btw nicht dagegen, dass die GC vollläuft. Wenn es da nix von Ratiopharm oder einen Supertrick von BIF gibt, würde ich irgendwas in Assembler empfehlen, das gänzlich ohne Strings auskommt (und wenn man das erstmal gemacht hat, wird man sich fragen, wozu überhaupt noch BASIC als krumme Krücke). Nur am Rande: Es gibt auch Construction Sets (Tools) zum Erstellen von Adventures.

    @oob wenn einen laaangsame performance nicht stört, ist BASIC 2.0 kein problem, das stimmt

  • Wird das Hauptproblem sein, wenn man auf purem BASIC2.0 beharrt und Strings benutzen will (was natürlich naheliegt und nicht sehr schwer zu programmieren ist), auch Compilen hilft btw nicht dagegen, dass die GC vollläuft. Wenn es da nix von Ratiopharm oder einen Supertrick von BIF gibt, würde ich irgendwas in Assembler empfehlen, das gänzlich ohne Strings auskommt (und wenn man das erstmal gemacht hat, wird man sich fragen, wozu überhaupt noch BASIC als krumme Krücke). Nur am Rande: Es gibt auch Construction Sets (Tools) zum Erstellen von Adventures.
    @oob wenn einen laaangsame performance nicht stört, ist BASIC 2.0 kein problem, das stimmt

    Garbage-Collection.
    Kann man da nicht einfach regelmäßig free(0) aufruhfen?

  • Garbage-Collection.
    Kann man da nicht einfach regelmäßig free(0) aufruhfen?

    Kann man, hilft aber nicht. Die Dauer der Garbage Collection hängt quadratisch von der Anzahl der aktiven String-Variablen ab.

    Zur Sinnhaftigkeit von Basic V2 für ein Programm, das länger als eine Bildschirmseite ist, sag ich jetzt lieber nichts...

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Kann man, hilft aber nicht. Die Dauer der Garbage Collection hängt quadratisch von der Anzahl der aktiven String-Variablen ab.

    Nicht nur das, sondern auch die Tatsache, dass der Aufwand immer anfällt, auch wenn alles perfekt aufgeräumt ist. D.h. es ist völlig egal in welchem Aufräumzustand die Strings sind, es hängt wie schon gesagt nur von der Anzahl (zu einem wesentlichen Teil von nichtleeren) Strings, sei es in einfachen Variablen, in Arrays oder am (vernachlässigbaren) String-Descriptor-Stack (der sich dem BASIC-Programmier üblicherweise nicht offenbart).


    Ich glaube, da muss man auch keinen Flame-War entzünden, was jetzt besser ist, aber die Einstiegshürde ist eben bei BASIC deutlich geringer. Wie eine Art Rapid-Prototyping. Es ist doch recht einfach in BASIC zu beginnen und kann dann schrittweise zeitaufwändige Teile nach und nach oder gleich in Maschinencode auslagern. Alles von Beginn an in Assembler zu entwickeln, wo sie womöglich schon von Beginn an mit diversen Hindernissen zu kämpfen hat, und sei es nur die fehlende Praxis, kann einen schon zermürben bzw. erfordert ein entsprechendes Durchhaltevermögen, dass nicht jeder aufbringen will. Wenn jemand das wirklich aus Spaß macht und seine Freizeit damit verbringt, da stellt sich nicht immer die Frage nach dem effizientesten Tool oder dem "Besten" (was auch immer), da steht eine generalstabsmäßige oder wirtschaftlich optimale Abwicklung nicht unbedingt zur Debatte. ;)

  • bei der dings am stand nebenan hatten die ein kunstruktionskit mit grafikersteller und und und

    Das problem war wohl dass nur zwei werke fertig sind. Deines könnte das dritte sein.

    Oder wie schon im thread gesehen der mac bacon arbeitet auch an einem konstruktion kit, hat das schon grafik?

  • Und natürlich sollte es entweder gerne nach Assembler oder C/C++ gehen, mindestens aber nach einem Compiler, der die Stringverwaltung übernimmt, um die Mülle im Griff zu haben.

  • hat das schon grafik?

    TEXT-Adventures!
    Grafik-wot? Teufelszeug! :bgdev

    Aber das Mini-Adventure Construction Kit von Bitte melde dich an, um diesen Link zu sehen. waere schon mal einen Blick wert. Bitte melde dich an, um diesen Link zu sehen. hat da auch schon Erfahrungen gesammelt.

    ___________________________________________________________
    Meine Kreationen: Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen.
    | Bitte melde dich an, um diesen Link zu sehen.
    Avatar: Copyright 2017 by Saiki

  • Bitte melde dich an, um diesen Link zu sehen. das ganze ist inzwischen wohl super massiev aus dem Ruder gelaufen.
    Ich schreibe Dich mal direkt an und dann setzten wir uns in einen anderen Faden ab.

  • Stimme Zaadii zu - im Mittelpunkt steht Bishops Spaß, und der muss sich mal von seiner Nachtarbeit erholen und zu sich kommen :D Alles Andere später...

  • Bitte melde dich an, um diesen Link zu sehen.:
    Danke für deinen Beitrag hier, habe dir schon geantwortet :)

    Nun das Projekt Textadventure mache ich auch nur aus Just for Fun. Weil mir Basic 2..0 und proggen an sich spass macht.
    Da soll nichts professionelles dabei heraus kommen. Zudem lernt man durch andere Mitstreiter halt noch dazu.

    So , gehe schlafen, habe heute letzten Nachtdienst. Morgen bin ich dann wieder hier.

    Gruss-Bishop-

  • Ich progammier in Vice auch gern mit Basic auf dem C64.
    Darum benutze ich den einfachen Compiler "Basic Boss".
    Cross auf den PC die fertigen Prg erstellen oder mit Disk auf den C64.
    Zwei möglichkeiten. Wunderbar und mit deutschen Handbuch und vielen Beispielen.
    Dazu Tok64 der vorgeschlagene wird für den "Basic Boss" von Text nach Prg.

    Gruss

  • Zur Garbage-Collection-Problematik: Die 64'er hatte in irgendeinem Adventure-Sonderheft eine Assembler-Routine vorgestellt, die den Vorgang effizienter durchführt. Hatte ich damals in den 80ern verwendet. Nur leider ist mein Textadventure nie fertig geworden. :)

  • ...aber bis zur nächsten DoReCo hast Du's doch dann fertig, oder?

    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen. :böse Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen.

    „Vor dem Himmel kommt das Leben auf Erden, und da gilt es, eine soziale Gesellschaft aufzubauen.“ – Heinz Nixdorf (1986)

    Bitte melde dich an, um diesen Link zu sehen. :beer:Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.

  • Zur Garbage-Collection-Problematik: Die 64'er hatte in irgendeinem Adventure-Sonderheft eine Assembler-Routine vorgestellt, die den Vorgang effizienter durchführt. Hatte ich damals in den 80ern verwendet. Nur leider ist mein Textadventure nie fertig geworden.


    Oder einfach z.B. mit der Bitte melde dich an, um diesen Link zu sehen. ... (seit 1985 bewährt und erprobt). :D
    Falls der Bereich $E000 bis $F000 für eine Hires-Grafik braucht, muss man den Puffer der GC woanders hinlegen oder/oder verkleinern.

    Weißt du noch ungefähr, welche Ausgabe des Sonderheftes das gewesen sein könnte?

  • Witzig. Ich habe früher einiges an CBM und C64 Software in Basic fabriziert und (fast) nie war die Garbage Collection ein Problem.
    Die schlägt nur zu, wenn man wie blöd ständig neue Strings anlegt. Das kann man aber in der Regel vermeiden. In einem Adventure, wo die meisten Texte konstant sind, wird das Problem bei sinnvoller Programmierung gar nicht auftreten.
    Aber neuerdings scheinen alle der Meinung zu sein, dass das Commodore auf Grund der GC völlig unbrauchbar ist. :D

  • (fast) nie war die Garbage Collection ein Problem.
    Die schlägt nur zu, wenn man wie blöd ständig neue Strings anlegt.

    Dummerweise macht der Standard-Basic-V2-Programmierer aber genau das:

    Code
    1000 get a$:if a$ = "" then 1000

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..