A Post-Apocalyptic RPG

"Canary" is yet another Rogue-type game as a weekend garage project. It is, in fact, a feeble low-res attempt at a love-letter to the original Fallout games.

Canary is written in C using SDL.



Screenshots
2024-10-19 screen capture 2025 screen capture 2025 screen capture

Lunatic ranting begins here:

2025-01-25

At some point I decided my task board should be a 'minimum viable product' board, so now I have 10 notes there that I'm ignoring while I finish getting an A* algorithm implemented in C. I had it working earlier than I thought it did: when I ran it it kept going crazy and crashing the program with corrupted memory. What I eventually realized was that I was setting the end position to the player location, which was registering as a blocked tile, so the algorithm started checking infinite other ways to access this impossible-to-land-on tile. Now that I set the end goal to getting within 1 tile of the target it works great. Other checked-off tasks include:

  • Exit saving
  • Quick saving
  • Screenshots (to tell where you were when you saved)
I also got the Steam page mostly populated, I got an email from the review process that I need to make some tweaks to the page graphics.


2024-10-20

Inspired by Friday's post, I dug in on Saturday and added an sqlite db to the mix to hold the entity type data. I had planned to use Gnumeric (spreadsheet) for game data, but the flexibility of integrating directly with a database seemed better in the long run.

I'm not ready to make data importing fully dynamic (the entity types are still #define PLAYER 10 in a constants file), so I wrote a python script to parse the .h file #define directives to match up with 'PLAYER', 'MONSTER_1', etc. in the database. From there it turns the db row into a binary version of the integer values and stores it in entities.bin which can be read by the game. These are just the entity 'types', the actual game entities are cloned from these base entities.

I'd marked October's "load entities from external file" and "use spreadsheet to define entity data" off the list, but I'm tracking down a few bugs today instead of moving on to the final October task of "Simplifying the model to make serialization easier".


2024-10-18

Over half-way through October. I've done a few minor things but have hardly gotten started on this month's list of tasks. I did get the ball rolling on publishing through Steam though, so there is that bit of wishful procrastination to check off the list.


2024-09-22

I took a few days off work to get some game coding time in, this week I got the basics of a character creation screen put together and made it pretty far with the saving and loading of games. Also started the process of distributing Canary through Steam.


2024-09-18

Starting a public work log as I get closer to finishing this game. I still have 6 months of planned work to go through, and I'm sure more things will come to mind.