What's new in the latest build?



This is a quick experimental build, intended to get feedback about performance.

  • Converted ALL color buffers from RGBA8 to RGBA16F. In theory, this will probably make performance worse. I’m interested in how much worse. If you’re a tester, please give it a play and send me a note to let me know if you notice a performance degradation. (The benefit of this is that it fixes a couple minor visual problems, most noticeably in the SSAO).
  • You can now look around freely when the camera is within 200m of the ground (previously, was 2m of the ground).
  • The camera no longer “swings down” as you zoom in within those final 200m. This means that during the last moments of a zoom, you have more of a feeling of “floating downward” instead of “rushing forward”. I think this makes the camera feel more controllable, but I’m open to alternate opinions.
  • Previously, camera movement speed was constant at 100m height or lower, and scaled up as it went higher. Now the camera speed drops as it goes lower than 100m. This makes it much easier to precisely move the camera when you’re down close to the ground. As always, if you want to travel a long distance, zoom out first; zooming out makes the camera move faster!
  • Lighting, fog, and SMAA antialiasing calculations are all now done in linear color-space, instead of in sRGB. This makes them automatically better.
  • Tweaked SSAO configuration again.

Edit: …and immediately after pushing it live, I’ve noticed that water rendering has been completely broken by the change to the color buffers (at least, when you’re near it. Looks normal when you’re looking down at it from far away). So uh… maybe ignore the water in this build; it’ll be fixed in the next one! :slight_smile:


Another quick patch, mostly being pushed out to fix the water rendering bug from 0.12.67, yesterday.

  • Fixed the water SSAO bug introduced in 0.12.67.
  • Fixed a crash if the user tries to add a building block to a building which doesn’t use blocks. (oops!)
  • Fixed network connections sometimes drawing with a negative alpha value. (This created what looked like “glowing” darkness. It’s actually a pretty neat effect that I might use for something later on, but wasn’t appropriate here)
  • Boosted camera speed when close to the ground; I think the speed drop I made in 0.12.67 was a little too extreme, so I’ve backed it off a little.
  • Fixed a very subtle bug in the lighting code, which would cause weird highlights on objects within about a meter of the front of the game camera.
  • Fixed a rare lockup if the game’s pathfinder generated two points on a path, both in exactly the same position in the world, and at the very end of the path. I’ve only seen this happen once, immediately after loading a saved game, and this sort of lockup has never been reported to me before… but it’s fixed now.
  • Improved the shadow rendering logic. “High” quality shadows now look about as good as “Ultra” used to look, and the lower quality levels look a lot better than they used to, but still need some more love. I have plans to improve all of these further, but that probably shouldn’t be my main priority right now.
  • General minor tweaks to shaders.



