7DRL 2024 Version and Postmortem
I've been lurking on the fringes of the roguelike development community for years and tried to make one several times. Usually I don't get further than thinking of a silly name. If I can start coding, unavoidable things happen in real life that force me away from the computer or I eventually get bogged down in elaborate architectural schemes to the point of running out of time to actually finish and submit a game. Sometimes I've been close and in last years' 7DRL challenge I actually did complete something you might want to play more than once but I botched the submission and just abandoned it out of frustration.
This year the stars aligned and in approximately 60 hours of coding (and debugging!) I wrote approximately 2500 lines of C++ 20 code plus another 1000 or so lines I eventually threw away in refactoring. D.C.B.A (TV) was written on Ubuntu Linux 22.04.4 LTS using the g++ 11.4.0 compiler and the ncurses 6 library. Learning from my past mistakes, I had the architectural plan ready beforehand with Model-View-Controller and Entity-Component-Systems and all that good stuff so implementing it was mostly smooth sailing. A couple of times baroque intricacies of C++ tripped me up and in one really bad case, I lost about 4 hours due to row and column variables being accidently reversed. I started the project at 10:20 am on Saturday March 2, and finished at 6am on Sat March 9. I didn't submit until today (Sunday March 10) due to the desire to make a Windows build. I hope that is within the rules. Unfortunately the PDCurses library for Windows is missing some needed functionality so I had to give up on that idea. In hindsight I should have used one of the newer cross-platform console libraries but I thought it would be cheating to pivot to one of those after the 7 days were up. Or I will probably move to a cross-platform GUI library like SFML which I am familiar with. All the cool roguelikes are graphical these days but I personally like the charm of good old-fashioned ASCII.
Things I Managed to Complete
- Grid-based, procedurally generated map.
- Turn-based movement for players and enemies.
- Rudimentary combat.
- Some modicum of AI for enemies. (They wander around and start following you if you are near enough but are easily bamboozled.)
- End of game screens for victory and defeat.
- Field of vision and automapping. (You only see new tiles in a five tile (or less if a wall is blocking. Already seen tiles are visible but dimmed.)
- Camera follows the player.
- Things I Started But Ran Out of Time to Complete
- Doors. (There is code for opening and closing doors but it needs more work. All doors are currently just open gaps in the room walls.)
- Better enemy AI. (I wanted to do Djikstra maps but couldn't. This would also fix the current bug of enemies accidentally killing each other.)
- More variety of enemies. (They are all the same right now but there should be different types with varying hit points, speed and powers.)
- Treasure. (Again there is some code but I didn't have time to enable it.)
- Items. (At the very least some way to heal and regain hit points.)
- Some purpose to it all. (Victory condition should be something other than just kill everything.)
After a short rest I will get started on these and do an update.
Longer Term Things to Add
- Ranged combat.
- Magic Spells
- Windows port (Android? Web via emscripten?)
- Your Suggestions?
Also, I will eventually open source the code.
Files
Get Dolorous Coronach of the Baleful Abyss (Taylor's Version)
Dolorous Coronach of the Baleful Abyss (Taylor's Version)
A Simple classic roguelike
Status | Released |
Author | Jaldhar |
Genre | Role Playing |
Tags | Seven Day Roguelike Challenge, Roguelike |
Languages | English |
Leave a comment
Log in with itch.io to leave a comment.