Using Assembly Language for Creating Games
Dit paper demonstreert de mogelijkheden van x86-assembly voor gameontwikkeling door de creatie van een 'Arkanoid'-spel in Windows Console met behulp van Visual Studio 2015.
Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer
Het Bouwproject: Arkanoid in de "Basiscode"
Stel je voor dat je een huis wilt bouwen. De meeste mensen gebruiken vandaag de dag kant-en-klare bouwstenen en een handleiding (dit zijn hoge programmeertalen zoals C++ of Python). Je hoeft niet na te denken over elke steen; je zegt gewoon "plaats hier een muur" en de computer regelt het.
De auteurs van dit paper hebben echter gekozen voor een heel andere aanpak. Ze hebben het huis gebouwd door elke individuele steen met de hand te leggen. Ze gebruikten Assembly, een programmeertaal die zo dicht bij de "taal" van de computerprocessor ligt, dat je letterlijk elke byte van het geheugen zelf moet aansturen.
Het doel? Bewijzen dat je zelfs met deze zware, oude methode een leuk spelletje kunt bouwen: Arkanoid (het bekende spelletje waar je met een blokje een bal laat stuiteren tegen bakstenen).
De Regels van het Spel (De "Wetten van de Natuur")
In dit spelletje, dat draait in een simpele Windows-venster (de console), gelden de volgende regels die de computer zelf moet berekenen:
- De Bal: Hij stuitert tegen muren, het blokje van de speler en de bakstenen.
- De Bakstenen: Elke steen heeft een kleur en een puntwaarde. Als je erop schiet, verdwijnt hij.
- De "Dubbele" Steen: Als je een steen twee keer raakt, verandert hij van kleur. Als hij de derde keer geraakt wordt, valt hij naar beneden. Als je hem met je blokje opvangt, krijg je dubbele punten.
- Game Over: Als de bal de onderkant van het scherm raakt, ben je klaar.
Hoe werkt het? (De "Magie" van de Console)
Het paper legt uit hoe ze dit doen zonder moderne grafische hulpmiddelen.
1. Het Scherm als een Mozaïek
Stel je het computerscherm voor als een gigantisch raster van kleine vakjes (een mozaïek). In elk vakje zit een klein kaartje met een letter of een symbool en een kleur.
- In de programmeertaal van de auteurs is elk vakje een
CHAR_INFO. - Om een "grote letter" te maken (zoals in het welkomstscherm), hebben ze niet één vakje gebruikt, maar een patroon van tientallen kleine vakjes die samen een groot symbool vormen. Dit noemen ze "Big Strings". Het is alsof je een poster maakt door duizenden post-it'tjes op een muur te plakken.
2. De Vertaler (De Besturingssysteem)
Omdat de programmeurs niet direct met de hardware (het toetsenbord of het scherm) wilden praten (want dat is te ingewikkeld en werkt niet op elke computer), gebruiken ze een talenvertaler.
- In het paper noemen ze dit de OSF (Operating System Functions).
- De programmeur zegt tegen de computer: "Schrijf hier een letter" en de vertaler (Windows) regelt de rest. Dit is als een secretaresse die jouw boodschappenlijstje naar de supermarkt brengt; jij hoeft niet zelf te lopen.
3. De Spelregels (De Algoritmen)
Het hart van het spel zit in de algoritmen (de recepten voor de computer):
- De Bal: De computer onthoudt waar de bal was en waar hij nu is. Als hij ergens tegenaan botst, berekent de computer de nieuwe hoek.
- De Stuiters: Als de bal tegen de muur stuitert, "spiegelt" de computer de beweging. Het is alsof je een biljartbal tegen de rand van de tafel ziet stuiteren; de hoek van binnenkomst is gelijk aan de hoek van uitkomst.
- Snelheid: Om te voorkomen dat alles te snel gaat, gebruiken ze een "Tijdsvector". Dit is als een stopwatch. De computer doet alsof het spel trager gaat door bepaalde stappen over te slaan. Zo kan het blokje van de speler sneller bewegen dan de vallende bakstenen.
Waarom is dit interessant?
Je zou kunnen denken: "Waarom zou je dit doen als er makkelijkere talen zijn?"
De auteurs geven twee goede redenen:
- Volledige Controle: Je bent de baas over elke seconde van de computer. Je weet precies wat er gebeurt. Dit is heel handig voor speciale apparaten (zoals in een auto of een robot) waar geen ruimte is voor zware software.
- Onderwijs: Het is een fantastische manier om te leren hoe computers echt werken. Als je dit spelletje in Assembly kunt bouwen, begrijp je de basis van elke computer die er bestaat.
Conclusie
Kort samengevat: Dit paper is het verhaal van een groep studenten die bewezen hebben dat je met de "oude, zware" bouwtechniek (Assembly) toch een leuk, interactief spelletje kunt bouwen. Ze hebben laten zien dat je zelfs in een simpele tekstscherm van Windows een wereld kunt creëren met ballen, bakstenen en punten, puur door de taal van de processor zelf te spreken.
Het is alsof ze een auto hebben gebouwd door elke schroef met de hand te draaien, in plaats van een fabrieksauto te kopen, alleen maar om te laten zien hoe het motorblok precies werkt.
Verdrinkt u in papers in uw vakgebied?
Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.