And with this, my task list for Milestone 13 has been completed. I’m going to let the current group of testers play with this for a few days just in case there are any showstopper bugs (and I’m going to try to get replacement models for a few bits of programmer art), and then I’ll start inviting a new, larger round of testers. Thanks so much to everybody who’s been testing so far! Your feedback and bug reports has been massively helpful!

  • Re-enabled region tint on models. Oops. Not sure how long that’s been disabled. (Buildings, scenery items, characters, etc. weren’t correctly picking up any tint set on the region they’re in)
  • Zones can now be selected from the main map screen. There’s nothing particularly useful you can do with them, but since you can see them, I figured that you ought to be able to select them.
  • The MMORPG Overview window now has a “Finance” tab which will show you a graph of your finances over the past ten in-game days. Note that old save games won’t have data for days you played before upgrading to this build.
  • Scenery placement works again. (Not sure when this broke, but scenery you placed wasn’t being drawn immediately; it wouldn’t appear until after you saved and reloaded, or until after you edited the terrain under the non-visible scenery)
  • PCs, NPCs, and Monsters now correctly move their model if you drag them around while the simulation is paused. (Previously, they wouldn’t visibly move until you unpaused the simulation).
  • Adjusted SSAO so that I can configure it differently on different objects. Think I’m finally pretty happy with it and will stop messing with it so much from now on. :slight_smile:
  • Reduced WAN bandwidth distribution distance from 800m to 500m. Still probably overpowered, but not as absurdly so.
  • Increased WAN cost from $2000 to $6000. Still probably overpowered for its price, but at least now it’s costing enough to maybe dissuade people from always using them instead of cheaper cabling.
  • Added an admin request tutorial step to set up network components. This request occurs immediately after placing a graveyard. Note that this request will only be triggered if your MMORPG hasn’t yet reached version 1.0.0.
  • Changed the way that paths/pipes are placed. Previously, the whole path/pipe would bend to try to smoothly reach the positions you clicked upon. But as a result, depending upon what you did at the end of the path, earlier portions of the path might bend around, and as a result, an earlier portion of the spline which previously was valid, might bend into an invalid position. This doesn’t happen any more; if you click down a path position, the whole in-progress path up to that point is now locked in place, and will not move in relation to where you choose to place subsequent path positions. I think maybe I’m over-explaining this. Just try it; I think it’s lots better. (Drop me a note and let me know what you think!)



  • Version upgrade dialogs were allowing you to upgrade your game’s major or minor version number without selecting a reward. This is now fixed; you must select a reward to receive before you’ll be able to increase your major or minor version number.
  • Fixed a crash bug which occurred if the player upgraded their major version number without selecting a reward. (This should no longer be possible to do, but if somehow it can still happen, it at least shouldn’t crash any more)
  • Fixed a bug which allowed the player to select any technology when upgrading their major version number; they should only be able to pick an unlocked technology item, of an appropriate tier for their new major version number! This could result in someone having a game at version 1.0.0 which hadn’t yet developed the technology to let players log in. (oops!)
  • Fixed a minor text truncation issue in the list of available admin requests. Now text is truncated between words, instead of often happening in the middle of a word. When truncated, text is now followed by an ellipsis.



  • Fixed the tutorial’s tab indicator remaining present on the “inspect” action bar tab after the tutorial has been completed.
  • Added some sanity checking to the Save Game dialog, to ensure that the requested save game name isn’t absurdly long and doesn’t contain illegal characters. There may still be some problematic edge cases around this, but it should be a lot less fragile, now.
  • Reduced the specular highlight on terrain. It was making it difficult to distinguish between the “black” unowned terrain and the “grey” owned terrain, in the network view. Now it’s much more clear.
  • Cursor now changes to draw in red, if you’re trying to place a building, node, path, or pipe in a region that you haven’t activated yet.
  • You can no longer place new buildings or network nodes in regions you haven’t activated.
  • Fixed the VectorStorm library’s reading of files containing DOS-style ‘\r\n’ linefeeds. This should fix problems that some have had in editing their preferences files in DOS-format text editors like notepad. Additionally, this also fixes the crash reporter’s identification of build number and platform type, on Windows computers. (Not that anybody but me cares about that last bit)
  • Fixed a handful of memory leaks. I hadn’t realised that I had disabled checking for these a few months back, so there were a lot to fix, once I noticed and turned tracking back on! These were mostly inside VectorStorm itself; mostly shader reloading and Texture Buffer Object support.



  • The game was ignoring the ‘Show Tutorial’ checkbox, when creating a new game, and always started up the tutorial sequence whenever you created a new game. Now fixed.
  • Fixed network simulation not working as well at high simulation speeds as at lower simulation speeds.
  • Updated most of the models for utility buildings; they have doors on the correct sides of the models, now! These are going to change again in a few more days; please don’t get too attached to their current sizes, yet!
  • Adds a placeholder model for a dungeon entrance; not yet functional.
  • You can no longer select network nodes/pipes when the ‘network’ tab isn’t selected. (Previously, if you happened to click on the map right where a network node or pipe would have been visible in the Network tab, it would select the node/pipe even though you couldn’t actually see it)
  • When you request a building be destroyed, it now gets destroyed immediately, instead of lodging a developer job for a Developer to demolish it.
  • Buildings and scenery now “De-rez” when destroyed, instead of merely vanishing.
  • Changed the appearance of buildings which have no network connection; should make them much more visible. Note that this has only been implemented for simple functional buildings so far (Inns, Taverns, etc). Generic buildings and Zones will get a similar effect eventually, but it hasn’t yet been implemented.
  • Similarly, when creating a building, the building tries to connect to the network immediately, instead of waiting a few seconds. If the building has no network access, its rez effect will be drawn in red, rather than in blue.



  • We now use a simple “clustered lights” setup in order to support multiple lights in the world. (Are people interested in the technical details behind this? It’s kind of the fancy bleeding-edge graphics technology right now) Right now these extra lights are only attached to combat effects. A silly amount of work went into this; it’s probably not something I needed to implement. But I always give myself a little tech treat like this at the end of a milestone.
  • Line graphs now correctly update when new data comes in. (Previously, new data would come in, but the line graph wouldn’t update until you closed and re-opened the window, or otherwise changed the view).
  • MMORPG Overview window now updates its contents immediately when a new day begins, instead of waiting for the next update cycle. (Ordinarily, it just updates once every 15 real-world seconds)
  • Fixed a bug with characters not correctly scaling when the simulation is paused.
  • Fixed a bug which caused buildings to lose their network connection when they were jostled by changes to the terrain shape near them. (Most commonly caused by the placement of a new path very near the building).

