Project Zomboid

Tidy Up Time



At the moment we are fixing and polishing our current internal build to get it ready for more formal internal closed testing amongst a slightly wider set of gameplay testers.

There’s still a few items from the crafting revamp still to come in, and some optimization we hope to include, but overall we are pretty much feature complete. The path ahead is predominantly bug fixes, balancing and internal closed beta testing in preparation for an Unstable release.

There isn’t currently a date on the Unstable. This will depend heavily on how many serious bugs we still have to resolve and, once we are into this slightly larger closed testing group, what the feedback is like on things like the big changes to crafting – and how players feel when they are dropped into it for the first time.

Right now there’s elements of B42 that we know aren’t fun. There are also some showstoppers we are in the process of erasing. While the first Unstable beta clearly doesn’t need to be perfect, it does needs to be fun, balanced as much as it could be, not have any broken aspects, and make a good first impression. Especially considering the amount of time it has taken.

It could be we drop the build on closed tester group laps and it goes down a storm, and has relatively few problems. It could be that elements of new systems are annoying or confusing, meaning that we have to go back to make things smoother and more intuitive.

While we desperately want this to be out, and keenly feel the community’s pain, we don’t want to put out a duff build and disappoint anyone after the long wait. So we’ll take the testers feedback seriously, and won’t be shy of investing time into addressing any of the big concerns they may have, or mega-bugs that they may report.

So, please take this as “It’s not going to be out imminently” – but also consider it as a clear roadsign pointing towards us kicking Unstable out of the door, and the light at the end of the tunnel getting brighter.

We’ll go into a bit more detail on some other aspects of 42 dev at the close of the blog, but first a few other items of information/housekeeping.

SINGLE PLAYER UNSTABLE BETA



As many will be aware, the Unstable beta of Build 41 was released with MP disabled. During this time the multiplayer was being rewritten from the ground up to work with the new animation system, and also to improve multiplayer stability and general immersion into the improved animations and gameplay.

This time around, again, we plan on initially releasing the Build 42 Unstable with MP disabled. This is for several reasons, but it will primarily mean that we can address SP issues in the Unstable beta in more bite-sized chunks without drowning in bug and issue reports, and it will also clearly allow the MP team a little extra time to fix up and polish.

A lot of huge changes have been made to improve security of multiplayer, with changes such as server side inventory and countless other anti-cheat measures to make the game more server-authoritative to help secure servers from being sent any kind of spoofed commands that cause issues with cheaters and such.

In addition there have been many optimizations and improvements made to deal with lag, optimize zombie movement, prevent rubber banding and so on which will lead hopefully to a much more enjoyable MP experience. Here’s a quick video of some vehicle lag improvements that came in this week, for example.

This will likely all need more testing and issues closed out once the SP is more final, before it’s available for more public consumption in Unstable.

(Please bear in mind though, that we’re a highly moddable java game with at this time no third party anti-cheat software. If c++ compiled AAA games with anti-cheat are still struggling with cheaters, then we would all be naive to assume that cheating would not be an issue. Hopefully we have massively restricted the possible capabilities of cheaters in 42 now though now – seeing as the server is a lot more authoritative in controlling the world state. Our advice will always be to favour playing in a whitelisted community if you want to avoid cheaters or at least be able to permanently remove them from your game. We will however be exploring proper anti-cheat solutions in the longer term and hopefully most cheats will be limited to stuff like ESP, but even so we’ll continue to recommend whitelisted servers for a cheater free experience.)

There will, however, be strict requirements for modders to follow to allow them to do stuff they once took for granted. For example, creating an inventory item will have to be done in a way that’ll allow it to be created on the server.

The MP team are currently working on guidelines and documentation that will explain how modders can work within the updated framework and not upset the anti-cheat measures. Likewise, similar documents are being written for crafting and other new/updated areas of the game.

Finally, how long will an Unstable SP beta last until we drop MP in? Uncertain, but this stuff isn’t being written from scratch – and is already mostly functional. It’s a different situation to the one that saw the lengthy wait for MP integration for 41.

MODPOCALYPSE



With such a huge update to the game, it is inevitable that almost every mod that exists will be invalidated in some capacity. With the new crafting systems, especially, it’s unlikely any mod will work out of the box.

However, what we do have is a new modding architecture which will help a lot in the transition, that’s heavily inspired by the way that a certain game that’s set on a World out on the Rim does it.

Essentially, Aiteron’s been working on heavily improving the mod system to allow for versioned mods to be included in a Workshop item.

B41 currently uses the root directory of the workshop files as the mod: it contains a media directory and all the rest that allows the mod to override files in the core zomboid data directory. B42, meanwhile, instead introduces a functionality where a build of the game will query the mod for a subdirectory which contains the most recent compatible version of the mod – and to then use those files.

For example, a subscribed mod could have a 42 directory, a 42.21 directory, a 43 directory and a 43.31 directory. If you run a version of the game that’s 42.1 it’d use the 42 directory, and load that version of the mod. If you then upgraded to 42.25 then it would start using the 42.21 directory, and so on.

Within this there’s also a ‘common’ directory that’s used by any version of the mod and can be used to store large files such as art or sounds, that modders clearly don’t want duplicated over 20 versions of their mod.

(Though this aspect will only truly come into play in versions beyond 41, as we can’t at this point realistically modify Build 41 to use the new mod system – and B41 mods will clearly remain loading directly out of the root directory as they currently do while ignoring the B42+ versioned directories.)

What this will all mean is that when modders update their mods to work with B42, they can leave the B41 files within the mod package and continue to work on B41 content as and when they desire. Simultaneously, however, they’ll be able to support the B42 beta without destroying that compatibility with B41 stable

