What's new in the latest build?



  • Fixed a crash if the user edited certain strings to end in a ‘%’ character.

  • Fixed a rare crash when turning off a road/pass/mountain-laying tool.

  • Fixed a crash if you destroyed an NPC while they were in the middle of handing out a quest to someone.

  • Fixed a crash if someone tries to pick up a quest from a quest-giver they had noticed previously, but who now has no quests to give out. (Introduced in 0.14.1)

  • Fixed subscribers leaving mountain passes and wandering through mountains, when traveling between regions. (Introduced in 0.14.0)

  • Mountain pass tool no longer suggests such ludicrously long passes. (Maximum suggested distance: 300m. Previously, 700m)

  • Optimisations to map visibility testing. For me, this resulted in a huge CPU usage reduction.

  • Added an extra sanity check to the software version upgrade process. Had a crash report which looked like something had gone badly wrong in it, but I can’t figure out exactly what could have happened, so I’ve added some extra debugging clues in the area to try to discern what the problem is if it ever happens again.

  • Fixed subscribers who are following a road turning around and walking backward for a short distance about 20 meters after crossing an intersection. Similarly, fixed subscribers cutting corners while following a road.

This was left over from the days when roads were scaled to match the width of roads in World of Warcraft’s Goldshire town. Now our generic roads are about a third as wide as Goldshire’s, so I don’t have to push subscribers to walk so much further when approaching an intersection, and now they have to follow the road a lot more closely than they did before (they can’t cut the corners as much as they used to, while remaining on the road!).

  • Set-Piece tool now works like the Scenery tool; place one item and the specific type of thing you placed gets deselected, but the palette where you can choose the next item to place remains open.

Bonus for folks who’ve read to the bottom of this changelist: When you’re placing scenery buildings using the set-piece tool, you can press the space bar to generate a new building layout, or press the ‘control’ key to generate a bigger building layout. These functionalities will eventually become buttons you can press, but for right now, those features might be useful. (Alternately, you can use the ‘Add Block’ and ‘Remove Block’ tools to change the size and layout of those scenery buildings)



  • While 0.14.2 fixed a crash when a subscriber tried to pick up a quest from a quest-giver who had zero quests in total, the subscribers didn’t actually notice that the quest-giver had no quests. So they’d still go up to them and try to collect a quest. And when that failed, they’d try again. And again. And so on. Until this happened:

(Image kindly provided by @Daniel)

In this build, subscribers will no longer choose to travel to a NPC who has zero quests.

Additionally, if an NPC’s quests are destroyed after the subscriber decides to travel there, but before they successfully get one of those quests, then the subscriber will be annoyed, and won’t try to collect any more quests from that NPC again for a while, even if they are given new quests in the future.

This effectively fixes the “Subscriber Magnet” problem, introduced in 0.14.2. :slight_smile:



  • Fixes a crash which would occasionally happen a few moments after a subscriber’s character dies and respawns, if you were looking at that character’s gravestone when they were respawning.

About five seconds after pushing 0.14.3 up to Steam, I received a report about a crash which occurred when a gravestone was removed from the map. This crash would have been introduced back when I was fixing the “ghost players visible on the map, but unselectable and not moving” bug, but nobody else had ever been hit by it until now, so I figured it was an ultra-rare bug that could wait for a fix until after I’d gotten some sleep.

While I was asleep, I received eight more reports of exactly the same crash, all from that same person (though I have no clue who that person is!)

If it was you, my apologies! But your crash logs pointed me precisely to where the problem was, so thanks for submitting them! :smiley:

  • Unrelated to the above (except in that I noticed it while testing the fix), I found that I had accidentally made the gravestones shrink in size about a week ago; instead of being a similar size to normal-scale players, they were drawing just a few centimeters tall; often they’d be completely obscured by the grass. Now they’re back to drawing at the correct scale again.

EDIT: And the next morning, I awoke to four more crash reports on this exact issue, crashing precisely in the middle of the code I thought I’d fixed, again all from the same user as the last ones; nobody else has managed to hit this crash even once! If this is you, please get in contact! I’d love to ask you some questions about what you’re doing to trigger this so regularly. :slight_smile:


