After almost two years in development I'm excited to announce that Rapture is ready and the release date has been set for the 25th of August! Rapture is a procedurally generated dungeon crawler with turn-based combat. It is designed with replayability in mind, having a large cast of playable characters from which to form your party of four. You can further customize your party to your liking by teaching them new abilities, or giving them various Relics each with its own unique effect. Each playthrough is randomly generated to be unique, with a large variety of possible enemy encounters, events, boss fights and relics as part of the procedural generation.
If you are interested in Rapture, I recommend you wishlist the game on Steam so you don't miss out on the launch day discount!
An Introspective into Rapture's Development
Combat In Rapture
Looking back at the start of development, before anything else was implemented I worked on the turn based battle system. I knew right from the start that I wanted combat in Rapture to be a certain way, taking inspiration from games like Shin Megami Tensei and Darkest Dungeon. A rough draft was created and after a few weeks of prototyping I settled on the current iteration of the battle system. Once I had a stable foundation for how the battles should play out, the next step involved balancing all the different systems to provide a fun but also challenging experience.
Balancing feels like a never ending project, I was making adjustments constantly. Some of them were minor ones like numbers balancing while others were major changes that demanded a good amount of my attention, such as refactoring the damage calculation formulas. Most of the major changes were due to emergent gameplay issues that I had not accounted for initially so the whole process became a lot more reactive and organic as the game's development was progressing.
Finally, another important part of development in Rapture was flexibility and modularity. I wanted to create systems that would allow me to add content easily. This would allow me to implement new content at a rapid rate and potentially open up the game to mod support in the future. This was overall a good decision as it ended up saving a large amount of time, plus it will make any future content even easier to implement and integrate within Rapture's "ecosystem".
Dungeons and Procgens
The dungeons in Rapture are procedurally generated, including their events, enemy encounters, relics and pretty much everything else. There were many iterations of the Map Generator, the first one simply created a main branch of tiles and it would fork into other branches, the number of which was based on the player's current depth. This resulted in uninteresting dungeon layouts so after a long process of trying different things I settled on a system that generates rooms and connects those rooms with corridors. That way I could also distribute map events better as I was able to pick specific points to generate specific encounters - such as spawning an Upgrade Terminal at the middle of the map or spawning an enemy encounter in corridors whenever possible instead of rooms.
Another breakthrough in dungeon generation was the implementation of pathfinding. Originally the player would have to click tile by tile or move with the arrow keys to their destination, but it never felt right and it could become bothersome to travel long distances like that. So I implemented pathfinding near the end of the development cycle, using a simple Breadth-first search algorithm. This of course did not come without any bugs to address but after some extensive debugging sessions, the pathfinding algorithm was completed.
A Quick Shout-out
Rapture started off as one man project. I was determined to work on every part of the project by myself from programming to pixel art. However, I'd like to thank a few people that really came through and provided help with Rapture's development. Jesse Myers for providing a superb soundtrack and Konstantin Stelmach for his excellent work in sound engineering. Finally, a special thank you to Annat for their continued support during the game's development!