Testgame
Wat is het?
Testgame is een heel simpel 2D RPG spelletje. Een soort roguelike, maar dan met sprites in plaats van ASCI karakters. Het is mijn eerste probeersel ooit in een andere taal dan PHP. De muziek is gemaakt door m'n broer die enthoisiast werd nadat hij de eerste test build zag.
Welke functies zitten er in het spel?
- De map bestaat uit blokjes van 32*32 pixels.
- De map wordt met sprites opgebouwd vanuit een text file die wordt ingeladen in een 2D array, waarbij ieder cijfer voor een bepaalde tegel staat. En iedere line voor de Y coördinaat zorgt.
- De item map wordt op eenzelfde manier opgebouwd in zijn eigen 2D array
- De speler en de bots kunnen over beloopbare tegels lopen tenzij er een andere bot of speler staat
- Als de tegel van de bot de tegel van de speler raakt valt de bot aan en doet per 0,3 seconde een bepaald getal aan schade
- De speler kan een bot aanvallen als hij op de aangrenzende tegel staat die hij aankijkt.
- De aanval kan melee of magic zijn.
- Items vanaf de map kunnen stats veranderen van de speler waardoor de schade toeneemt die de speler toe kan dienen of het versterkt de verdediging waardoor de speler minder schade ontvangt.
- Er zijn deuren die open en dicht gedaan kunnen worden
- Sleutels waarmee deuren open gemaakt kunnen worden.
- Er zijn bots die als kippen zonder kop door het level wandelen
- Ieder level kan één dungeon bevatten (die zo groot als het level kan zijn)
- Als je van map naar map gaat wordt de state van de map, de items en de hoeveelheid vijanden opgeslagen.
- Je kan met de pickaxe de stonewall tile veranderen in een rockfloor tile waardoor je erdoor kunt lopen. Als er op deze tile een item ligt kan je die nu oppakken. Als er geen item ligt wordt er een steen item gesplaatst die je op kan pakken.
- Items in je inventory kunnen stacken.
- Werkende health en mana bars.
- Alle sprites zijn handgetekend (zonder echt talent

)
- Fullscreen support met scaling van de UI
- Het doden van vijanden levert je gold op
Cool! Hoe ziet het er dan uit?
Nou zo:

Kan ik het proberen en naar de source kijken?
Natuurlijk! Daarvoor moet je even dit .rar file downloaden.
https://www.dropbox.com/s...rzv/Testgame%200.0.5b.rarWat heb ik nodig om de source te kunnen compilen?
SFML dat vindt je hier:
http://www.sfml-dev.org/Je code is onoverzichtelijk, inefficiënt, slecht becommentariëerd!
Dat klopt helaas. Zoals ik al zei dit is mijn aller eerste keer dat ik iets probeer te programmeren wat niet op een Ti83+ draait of PHP is. Daarbij heb ik een grote fout gemaakt door niet heel vroeg mijn spel in verschillende stukjes te knippen. Hierdoor is de source één enkele file met 2115 regels. En iets zoeken om te verranderen begint al echt een pain te worden.
Omdat dit het eerste ding is wat ik met C++ heb gemaakt is het meeste gewoon trial and error. Ik heb bedacht wat ik wil. Ongeveer bedacht hoe dit er in code uitziet, probeer het. Als ik dingen niet wist hoe ik ze moest doen zocht ik een korte tutorial en ging ik weer verder.
Zo was het bijvoorbeeld een 'real pain' om een int in een string te krijgen. In PHP is dat erg makkelijk. In C++ is het iets ingewikkelder.
Hoe wil je nu verder?
- Ik wil van zoveel mogelijk global variables af.
- Het project opsplitsen, maar weet nog niet precies hoe
- Een ranged attack toevoegen
- Animaties van de verschillende aanvallen toevoegen
- Extra bouwblokken voor levels
- Schatkist item die bij gebruik een random item dropt
- Extra puzzel items
- Items combineren (hout + tinderbox = vuur + dode kip = eten = aanvulling op health soort van idee)
- NPC waarmee je kunt praten (evt alleen storytelling of sidequests)
- Betere AI (pathfinding richting de speler als hij binnen 5 hokjes radius is)
- Het spel op 30FPS krijgen op een intel Atom

- Een buy menu toevoegen
- Goede animatie voor schuin lopen
- Scaling in de level editor bouwen
- Een menu maken
- Save & load support
- De map en items in één file opslaan
- De level editor in de game plaatsen
- Mouse support
Coole muziek wie heeft dat gemaakt?
https://soundcloud.com/wouter-riegmanWelke guides heb je gebruikt
http://www.kathekonta.com/rlguide/
Dit is een guide waar ik een hoop inspiratie uit heb opgedaan.