NOTE: Steam appears to not be processing game updates at the moment; this seems to be affecting at least a few dozen games that we know about, and quite likely far more than that. As a result, build 0.14.5 is not yet available; Steam is still providing only build 0.14.4 for people, even for fresh installs. I do have 0.14.5 uploaded to Steam and set to distribute on both the ‘default’ and ‘test’ branches. I imagine that this is only a temporary problem, and once Valve has their build updates working again those updates should go out to testers. Apologies for the inconvenience; there’s not a lot I can do about this delay!


  • Fixed that crash about characters dying and respawning, for realsies this time!

@j0hn21792 was our mystery crasher; the only person who was getting this, and was getting it a lot; like, twelve times in the last 24 hours. With a description from him, I was able to reproduce the bug. Thanks for sending in those crash reports, and putting up with them! :smiley:

The crash appears to have been occurring if a player died, respawned at a graveyard, left the graveyard, and died again, all without a single frame being drawn between the deaths. This meant that it would probably only happen on extreme fast-forward, and even then not reliably. Fixed now, though!

  • Fixed a potential freeze at the start of a day, if you have at least one award.

If the game was considering giving out an award which you already had, the game could get stuck in an infinite loop. Nobody has reported this yet, so I’m hoping that it was really rare, and I’m the only one who has seen it. :slight_smile:


UPDATE: Valve reports that everything seems to be back working again, as of about an hour ago. I’ve got 0.14.5 showing up in my Steam client now, and hopefully everyone else does as well!


Very small patch today; this sort of Unicode string processing change always makes me jittery, so this one’s going out all by itself. :slight_smile:


  • Text edit widgets now remove leading and trailing whitespace from strings entered by the user, after the user finishes editing them. (That is, once the GUI focus moves away from the text edit widget)

This should fix the Windows-only bug that’s been around for months, where Windows silently removes spaces from the end of the game’s directory name. Now we remove spaces from the end of the game’s directory name before Windows can do it and mess us up. (And for the sake of symmetry, we remove spaces from the start of the name as well)

  • Fixed a bug which let you move the text cursor one position past the end of a string, if you moved it using the arrow keys (rather than using the mouse cursor)



  • Text edit widgets now strip whitespace when they lose focus; not just when the user hits ‘return’ to finish editing.

This should actually fix the Windows-only “crash if you create a game which has spaces at the end of its name” bug, which I’d tried to fix in 0.14.6.

  • Fixes a subscriber AI bug which could cause AI states to become confused about where they were, after being distracted by a quest giver.

This could result in players setting their homes or logging out in the middle of a street, instead of at an inn, and similar misbehaviours, when quest-giver NPCs were nearby.

  • I’ve had a report of players who appeared to be fighting invisible monsters which were nowhere near a monster zone. I’ve added some extra sanity checks to try to prevent that from happening.

I’ve been unable to actually reproduce this described behaviour, but I found a few suspect bits of code which I’ve tightened up to be more robust. Similarly, when choosing to fight a monster, we now actually double-check that the monster we’re fighting isn’t already dead, and etc.

  • Developers no longer automatically scan for monsters which have spawn points dangerously close to a road and move them away; that’s the player’s job.

Also, as games grew and had more and more monsters in them, that became far more expensive to calculate.

  • Some extra sanity checks in network cable placement.

  • Fixed a minor memory leak when exiting the game.

  • Don’t save terrain type height-map images into the user data directory.

So… uh… we were accidentally saving out small png images showing certain generated terrain types, during the loading sequence. It was done for debugging purposes, way back when I was originally writing the terrain shape generation code, and it was never supposed to go into a real build that went out to other people.

Turns out, it’s been included in every build that has gone out to anybody since… uh… late 2014.




  • Fixed a bug which was causing subscribers to recalculate their paths far more frequently than necessary.

This makes a massive speed improvement; in a saved game from @Daniel with about 6000 subscribers, about 2000 of whom are logged in and playing, this is now running at about 55fps for me, where it was running at about 35 fps before.



  • Disabled particles in the ‘Network’ view across all platforms; they were being drawn in a silly way which seriously hurts performance as a game gets bigger. I’ll reimplement these in a more sensible way, but for right now I’ve simply disabled them.

  • Temporarily disabled drawing of player names above players’ heads.

