Hey all, let’s chime in with some of the feverish work being done in the musty basements and damp holes in the ground of the Knox Event. First off, some scribbles from the engine room.
B42 ENGINE
To catch up and recap, the main highlights of engine improvements for build 42 are as follows:
A flexible per chunk 32 height that can be different in each chunk, allowing parts of the map to be at 32 level height, where others in theory go from -31 to ground floor.
New lighting propagation system that has light bounce off walls and leak through windows, doors and other spaces more realistically – allowing for more natural ambient light effects and getting rid of those room based lighting issues.
The ability to have negative coordinates on x and y, thus opening up map expansion directions in the three previously missing directions.
New chunk based rendering using a depth map to vastly optimise drawing of the game.
It’s this last item that we’re going to discuss today.
How 2D games have historically worked is like a deck of cards being dealt: each image is placed on top of the other to construct the scene.
This is terribly inefficient, especially in terms of an isometric game like us with a crap-ton of tiles, tile overlays and so on. The rigid order that the sprites are dealt (so closer ones obscure further away ones, leaving the closest one on top) means that your GPU is unable to optimize how it’s all drawn.
Not only this, but every time you deal a card on top of another card (a zombie in front of a wall for example) then that wall is forever ruined by the zombie’s pixels: the only option is to draw the entire thing again, tile by tile, for the next frame.
Can I shock you? In the past, people have complained about PZ’s fps.
A common thing we hear is: ‘“Well, my PC runs Skyrim/Witcher 3 just fine” but sadly this generally overlooks the fact that GPUs are built and optimized for 3d rendering. A game with this much detail that doesn’t utilize 3D rendering has actually got a tougher time ahead of it than Skyrim or Witcher in terms of making your GPU happy.
We also, on top of this, have extremely expensive scene construction CPU time too. End result: a really a bag of nightmares.
Now, in a 3D game you have a depth buffer. This is an offscreen rendering of the scene that tells it all how far from 0->1 each pixel is:
This is really handy, since the deck of cards goes out of the window. You’re no longer having to draw everything from the furthermost thing to the closest, and they don’t have to be ordered strictly as they get closer to the camera either.
With a depth buffer you can choose whatever order you want: draw all brick walls first, then all characters hairs, then all grass, then all… you get the idea.
Outside transparency, which causes issues, you can draw anything in whatever order is most convenient and most optimized for the GPU. Not only this, but you don’t have to put together the 3D scene polygon by polygon every frame: you have a cached mesh probably already on your GPU memory sat waiting for the next frame, and even if the character turns or moves that mesh is still valid to use.
Zomboid? Not so much. We have to draw every individual godforsaken goddamned tile: every bit of lighting, every bit of grass, completely from scratch, every frame, every time. And when you zoom out? Wuh-woh shaggy. You’re now asking for trouble.
So for B42 we decided to implement a depth buffer!
This was a bold proposition since we have no 3D (outside the characters and items, of course). Our ‘3D’ is otherwise a faked perspective drawn by the artists drawing the tile: it’s an illusion.
However, with some perseverance, we managed to generate a serviceable depth map of our usual faked isometric tiles:
Note here that when you look carefully at the floors and walls in this, they are not completely smooth. Each tile is still just ‘a certain distance away’ and it all behaves just as it does now: a deck of cards being dealt every frame, where one thing is either below or on top of another. However we no longer have to draw them back to front.
We’ve all seen this faked isometric drawn into the tiles cause weird visual glitches too many times to count, where the illusion of the 2d tiled world just breaks in ugly ways.
So we went a step further and calculated the fake 3dness for floors and walls, thereby making the depth map peachy smooth:
So where does that leave us?
We’re dealing the self-same deck of cards we always have been (these are still faked 2d isometric tiles and always will be) however we can now say ‘the left hand bit of this card is actually further back than the right hand side of this card’ and objects placed on them will represent this as if they had actual 3d depth.
For walls and floors, at least, from this fixed perspective we suddenly service them with the GPU as if they are 3D objects: which means that not only do we get rid of the issues with the fixed tile ordering, but we can say ‘this specific part of this tile is further back or further forward than the rest of it’. So we can choose to put that part of the tile in front of / behind the character differently to other parts of the same tile.
This will make a big difference to immersion on its own, but then we went a step further. With the new depth map, we opened up access to that amazing optimization trick we mentioned before.
On the dev branch for this work, we can now just draw a chunk like this tile by tile on one single occasion.
All those hundreds of draw calls as the cards get slammed down from the deck now only need to happen once as we ‘construct’ the chunk and it becomes its very own ‘tile’.
Within this we bake the depth information into the depth buffer. So, despite this just being a single picture, we already have all the information hidden behind it that’s required to correctly place any player, zombie or placed inventory item anywhere on this chunk (even inside the building, or partially obscured by any part of it) – and this can be done AFTER drawing it too.
The only times we will ever need to update this chunk and redraw those tiles is if the lighting from time of day changes, or if a naughty zombie dies on it or a player picks up an item, drops one, opens a door or otherwise.
(And oh yes, zombie bodies and dropped inventory items will be cached on the chunk too! With depth! So in terms of performance this current resource-hog will be near enough completely free)
So now for every frame the chunk above, the charming apartment balconies, becomes the equivalent of a single current tile. One single draw that’s not that much slower than drawing that one single tile in the current build, in which we have to have 8x8x4 tiles getting drawn.
The work needed to draw each tile on that chunk only needs to occur every so often when it’s updated in a way that invalidates the depth or changes the tiles visually, or when it first becomes visible. And if anything invalidates that chunk that it requires drawing in full, it’s only that chunk that needs redrawing.
On top of this we have that depth buffer still for every tile drawn, and beyond that the walls and floor tiles have additional faked smooth depth applied to them.
That’s where the magic happens: weirdly the above long-haired hippy character was drawn AFTER the fence tiles were. Due to the magic of the new system we happened to have the extra depth information and were able to throw away pixels of them being drawn seeing as there was something ‘closer’.
As a cumulative effect of all the above: this is how we accomplished 4k res, max zoom, 500 fps in this video we posted a long while back when we were prototyping all this.
(Though please note we expect, in practice, it won’t be this high: the lack of zombies and various other factors make it not completely representative of the full game – but it’s still a good indicator of how vast this optimization will be.)
Next Steps
So the big issue here is that walls and floors are the easy part.
It’s very simple to calculate how ‘deep’ a particular pixel of a wall should be, use a shader to put that depth in, and get smooth continuous depth that the player won’t clip through like it’s a 2D billboard facing the screen.
EP, however, has recently been experimenting with some stuff that’s pretty cool.
We must make a big disclaimer there that this is very much, as stated, experimenting, and we can’t say for certain what is shown here will be in b42 as shown.
He made us promise we made that clear before we speak of it at all, but it’ll give you an idea of what we’re trying to do and the cool ideas he’s been playing with on his travels.
None of the 3d shapes will end up in the game world while playing, but the resultant extra depth texture (seen in the bottom left) can be used with the depth map system to make the characters interact with it as if those 3d shapes were there.
As you can see, here the character intersects with the (remember, completely 2D) tile as if it were a 3d object itself, with full gradual depth.
As you can see, here the character intersects with the (remember, completely 2D) tile as if it were a 3d object itself, with full gradual depth.
And yes, this is the main thing that’s been holding us back from sitting in chairs, lying in beds etc. Modders have done great things providing this in the capacity that’s feasible in the current engine, but are still limited from sitting properly in chairs that obscure the character or face in different directions. We want a proper solution that’ll work 100% when it comes to the main game.
Finally, another caveat.
There’s no way in hell we’d ever be able to do this for every tile in the game, especially the more complicated ones or ones that were drawn (by hand) by the artists that may not actually follow strict laws of isometric in actuality.
While this tech can be used for some nice stuff in future its primary and only feasible short to medium term use is as described above.
Before we start seeing the inevitable “omg PZ will be able to rotate camera RTX mode when??” this is still a complete MASSIVE gulf from anything resembling true 3D.
Trust us: we’ve already ummed and ahhed and experimented with all this tech for a long while now to firmly to know where our limits are and put our boot down on those kinda thoughts.
But this does mean that we should be able to deal with all the main simpler structural tiles that make up the main geometry of the maps, and will provide a much more solid feeling world despite it looking very much the same as it always has – however, with the new lighting propagation system it shall look that bit better of course!
We now return to your scheduled programming.
FARMING
Next, over to the redoubtable Blair Algol for the latest on agricultural matters.
“The current state of the farming rework is that the current dev phase of new plants, vegetables, herbs, houseplants and associated changes to farming mechanics, are nearly finished. I’m now on fine tuning and polish.”
“The sticky matter in the fine tuning and polish, however, is that my mission has not only been in a more realistic and better balanced farming experience – but also to provide a more folksy, relaxing and productive-feeling gameplay loop that fully utilizes the new animation capabilities of modern Zomboid. So this is actually the part where I need to roll up my sleeves and do the heavy lifting.”
“I had been waiting for Aiteron’s splendid fishing rework to get into a state where it was possible to build off it, so that both the interface, and interactions would be as consistent as possible; as well as with the RJ’s animal rework, and Eris’ foraging interface. We’re really trying to make the systems and experiences in PZ more consistent as a whole.”
“But the goal is that farming should serve as a fun, peaceful minigame, albeit with challenges as we are making a survival game, but that can be an oasis of calm in the chaos and death of the PZ apocalypse. One fun little feature that I’m adding in that regard is using Ladybugs (EUROPEAN TRANSLATION: ‘Mister Ladybirds’) as pest control.”
“I should point out that, in testing, even with the longer growing seasons, and new pests/maintenance, the majority of plants would still survive until harvest without any major issues. Yields, however, might vary.”
To summarize the changes to farming, we have already implemented the following:
Crops now take a realistic amount of time to grow before they can be harvested; this can be adjusted to suit the player or server in the sandbox options.
Crops also feature realistic growing seasons, where there’s optimal months to plant your crops, as well as ones where they are doomed to failure; this can be disabled in the sandbox options.
Attempting to grow anything other than houseplants indoors will also be doomed to failure; this also can be disabled in the sandbox options, and, when the new lighting systems are implemented, then a realistic greenhouse system could be explored, but don’t take that as a guarantee.
Slugs and snails are new garden pests, that can be dealt with using commercial slug and snail killer, or by learning how to make a slug trap out of an empty beer or pop can and some beer. Rosemary plants, and chickens, also serve as means to control slug infestations.
Plants will also benefit from regular weedings.
We have herbs, which have shorter growing seasons, and can be repeatedly harvested, and you can also propagate new herb patches with fresh herbs.
You can use potatoes, onions and garlic as seeds to plant new patches of vegetables.
I have added contextual actions using the combat stance in combination with the action key. When you have a hoe equipped, and are in the stance, you can use the action key to dig a furrow. Likewise, if you have seeds in your hand, are in the stance, and are facing a furrow you can use the action key to plant seeds. Likewise for watering plots. I plan on expanding this contextual action to include stuff like chopping down trees when an axe is equipped; removing barricade planks when a crowbar is equipped; etc. as well, for consistency.
There’s other cool, fun stuff that’s either being worked on, or being planned, but we don’t want to spoil everything.
FISHING
A visual update from the Aiteron keep net!
NEW ITEM STUFF
Back to the Blair hothouse!
“One of the other things I’ve been doing for Build 42 is adding a slew of new items – both functional and decorative – along with addressing inconsistencies and missing functionality with existing items.”
“One of the issues we’re attempting to address is ‘Bottleneck Items’. These are items such as Generator Magazines, Sledgehammers, Lighters/Matches etc. that, when a player has difficulty finding them, can make them feel like they’re soft-locked out of parts of the game. While we don’t want to remove the challenge of finding these items, we want to ensure that there are adequate opportunities for a player to find these items, even if they may involve some dangerous excursions.”
“In addition to ensuring that these items spawn in varied appropriate circumstances as loot, including in vehicles, we are ensuring that special circumstances such as the randomized stories and annotated map stash houses can spawn these items, and appropriate items will also be able to be foraged. As an aside, the loot tables themselves are in the process of being scrupulously revised and glowed-up, and should provide more fun and depth for the looting aspects of the game.”
“We made a couple of tools to collect data and feedback regarding this. I had already made LootLog, a tool similar to Aiteron’s LootZed, except that this one, when activated, logs all loot that spawns to the console.txt with details including the exact location where the loot spawns.”
“Fenris then took this concept to the next level, and now we are working with a tool that tracks and logs exactly how many items of each type spawn for each savegame; a permanent record showing exactly how many items spawn. Not only does this allow us to collect concrete data regarding item spawning, if you are worried that Sledgehammers, Generator Magazines, or Rubber Hoses aren’t spawning, you can check this record and see if they are.”
“In regards to Generator Magazines, with a high enough Electrical skill in Build 42, your character will be able connect and repair Generators without needing that magazine. We are also adding additional varieties of lighter and matches, as well as Lighter Fluid for refilling the classic lighters, and you will be able to use a vehicle lighter, open flame, or an appropriate stove to light cigarettes. There are also alternate means for players with the Smoker trait to feed their addiction to nicotine.”
“You can currently use many bottles other than the Gas Cans to hold fuel, which was one way we addressed that particular bottleneck (and yes, we are making sure that hoses for siphoning fuel are common), and we are also adding a new, larger, fuel container, alongside some other military-themed items.”
“We know that many players, especially roleplayers, like having themed items, and o some more themed bags, like the military duffelbag in build 41, are on the way. The new entrenching tool serves as a weapon and a shovel, and is folded when placed on the ground or attached to a belt. Several of the new knives such as the Switchblade and Butterfly Knife also have that feature.”
“The new canteen item can be attached to the belt, and will also showcase another new item feature that modders can make good use of: items with varying icons and models from their standard base ones. This allows us to add cosmetic variants without having to actually add new items, similar to how clothing works. I believe there are 4-6 variants of this style of canteen. All of this military loot spawns in appropriate circumstances, so if you want this new gear be prepared to have to go out and get it.”
“Another alternative Bottleneck Item is a P38 Can-Opener that you can keep on your Key Ring. Additionally, your character will be able to use a knife to open cans of food, although that will damage the knife and has the risk of injuring your hand. We also have fancy, expensive imported beer that requires a bottle opener, and the better wines, aside from Champagne of course, will need a corkscrew, or one of the better pocket knives to open.”
“There are many other new items and features: you can use a Pickaxe to remove annoying stumps and boulders; we added various vanity/prestige items and collectibles; players worried about having enough Garbage Bags for water collectors (another Bottleneck Item) will be happy to be able to find a box of them; and we made garbage loot a lot more fun and gross.”
MODDING
Next a quick update for modders.
Something else we’re endeavouring to do for Build 42 is to use Tags for item interactions whenever possible. This should make it easy for modders to add new items that work smoothly with a lot of the fun new stuff, and older stuff as well.
As mentioned above, for both mods and our own usage, we now have it so that modified item icons and models are “persistent”; when changed they stay that way when after quitting and reloading and we have made sure to have straightforward function names for ease of use.
We added some new events for mods to use, including: – OnZombieCreate and – LoadChunk
OnZombieCreate will allow modders to directly access zombies when they first spawn. Currently for many mods, using the LoadGridSquare event is the only feasible way to accomplish some goals. However, this often has an annoying impact on performance. What LoadChunk does is allow mods to access the chunks of the world map, which are a 10 x 10 grid of map squares, after they stream in. Afterwards, if the mod needs to access a square in that chunk, it can use code such as chunk:getGridSquare(x,y,z) to access said square. Practically speaking this means that the mod can use ~1% of the previous event calls to accomplish the same goals, for many of the purposes in which LoadGridSquare is utilized.
We have also moved around the order of operations when sandbox options are loaded and the loot tables are parsed, to make it easier for mods that use sandbox options to set loot spawn values.
ANIMALS
Finally, a quick video built from clips from the ongoing animals testing.
Tara for now, chucks.
This week’s hellscape from Stonmo. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The 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 gameplay coder and want to join Team Awesome? Jobs page here. Apologies for the lack of blog last week, the blog writer had a fever and for much of Thursday was hallucinating that he was stuck in a Mexican hotel and GOG kept on phoning the switchboard to demand that we change the Knox Event lore.
How do all. Here’s a check-in from a few different Build 42 departments, that also occurs in the lead-up to the first in-person meet-up for the wider PZ team since 2018. We’re all aflutter about it (and trying to remember everyone’s real world names instead of online handles) and hope to have lots of good B42 chat in amongst the introduction of an international team to traditional Geordie culture.
Let’s pop into a few different areas, then – with the caveat that for a fuller B42 overview our last dev blog is probably a better destination.
FIRE
Work continues on the fire rewrite branch with the intention being to bring it up to a state in which it can safely enter our internal test build.
It recently came to mind that a lot of the ‘fire dev’ chat in blogs took place in the distant past, before we had to reshuffle and our current MP team became what it is today – thereby forcing flames into the sidelines for an elongated spell.
As such the guys have made a vid for us today that spells out some of the foundations of what is being done here, in terms of how fire spread, size and duration is governed – and indeed the sort of stats that lie beneath the hood that we can balance with, and that the community can mod with.
That’s the first half of the video: done with our old fire effects (which are too transparent and also on fast forward) so please take this aspect as instructional/iterative rather than a fait accompli.
The second part of the video then moves on to show our experimentation with fire visuals, working alongside our VFX artist friend Brian, as we work out different ways to make in-game flame effects better match our particularly coloured iso-world.
MP TEAM
As regular readers will know, alongside tidying up smaller multiplayer irritations as they go, our MP team are currently transferring player inventory actions over away from the client and onto the server. They have another three or four weeks set aside for the first stage of this: at which point we will the player’s inventory loaded from the database on the server, and the server always having an up-to-date player inventory – hopefully all working in sync with the progress bars, item move times and expected results you get currently.
At this point the second major part of the code work will be getting underway: having all the item manipulation occurring on the server side, and ensuring that the server no longer trusts clients (those sneaky clients!) so that stuff like item adding cheats are rendered defunct.
After this, clearly, there’ll be a heap of testing and such – but we thought the more technically-minded amongst us would appreciate a catch-up on where the guys are with it.
FISHING
This past week Aiteron has been working with the testers who’ve been reporting back on bugs and gameplay in the latest version of our revamped fishing – and has been largely working on an improved/experimental control system for a more chilled out and less button-holdy-tappy experience.
He has also been working with our aforementioned VFX specialist friend Brian, who has been supplying us with various splashes, bubbles and signs of water movement that will indicate the presence of fish, and also be a suggestion of the size of what lurks beneath. On top of bug fixes, changed recipes and improved items for the system he’s also been firming up on exactly what sorts of fish we’ll be adding to the game, and whether they’d be found in rivers or lakes (and definitely not swimming pools).
There’s gonna be lot of bass: largemouth, smallmouth, white, spotted and striped. And let’s not even get started on the crappies…
CRAFTING
After an awful lot of code-side tinkering, a super WIP version of our crafting improvement has surfaced into something that’s viewable in a vid. Please note this is the visible tip of the iceberg, and clearly what’s on show isn’t final: you do not saw logs in a furnace, and this isn’t how you make a hammer.
Various objects can now be entirely created using the game’s scripting language that’s been made similar to the way items and vehicles etc. are defined.
This covers various currently planned objects that can function as a craft station: stuff like blacksmith furnace, tailoring bench, fletchery, brewing stands, kilns etc. And, unlike the way it is now, these can also be objects consisting of multiple tiles/sprites with various rotations etc.
At a craft station the player is able to use their normal recipes (which may provide a bonus for doing the recipe at a craftstation) but it’s here that they can use their blueprints – and which ones are available will be defined by the associated object script.
Blueprints (working title) are similar to recipes in that they can take inputs, and produce outputs. However they are distinct from your usual recipes in the following ways:
They have different duration modes – in real world seconds, game minutes or can run passively in the background for long periods.
They may not require the player to be present. For example, a melting process may run on the craftstation while you run off to do other things.
As well as items, they can take the input (and produce) Fluids and different in-game ‘energies’ – Electric, Heat, Kinetic or Steam.
When active a Blueprint in progress can store its inputs/outputs, and may have storage capacity for them. For example, a blueprint that needs water as an input may well have an internal storage buffer for water. We’ll probably show this in a development vid next time.
Blueprints are processed much like recipes where the inputs by default are consumed to create the outputs. However the default behaviour can be complemented or overridden by custom lua code for certain blueprint events like OnStart, OnUpdate, OnFinish, OnCancel. This is similar to normal recipe events such as OnCreate.
Using this custom lua code interesting things can be done – like for example a blueprint for a Meat Drying Rack which has several input slots for meat. The blueprint can be set to run passively, so it wont require a player to manually start it up.
The OnUpdate event then triggers a lua function which checks if the Meat Drying Rack is situated in a exterior space, and if so we can then go into our usual PZ super-nerdery level of depth by calculating the amount to dry a meat item based on temperature and the cloud intensity / sunlight at that time. So when a meat item is dropped in one of the UI slots it starts passively drying the meat.
Another feature of blueprints is that their UI can be scripted. The video shows a few simple (bizarre) test examples of different UI layouts. However they can potentially be scripted to have any desired appearance – using any of the game’s existing UI elements, or indeed modded ones.
As mentioned heavily above: the video is very early WIP, especially where the UI is concerned, and there are still some parts not yet functional. In a future update we can show a more functional UI, and run through some more interesting case examples.
LES ANIMAUX
Finally, over to RJ in the animal zone.
“I’ve been diving more and more into a farm animal’s designation zones – which are paddocks you outline for your animals to occupy (as long as they don’t get loose) and where the game will allow you to do all your various primary animal-rearing tasks. For most of this week I’ve been refactoring and simplifying my animal behaviour and meta code, but there’s a few interesting things to mention.”
“Cows and sheep can now recognize a roof area and stay under it during heavy rain, I’ve been trying to get sheep to move in more of a flock most of the time, and baby animals will follow their mother more correctly. You can also now drop food directly on ground for them to eat, or in the feeding trough container – where it won’t spoil quite so quickly.”
Also, among many other things (haircare, first aid, dropping bags, new emergency broadcast system noises) the Sound Team have also started making animal noises.
Behold, the cows now have hoofsteps.
This week’s tarmac follow party from Darth. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The 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 gameplay coder and want to join Team Awesome? Jobs page here.
Hey all, hope you’re all doing well and that thus far 2023 has been kind. Let’s get straight into it.
NEW FACES
First of all we’d like to welcome officially three new people to the full Project Zomboid team.
Fenris_Wolf should need no introduction to the old hands of the Project Zomboid community. He took over and maintained the ORGM mod with great aplomb from the original creator ORMtnMan – and will be a name familiar to many.
Right now he’s reacclimatizing himself with the PZ codebase, charged with clearing out some of the niggly things that have been on our ‘to do’ list so he gets his fingers dirty in many and various different areas of the game. Clearly his expertise with guns and the firearms code will likely come into play at some point in his time with us, but for now it’s all about bedding down and getting comfy in Spiffo’s hovering mothership.
Also joining us officially, meanwhile, are Amz and Pat_Bren.
Amz is another familiar name from the community, and was a great help to us in the days of 41 MP testing. She’s now officially a full-time tester working with Sasha and Yana, and will also be making cool videos for our blogs and improving our (already extraordinarily professional) social media engagements.
Pat_Bren, meanwhile, has been writing up a storm for Build 42 on a part time basis – writing new radio and TV channels and content, new lore for what’s going on around the world and much more besides – and will now be working other cool future content in an official and ongoing capacity.
42 STUFF
Right now, we’re probably due an ‘overview’ of Build 42, so everyone is on the same page about its contents rather than skipping about between them each blog.
42 boils down to four large chunks of deep-rooted work that we want to all come together: the crafting/animals update, the map expansion, the optimization/lighting/basements engine upgrade, and the weighty job the MP team have taken on to move all inventory interactions over from clients to server.
These are all at different stages – for example animals are further ahead than a lot of the elements of crafting in terms of being ready to actively test and play with. Right now with the crafting, the work taking place is on the back-end codeside of crafting stations and component UIs.
Meanwhile with the engine upgrade at this point we’re essentially fixing up various different rendering issues that were broken with our quite fundamental changes to the system up to a point at which it’s ready to be merged into the test build.
The map team meanwhile continue to pump out new towns, interesting locations and fun places to travel to and hold out in.
Around these big ticket items we also have other coders, writers, artists and 3D modellers working to improve aspects of the current game.
So there’s the in-depth fire overhaul, Aiteron’s revamped fishing, better farming, more imaginative and fun items to find and use, better events to come across, improved recipes, new animations and activities, improved music system and deeper soundscape – and general piles and piles of polish and improvement throughout.
So with all that firmly held in mind, let’s have a quick dart around some of the different departments of PZ to catch up on a few bits and bobs.
Our smashing friend Steve N, who we’re borrowing from EverCurious Entertainment, has been digging into our animation system and working out some longstanding issues that we’ve been desperate to fix. We’re currently jumping into a test build to check nothing else has been broken by his changes, but the result will be a lot more silky smooth turns and 180s in your survival forays.
The big debate currently in our work with livestock is how to make it clear to players that you’ll need to designate areas that you want them to occupy and produce within, alongside building them fences they won’t escape through. We’ve got various ideas for this and will be running our experiments past the testers.
Increasingly we’re realising just how much more ‘life’ these non-human and non-zombie creatures bring to the game. To which end we are also experimenting with some non-interactive beasts that will run before you get near, and give the game a smidge more desolate color…
As mentioned before, alongside refinements and improvements to the music system, right now via Formosa/Noiseworks we’re in the process of getting real life human actors (in Los Angeles! In America!) to record some basic bodily noises to give extra life (and pain) to our Knox Event survivors. Imagine how cool it will be in MP when one of your buddies reaches you, having escaped zombies and run in terror, and you can hear their panicked heavy breathing.
That’s the sort of thing we want to capture, alongside noises of hurt and exertion as you tumble around the landscape. While we’re there we are also going to get a variety of other ‘spoken’ TV and radio noises that we can then obfuscate to improve the entertainment system slightly.
Aiteron is back with us and has picked up on his work on fishing. This is its current iteration, which will shortly be mixed into the internal test build. This probably needs some more tweaking with the ‘strain’ animations – and the indications that a big fish is being caught – but is really getting there now. It’ll be mixed into the internal test build soon, which is also the point at which Formosa can start working on the new sound effects and such.
About a bazillion new items – some useful (hose now required for gas siphoning, kids) and some more aimed at making the world feel fuller and more ‘real’ are also currently going into the internal test build. Here are a few examples.
This week’s wintry scene from BruceWayne (not the real one). A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The 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 gameplay coder and want to join Team Awesome? Jobs page here. Thanks to everyone who voted for Spiffo in the Labo(u)r of Love awards. He seemed quite chuffed about it.
First off… ahem… “Vote for Project Zomboid in the Steam Awards!”
In a fairly mindblowing chain of events, mainly due to the awesomeness of the survivors of the Knox Event, Project Zomboid has been nominated for Labor of Love in the Steam Awards.
We are up against some fantastic other games (vote Deep Rock or No Man’s Sky if you’re less keen on us – those teams are incredible!) but just being on the list is a massive achievement for us and we’re so grateful for the community for getting our name up in lights like this.
So thanks everyone, it really does mean a lot!
BLOG BEGINS
We’ve got a lot of the team away on their Christmas break this week who weren’t around to prod for contributions, or have a house full of sick people who need attention (that’s me, Hi), however the following items were shoved into the blog writer’s sack nonetheless.
In preparation for getting real actor-recorded body sounds, huffs and puffs for the game – Matteo has been recording his own voice to get a feel for what’s required. He’s kept them quite subtle to match the perspective, and the consideration that the player doesn’t want to be heard by zombies, so right now they’re not too over the top. We might change the approach with this, but it’s interesting to consider them and think what they’ll bring in terms of immersion to the game.
We’re currently working on bringing our optimization and basements branch (both mapper-placed underground areas that always appear, and the randomly occurring ones placed as surprise features and treasure/zombie boxes) into a testable state. This is an ongoing process, but a lot of progress has been made this week so it’s rather exciting nevertheless.
The integration of fire is still trucking along with most of our attention currently being on making flames fit the scene, we have a VFX artist joining us for a little while early in the new year – and in the meantime are experimenting code-side too. We’ll share some vids when we’re closer to the finished article.
Blair is working on a variety of things – and is currently super proud of ‘LootLog’ which he wants advertised so modders are aware of it. This is a dev and modder tool that, once activated, logs every item that spawns around the player rather than wait for the player (or modder/dev) to discover it. Info logged includes a list of items; the room definition in question; the container type in question; and the X, Y and Z coordinates of the container in question.
This is intended as a tool for us and the modding community to evaluate the amounts of loot that spawn, and where it spawns. The blog writer is aware that it isn’t super sexy blog content – but Blair underlines that it is a ‘niche pleaser’ so if you are in that niche: consider yourself pleased.
Also in the Algol pipeline this week: improved ‘profession’ houses with cars outside that match the profession, new weapons, new zed stories, new ‘filler’ book items with names dreamt up by dreamy Pat_Bren and the implementation of all sorts of new foods and 3D items.
RJ’s animals have entered initial testing, which made for an extremely fun first day of crazy bug reports and ‘oohs’ and ‘aahs’ and cuteness. It’s amazing what ‘life’ non-human and non-zombie animated creatures suddenly bring to PZ when you encounter them in-game.
Fun bugs we dealt with included:
Alongside the chickens that keep opening doors, five eggs dropped on a wooden floor created a house full of roosters.
Pigs breeding so fast that a piglet horde started to form before one of our tester’s eyes.
While not a bug, this one was deliberate, here’s also a picture of some cows in a strip club.
Merry Christmas.
This week’s festive grave visit from 지혁! A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The 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 gameplay coder and want to join Team Awesome? Jobs page here. We’re also on sale at the moment if any of your mates fancies it x
Happy December Thursdoid, and a big hello to all the new survivors who’ve jumped on board in recent weeks. This week we’ll be doing a quick check-in with the various different departments who are at work on Build 42 and providing a little freeze-frame of exactly what’s being worked on.
First though, we would be remiss if we didn’t inform all fans of raccoons, soft toys and ‘both of these things’ that: the Makeship campaign for the Spiffo plush has been EXTENDED for a full extra week due to everyone getting all excited about it.
If you are interested in sliding under a closing door then reaching back for your fluffy Spiffo, like Indiana Jones, then final orders can be made here:
Okay, so let’s go round the Zomboid houses. Starting with… the sound team?
SOUND DEPARTMENT
Formosa (formerly Noiseworks) have a lot of different things on the brew – work on new music and music systems, all the new actions and items for B42 (switchblade, firecracker etc) and clearly all the animal stuff which they’ll be starting on in due course.
Something else they are starting work on, however, are ‘acted’ character noises – pants and puffs recorded by real life actors to add a little more depth and feeling to the game, not to mention a greater feeling of ‘real’ when you are standing next to a character who has exerted themselves or is being injured in MP.
This will likely be an option you can turn off if you find it intrusive, but the Sound team believe they will provide an extra layer of immersion for Knox Event survivors. The sorts of things they’ll be recording will be: effort noises for window and fence climbs, sleeping noises, pain noises when bitten or scratched, vomiting, sneezing coughing etc.
ANIMS DEPARTMENT
As those who read this blog might recall, we’ve been screaming out for a big brain to come in and lend their clever thoughts to some of the movement bugs and issues in our anims system for a while. Previous attempts to find a Chosen One didn’t work out, and as such since the 41 release we’ve had a significant blocker in terms of improving our animation system and our animation tools.
There has been significant rejoicing, then, that our friends at Ever Curious Entertainment have lent us their own big brain Steve North – who has been deep in AnimZed of late, and should be providing a range of changes and improvements that will help out our animator Martin no end.
In terms of a player-facing end result, this means that in B42 hopefully there’ll be better blends between anims to tighten everything up and make things look smoother. It could also, potentially, improve the responsiveness of controls and give gameplay a slightly tighter feeling. We’ll see how it goes when the fixes go in.
FIRE DEPARTMENT
Work on integration of the previously in-dev fire system continues, this week with the introduction of new mechanics like burnable oily surfaces and development of fire spread in save games and MP code.
We are also experimenting with visuals in that a more pixelated fire looks better in-game, and also will be having a VFX artist joining us for a time in January to further improve its appearance in our isometric illustrate-y looking world. It’s already looking a smidge better though.
MAPPING DEPARTMENT
Lots of fun new locations appearing from Xeonyx and Ayrton in the map channel, including this little doozy…
Over to RJ, resident of a country doomed to failure in a World Cup football match this coming Saturday.
“Right now I’m prepping my stuff so it can be put in front of our testers. I’m trying to improve the ‘meta’ part of the system that governs them when you’re not in their direct presence – primarily how the feeding trough and water troughs are managed while you’re away. That’s my main focus at the moment – but also need to add some polish to the genetics when animals breed, and I’ll be moving onto animal sickness soon also.”
Now onto Turbo, a resident of a country who will most likely be getting spanked by Argentina at the moment this blog goes live at some point this evening.
“I’m getting stuff ready so that other team members can jump into the more stable parts of my craft branch and help expand it, and plug stuff in. First, though, I’m going back over my crafting stations, and doing some refactoring – in essence adding a lot more automation to the way the system works in the code.“
“It should be worth the extra thought that’s going into it though, at the bare minimum you should be able to create a new station purely through scripting alone. If a certain station requires it then custom logic or a custom UI panel or element can easily be added – it should be as great for modders as much as ourselves.“
BLAIR ALGOL DEPARTMENT
If you are/were aware of Blair as a prolific PZ modder, it will come as no surprise that on the team he is a WHIRLWIND of cool ideas and always has multiple gameplay tweaks and features on the go – and has struck up an amazing combo team with our ‘Loot Placement Artiste’ Baph.
Here’s some fun stuff that’s recently gone in for testing from the world of KEYS:
Zombies will now only have a key, or a key ring with a key in it, for suitable buildings that they spawn in or near to. Prison Guards can have Prison keys, inmates cannot. Employees of a business can have a key for it, customers cannot.
More keys will spawn in buildings, not just for the building, but also possibly for nearby vehicles. Sometimes those nearby vehicles may also have a key for that building in the glovebox.
When a vehicle spawns a key (in its glovebox, on a zombie, or on the ground) it has a chance of being accompanied by a key for a nearby building as well.
It’s ensured that only cop zombies get the cop car keys – although Survivor zombies could have anything.
Building keys may well come pre-named according to the sort of building or business they unlock.
We are doing more fun stuff with Key Rings in general, watch out rabbits!
So in essence: it will be possible for your survivor to find a locked building, find a key for it in the glovebox of a vehicle parked nearby, and then find a key for that vehicle inside that building. The keys may also be on a Lucky Rabbit’s Foot Keyring.
A Lucky Rabbit’s Foot Keyring may, or may not, have a minimal boost to your Luck. We will never truly let on.
Also: new options to let you mix in your runners with your shambles
OTHER DEPARTMENT
Clearly this isn’t everything – we’ve also got optimizations, basements and other fun stuff lined up for 42 but there’s not a huge amount of news on these beyond ‘it’s all coming along’. Hopefully we’ll have a few more updates on these in our next pre-Xmasdoid.
Fanks all love yus x
This week’s good use of 41 fire from BoinXaysa. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The 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.
Now, the Block of Italicized Text demands: go and buy Dwarf Fortress on Steam! The original, best and most brilliant simulation there is – and ever shall be. Its development, and developers, bay12games, are LEGENDARY and built the road that Project Zomboid travels on each and every day. Now DF is finally on Steam, and we implore you all to join in the fun!
Fixed being able to still add a split-screen player when AllowCoop is disabled.
Fixed seeing through walls sometimes after loading into a game.
Fixed an error in ISZoneDisplay:getZoneTooltipText.
Fixed players briefly appearing at 0,0 on the in-game map after joining a server.
Fixed displaying players with name ??? on the in-game map. This happened when the client had not received the first full update with the player's name and other info.
- Added AllowCoop server option to allow or disallow splitscreen clients. - Added MaxTextureSize (default 256) and MaxVehicleTextureSize (default 512) options to the Display options menu. Each of these can be 256, 512, 1024 or 2048.
- Fixed the propane required for the metal wall upgrade system so that you are capable of making a Mk II metal wall without having to upgrade first. - Fixed sleeping pills not being taken in account with the panic sleep exploit fix. - Fixed some vehicle textures (such as for wheels) being limited to 256x256 instead of 512x512. - Fixed reading ServerList.txt and ServerListSteam.txt with the default system encoding instead of UTF-8. - Fixed being unable to slice or smash a rotten watermelon. - Fixed an error in the farming menu that limited squares watered after the first to 50 water units maximum instead of 100. - Fixed /additem command exception when run from the server console. - Fixed redundant console output from ISInventoryPaneContextMenu.lua. - Fixed distant remote players not being displayed on the in-game map.
Let’s get something out of the way first then. Ugh. We feel so unclean doing what we’re about to do. SORRY. SORRY EVERYONE. All the other games were posting Steam Awards links like that, so we did too. Don’t vote for us if you’d rather not, but if you do – well click on the above massive intrusive image and that would be swell.
There may well be another smaller patch, early next week, with some other minor changes – namely a few small anti-cheat measures, a fix for some modded textures and a bit of metal walls weirdness that still needs addressing.
B42 FARMING
This week we’re going over to Blair, and his current mission on overhauling our Farming system. Now, priority number one is to get things more tactile and animation-led with farming: when you use a watering can we want it through a direct mouse-click and not a maze of sub-menus.
Away from this, however, we are also making the overall system more complex, varied and interesting. Elements of this already coded into the 42 mainframe include:
Plants have growing seasons, and for most crops there are one or two optimal planting months. You’ll be able to read the best month to plant your crops on the back of seed packets, and if you plant at the wrong time of year you’ll get a reduced yield, and perhaps the risk of producing sickly plants.
Appropriate plants, such as Potatoes, can be planted using the vegetable itself.
You’ll be able to dry seed Corn and Peas to preserve them for planting next year.
Plants can accumulate slugs and snails for the player to deal with – either using looted pest control, or perhaps using a folksy remedy. Nearby slug repellent plants such as Rosemary will help too.
Rosemary is one of several herbs added as well. They tend to grow more quickly, and when harvested are knocked back a few growth stages – and then can be harvested again later. The herbs you pick can also be used to propagate new herb patches while they’re still fresh, and can be dried as well.
We are expanding the need to water your crops to houseplants. Potted indoor vegetation that players find in the world will now be living – similar, but not identical, to crops. They need to be watered, can fall victim to diseases, and will become visibly unwell before they die and become a dried husk. This also means that they will be another cool signifier of the days that have elapsed since the beginning of the Knox Event – since in time all the plants in homes, shops, the mall etc will wither and die.
Elsewhere, we’ve been seeing what animals look like without their clothes/skin on. We’re thinking that these look realistic but a little too fatty and should have a little more muscle on show – but it’s interesting nonetheless.
These past two weeks we’ve also made a lot of progress with getting the previously shelved fire system back on track, including the ability for the game to have liquid-looking Molotov fire FX on the ground. The actual visuals are going to be fine-tuned and improved soon, so we’d rather not share images of it, but rest assured it’s going to be pretty cool.
Finally, another quick bump for the Spiffo plush that Makeship are creating for us – which is something that the community has been asking for since forever: https://shop.makeship.com/3FHlgG8
If you want one you’ve got two weeks to put your order in.
In case you want to give it for Christmas then Mash has also created a certificate of gifting intent that will hopefully come in useful.
This week’s road-side (well, centre) picnic from Athena. A changelist of all our pre-release and post-release patches since the 41 beta began can be found here. The 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.