BASIC-Game Compo

There are 250 replies in this Thread which has previously been viewed 61,386 times. The latest Post (July 24, 2010 at 8:55 PM) was by The Joker.

  • BASIC-Game Compo


    (English rules translation behind German version)
    Was: Ein Spiel in BASIC V2, kein Assembler, Sprünge ins System sind allerdings okay.
    Womit: Muss auf einem normalen C64, mit einer normalen 1541 und einem Joystick laufen.
    Wie groß: Eine Datei oder maximal 160 Blöcke auf mehrere Dateien verteilt.
    Was muss beiliegen: Ein Screenshot, eine PRG des Spiels, der Quellcode und eine kleine Anleitung als normale Textdatei.

    Details:
    Das Spiel muss nicht zwingend mit dem Bildschirmeditor eingebbar sein, ihr könnt also die vollen Zeichen pro Zeile ausnutzen, hier nochmals die petcat Bedienung:

    Code
    Tokenisieren:
    petcat -w2 -o dastokenisierteprogramm.prg dasprogramm.bas
    Detokenisieren:
    petcat dastokenisierteprogramm.prg > dasprogramm.bas

    Dem Quellcode muss bei künstlicher Nachbehandlung (selbst geschriebener BASIC Compaktor, damit meine ich unter anderem mich selber ;) ) die komplette Toolchain beiliegen oder es muss zumindest ein Verweis existieren wo man die Toolchain herbekommt. (Kreative Nutzung eines Cross-Assemblers, etc...)
    Keine Compiler, keine Cruncher, das Spiel muss LIST-bar sein, Fehler der LIST Routine bei kreativer Nutzung von Strings werden allerdings berücksichtigt.
    Durch absenden deines Beitrags zur Compo gibst du mir das Recht deinen Beitrag im Forum64, auf der CSDb und an anderes Stellen wo es kostenlos beziehbar ist hoch zu laden.

    Deadline: 1. Juli 2010 23:00 Uhr
    Eure Spiele bitte vor der Deadline zu mir, am besten ein paar Stunden früher.
    Beschwerden übers E-Werk, der Oma/Hamster/Werauchimmer und dem ISP der grade jetzt die Leitung kappt zählen nicht.

    Preise: Jede Menge Anerkennung, es sei den jemand spendet etwas. ;)

    English:
    What: A game in BASIC V2, no assembler, doing system calls is ok, though.
    Whereby: Has to run on a normal C64 with a normal 1541 and a joystick.
    How big: One File or 160 blocks shared by multible files.
    What as to acompany: One screenshot, a PRG of the game, the sourcecode and a simple manual as a normal text file.

    Details:
    The game musnt be entered with the screen editor, you can use the full line range. Here again the command line parameters for petcat:

    Code
    Tokenize:
    petcat -w2 -o tokenizedprogram.prg theprogram.bas
    Detokenize:
    petcat tokenizedprogram.prg > theprogram.bas


    If you use artificial editing (selfmade BASIC compaktor) of the sourcecode you have to give the toolchain with your entry, or at least give a download location. (Creative using of crossassemblers, etc...)
    No compilers, no crunchers, the game must be LIST-able. Of course bugs in the LIST routine with clever string usage are taken heed of.
    With sending an entrie you give me the right to post your entrie on Forum64, CSDb and other places where it can be obtained freely.

    Judges:
    The users of this board.
    Give me a day to sort trough the entries, i will post them here with a forum based vote.
    One vote per user.

    Deadline: 1st of jule 2010 - 11 o clock pm
    Please send your games to me before the deadline, best would be some hours before.
    I wont take complaints about your energy provider, your granny/hamster/whoever or your ISP who just now cuts your line while uploading.

    Prices: Just fame unless someone wants to donate something. ;)

  • Kein Assembler heisst auch keine Betriebssystem SYSs??

  • Yay! Wenigstens mal eine ausreichend lange Frist. :dafuer: Schaumermal!

    @Marq: SYS-Befehl ist grds. erlaubt, schau noch mal genauer in die Regeln.

    Es sind keine anzeigbaren Aktivitäten vorhanden.

  • Oh, es geht wieder los! :P

    Ein Spiel, das den kompletten Basic-Speicher ausnutzen darf und dazu eine angemessene Deadline, da juckts ja schon wieder in meinen Programmierfingern... Leider bin ich grad ziemlich im Stress, aber ab Mitte April wird (hoffentlich) durchgestartet, mal schauen, was draus wird!

  • Großzügigen Zeitrahmen hatte ich ja auch schon begrüßt. Aber

    @gh23:
    Nein, kein 4k, die einzigen Beschränkungen diesmal sind "Kein Assembler" und nur eine einzige Datei, Disknutzung für Speicherstände mal ausgenommen. Und diesmal ein etwas längerer Zeitrahmen, dann könnte da vielleicht auch ein Mafia 2 oder ein Hanse 2 bei rumkommen.

    Wenn Mafia der Maßstab sein sollte,
    DANN müsste man aber wenigstens das Nachladen von Charsets und Koalas auch noch erlauben...

    Es sind keine anzeigbaren Aktivitäten vorhanden.

  • Kann man doch per DATA einbinden. Und Koala erübrigt sich wohl fast aufgrund der Größe...

  • Klar kann man ein Charset auch als Data einbinden, finde ich aber künstlich puristisch. Und ja, nach derzeitigem Reglement ist beides, was ich moniert habe, verboten, ist klar, schon aufgrund der One-Filer-Beschränkung.

    Es sind keine anzeigbaren Aktivitäten vorhanden.

  • sorry doppelpost

    Der Beitrag ist zu kurz. Der Beitrag muss mindestens 5 Zeichen lang sein und 5 Wörter enthalten.

  • Kann man doch per DATA einbinden.

    Wieso nicht die daten als letzte Basic Zeile einbinden. Gibt dann zwar Probleme beim LIST, aber solange die Zeile nicht ausgeführt wird müßte das Progamm laufen.

    Code
    BASIC programm im Speicher
     
    5000  00 55 	Zeiger auf nächste Basiczeile
    5002  60 EA 	Zeilennummer 60000
    5004  ..... 	die Daten
    ....
    5500  00 00 	Ende des Basicprogramms
  • Quote

    Wenn Mafia der Maßstab sein sollte,
    DANN müsste man aber wenigstens das Nachladen von Charsets und Koalas auch noch erlauben...

    mafia dürfte, wenn man das ein bischen geschickter macht als im original, durchaus komplett in den speicher passen :)

  • wie wärs denn mit folgendem:

    -Daten als letzte Basiczeile einbinden
    -per FOR schleife zur zieladresse(>$a000) kopieren
    -letzte zeile mit 00 00 als pointer zur nächsten zeile überscheiben (signal für ende des programms)
    -zeropage 45-50 an das neue programmende anpassen

    ... und voila man hat trotz charset fast genauso viel Variabelspeicher übrig wie ohne

  • per FOR schleife zur zieladresse(>$a000) kopieren


    tip an der stelle: es gibt eine rom routine zum verschieben von blöcken... das geht *deutlich* schneller als in basic per schleife :)

  • das Spiel muss LIST-bar sein


    Bitte dran denken.
    (Ich denke spätestens Sauhund fallen jetzt mindestens 3 Möglichkeiten ein Daten Regelkonform abzulegen. ;) )

  • hehe :) also wenn es "listbar" aber nur bedingt "eingebbar" (per hand) sein darf.... dann einfach zeilen in der form:

    10 "<datenbytes>"

    ... wird unter umständen beim listen auch bunte grütze geben, aber ansonsten gehts :) muss man halt nur drauf achten das man nur 250 (?) bytes unterbringen kann pro zeile, und sich irgendwie die startadressen der datenbytes rauspulen muss.

  • bedeutet listbar das das das programm vollständig angezeigt werden muss oder das LIST einfach nur funktionieren muss, dann wäre das möglich

    beispiel um daten im Progamm abzulegen, letzte basiczeile:

    Code
    5000  00 70 	Pointer auf nächste Zeile (=$7000)
    5002  60 ea 	Zeilenummer 6000
    5004  00 00 00  für die Listroutine ende des BasicZeile und ende des Basicprgs
    5007  ...	ab hier kann man das charset ablegen.
    ....
    7000  00 00     Reales ende des Basicprogramms
  • mafia dürfte, wenn man das ein bischen geschickter macht als im original, durchaus komplett in den speicher passen :)

    Okay, wenn man die Koalas crunchen darf, aber ob da reines BASIC nicht an seine Grenzen stößt... ;)

    Es sind keine anzeigbaren Aktivitäten vorhanden.

  • bedeutet listbar das das das programm vollständig angezeigt werden muss oder das LIST einfach nur funktionieren muss, dann wäre das möglich


    Man sollte es sich schon anzeigen lassen können und auch mal eben nen Patch einpflegen können ohne gleich den Hexeditor auspacken zu müssen.
    Ich dachte übrigens an sowas hier:

    Code
    0 goto 100
    1 "aAbbanciideEfedSREFsddwWDFF....."
    .
    .
    .
    100 rem hauptprogramm


    Vorteil ist definitiv das die Daten immer an der selben Stelle stehen, solange man Zeile 0 nicht anfasst.
    Nachteil dieser Methode ist allerdings das der Interpreter bei jedem GOTO/GOSUB erstmal über die Daten lesen muss ob seine Zeilennummer dabei ist.
    Ich werd wohl DATAs am Ende platzieren die dann komprimierte Sprites und Co enthalten. So muss man zwar am Anfang ein wenig warten bekommt am Ende aber ein schnelles Spiel zustande.
    Soweit ich mich entsinne spinnt LIST ja nur rum wenn in einem String ein Return-Zeichen vorkommt.