(This was accidental. They’ll be back in the next build!)

  • We no longer render the ‘Network’ view unless you’re actually viewing it. (Previously, we drew it and then threw it away).

  • In the initial tutorial, the steps teaching how to zoom and rotate the view now complete a lot faster, particularly if the game is running at a low frame rate (in which case they took an almost absurd length of time to complete. If you were running at 30fps, the zoom step, for example, could take upwards of 18 seconds of zooming!)

  • If a developer job or GM trouble ticket can’t be completed for some reason (most usually because the developer/GM can’t see a way to get into the region where they’d have to go), that job or trouble ticket now gets deferred to the back of the job queue. Previously, that uncompletable job would stop up the job queue, preventing any later jobs from being worked on.

This still needs some more work, to let the player know that there’s a problem. But this fix at least makes that sort of problem look less catastrophically stupid.


(Version 0.14.10 supposed to go out last night, but was aborted; I believed it was going to contain this fix, but it didn’t work when built from the build server. It took me a while to figure out why builds from the build server were performing substantially worse than ones I built locally. All sorted out now, I believe!)


  • Big performance improvements in all builds, but most particularly to the Windows build, which now seems to be performing in line with the other builds.
  • Double-clicking on an object now focuses the camera on it, as if you’d clicked the ‘Focus’ button in its info window. (Caveat: this only works for objects which you can select)



  • Fixed a bug which could result in a single subscriber unsubscribing multiple times, providing multiple instances of negative buzz and being counted multiple times.


  • Brought back rendering of player names, status information, and conversation icons

These were temporarily removed in 0.14.11, as I was tracking down the Windows performance issues, and forgot to put them back before issuing a build.

  • Fixed an issue in the GUI which could result in black blotches in the title screen and loading screen, if you had bloom and MSAA enabled.

Why are you still using MSAA? The cool kids are all rocking SMAA, these days!

  • Terrain style tooltips now update correctly

Previously, each button had a static tooltip, even though the icons were updating correctly as you moved from one region to another.

  • Sped up camera rotation by default, by a factor of 2. (There’s always been a hidden ‘turn speed’ preference which can adjust it, but its default value was absurdly low)

I should either get rid of that preference, or else show it in the Options window. One or the other.

  • Smoothed out camera rotation.

You can now really fling the camera around, if you’ve a mind to.

  • You can now move the view faster if you hold left shift while moving the camera.

Requested by a friend. I’m unconvinced, but have a play with it yourself and see what you think!

  • When opening a combo box widget, it now ensures that its list of options fits entirely on the screen.

Previously, the list could go off the top or bottom of the screen. Now it moves the list up or down, to make sure all options are visible and selectable.



  • Quick hotfix for a crash during new game creation, introduced last night in 0.14.12.


Apologies for the general quiet for the last few days; I’ve come down with a pretty nasty chest cold, so work has been quite slow. I’m hoping that I’m starting on the mend, now. Crossing fingers!

0.14.14 - The Coughing, Sneezing, Aching-Head, Fever, So-You-Can-Sleep Build!

  • Slightly more intense lighting.

We’re now doing proper HDR lighting, including a tone mapping pass. As a result, the world looks somewhat brighter, shadows look darker, and we also have better detail visibility in those dark areas.

Also, water is now using the same lighting model as the rest of the game, instead of having its own custom lighting code.

  • Fixed a crash if you viewed the subscriber list after you had about 8,000 active subscribers.

It was overflowing the buffer which stores rendering commands for the frame.

I had been very careful to only submit rendering commands for subscriber records which were actually visible in the GUI (you can only see a few dozen names at a time in the scrolling list), to prevent exactly this problem. And yet, it still happened, once the number of subscribers was big enough.

As it turns out, while I had done the hard part (draw only the visible names), I had forgotten the easy part; draw the alternating-row-backgrounds only for visible rows. So with 8,000 rows in the list, it was drawing 4,000 alternate row backgrounds, and those draws of alternate rows which weren’t even visible was overflowing the render command buffer. Oops!

Now we draw all the row backgrounds (both even and odd-numbered rows) using a single draw command, using a shader to programmatically draw different colors for the different rows, instead of drawing 4,000 row backgrounds separately. It’s all much more sensible this way!

  • Fixes a crash if you destroy a quest’s destination building/zone while you have that quest selected, with its arrows visible on the map.