Edit, 9 hours later: Oh, and we’re also now using SDL2’s GameController functionality, for automatically mapping game controller joysticks/buttons to game functions. MMORPG Tycoon 2 isn’t really playable using a controller at the moment; we’re really mouse & keyboard only. But I like to use a gamepad to fly the camera around when I’m recording videos, and this made that easier to do.


Hold on… found an issue in 0.12.73; please don’t run it if you haven’t already (could plausibly cause a GPU driver lockup). Hotfix coming very soon!



  • Fixes a potential GPU driver lockup bug in 0.12.73, which would happen as soon as the game started to draw the map. (Under Windows, this would result in the game going unresponsive and the GPU driver restarting after a few seconds) This was caused by some uninitialised memory being accidentally passed into the game’s new lighting shaders, before any extra lights were created. Now that memory gets properly initialised at startup.


…and a crash if you don’t have a game controller connected to your computer (even though we don’t really use game controllers). 0.12.75 incoming!

I’m amused at how long it took me to notice the “crash if you don’t have a game controller connected”. Turns out that virtually all of my test computers have at least one controller of some sort connected to them, even though I’m not currently making a controller-focused game.



  • Fix for a crash if you don’t have a game controller connected to your computer, when starting the game. (Crash was introduced in 0.12.73)



  • Building network nodes now actually costs the money they claim to cost. (Oops!)
  • Fixed a crash if you tried to lay a single stretch of network cable in such a way that the area to which it supplies bandwidth formed a loop with a hole in it. This now works properly.
  • Auto-created scenery is now correctly restricted inside the region. (Previously, it was restricted inside a box drawn around the region)
  • Auto-created scenery now tries to avoid being placed in the middle of a path.
  • Reduced the size of the largest rez grid (from 100m cubes to 10m cubes)
  • Players in conversation now play a “conversation game”. Only one person will talk at a time; the other people react to them. (Previously, everyone spoke simultaneously). This should have minimal impact on the simulation, but it was weird having everyone talk all at once. Now it looks more like an actual conversation is going on. Additionally, listeners turn to face the talker, instead of everyone facing toward the middle of the group. Also, the general behaviour of players moving around in a conversation circle has been improved a lot.
  • Players now have thoughts about the environment around them. These thoughts are fairly simple right now (interesting/boring surroundings, too many/too few other players nearby, etc), and they don’t actually affect the most important parts of players’ AI states yet (how happy they are, how well their needs are being met). But that’s coming. And these thoughts do show up in the “Thoughts” panel in each player’s info window, as well as in aggregate form in the MMORPG Overview window.
  • When creating a new game, you now get a reasonable default set of classes and monsters, instead of having five different “Warrior” classes and five different monster types which all looked like crocodiles.
  • Fixed point lights to not cast silly amounts of specular highlights on the terrain. (Specular highlighting from point lights now matches the specular highlighting from the primary directional light)
  • Modified the rendering implementation for a lot of UI elements, to make them look nicer when anti-aliasing is disabled. Most notably the cursor, and virtually everything in the loading screen.
  • Digital dotted lines in the loading screen now try not to move such that the camera will move through them. This should dramatically reduce the strobing that used to happen when the camera happened to move straight through a whole string of dots.
  • Individual dots in the digital dotted lines now resize themselves so they are no smaller than a pixel on the screen, no matter how far away they are. Similarly, the digital solid lines ensure they are no less than one pixel thick no matter how far away they are. This dramatically reduces the amount of flicker and moire in the loading screen, when MSAA isn’t turned on.
  • Adds a “VectorStorm Presents” element to the loading screen, when creating a new game.
  • The loading screen now shows the MMORPG game name shortly before the loading process ends.
  • SMAA anti-aliasing now only affects the world render, not the UI. This fixes the issue that text and other UI elements would appear messy when SMAA was enabled. (Which is a huge relief to me, because I like SMAA and that messy text was really upsetting me.) I think there’s now no longer any real reason to use MSAA, rather than SMAA. But both options are still available, as well as simply turning anti-aliasing off entirely.
  • Adjusted strength of ambient occlusion effect.
  • Fixed the drop-shadow under certain UI elements, so that its corners better match the corners of the item being shadowed.

