So I’ve been working at making games for a long time. Board games, card games, pen and paper RPGs, that kind of thing. I’d always wanted to make video games. I made some trivial text games in BASIC back in the late 80s, but as far as making “real” video games it always seemed a bit beyond me.
It wasn’t until I became aware of Python that this started to change. To me it seemed pretty simple along the lines of BASIC, but orders of magnitude more powerful, especially given the libraries available to do all kinds of things. Being enamored with both old school NES RPGs (mostly original Dragon Warrior and Final Fantasy) I decided I’d try and do a game along the lines of these childhood favorites, but with board game style combat mechanics as a twist on those primary influences. That went pretty well and I got a map, combat screens, status screen, and a host of baddies made, pretty much a functional game.
After that project I became interested in procedural generation from games like Dwarf Fortress, and also got deeply into the amazing but fairly orthodox rogue-like Dungeon Crawl Stone Soup. Researching how to do stuff like that I learned a lot online, and more from Amit Patel over at Red Blob Games than anyone else. I’ve always loved making maps as a thing, but writing a program to make maps quickly became a passion for me as well.
Then much more recently after I got turned on to the retro fantasy console PICO-8, I decided it was an ideal vehicle to do a new game, learn a new language, which would be a combination of old school 8-bit JRPG and a procedurally generated rogue-like. The stars aligned and by the time I was beginning to do a little more research I stumbled upon Lazy Devs Academy where there was a PICO-8 rogue-like tutorial already in progress. I watched the series once and started coding along. Doing this gave me a good background for coming up with something more my own (though with some functions like pathfinding being directly ripped off from Krystian).
I started with the combat screen, implemented melee combat and a menu system, then ranged combat and healing, followed by simple AI for NPCs to do those three things. Once that got working I got going on the map generator, which creates a 129×129 array of tiles. It’s that size because the diamond-square method of terrain generation requires the height and width be 2ⁿ+1. Combine that with a piece that lowers the elevation the farther you get from the center, and you get a pretty decent island shape.
I’m thinking about posting a bit more in detail about some of this stuff and making progress updates here in the future, so stay tuned! You can see the latest progress here.