From that point on they’ll then have much more intelligent versioning to allow for extra power to update their mods, in ways that won’t be destructive to older builds of the game. In addition to this, 42’s new mod load order functionality will make submods and modpacks a lot easier to create.

Finally because of these huge changes, and the likelihood that so few mods at all will work B42 on first release, we currently plan to automatically disable all mods on first load – and B42 will be unable to load any of the B41 mod files until a workshop item has been prepared using a 42 directory. This will be necessary in limiting the amount of bug reports we’d inevitably get from people loading up their B41 mod lists and completely breaking the game.

INTERNAL BUILD NOW



As indicated above, we’re pretty much feature complete with some crafting elements still on their way. There’s various issues lurking in the tester build that need investigation and sorting – this week some unexplained and endless explosions in deer/bunny populations, out of memory issues, and combat irregularities. There’s various things here that need sweeping up.

As we have mentioned in previous blogs, we felt the delay with the crafting overhaul was set to continue longer than anyone was comfortable with, and so decided to release the first beta without the entirety of the ‘nu-medieval post-apocalypse village’ crafting possibilities we intend in the longer term as with blacksmithing, pottery, smelting, weapon-related carpentry, carving etc. there’ll be plenty still to chew on.

The final ‘must have’ feature we have in production for 42 is a Building UI. We’ve never been a fan of the right click menu building system, and along with the sharp increase of new buildable tiles it became necessary to improve how building is carried out. For the expanded test pool and Unstable, then, the final addition will be in taking the current ‘furniture picking up’ icon on the icon strip to the left and turn it into a button to bring up a new panel with the furniture interactions and building choices rolled into it

From this we’ll have a nice categorized building UI the player can keep on-screen as a palette to pick buildable tiles from, which will allow you to browse the various categories and tiles you want to build in the world, click on them if you have the necessary building materials, and then place the ghost tile on the target tile. It’s pretty simple, and backstage a first implementation isn’t taking too long to get operational. In other news:

ANIMAL TRACKERS



As discussed last time, we weren’t happy with the pre-defined and permanent animal paths that deer and other animals would follow that were initially implemented. As such Prof recently added randomized animal paths that are tweakable in lua.

New paths are generated using the seed given when you create a world – they are static in the sense that they don’t self-modify after you started a game, but dynamic in the sense that you will never know what journeys deer will be taking in any fresh world. In future we’ll explore regenerating these paths if they are over-hunted. Here’s a quick vid of them in action.

https://www.youtube.com/watch?v=o1X7d34_c8Q

SEW-SEW


While it’s not a complete tech tree at the moment, tailoring has got some attention and players should be able to grind the first levels from looted or farmed materials. These do not require a specific crafting station, but higher-level options that we’ll add during Unstable will.

[Please note: the crafting window is due another polish pass, and this video also shows a degree of debug/coder-speak wordage. Although performed on a table here, these recipes don’t demand it.]

https://www.youtube.com/watch?v=37aM8yEhkXg

UPS AND DOWNS



Partly due to current game imbalance, and partly because with the new crafting we didn’t want to replicate the vertically-placed-work-station ‘spam crafting’ that you can sometimes see in games like Minecraft, we spent an afternoon revising sheet rope climbing mechanics while waiting for a crafting blocker to clear.

Previously only drunk players had a chance of falling when climbing a sheet rope, in Build 42 now any player has a chance to fall when climbing a sheet rope to higher floors after an initial grace period has elapsed – the duration of which period, and the chance to fall, is determined by negative moodles, skills such as Strength, Fitness and Nimble, appropriate traits like Dextrous or Gymnast, and professions like Burglar.

Additionally characters will accumulate muscle strain if they climb ropes for enough time, and without resting. There’s a smaller chance of falling from a rope while descending, also, while all of this can be toggled off in Sandbox.

TOOLS UPDATE


In the background to the B42 work, Zac has been overhauling the AnimZed tool that made the success of B41 possible. This will be of great aid when it comes to final B42 polish, and all versions beyond this.

“The core of every good survivor character brain is a logic state network.” He explains. “The player’s character might be walking – and from that they could start running, stop entirely, climbFence, aim, sneak etc. All the animation frameworks for players and zeds need to be keyed into all available potential outcomes that the player or the game might dictate.”

“Our problem increasingly was that our characters’ brains were getting pretty complex. We are adding all sorts of new abilities in both 42 and beyond, and they’re getting bigger and bigger still.”

“Up until now we haven’t had a tool to visualise the network. We’ve been editing the structure manually, by editing xml files. This has led to pain. When trying to incorporate a new feature, or figure out why a character is doing the wrong thing, it’s always taken a lot of manually parsing reams of network circuitry, and it’s slowed integration down.”


“So, we have been building a proper logic network editor, named it AnimGraphZeditor, that should be a big boost in making more and more complex brains. The importance of having a robust logic network editor cannot be overstated for final polish of elements of 42, and everything that lies beyond it: essentially taking the abstract mass of logic conditionals, states, and transitions, and puts them up on the screen as circuit diagrams. From here we can identify problems and faulty circuits, and makes it much easier to implement new features and capabilities.”

While we are in this area, it should also be mentioned that it is still our plan to release AnimZed to the community – and this will most likely follow Build 42 release.

WEAPON TESTING



Finally a quick video compilation of recent in-game weapon testing – featuring all the old familiars, but also a whole bunch of the new items that you’ll be able to crack heads open with in the next version.

https://www.youtube.com/watch?v=4B7_EEuKcrY
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. We also live on Twitter/X right here! Our Discord is open for chat and hijinks too.

Those who receive blogs and announcements by email: please note that we are changing provider. If you want to continue to receive our mails please sign up again here.