Faster than a speeding bullet! ok, not that fast

Posted by WasabiOne 8 years ago

One of the biggest complaints we read in the forums and steam reviews has always been “why are my load times so long?”. For some it was infuriating to load the game and wait 4+ minutes to load a level, especially when staring at a loading-screen. It can sometimes feel like an eternity. Build 276 is a great leap forward towards resolving this issue.

By taking precompiled data and shipping it with the build, it allows your machine to not have to work through each of the individual files like before and so saves time getting you into the game. Prior to Build 276, a fresh install of NS2 could take over 4.5min or longer to load into a map for the very first time on traditional HDDs. This is now reduced significantly to around 2.5min. While this is still not perfect, it makes huge strides towards solving the issue for good. Where you will notice the most change is in load time after the initial loading process. On average all traditional HDDs should see a map load time of around 46sec, down from 1.5min or more, with SSDs being even faster again. Remember that everyone’s experience may be different, but you will notice a decrease in load times none the less.

Despite it’s small download footprint there is a lot more under the hood of this patch included in the changelog below, and there is still more to come! With the anniversary of Natural Selection fast approaching, we will be releasing one more patch to get into the spirit of the season and introduce some minor balance tweaks and more updates/fixes to our editor tools!

Dillon (“WasabiOne”)


Loading Times

  • Added fastload archive file injection (which allow us to ship certain files as archives which are loaded faster than the single files).
  • Added the low quality textures as fastload archive.
  • Added precomputed shader files as fastload archive.
  • Added precomputed map’s nav meshes as fastload files.
  • Improved the LUA script loading routine.
  • Removed fsb files from the default consistency check.

With these changes load times should be much improved.

Reworked Network Protocol

  • Packet loss handled gracefully
  • Improved reliability & responsiveness
  • Users can reconnect to servers now almost immediately
  • Fixed issues that caused the server and client to fall into a infinity loop under certain circumstances (commonly known as the “half crash”)
  • The ping values are now correct and updated with every packet
  • net_stats now shows the ping, packet loss rates and Out of Order amounts.
  • Reworked the way net_log works to be able to fully debug all kind of network issues.


  • Fixed an issue that negatively impacted the performance for users of the Intel Core-i CPU series
  • Improved the overall thread handling (updated the Intel TBB library etc.)
  • Now using the VC 12 toolsets, which increases stability.
  • Replaced Spark’s own shared pointer class with the C++11 shared pointers, which improves memory management.


Mandatory Tutorial
New players now have to play the 5 minutes long tutorial before being able to join a server.
This doesn’t apply on any of the training mode’s servers (Tutorial, Sandbox and vs. Bots)

Marine Bots

  • Marine Bots now trace targets with human reaction times.
  • Marine Bots now detect enemies based on sight and sound.

Ingame – UI fully scales now

  • All in-game UI elements (excluding the console, r_stats, net_stats, etc) will scale now accordingly to your screen’s resolution.
  • Scaled all used fonts so they are always easy to read.

Sneaky Skulks
While holding shift you can now peek around corners without exposing your complete body as skulks. Basically what the enemy sees fits now to what you see.

Smarter Evolving

  • Instead of moving the egg before evolving has finished if there is not enough room for the evolving lifeform, you now move after evolving
  • Egg placement logic has been made more fail safe


  • Added extra bindings for voiceover options: “Weld me”, “Follow me”, etc.
  • Updated the bot names list.
  • You can now access the badge manage page of hive directly from the Customize Player menu
  • Eggs killed by an exo will now show up correctly in the killfeed.
  • Dropped weapon expire times now are displayed for the commander.
  • Added the derelict concept art as loading screens
  • Added an unstuck command
  • Added experimental Local Voice Chat, a new voice chat channel which will only be played locally to teammates and has a 3D effect applied on it. By default the local voice chat key is unbound.
  • Bots now use random skins
  • Bloom is now disabled by default (as it caused various issues for multiple GPU models).
  • The server update rate on auto-join is now 100 ms which is equally to the steam server browser used one.
  • Added an atmospheric density option to change its density.
  • Adjusted the default options. Sensitivity is now 2.5 by default and raw input is now on by default
  • Added “Frontiersmen” as a menu music option
  • Adding tagging of map to screenshots. Now when you take screenshots and upload them to Steam, it will show which map the screenshot was taken on.



  • Added collision geo behind the spectator join in the ready room
  • Increased los blocking grate in geothermal to obscure more of the tp
  • Adjusted cover for the rt in geothermal to stop it from being sniped from the window
  • Added glass above door in offices (was missing)
  • Added collision to most glass windows in the office area linking to turbines


  • Fixed that the regeneration animation and sound was played when an alien structure got dropped.
  • Fixed nameplates showing up under the Insight name/HP bar while zoomed in Overhead spectator.
  • Fixed vote keys being blocked for the first press if there’s no active vote.
  • Unknown keys (like ö ä é etc.) can now be used in keybindings
  • Don’t apply the afk check on the local host. That will stop local servers from shutting down all the time.
  • Fixed that some tip video’s subtitles did not get clipped correctly
  • Fixed that in overview spectator both kind of nameplates did show up when you zoomed in close enough
  • Fixed that it was possible to reset the to hive reported playtime
  • [Linux] You can now select sound devices properly.
  • Fixed some minor compiler issues.
  • Fixed standing on a gorge tunnel when the exit gets closed will cause the tunnel mouth to stay open instead of closing


Dynamic DNS
You can now use the a DNS for your server. This is pretty helpful if you don’t have a static ip. Numerous free dynamic DNS services can be found in the internet.
To enable this feature you can just use sv_dyndns


  • After a vote kick the kicked player now get banned for the amount of votekickbantime minutes (default: 30)
  • You can disable the consistency check now with the consistency_enabled option
  • Banned client’s connections get now rejected directly before they even count to the connecting clients queue


Map Editor

  • Made window sizes for model and sound browser bigger by default so you don’t have to resize everything to see anything
  • Fixed tools not being able to find the executable directory for resources

Cinematic Editor

  • You can now vertically resize the “Play Animation/Cinematic” windows
  • Pathing layer is no longer ported over when loading levels


  • Optimized rendering a little
  • OverviewInvisible and InvisibleGeometry groups in the editor are no longer rendered


  • You can now open files like levels directly with the Spark tools via “Open with”
  • Locations now support rotation in game
  • Added no_evolve which prevents a player from evolving on top of it
  • Added SetFontAndSize(fontFamily, fontSize) function for text elements to choose a properly scaled version of the font family chosen to avoid blurry fonts when scaling.
  • Added GUIMakeFontScale(guiItem) function that checks the current guiItem scale and font choice and automatically chooses the appropriate scale and font to avoid blurriness. Make sure you apply both scale and font size before using this function.
  • New ModLoader API: Read more details here
  • luajit: Flush all traces when debug.set(local|upvalue) are used (helps fix some frequent server crashing)

Known Issues:

  • Marine bots do not move their weapon correctly in the tutorial.
  • The Editor currently does not assign textures to geometry when there are too many entities visible

Comments are closed.