It’s been a really big week for us, as we merged the second-to-last element of Build 42 into the main codebase across the rest of the team – which is the long awaited tech upgrade which brings a whole host of improvements to the engine.
It’s currently being tested and the feedback has been super positive so far. This said, it’s also brought over lots of small bugs, visual glitches, and issues with new depth map clipping items incorrectly. Nothing over-dramatic, but enough stuff to keep testers and coders alike fully occupied.
This is where a lot of our brains have been at recently, so we thought we’d give you an update on the engine as it now stands while testers run around kicking its tires – alongside some videos they have made along the way.
Likewise, we also have some examples of some of its new capabilities that we will be able to explore in future – perhaps during the Unstable beta, perhaps beyond.
So, a run-down of what this tech upgrade brings into the game:
We’ve made huge optimizations to the rendering of the map that should have a huge impact for most lower-midrange and upwards systems. We are now easily able to get a solid framerate even on 4K, or on furthest zoom. The difference in performance is honestly surprising, and extremely satisfying.
For full disclosure, however, we’ve discovered that a few of the absolutely lowest end systems capable of running our game are still adversely affected. This is because the solution for such large FPS optimization comes at the expense of GPU memory usage for the caching textures used. Cards with extremely low dedicated GPU memory may run into problems.
We’re investigating and trying to optimize this further to make sure as many systems as possible can benefit, and worst case scenario these optimizations will be disabled on systems where they would do more harm than good.
However, it’s still entirely possible that we’ll be able to resolve this completely and provide a large boost to even the most potato systems. More likely, we’ll provide some kind of automatic detection to provide as large a portion of the optimizations as possible for a GPU’s available memory. This will be our next task post visual-bug clear out.
Generally we estimate that a huge majority of our playerbase will benefit greatly from the optimizations. Since most of the optimization frustrations we hear come from players who feel their machine should be able to run PZ at a solid framerate, we feel this work will ease the vast majority of performance sadness we see in the community.
Another improvement born out of necessity is an improved and smoother viewing cone. Due to the optimizations, it was no longer feasible to alter the lighting of tiles frequently enough to allow for the smooth light changes required for our tile based viewing cone.
As such we needed to implement a completely separate and newly-coded viewing cone that didn’t rely on tile lighting – which truth be told we were never a huge fan of anyway.
Now we have a much more accurate, smooth and fancy viewing cone – and now we have extra hands on it internally feedback is being collated so that we can provide plenty of requested options to allow you to tweak it this way and that. (Making it more or less visible probably being the primary one.)
The new lighting system is now in full testing, and seems to be working pretty well so far.
This new propagation system allows for much prettier and more convincing lighting of the world, especially now we have basements which would have been extremely unsatisfying with our existing 41 lighting.
41’s system basically had an ‘ambient light’ level that permeated the entirety of the world depending on the time of the day. Then on top of that indoors would get a reduction in ambient light to make them slightly darker than outside.
The new system propagates light from light sources such as bulbs, or the sun, across tiles to simulate reflective light. It’s not something cutting-edge that you’d expect from the Unreal Engine, or something, but for our purposes it’s extremely effective. It allows for light from a window to creep across the room, allows for rooms with no natural lighting to be in complete darkness even during the day, allows more immersive coloured lighting, and all manner of other things not previously possible in PZ.
Most importantly of all, it fixes the room lighting issues that plague b41 when room layouts are changed with sledgehammers leaving strange lighting artifacts on the floor, since all lighting is calculated purely based on the geometry of the rooms now.
With this will now come gameplay balance – there’s debate on the team as to whether the player character should have a little more clarity in the darkness, some internal spots are a little more inky-blue than black, and new gameplay elements like not being able to read in the dark will need finetuning to the new visual.
Also seen in the following video, for extra immersion, doors are now fully animated – as discussed last time. This makes a huge difference to the feel of interacting with them during gameplay.
We’re still in the process of adding basement spots around the map – whether random or permanent. However, as discussed previously, the new upgraded engine allows support for levels from -32 to +32.
This allows for both much more convincingly tall skyscrapers for city locations, as well as for basements and potentially sprawling underground complexes. The mapping and modding is gonna be wild.
Part of this is also strapping in engine capabilities to help us in future – and as such please take the following as an EXAMPLE video of what we can now do in PZ.
Our coders and mappers have enough on their plates at the moment, and as such this is not a confirmed feature for when 42 goes Unstable.
It will, however, be feasible within the engine which is why we’ve chosen to show it.
Essentially, EP has been working on some extra physics engine functionality to allow for the physics to exist on floors other than the ground floor – as well as providing new physics shapes that in future will allow for this. This work was also a necessary foothold for other physics-based features we have brewing for future versions.
Please note also, just to quell any mapper fears again, these extensive engine and map data structure changes will not make existing map mods invalid. All maps will need to be reexported in the new versions of the tools when we release them, most likely around the time we put out the Unstable beta, but they won’t need to be redone from scratch.
We’re waiting on a big commit to fill in some of the gaps in the crafting system process itself, so in the mean-time lets focus on some of the fun stuff that’ll be coming out the other end: weapons.
Clearly we already have the more ‘normal’ and traditional blacksmithed weapons for B42 already, and likewise the more ancient-styled stone axes and such. With these we’re avoiding anything specific to any period or culture, going for real life examples that were common across history and geography, and that could pass as something reasonably iron age, medieval, or post-apocalypse. We have consulted an expert in these matters regarding the designs and selection, and we’re also providing them with further weapon designs as we make them for feedback
But, as we stretch out into our apocalypse we also wanted something a little more… apocalypse-y.
As such, currently what’s being wrapped up are post-apocalypse improvised weapons. These include classic examples like the “nail-spiked weapons”, but also weapons that have been constructed with welding and metalshop tools.
With these designs a conscious decision has been made to not think about weapons from other games or zombie media, and instead research was conducted regarding real life improvised /crafted weapons. This included stuff like police collections of seized weapons and trench warfare, with additional inspiration from weapons in Max Mad-style post-apocalypse media.
We also took on something of a procedural approach, where we looked at the weapons and items that existed (or could exist) in the game, and imagined them being combined like Lego bricks to create weapons. Granted in many cases we just re-invented the wheel, but that helped keep things grounded, realistic, and consistent with the rest of the game.
Although we tried to make these weapons realistic and believable, we have allowed for a couple of weapons to be slightly (reasonably) zany. We’re allowed to have a little fun, after all, and all those weapons will also have realistic drawbacks when wielded.
Simultaneous to this, we are also adding some broken versions of existing Zomboid weapons. Some of these broken weapons and their parts will be used in crafting other weapons, but these fragments also exist for gory consequences when weapons break when bashing a zombie with them.
I don’t quite know why we’re using this strange moustachioed gentleman to demonstrate these today, but lets have a proper look at him in any case. Curious chap.
Finally, a big welcome to Nick from our colleagues at TEA Games who has joined us to help us implement something we call PenguinTech – after the time Zac got two million on-screen dancing penguins into a Wii game.
Originally slated for B41 this will, in essence, be a clever way of optimizing our zombie hordes – pooling what states they are in, and then sharing a smaller pool of zombie skeletons for the same anims.
With this, fingers crossed, we’ll get better performance when there’s a horde on-screen and in turn we can be less dainty with their application in your survival.
A full round-up of everything confirmed for Build 42 can be found here. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The Centralized Block of Italicised Text would like to direct your attention to the PZ Wiki should you feel like editing or amending something, and the PZ Mailing List that can send you update notifications once builds get released. We also live on Twitter right here! Our Discord is open for chat and hijinks too. Experienced games industry gameplay coder and want to join Team Awesome? Jobs page here.