This is my current worklog.
Updated daily and archived by the weekend.
Currently mostly working on Nuclide and connected games.
* = Completed
+ = Completed at later date than specified
- = Cut/discarded at a later date
~ = Ongoing
= 2025-11-05 ==================================
We launched a recreation of Zombie Panic! on
the frag-net arcade. It was crunched out
over the past month and so I didn't spend time
ssh'ing into my server to write much here.
We have gotten the memory footprint down a lot
further. The entire full version of Overturn
fits in there now and it's tempting to see
if the full Counter-Strike v1.5 mod will fit
however I will probably still focus on launching
RetroCS first due to its novelty.
In the end most of the memory optimisations
also came by simply culling entities.
We've been looking at the data, and trying to
optimise for levels from different mods and
different use-cases.
Old map compilers generally strip "light" ents
without a "targetname" key set. However, some
modern compiler developers have since changed
the default and you may now be hitting entity
limits if you aren't removing them from the
game-logic.
I did not cull them by default before, because
I assumed some of the "import light" features
from the engine may be useful. For a Web port of
something I thought it could probably be safely
disabled - and in all the years I've never seen it
produce anything great without lots of manual
editing anyway...
so now it's disabled for all by default.
Another optimisation I did which helped cull
N * 16 entities was making sure I do not allocate
multi_manager sub-triggers ahead of time.
info_nodes in the map and AI hints created by
the game-logic also contributed to hundreds of
entity slots being taken up by quite a few levels.
We have a way of loading an optimised nav mesh
on the engine side of things that doesn't take
up any entity slots. Using that for Bots/AI has
been the modus operandi for a while, so once
a nav mesh was generated and saved to disk
we can just not load the entity nodes and
cull them to regain some memory.
So these optimisations are not enabled by
default, but may be enabled for release builds
if the developer chooses to do so.
All those above solutions combined helped us
put maps like those in Overturn in the browser
despite the levels being full of effects and
interactivity and Nuclide doing a lot of
high-tech stuff.
As of earlier today we can now play all 3
levels of the mod instead of just 2 that we launched
with them on Halloween!
So overall, this past month has been a great
success in accomplishing the goals we set.
We shipped a browser version on the date everyone
intended and made some good progress on hardening
the entire SDK. I terms of a multiplayer experience
it's been more stable than ever, but there's still
work to do before I can stop saying we're out of
beta.
Next goal? Help people ship more ports. Show more
stuff running on Nuclide. Put more things on the web
to reduce friction, and to optimise for all use cases.
Next goal at Vera Visions? Still am not allowed
to speak on this... in due time!!!