June 4th, 2016: Runestar devlog 4/6/16: weekly update
Posted by Gravecat at 6:11 pm under Game Dev, Runestar. Comment?

Game version: 0.25.13d (pre-alpha)
Lines of C++ code: 11,588 (+1,378)
Lines of JSON data: 5,007 (+1,312)

Well. It’s been a while since my last devlog, due largely in part to my decision to slow the updates down to once-per-week summaries of the development so far. As you can see from the numbers above, things are coming along nicely, though I’m sure those of you reading this are more interested in specifics.

Without further ado, and roughly in chronological order of development (skipping over boring things like bug fixes, code cleanup, etc.):

  • [0.23.9a] Added bandages of various qualities, which can be used to heal some damage when used outside of combat.
  • [0.23.9b] Standardized the colours of various in-game messages, to make it easier to distinguish at a glance between informative, positive and negative things happening.
  • [0.23.10a] The flee command is no longer instant; instead, it causes the player to stop attacking and to seek a break in the combat in order to escape. Fans of JRPGs will already be very familiar with this, and love it or hate it, I decided it was the best fit for the game without allowing the flee command to be a sort of “get out of jail free card”.
  • [0.24.0a ~ 0.24.4a] These updates were largely focused on adding loot lists (and a lot more loot items) to the game. Enemies still don’t actually drop loot yet (aside from their weapons), but this is due to change very soon. The actual code under the hood is about 95% of the framework to make loot and shops work.
  • [0.24.5a] Added commands to see what loot/items corpses contain, and to take only specific items from said corpses. Before, looting was an all-or-nothing affair.
  • [0.24.6a] Added a new hauling skill, which determines the player’s ability to carry heavy objects. The base max-carry weight has been boosted a fair amount, and by carrying a heavy load around, you can increase that limit even further as the hauling skill increases.
  • [0.24.8a] Added a medical skill, which increases when using medical items (currently, only bandages exist) and boosts their effectiveness.
  • [0.24.9a] Added a mercantile skill, which allows the player to get more money when they sell items to shops, and levels up from nontrivial transactions. Wait, did I just say shops? That’s right…
  • [0.25.1a] Shops! There are now different types of NPC vendors who will buy and sell a variety of items, along with an auto-restocking inventory.
  • [0.25.11a] Added fortune cookies, because why the hell not, that’s why. The jump in version number is due to a bunch of boring bugfixes and code refactors that you don’t want to read about.
  • [0.25.12a ~ 0.25.12c] Quality of life door improvements, such as automatically attempting to open the door when you move in the direction of a closed door.
  • [0.25.13a] Stealth! This one was a lot of fun to work on. You can attempt to move silently whenever there’s nobody around to see, and sneak around. If you manage to attack an NPC or monster without being detected, you get a bonus sneak attack which gives 100% hit rate and 100% critical strike rate. Not too shabby! However, if you’re detected by a hostile foe or fail the sneak attack, the enemy will get an attack of opportunity which gives them the 100% hit/100% crit strike instead. Your stealth skill can improve your odds of success, but all NPCs and enemies have their own hidden awareness skill which varies.
  • [0.25.13b ~ 0.25.13d] Boring bugfixes and things.

May 26th, 2016: Runestar devlog 26/5/16: all the essentials
Posted by Gravecat at 11:36 am under Game Dev, Runestar. Comment?

Game version: 0.23.8a (pre-alpha)
Lines of C++ code: 10,210 (+401)
Lines of JSON data: 3,695 (+28)

This may not be the most interesting of devlogs today, but it’s one worth mentioning: I’ve finally cleared my to-do list of a lot of essential-yet-boring tasks, adding a bunch of boilerplate functionality to the game! This includes:

  • The drop-down status bar resize/revamp I’ve been meaning to do forever (the bar now occupies only a corner of the screen, rather than the entire top with a bunch of blank space)
  • Health regeneration! Now the player will heal damage slowly over time, though the more total health you have, the longer it’ll take to regenerate the slow way. Consumable healing items are coming soon.
  • Examine command, to see the attributes of items in the game. Not terribly exciting, but useful.
  • Splitting and re-stacking of stackable items (such as food rations or ammunition).
  • Corpses will now disappear eventually, slowly if they still have loot and more rapidly once looted (or if they were empty to begin with).
  • A flee command to run away from combat, if an exit is available. However, any foes you were fighting will remember you the next time you encounter them.
  • The skills listing (currently only combat skills) has been revamped and now looks pretty snazzy, rather than the uselessly ugly garbage it was before.
  • More in-game help files. ’nuff said.
  • A bunch of bugfixes, including some really obscure edge cases that were lurking around for a long while, and one that inadvertently made the player invincible.

I know nothing in that list is particularly thrilling, but I’m happy to have gotten a bunch of essential functionality implemented and done, so I can begin focusing on more exciting features. :3

May 25th, 2016: Runestar devlog 24/5/16: vehicles, mechs and ammunition
Posted by Gravecat at 12:24 am under Game Dev, Runestar. Comment?

Game version: 0.23.1a (pre-alpha)
Lines of C++ code: 9,809 (+481)
Lines of JSON data: 3,667 (+254)

Today I decided to completely eschew doing boring, boilerplate stuff that needs doing such as splitting item stacks or regenerating health, and instead worked on something a bit more fun: early framework code for vehicles and mechs, which also paves the way for distant-future stuff I want to eventually work on, such as airships. But enough about the future, what did I manage to get done today? Plenty!

While there’s currently no way to manage, repair, or equip vehicles and mechs outside of hard-wired debug code, I threw a couple of test vehicles into the game world to try out regardless: a tank (representing the basic vehicle type, which is slow and has terrible agility but packs powerful weapons), and a mech (representing the walker type, which has increased mobility but lower defenses). Vehicle weapons are extremely powerful compared to their hand-held equivalents, however the ammunition is expensive and heavy, and vehicles can’t reach a lot of areas, such as going indoors or climbing down ladders, limiting their use to outside, wide open spaces. I’m also going to eventually add fuel, which will be another balancing factor to vehicle use.

The other major addition today is one that I’ve been meaning to include for a long time: ammunition for ranged weapons! Ranged weapons tend to have a higher base damage than melee, along with a better chance to hit (because they can’t be parried), and the plan all along was for ammunition to act as a balance to compensate for the superior stats over melee weaponry, along with occasional weapon jams (which are currently not implemented).

Finally, I’ve implemented a much more minor feature which limits the speed at which player-entered commands are processed, stopping a player from getting an unfair advantage by being able to type extremely fast. Player input is now processed once per game tick (2 seconds), though you can still queue up a number of commands in a row if you wish. There’s also a few bug fixes and the like, but they’re not very interesting to write about, so let’s just have some screenshots instead.

Page 3 of 512345