The game was trying to update the arrow to point to the building/zone, which no longer existed.


This latest update took a while; this was in part because I was sick for most of it, and in part because it’s just a lot of changes (this is the first build where it’s gotten through the build server and been up on Steam before I finished typing up the changelog!)

I hope you enjoy these adjustments to the game! :sweat_smile:


  • A new challenge for people: all game regions now have a maximum capacity. Currently, this capacity is 500 users per region. When a region is full, more users trying to log in will go into a login queue, and will log in only once there is space. Additionally, overloaded regions tend to generate bugs somewhat faster than normal.

A common problem I’ve seen in virtually every saved game other people have given me is having just one starting area, and having far too many subscribers in that starting area. This leads to all sorts of problems, most notably that there simply aren’t enough monsters and monster areas to support so many subscribers in a small space, so those subscribers are unable to gain experience points to gain levels, everyone becomes unhappy, and things just spiral out of control.

In an effort to solve this problem by adjusting the game rules, I’ve set it up so that people can no longer log into regions which have too many people in them. Now, the game provides more feedback about that problem, and guidance about how to work around it (for example, by adding more regions, so that folks can more evenly balance their subscribers between different areas)

You can view how many players are currently waiting in a region’s login queue by selecting the region. Regions nearing their maximum capacity draw their mountain borders in red, instead of black. Users can always travel between regions, even if one or both regions are already overloaded; it is only logging into an overloaded region that is now restricted.

  • Related to the above, if all regions containing starting areas for level 1 players are overloaded, you will receive no new subscribers until there’s space available for them to connect for the first time. (Those potential-subscribers who try but fail to subscribe do not currently provide negative publicity, but that’s likely something I should add in future)

  • If you’ve got lots of money, you can now place extra servers in a region. Each extra server provides an extra 100-subscriber capacity to that region. Servers are very expensive, though, and consume a lot of bandwidth. In virtually every case, you’re much better off setting up an extra region instead of installing new servers into an existing region!

Extra servers must be connected directly to your network grid and be fully powered, in order to function. I recommend connecting them directly to an uplink via network fiber.

  • Adds an “Alert” system. When certain events occur, a colored indicator will appear along the right edge of the screen. You can click on that to get information about what has happened, and (when relevant) zoom the camera to the location.

There aren’t many alerts right now. The major ones are notifications about regions which have become overloaded, and about the “you can’t get new subscribers right now” condition.

Some old functions have been converted into alerts; most notably, the daily financial update, and the notification of having won an award now both appear as alerts, instead of as pop-up windows.

I expect that a lot of new functionality is going to be added to this system; it’s something we’ve needed for a very long time!

  • Increased the cost of network uplinks from $2,000 to $5,000.
  • Decreased the cost of network fiber from $20 / meter to $2 / meter.

The combination of these two changes (increasing the cost of uplinks and decreasing the cost of network fiber) means that it’s now usually a good deal cheaper to run network fiber to siphon bandwidth from one region into another, instead of placing new uplinks into each new region.

Also, network fiber was absurdly expensive before. I totally failed at economy design when I initially priced it!

  • Fixed a bug where subscribers who completed a quest by visiting a building were getting confused, and acting as though the NPC quest-giver was immediately outside the building. As a result, these subscribers would turn in their completed quest immediately after walking out of the building. This is now fixed; subscribers do now return to the quest-giver to turn in their completed fetch quests. (when the quest requires that)

  • Fixed characters sometimes appearing larger or smaller than they should.

  • Various optimizations when the game is paused.

  • Walls now obey region tint.

  • New model for the turrets on walls.

  • “Current users online” display now scales to 10,000 users (was 1,000 users)

  • GUI meters can now display values greater than their declared maximum.

I forgot to mention this change in the original changelog, so I’ll just put it here:

  • Starting points no longer work if they aren’t connected to the network grid.

Previously, new subscribers could spawn at “starting point” structures, even when those starting point structures weren’t connected to the network. Oops! Now those starting points are considered invalid whenever they’re disconnected from the grid.



  • Fixed cursor collision tests against roads.

