Ik doe om de zoveel tijd eens verder aan een spelletje dat ik de AI in de buurt laat maken, tot hij vastloopt in zijn geheugenlimiet.
Ik zou het zelf kunnen maken, natuurlijk, en soms kan het ook gewoon niet anders omdat hij niet uit geraakt aan wat ik wil dat hij doet, maar ’t is echt wel geestig om te schaduwboksen met een computer.
Vandaag wou ik een beginscherm maken, hij begreep écht niet hoe te doen wat ik wou doen dat hij deed. Dus heb ik het maar zelf gemaakt, in of all things TheDraw:

Ik had kunnen mijn best doen en een conversiescriptje gemaakt hebben (of laten maken) om die schermen in te lezen, maar ik heb het gewoon rap met de hand gedaan:
draw_text(screen, "\xDC\xDB\xDB\xDB\xDB\xDB\xDC \xDC\xDB\xDB\xDB\xDB\xDB\xDC \xDB\xDB \xDB\xDB \xDE\xDB\xDB\xDD \xDC\xDB\xDB\xDB\xDB\xDB\xDC \xDB\xDB \xDB\xDB", 19*16, 2*32, PLAYER_COLOR)
draw_text(screen, "\xDB\xDB\xDC\xDC\xDC\xDC \xDB\xDB \xDB\xDB \xDB\xDB \xDB\xDB \xDB\xDB \xDB\xDB\xDC\xDC\xDC\xDC \xDB\xDB\xDC\xDC\xDC\xDB\xDB", 19*16, 3*32, HIGHLIGHT_COLOR)
draw_text(screen, " \xDF\xDF\xDF\xDF\xDB\xDB \xDB\xDB \xDF\xDC\xDB\xDB \xDB\xDB \xDB\xDB \xDB\xDB \xDF\xDF\xDF\xDF\xDB\xDB \xDB\xDB\xDF\xDF\xDF\xDB\xDB", 19*16, 4*32, EGG_COLOR_0)
draw_text(screen, "\xDF\xDB\xDB\xDB\xDB\xDB\xDF \xDF\xDB\xDB\xDB\xDB\xDF\xDC \xDF\xDB\xDB\xDB\xDB\xDB\xDF \xDE\xDB\xDB\xDD \xDF\xDB\xDB\xDB\xDB\xDB\xDF \xDB\xDB \xDB\xDB", 19*16, 5*32, EGG_COLOR_1)
Tee hee. Dat is dan voorlopig dit geworden in het spelletje zelf:

Alles wat op het scherm staat is trouwens wegens redenen grafisch, getekend met deze spritesheet, waar ik langer over gedaan heb om hem te maken dan ik wil toegeven (het was met manueel inlezen van een windows-.fon-bitmapfontbestand, en dat was minder evident dan ik gehoopt had dat het zou zijn:

Nog te doen:
- Manier van bewegen herbekijken (ik heb nu gewoon A* gepakt, maar dat is mij wat te efficiënt — op lage levels te voorspelbaar, op hoge levels te moeilijk). Het spel dat ik namaak doet het zeer simpel: als de speler in line of sight is (binnen een bepaalde radius), gaat de vijand er naartoe. Als de speler niet zichtbaar is, doet de vijand een random move.
Dat vind ik nu toch een béétje te dom, dus iets tussen de twee. - Exploding blocks toevoegen: in latere levels zorgen die ervoor dat de duwblokken kunnen vernietigd worden door ze in onverplaatsbare blokken te duwen. Dat lijkt niet zo erg, maar op den duur maakt ge daarmee uw eigen munitie helemaal schaars.
- Sentinelgeneratie is niet (meer) in orde, moet ik ook herbekijken.
- Het welkomstscherm verder bewerken, dat de details van levels niet meer op nieuw scherm komen maar daar getoond worden (zoals ik in TheDraw getekend had).
- Eens denken aan uitbreidingen, gelijk tunnels of teleporters, of echte ontploffingen die een radius hebben, of een pauzeknop die kan opgepikt worden, of een pacman-achtige “nu kan ik vijanden opeten”-modus, zwartwitmogelijkheid (of amber, of groen, of ‘Paperwhite’), of allerlei geluid erbij doen, of een “echte” grafische modus, of…
DUUZD mogelijkheden. En ondertussen ziet het er wel al echt bijna helemaal uit zoals het in mijn geheugen zat. Soms zelfs beter.

Zeg uw gedacht