Game version: 0.39.4a (pre-alpha)
Lines of C++ code: 15,131 (+1,476)
Lines of JSON data: 7,227 (+151)
Progress has been pretty good on Runestar lately, with the last week in particular being a manic frenzy of coding after a brief hiatus. Here’s the highlights:
- Bug fixes too numerous to list individually, along with a lot of internal optimizations and stripping out obsolete code. Also numerous tweaks and improvement to the UI/UX.
- Random loot tables have been expanded with the inclusion of coins, which convert directly into currency. In other words, NPCs can now drop money as well as items.
- Added support for maze rooms, which don’t automatically map out on the HUD and can be tricky to navigate!
- Expended the tunnels beneath the city, including a fairly sizeable maze area populated by carnivorous centipedes.
- Added a screenshot key, which can export in-game screenshots as BMP, JPG or PNG format.
- Despite being treasure, circlets, rings and amulets can now also be worn as armour. If you want to look fancy.
- Made some major improvements to the saved game format, resulting in much smaller save files and much faster reloading.
- New version compatibility system for save files: the game will now recognize any save file formats (including those from before this change was implemented) and give a more friendly error message screen if attempting to load an incompatible version, rather than crashing or worse.
- Finally solved the problem of being able to sprint across the world in no time: a new movement points system allows for brief bursts of very fast movement, though prevents players from sprinting everywhere at top speed.
- Eating far too much food can result in becoming bloated, slowing the regeneration of movement points.
- We finally have poison and bleed effects for both the player and NPCs/enemies. Critical hits have a chance to cause bleeding, and certain weapon types and monster attacks have a higher chance of causing bleeds, and/or a chance to inflict poison damage.
- Revamped ammo types for a few of the low-level firearms to give better progression (thanks to Roho for the help on this one!)
- Added longbows, shortbows and crossbows to the ever-growing arsenal of weapon types available to the player. Bows are single-shot weapons that must be ‘reloaded’ after each shot, but have extremely high base damage to compensate, making them ideal ambush weapons.
- Shops will now automatically sort their inventory to make it easier for shoppers to find what they want.
- It is now possible to eat monster body parts and use unknown medicine, though the effects are often negative.
- Added new shops: blacksmith, gunsmith and armorer, to make it easier to find the gear you want to buy.
- Implemented a new crime system — currently only covering assault and murder, though more crimes will be added later — which can eventually result in ordinary citizens turning on you if you let your crime rating spiral out of control.
- Finally, the best part of all: quests! So far, these are divided into three categories: kill quests (go and kill 5 giant spiders), collect quests (bring me 10 iron ingots), and exploration quests (go to this place then report back). Of course, quests also come with a variety of rewards! There are currently only 8 quests in the game (2 of which are repeatable), but I plan on adding a hell of a lot more as the game progresses.
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!