EDIT: Also, fixed a bug in which players who were wandering around in a new region would notice buildings further away than 100 meters, instead of buildings closer than 100 meters. They were, in effect, completely blind to any close-up buildings, and only knew about distant ones. Now they correctly see the close-up ones, and are unaware of the distant ones (until they’ve been discovered)


Currently wending its way through the build server; should be up on Steam within the next half hour or so (EDIT: Now live!)


  • Fixed a massive performance problem during the map rez sequence, when loading a saved game with logged-in subscribers; even on an GeForce 1080 at the smallest supported resolution and with only 200 logged-in users, I was dropping to 20fps during that initial map rez. Now the 1080 is positively bored, and rendering at 200 or so fps.
  • Fixed a huge bug which caused simulated players to think that monster zones were much further away than they actually were (like, as if they were on the other side of the game world). This resulted in them refusing to go visit a monster zone except when a quest sent them there. Most notably, they would never choose to grind to kill monsters to gain levels, because they thought the zones were too far away.
  • In the same way that simulated players remember buildings and quest-givers that they get near, they also now remember monster zones they’ve been near. Even if they don’t interact with them now, they’ll remember that they exist, and consider visiting them later.
  • Simulated player memory has been extended. Previously, they would remember a building (and its prices) for the rest of the day, and all of the following day. Now they remember it for the rest of the day, and the following three days. Additionally, if they see the building again during that time, the expiry date of their memory gets reset (this wasn’t the case before). This also affects Zones. Net effect of this is that you don’t necessarily need to create lots of quests to keep sending people off to distant monster zones any more; as long as a player has visited a monster zone once, they’ll remember that it’s there for several days and may choose to return on their own accord.
  • Adjustments to edit camera behaviour, because that’s what I do. I’m not going to promise this is the last time (because none of you would believe me), but we’re finally homing in on something that’s mostly working for me.



  • Adds zone info window, where the contents of a monster zone can be customised.
  • Lowers the default density of monster zones (this will not update automatically on monster zones created in earlier versions of the game, but will update the first time you modify each zone)
  • Added some animation to the selection ring.
  • Graveyard model now faces the correct direction. (Still needs some minor edits so that players correctly enter through the opening in the fence, but at least they’re reasonably close, now)
  • Fixed digital front plate sometimes not being correctly aligned with the camera (based upon window resolution). This one has been annoying me forever.
  • Monsters will no longer respawn if players are within their aggro range; they will wait until the players move away.
  • Monsters now get spawned in a way to try to generally keep their spawn points from clumping up inside a monster zone. (Note that after spawning, monsters wander around randomly, and so can still clump up for a while when the monster density is high)
  • When interrupted by a monster attacking them, in addition to re-deciding what they want to be doing, players also now abort any path they had been following. This fixes an issue where players would sometimes change their minds about where they wanted to go, but still keep following their old path. This would typically show itself as a player who seemed to want to fight a monster, but was also running past it.
  • Fixed a bug which resulted in giving a player’s visual model a new weapon, when we were actually intending to remove their weapon. This would most commonly happen when a player gained a level, outleveling their previous weapon. We tried to remove their weapon, but instead their weapon would change to a different one, or they’d receive one if they hadn’t had one before. Note that this was only a visual problem; the underlying simulation didn’t think the character had a weapon, and they would correctly not have one if one saved the game and re-loaded it. Now fixed.
  • Players who are trying to log out of the game no longer ignore monsters who are attacking them. Instead, they should deal with the monster first, and then resume their journey to log out.
  • If an admin request is already complete when you accept it, don’t close the request window; instead, just immediately replace it with the interface to turn in the completed request.
  • Added requests covering stage two of the game tutorial, which guides users through the steps of creating a game region for players who have reached level 2, and making it available. The writing on this needs a lot of work, but it’s functional.

