Uw gegevens. Uw keuze.

Als je alleen het noodzakelijke kiest, verzamelen we met cookies en vergelijkbare technologieën informatie over je apparaat en je gebruik van onze website. Deze hebben we nodig om je bijvoorbeeld een veilige login en basisfuncties zoals het winkelwagentje te kunnen bieden.

Als je overal mee instemt, kunnen we deze gegevens daarnaast gebruiken om je gepersonaliseerde aanbiedingen te tonen, onze website te verbeteren en gerichte advertenties te laten zien op onze eigen en andere websites of apps. Bepaalde gegevens kunnen hiervoor ook worden gedeeld met derden en advertentiepartners.

Achtergrond

Ik heb mijn zelfgeprogrammeerde BASIC-spel af!

David Lee
10/4/2023
Vertaling: machinaal vertaald

Ik ben eindelijk klaar met mijn idiote project om een spel te maken voor de C64. Gelukkig maar. De code heeft een omvang bereikt die niet meer praktisch is.

Het is de meest verwachte wedstrijd van 2023 - voor mij. Niet voor de rest van de wereld. Eén reden is dat de rest van de wereld er niets vanaf weet. Behalve jij misschien, als je het onderstaande artikel hebt gelezen of hebt geluisterd naar aflevering 136 van de digitec podcast.

De nieuwe versie van het spel heet "Die Heart" en bevat 20 levels in plaats van slechts acht. Voor elk derde voltooid level krijg je een extra leven - tot een maximum van zeven. Het belangrijkste is dat de vijanden gevarieerder zijn.

In de eerste versie was er maar één soort vijand: een kwaadaardig uitziend hoofd dat je achtervolgde. Er konden er hooguit twee tegelijk op het scherm verschijnen. Nu zijn er zeven soorten vijanden en het spel kan er maximaal vier in hetzelfde level aan.

Een BASIC-programma opschalen

In de eerste spelversie worden de bewegingen van de achtervolgers berekend in de hoofdroutine. In de tweede versie wordt het type vijand opgevraagd en dan wordt de juiste subroutine aangeroepen om de beweging te berekenen.

De individuele levels zijn al subroutines in de eerste versie. De level-subroutines roepen op hun beurt weer subroutines aan. Deze tekenen de muren en andere obstakels in de levels. Dit heeft als voordeel dat ze meerdere keren kunnen worden gebruikt en modulair met elkaar kunnen worden gecombineerd. Ik heb bijvoorbeeld een muur toegevoegd aan een bestaand veld. Hierdoor kun je niet meer bij de rand stoppen, wat het een stuk lastiger maakt.

Het programma bestaat uit ongeveer 500 regels of 16 kilobyte, waardoor het ongeveer twee keer zo groot is als de eerste versie.

Eén type vijand is me niet gelukt

Ik wilde de achtervolgers verbeteren zodat ze net als het personage muren moeten ontwijken in plaats van er doorheen te rennen. Door dit toe te voegen zouden de obstakels een grotere impact hebben op het spel en voor meer variatie zorgen. Helaas heb ik gefaald.

De berekeningen die hiervoor nodig zijn, zijn niet eenvoudig, maar na een tijdje had ik in ieder geval de basis door. Het programma herkende wanneer een tegenstander bij een obstakel kwam en van richting veranderde.

Om redenen waar ik nooit achter ben gekomen, werkte dit alleen als het spel direct in BASIC werd uitgevoerd. Zodra ik het compileerde, werden de obstakels niet meer betrouwbaar gedetecteerd. Soms wel, maar zonder waarneembare systematische aanpak.

Compileren is absoluut noodzakelijk omdat het spel veel te langzaam draait in BASIC. Daarmee was het idee dood.

Muziek? Vergeet het maar

Ik had het spel graag opgeslagen met een zelfgecomponeerde chiptune. De C64 is daar heel geschikt voor. Maar dan had ik het spel in Assembly moeten programmeren.

Hoewel het mogelijk is om muziek te maken in BASIC, is het ingewikkeld en, nog belangrijker, het kan niet op de achtergrond draaien. Ik had dus af en toe een geluid in de hoofdroutine moeten stoppen. Het zou onmogelijk zijn geweest om dit met de juiste timing voor elkaar te krijgen. Het zou de code ook onbegrijpelijk maken.

Downloaden en spelen

Als je het speelt, ben ik geïnteresseerd in je feedback. Is een bepaald level te makkelijk of te moeilijk? Hoe zit het met het spel als geheel? Is het wel leuk? Zo ja, hoe lang?

Ik vond het leuk om te ontwikkelen - afgezien van de mislukte obstakeldetectie. Maar naarmate het programma groter wordt, wordt het steeds moeilijker. Daarom beschouw ik het spel nu als af - ook al kan ik het zeker nog veel verbeteren.

55 mensen vinden dit artikel leuk


User Avatar
User Avatar

Mijn belangstelling voor computers en schrijven leidde me relatief vroeg (2000) naar de technische journalistiek. Ik ben geïnteresseerd in hoe je technologie kunt gebruiken zonder gebruikt te worden. In mijn vrije tijd maak ik graag muziek waarbij ik mijn gemiddelde talent compenseer met een enorme passie. 


Achtergrond

Interessante feiten uit de wereld van producten, een kijkje achter de schermen van fabrikanten en portretten van interessante mensen.

Alles tonen

Deze artikelen kunnen je ook interesseren

  • Achtergrond

    Een hart voor zelfgeprogrammeerde retrospelletjes

    van David Lee

  • Achtergrond

    Net als vroeger: Programmeren in Basic met de C64

    van David Lee

  • Achtergrond

    De Keep: Een saai spel met een spannende achtergrond

    van David Lee