PITVYPR Dev Blog #3: Reflections and a Feature Update

Hello!!

Been a while.

Funny thing, reading back on the third post on this devlog, about how a roadmap would help with development? Turns out: the human mind is not so simple. While, yes, there are times when a roadmap has been infinitely helpful for me (Visa preparations and extreme deadlines at university come to mind) - having a checklist on a project I am meant to be enjoying made it feel a lot more like a chore. I don't want to go on too long about it - because the roadmap stuff is still very helpful in principal. However, when it comes to how I've been developing this project, I found having a stress-free and more meandering approach was better for my workflow.

Since this project is not especially tied to any consequence yet, I shouldn't feel the need to follow a plan. Adding things and seeing how they turn out is fun enough. I like the feeling of wanting to add a feature, and having to solve that problem. Only after that thinking about what is to come next. It gives me a burst of excitement and my head starts buzzing with ideas again.

So, to summarize the above ramblings: The Roadmap, while useful, might not be right for this prototyping stage of PITVYPR. Sure, I have ideas about what should be in the game, but those ideas also change, often.

Though, for the fun of it - let's see where I am at currently in terms of said Roadmap:

  1. Object Definition: Player, Wall. DONE
  2. Screen Rendering with Map. DONE
  3. Action System: Movement. DONE
  4. Health/Damage System. DONE
  5. Visibility System. DONE
  6. Object Definition: Monster. DONE
  7. Turns & Time. DONE
  8. Simple Monster AI. DONE
  9. Action System: Combat. DONE
  10. Object Definition: Door, Switch. HALF DONE
  11. Action System: Use/Open/Close
  12. Object Definition: Item, Consumable. HALF DONE
  13. Inventory Definition. DONE
  14. Action System: Take/Pick up. DONE
  15. Object Definition: Item (Weight & Size (?) Properties). DONE
  16. Inventory Definition: Stacking items
  17. Action System: Drop/Use Item

…A lot of it is completed, right?

Again, that was something really funny to look back on and go through myself when I came to write this devlog. Without following the roadmap, most of it has actually been completed.

Really makes you question Project Management as a job, right?

Anyways, the features in here that are still to-do, are:

Switches on Doors (Also add Keys)
Consumable Items
Stacking Items
Dropping and Using Items

Four things. Not a lot, right? Well, don't get too excited. There are actually quite a few more features that have come to my mind that were necessary for the game's demo that I've been hard at-work implementing.

Here's a screenshot of the game so far, so you can see what everything currently looks like:

A screenshot of my game, PITVYPR, in it's current pre-alpha stage. Features include a working map with doors and enemies, Stat tracking on UI, a mouse-controlled Inventory system, Items defined from JSON, a wide array of Actions that can be added/subtracted from the player's moveset dynamically, and a simple health and damage system.

It looks pretty good, in my opinion. I just got doors working yesterday, along with the creation of a map from a PNG file (makes testing easier, and I like looking at pretty patterns, not generated boxes like I was doing before.) Obviously, I'd like to get these kinds of more complex levels being generated some day, but for now I am just going to use a static map file.

Comparing this game screenshot to the concept art I first drew up, I am seriously happy with how far it's come. The project files are, admittedly, a bit of a mess. Features implementations are scattered throughout a number of files and classes - which can be frustrating, and is something I will want to tidy up at some point in the future. But, I can navigate it for now, and was able to re-learn how to navigate it after having the Summer off in America.

There is one feature on this screen that wasn't on that original roadmap of features. One that I think was super important, pretty much vital, to the project. Take a moment to see if you can spot it, if you'd like.

The Message Log!!!

Given the minimalist art-style of an ASCII traditional Roguelike, having a log of messages is essential to bring someone into the world. It turns “@ hit r” into “You swung at the Rat for 16 Slashing Damage. The Rat is bleeding!”. It turns “Oh neat, the hashtags are blue” into “You step into a cave of cobalt panelling. It is cold, and your footsteps echo on the metallic floor surrounding you.”

Adding the Message Log was surprisingly fun - because I had planned for it beforehand. It's something I might make a separate devlog about for those who are interested - it comes into how I made the Action and Turn/Time systems.

Anyways, features have been added, features have been changed, and features have been removed. The game is very much in a liquid state now - with only a few disparate pieces coalescing into something solid. In my next devlog, I think I'll try talking about the implementation of Actions, and then move on to Items in the following article. Though, if anyone reads this and is curious about another aspect, feel free to messages me or comment here and I will try and write something about it!

Thank you all for reading. And I wish you all the best,

Liam (BerneyTD)