This build probably should have been 0.13.0, but I triggered it from my phone while commuting, and so didn’t trigger the change to the version number. Next build (which might be identical to this one) will be 0.13.0. MS12 testers, please send me a note either here or in email and let me know if you spot any major problems that need fixing before 0.13.0 goes out to a new set of testers who haven’t seen the game before (or at least, not since MS9).


(whoops, clicked ‘post’ a little quicker than I’d intended; this is still wending its way through the build server. This build should be up on Steam in about a half hour!)


  • Changing a class/monster/npc costume now updates the costume preview in the class/monster/npc-edit UI. (Previously, that preview didn’t update until you switched which class/monster/npc type you were editing)
  • Fixed the outline around intersections to be drawn correctly. (This was a subtle bug in which polygon expansion/contraction was being ignored if we were expanding/contracting by less than a full meter. It may well have affected other things as well, but the intersection outline was where I noticed it.)
  • Fixed bug which prevented the user from alt-clicking to back up a step while placing a path, if the path was currently in an invalid state. Now that interface works again. (Still TODO is making right-clicking do the same thing)
  • Adjusted spline velocities when placing paths. This only affects newly placed paths; old paths will remain as they were.
  • Drastically reduced path snapping distances, when placing a new path; path placement now snaps onto other paths within 25 meters of the cursor position (was 50 meters), and onto intersections within 30 meters (was 100 meters). This one has been annoying me for months.
  • Re-enabled “Generic” buildings, as in older builds and as visible in the Greenlight trailer. Generic buildings serve no real function, but they count as scenery objects when players are evaluating their surroundings. For this reason, “Generic” buildings have been renamed to “Scenery” buildings.
  • Block editing functionality now only works when clicking on a block-based building (such as scenery buildings). Clicking in empty space when using the 'Add block" tool no longer creates a new scenery building; instead, one should create a new scenery building, and then add or remove blocks from it!
  • Set up text to render correctly, at 18-point font sizes. (Was previously drawing using the wrong-size text images, making it a little blurry)
  • Adjusted text sizes in a few windows, to make it sharper.



  • Work-around for a seen-only-once crash in the character editor. If anybody sees this again, please let me know ASAP!
  • Fixed the “Graduation day” admin request to progress correctly as players gain levels. Previously, it only counted levels which were gained before you accepted the request. Caveat: This will not count levels which were gained by players in version 0.13.0. You’ll need to have five players gain a level in this build, in order to complete this request.
  • Path terrain modifications are now applied only once, no matter how many paths touch a particular piece of terrain. This fixes the problem of intersections (where several paths intersect) applying the terrain modification several times, and thereby digging a little pit in the middle of the intersection.
  • Fixed drawing of 3D lines in a loop, such as is visible on the current (placeholder) path creation cursor.