This makes it possible to destroy roads again; I accidentally broke this in 0.14.15.

  • Scenery no longer snaps to roadsides.

Scenery didn’t snap to roadsides in 0.14.15, either. But in 0.14.15 it didn’t snap because it didn’t realise the cursor was over a road. Now we realise the cursor is over a road; we just don’t care. :slight_smile:

  • New graveyard model.

Screenshot from 2017-08-21 22-15-57

  • Ghosts are now white, instead of red.

I made ghosts red a few weeks ago, in order to debug a few rendering issues, and forgot about it; accidentally checked that in! Ghosts are now white again. (Oops!)

  • Fixed game cursor very rarely being completely invisible.

I’ve never actually seen this happen in the real game; only in some of the dev tools, so it may not actually be possible to have happed in the game.

  • Fixed alert list to move into the correct position on screen if you change game resolution while the game is running.

  • Initial tutorial progress now gets saved/restored. If you start a new game and quit out of the game during the initial tutorial, your rough position through the tutorial now gets saved/restored when you load the save game.

This is actually the big line item in this build; the tutorial is now a “scenario”, which is a set of supplementary game rules which can be activated while the game is being played, and also remembers your progress.

You should see more scenarios in the next build. This was just the initial proof of concept for making them work in a way which can be saved/loaded, and also survive updated builds which change scenario definitions.



  • Compressed, binary save games.

New saved games are now approximately one tenth the size of identical saved games from version 0.14.16 or earlier. Additionally, they load and save in a small fraction of the time they took before.

The game still supports loading older, text-format saved games, but new saves (including periodic saves and autosaves) will all be in the new, faster binary format.

I will eventually provide a simple tool which can convert saved games from binary to text format and back again. But that’s not ready yet.

  • Adds a ‘Saving’ indicator to the screen when a save is in progress, just so you’ll be aware that it’s happening.

There’s still a short freeze at the start of a save process. For a particularly large game, that freeze might last for almost a second. This is something I still need to make nicer. But at least we’re not locking up for 10-12 seconds during a big save like we could be, before!



  • Fixed extremely slow pathfinding in regions where walls were located.
  • Fixed a crash which could occur if a chose to unsubscribe while waiting in a login queue (because the region they were trying to log into was full)
  • Fixed character scaling while the game is paused.
  • Fixed particle lights to be visible again.

Particle light brightness wasn’t adjusted, when we switched to HDR lighting back in version 0.14.14. As a result, all the lights were so dim that you didn’t really even notice them. Now they’re highly visible again.


(edit: this build is having trouble being uploaded to Steam. Working on it! Might be an issue on the Steam side, though. Will update the post when the build is live.)


  • Smoother transition back from game to the title screen.

You all probably know by now that I’m a complete sucker for nice transitions. The transition from in-game back to the title screen always felt really, really abrupt to me, and I’ve always wanted to implement a nicer way to get back to the title screen. I’m pretty pleased with this. It’s snappy, it (mostly) covers the autosave… who could ask for more?

  • Save file deletion now works for binary-format files.

The new binary-format save files now have a file extension (".vrz"). The deletion function was only trying to delete files without an extension, before.

  • Fixed coloration of various elements in the loading screen.

A silly bug led to material colours being ignored, when a model had vertex colors. This has now been fixed. I believe this should only make a visible difference in the loading screen. (And even then, it’s a subtle change; certain lines which were supposed to be drawn as a very pale yellow were instead being drawn as pure white)


0.14.20, 0.14.21

Both of these builds were attempts to get the Steam Linux build working again; it broke in 0.14.17, and I just didn’t notice until now. (My own builds ran fine; Just the official Steam builds didn’t work.)

Eventually found the issue, though! 0.14.21 now runs on Linux again.

There should be no visible changes between 0.14.19 and 0.14.21, for anybody on Windows or Mac builds.



  • Players, monsters, and NPCs now have shadows (when shadows are enabled).
  • Adjusted general lighting brightness to approximately match earth-normal.
  • Reimplemented bandwidth visual effects on uplinks and WANs (now with vastly improved performance!)
  • Fixed buildings, scenery, and walls to correctly tint along with the map, as the map view mode changes.
  • Fixed a bug which stopped you from dragging an object which was already selected.
  • A whole bunch of minor visual tweaks.