It's been a pretty productive week!
On Tuesday, I concluded that it was time to re-enable nightly builds. The usual caveats apply: *these are unstable, may not work, saves probably won't survive upgrades, and a LOT of the game is yet to come - so view it as a tech demo gradually evolving into a game*. With that said, I also wanted a better solution than throwing builds up on a creaky old server in our data center - so I put the game up on [itch.io](https://thebracket.itch.io/nox-futura). I did an absolute minimum of promotion, the game isn't even remotely ready for that (and Windows only for now, I'm 99% of the way to getting Linux/Mac back on the supported list but testing is required). So I was pleasantly surprised to see a few downloads (29!) and the analytics system start to show some data.
- The game has been opened 203 times, 176 in full-screen mode. (I don't run in full screen when I'm developing, so I can be pretty sure those weren't me!)
- 152 of those sessions went into the game, most of the rest changed settings and restarted.
- 3,165 living things were spawned. 215 sentient creatures were slain, 4 other things died.
- 116 tiles were mined out, and only 10 trees chopped down. 9 buildings were completed. These are rather low numbers, making me worry that people are having problems.
- The average session lasts 15 minutes, ranging from 2 minutes to a little over an hour (there's also one outlier where I left the game running overnight to see how plant growth would do, and make sure nothing crashes/leaks).
Preparing for itch.io
- Added a new build-type to Visual Studio (and fought with `vcpkg` to handle it), "Publish". This type of build turns on all the optimizations (including Whole Program Optimization), disables debug info, and takes a really long time to compile. I even had to change some settings because it was running out of RAM and dying! That's ok, it's intended for occasional releases.
- Created a batch file that creates a `c:\nfdist` folder, makes a datestamped folder for the daily release, and puts the Publish build in there along with all the files required to play. It then calls `butler` and puts it on itch.io. Butler rocks. :-)
- Various bits of website maintenance, including getting the main site caught up on Sharing Saturday posts. I really need to find a way to automate some of this, since I really want my dev posts to go on Reddit, to my website and to my itch.io devlog.
- Finished getting a working build on Linux Mint and Mac OS X. I need to test these before adding them to the release streams. This took longer than it should. C++ is great, but it really needs a more standardized build/dependency system. (I've tried Conan.io, but it kept failing on me; vcpkg is awesome, but Windows only.)
- Now I'm wrestling with how often I should update the pre-alphas. It's really easy to push an update out, but I don't want to annoy users of the itch.io client too much. Maybe I'll synchronize with Sharing Saturday, and post builds as they are announced.
Mining System Updated
- Cleaned up some global variables, increasing compile speed and making a better optimization target.
- Rewrote the "cursor" code path to share data between display modes. Faster and more maintainable.
- Extended the "mine painting" system to give you more brushes. You can expand the default 1x1 to nxn in the GUI, or you can switch to a circle (pick a radius) and paint circles for a more organic look.
- Added the ability to save your designated mining area to a template, and then use it as a brush. So if you want to carefully designate a realistic map of Khazad Dum and share it with people - now you can. More likely, it lets you save favored room designs for quick re-use.
- Added a "stairs helper". Stairs are one of the most common problems to trip up Dwarf Fortress newbies; it isn't entirely intuitive that digging "down, down, down" will drop you at the bottom of a staircase with no way back. When designating stairs, you can now specify a depth - and the designer will take care of "down, up/down, up" patterns for you.
- Did a bunch of work integrating mining with the improved job system (below).
- Fixed a silly bug that wouldn't propagate the mining distances to the west. So you could dig west all you want, but you'd never find mining jobs to the east! It took ages to find this, and it turned out to be a 1-line error.
Most things you do in game are a simple matter of "collect component, take it to workshop, roll skill, run reaction, enjoy result." Some things (mining, lumberjacking, farming) work differently - and I wanted to make their handling both more explicit and more obvious.
- There's a new Jobs Panel (J, or the menu). Here, you can see who your miners and lumberjacks are, a summary of the relevant skills/attributes to help you pick, and you can hire/fire them. Hiring them reserves an appropriate tool for them.
- Only miners who are tagged as being miners will perform mining work. They will hang on to their tools, and keep working so long as it is their designated work shift. Likewise, only designated lumberjacks will chop down trees.
- There's some placeholders for expansion here, it is meant to branch into the "uniforms" system when militaries come online. It also makes sense that being hired would make happy thoughts, while being fired would do the reverse.
- In 3D/Voxel mode, if you have a mining or lumberjacking tool it is now shown on you. In ASCII mode, settlers are color coded.
- Fixed tool-tip display of vegetation information for tiles. Fixed the "harvest result" showing a raw tag rather than an item name.
- Fixed display of different plant types in ASCII mode, making for a more varied ground.
- Plant growth is restored, and plants gradually work through a "germinating, short, long, flowering" cycle once more. It's slow (plants aren't known for their reflexes), but it ensures that grazers eating things doesn't lead to a wasteland.
- Added rendering of plant status to 3D mode.
- Changed world-gen to have plants start in a "germinating" phase in winter, and later phases as the year progresses. You are also more likely to get appropriate soils at the top level of the map.
- Substantial raws work to combat Lua being non-determinant in the order in which things load. It bites me in the bum regularly, but you can't count on a Lua array being in the same order in which one typed it.
- I tried a voxel-based approach to plant growth, but it was too slow. Ended up using textures, which need some work.
- Fixed an issue that was preventing entities from wandering aimlessly across the map.
- Fixed a bug that if you had two staircases in the same terrain chunk they wouldn't all render properly.
- Fixed up various material issues that were making soils look like cement.
- Generally lightened things up.
- The Reddit /r/roguelikedev FAQ Friday reminded me to re-enable some debug features!
Screenshots from this build
Get Nox Futura
Leave a comment
Log in with itch.io to leave a comment.