This is a very, very minor update, with just a few small visual adjustments and fixes. Right now I’m mostly just working on planning out the next milestone, coordinating with artists, and doing some work redesigning the old “town” system. Expect full-on development to pick up again next week; it’s probably just going to be small stuff like this for the rest of this week.


  • Fix for strange SSAO-related visual artifacts on mountains.
  • When low to the ground, shadows are calculated only for the close area around the camera, but are calculated at a much higher resolution than they were before. Eventually I have to switch to using cascaded shadow maps for this, I guess, but this at least makes the close-up shadows look a little less silly.
  • Global directional light is now being cast from a much higher angle, so mountains and tall buildings don’t cast shadows nearly as far as they did before.



  • Actually fixed quest [level2] to correctly count players reaching level 2. Previously, it was mistakenly counting players as they reached level 3. Oops. (Or rather, it was checking the level they were before gaining a level, instead of the level they were afterward, so it was catching them as they went up from level 2 to level 3, instead of as they went up from level 1 to level 2.)
  • Fixed a rare crash when checking distance from a path, when the very end of the path was the closest point to the position being tested.
  • Fixed a crash when destroying a real money shop.
  • Fixed a very rare crash when destroying any building. (Haven’t tracked down the precise cause of this yet, but it had to do with a building somehow registering itself with the networking system multiple times. This should no longer be possible, and should no longer result in a crash even if it does still happen somehow.)



  • When placing a building so that it’s snapped to a road, the building now always faces toward the road, instead of facing away from it half the time. (oops!)
  • When placing a building so that it’s snapped to a road, the building is now placed at a constant distance from the road, regardless of the size of the building or the size of the road.
  • When placing a building, we now preview the actual model that will actually be used, instead of an abstract outline (which often wasn’t even the right size, before).
  • When placing a building, the building is now drawn in white when it’s in a position where it can be placed, and in red when its position is obstructed by something.
  • When placing a building, we now test for obstruction using the building’s actual orientation, instead of assuming that it’s facing north.
  • Lowered priority of “path” terrain deformation effect. A building’s “flatten” deformation region now overrides the path’s deformation, if the two are overlapping, instead of vice versa. (This was causing buildings placed against the side of a road to not flatten the ground under them, which often resulted in a lot of geometry intersection)
  • In the title screen and intro, pressing the ‘escape’ key no longer quits the game. Instead, it works as it does in the game itself; it cancels out of any open windows. To exit the game, click the ‘Exit’ button, close the window, or do whatever is the normal way to exit an application on your operating system. (Alt-F4 on Windows, ⌘-Q on OSX.)



  • Fixed a crash bug which occurred some time later, after you created a path with two waypoints which were precisely on top of each other. I’m still not 100% sure how this was possible, but it now should at least not cause a crash any more. Additionally, this situation is now detected and fixed both during load and during path placement.
  • Fixed an uninitialised variable bug which could potentially have caused a crash when viewing a player’s thoughts about another player (introduced in 0.12.78)
  • When placing a building with a fixed model (inns, respawn points, etc), drag-to-rotate now correctly updates the building model as you drag. (Previously, the model didn’t visibly rotate until you actually placed it)