Hello, Guest the thread was viewed52k times and contains 250 replies

last post from The Joker at the

BASIC-Game Compo

  • 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
    1. Tokenisieren:
    2. petcat -w2 -o dastokenisierteprogramm.prg dasprogramm.bas
    3. Detokenisieren:
    4. 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
    1. Tokenize:
    2. petcat -w2 -o tokenizedprogram.prg theprogram.bas
    3. Detokenize:
    4. 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. ;)

  • 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...

  • 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
    1. BASIC programm im Speicher
    2. 5000 00 55 Zeiger auf nächste Basiczeile
    3. 5002 60 EA Zeilennummer 60000
    4. 5004 ..... die Daten
    5. ....
    6. 5500 00 00 Ende des Basicprogramms
  • 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

  • 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
    1. 5000 00 70 Pointer auf nächste Zeile (=$7000)
    2. 5002 60 ea Zeilenummer 6000
    3. 5004 00 00 00 für die Listroutine ende des BasicZeile und ende des Basicprgs
    4. 5007 ... ab hier kann man das charset ablegen.
    5. ....
    6. 7000 00 00 Reales ende des Basicprogramms
  • 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
    1. 0 goto 100
    2. 1 "aAbbanciideEfedSREFsddwWDFF....."
    3. .
    4. .
    5. .
    6. 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.