Posted March 11, 2024 by Jaldhar
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
After a short rest I will get started on these and do an update.
Longer Term Things to Add
Also, I will eventually open source the code.