Game version: 0.35.0d (pre-alpha)
Lines of C++ code: 13,655 (+420 — see below)
Lines of JSON data: 7,076 (+80 — see below)
We’re back! After a fairly lengthy hiatus, I’ve recently started work on Runestar again, and there’s been a hell of a lot of progress since my last blog post. One of the most significant changes to happen since the last update on this site was a fairly huge code revamp, where I gutted and replaced thousands of lines of old code in a fairly massive revamp to completely change the control system and interface to the game. This accounts for the relatively small amount of gain on lines of C++ code and JSON data — there’s been a huge amount removed, and a similarly huge amount added in return.
In a nutshell, I’ve completely ditched the old command-based input system — where you’d interact with the game in the manner of an oldschool text adventure, with commands like GO NORTH and KILL DRAGON. Instead, it’s now entirely based on roguelike-esque keyboard commands, which are 100% customizable via an in-game keybinding screen. The old text parser was a huge part of the code and digging it all out was a fairly sizeable job, but I feel the game definitely benefits from the upgrade.
I’ll try to sum up the major changes since the last post:
- [0.28.1b] As mentioned in the last blog post, the game’s save files are now a great deal more robust and with very few exceptions, older saves can now work properly with newer builds of the game. This is only the case for saved games created in 0.28.1b and onward. There’s also a pretty cool loading screen now.
- [0.29.0a] Added a character creation screen, where you can choose a gender and initial archetype of your character, which determines skill bonuses and starting equipment. There are still no “classes” per se; one character can learn any skill given enough practice.
- [0.29.8a] Added a status command (now key) to display vital information about the player character.
- [0.29.9a] Added hand-to-hand weapons which use the unarmed skill, for players who want to go the monk/martial artist combat route.
- [0.30.1a] Added a proper options screen where you can set screen resolution and other game options, without having to manually edit a file by hand to change settings.
- [0.30.2a] Added a keybind screen where you can reconfigure (almost) any of the keys used in the game.
- [0.32.0a] Implemented a menu-based inventory system to replace the terrible old inventory management.
- [0.32.13a] Greatly improved looting items from corpses, so now you can choose individual items and/or loot everything at once.
- [0.32.25b] This is the point where the old command-based parser has been completely removed, and replaced entirely by keypress/menu-based controls.
- [0.32.27a] Added a pause key, to pause the action without having to open a menu.
- [0.32.29a] Added functionality for some mini-map rooms to be colour-coded, making it easier to identify locations such as shops and water sources.
- [0.33.0a] Added a new fast-travel system where the player can teleport between special, previously-visited nexus rooms.
- [0.34.0a] Rooms now have varying light levels based on time, weather, and other factors, which affects the success chance of sneaking.
- [0.34.1a] Fully dark rooms are now supported, where the player cannot see items or enemies nearby, but can still attempt to fight.
- [0.35.0a] Added equippable light sources such as lanterns and torches, which can be held by both the player and NPCs, and affect the light level of the surrounding area.
Game version: 0.29.7f (pre-alpha)
Lines of C++ code: 13,235 (+507)
Lines of JSON data: 6,996 (+135)
Nothing much to report this week; I spent most of the week off code as I needed a break, and the last couple of days’ of work have been stuff that’s just not interesting to read about: code cleanups and refactors, bug-fixing, that sort of thing.
The major improvements include a new universal save-file system (from this point on, a save from any version of the game will work with any future version of the game, though weird shit might happen if you try to use it on an older game version), an archetype selection screen to determine starting gear and bonus skills, and a snazzy loading screen. Aside from that, very little to report this week. Things should be more interesting next update!
Game version: 0.27.4d (pre-alpha)
Lines of C++ code: 12,728 (+1,140)
Lines of JSON data: 6,861 (+1,854)
Another Saturday, another weekly devlog! There’s been a whole bunch of changes and improvements to the project this week, and as always, I’ll skip over the boring stuff that nobody cares about (bug fixes, code refactors, engine fixes) and focus on the fun things:
- [0.25.14a] Slowed the respawn time of NPCs right down, it was a bit crazy before (mostly for testing purposes). This still needs to be tweaked more in future, but it’s a step in the right direction.
- [0.25.14j] Crunched all the audio files used by the game down into a single .fox file, rather than having dozens of loose .ogg files. Okay, not the most exciting feature, but I’m proud of it.
- [0.25.15a] Different ranged weapons now use a much larger variety of different reload sounds, rather than the generic pistol-clip reload sound. Also, renamed the project to Runestar, a move which I’m very pleased with.
- [0.25.16a] Added a HUD icon for reloading, showing both when a reload is in progress, and when one is needed (i.e. one of your ranged weapons has no ammo left).
- [0.25.17a] Added water sources from which water containers such as canteens and flasks can be refilled.
- [0.25.18a] Added disease which hampers health regeneration, can be contracted by drinking unclean water or eating raw meat.
- [0.25.19a] Added water purification tablets, which can attempt to purify unclean water with varying levels of success depending on the quality of the tablets.
- [0.25.20a] Added antibiotics, which can be taken to combat the effects of disease.
- [0.25.22a] Adjusted plasma weaponry so that it can occasionally backfire, damaging its user. This isn’t strictly a nerf, as plasma weapons were always intended to have this effect, and have a higher overall damage output to compensate for the risk.
- [0.25.23a] Added a black market vendor who sells all sorts of things you won’t be able to find elsewhere, though at an extremely inflated price.
- [0.25.24a] You can now butcher corpses for raw meat. There is currently no way to cook this meat (that’s coming soon), but it can be eaten raw.
- [0.26.0a] Finally added a respawn system. Death is no longer the end; now the player will drop all their equipment, inventory and money on the ground (don’t worry, NPCs won’t steal it and it won’t despawn) and respawn naked and at half health in a cloning facility.
- [0.26.1a] Added a fast food vendor type, starting with Pickle’s Place finally now being able to sell the player food.
- [0.26.2a] Populated Ascension Tower (the cloning facility) with NPCs and a medical shop.
- [0.27.0a ~ 0.27.2b] Finally, finally added an armour/clothing system which provides varying levels of protection from damage, and clothed all the existing NPCs in the city.
- [0.27.4a ~ 0.27.4d] Another one that’s been a long time coming — finally implemented the loot system, with enemies dropping semi-random items.