1. Project Zomboid
  2. News

Project Zomboid News

Upstairs Downstairs



Now then, survivors. Let’s do the thing.

[h3]NEXT[/h3]
This week we released version 41.77 into our Unstable beta. This is primarily aimed at fixing the Linux crashes that have been plaguing server hosts, and so far seems to be a mission success in that regard.

It also improves client to server connections by preferring a direct connection to the server. Servers now have two ports for clients to connect to, configurable through the server options. The game port (UDP 16261 by default) is used to handle Steam queries. The additional port (UDP 16262 by default) is used to handle the direct connection.

We’ve had a successful wider test of 41.77 with more than 30 people on a server without any crashes, and we’ve tested a modded setup afterwards as well.

Upon release there were servers running mods with 41.77 just fine, but unfortunately it seemed that some mod setup constellations caused conflicts that resulted in black screens for some servers.

We have just pushed a hotfix we believe will resolve this.

If, however, you run a 41.77 server and you are still experiencing players unable to log on (only seeing a black screen) then please send us: the list of ModIDs (specifically the “Mods=” line from their server.ini, the workshop= line, and your server logs.

Posting these in the forum release thread or in our Discord techsupport channel would probably be best.

Likewise, any reports of ongoing server instability or general misbehaviour – please let us know ASAP.


[h3]THEN[/h3]
We’re still adding tweaks and polish to our final B41 patch that we’ll put out once the current network improvements are fully tested, released and stable.

This is the current changelist, with notable additions in the past few weeks on show here if you already read up on what was incoming in our last blog.


[h3]OOH, 42[/h3]
Build 42 will be a very big update, and it will appear a sizable amount of time after Build 41 is fully wrapped. We’ve announced most of the things that we currently have brewing for it, but there’s one thing we’ve only hinted at so far – and which is very likely to feature.

As regular readers may remember, a while ago we wrote a blog called Techdoid that detailed some of the big engine improvements we have slated for 42.

Amongst them is a new rendering pipeline which allows for entire chunks to be cached with a depth buffer, which will afford us MASSIVE rendering and scene construction improvements and should rid us of all the performance issues we’ve been plagued with due to the isometric draw order over the years.

[previewyoutube][/previewyoutube]

There’s also a new light propagation system, which allows for light to naturally leak through doors and windows, providing much more atmospheric and believable lighting

[previewyoutube][/previewyoutube]

We also got rid of the 8 storey limit on chunks: specifically we allowed each chunk to have its own unique defined height up to 32 levels.

Finally, we discussed that we’d fixed the many areas of the codebase that used static casts to round the player’s position to determine what chunk or tile they were on to using Math.floors instead. This method allows for negative coordinates to work where prior the calculations would have failed if the player was stood on a tile with a negative coordinate.

This in theory will allow for us, or modders, to build north or west to the same extents as we currently build to the east and south, effectively quadrupling the maximum size the map could be extended to and open up a great deal of extra land to populate should we need to in future.

Whilst all these features are gamechangers in themselves, they were also done in service of another very specific feature we’ve had planned for a long time, which required each of them to be made feasible in any way.

The current in-game lighting system means that the indoor ambience levels are defined solely by the time of day. If it’s daytime, the ambient light levels inside a building are above zero, giving just sub-daylight levels, even if there are no sources of natural light that should fall on a tile just by virtue of it being day. That wouldn’t work very well if we were wanting to do… a certain other feature.

The previous eight level hard limit and high rendering cost of multiple levels was rather restrictive if we were to… want to do a certain something.

The lack of support for negative coordinates for character positions? Well that was IMMENSELY restrictive if we… were to want to do a certain something.

A few people may have been able to read between the lines of what all these lead toward. Many more will have just watched the video already.

[previewyoutube][/previewyoutube]

The plan we have for basements and sub-levels is an interesting one, as it will provide a lot more replayability to the game map, which is otherwise completely static at the moment.

Essentially in 42 we, or modders, can list positions on the map (along with staircase orientation) that have the space for a basement and can be allocated the potential to have one. However, no basements are placed within the map itself.

When an area is streamed in for the first time, an appropriate basement ‘building’ created in the building editor and exported as a binary file is selected randomly from the list of all possible basements and will be injected into the map as it is loaded.

We could add tags to make it pick an appropriate category of basement to fit the specific house, though right now the code has it set as completely random. Each basement has stairs leading up from its ‘top’ floor and these stairs will be aligned to the correct position when it is injected into the map.

This means that despite the map being static, any areas with basements will yield surprises in every playthrough. This will also, clearly, cause the least disruption to the existing map development, modded maps and everything else.

Whilst most of the basements will be modest basement rooms, that will have their own unique layout and lootable containers and will change on every new world and be populated with our own collection as well as any collections of mod basements that are subscribed to.

There may be a few, however, which are more extensive, the player could happen upon a super rare and extensive underground complex. We have 32 levels to work with that can be distributed in any way above or below ground per chunk as required, so there’ll be few limits particularly in what modders can do with this.

We can also hardcode some specific basement levels, so we could say provide key buildings within the map with bespoke basement levels that fit that particular building and will always be the same on every map.

Also, with the new light propagation system, you better bring a torch – because unless there are light switches, its gonna be dark even if it’s daytime!

We’re also considering the possibility of other sub-surface structures, such as sewers for locations like Louisville. We’re still researching what would be appropriate and sufficiently realistic for this, however, and it’s not certain what could/would appear in b42 beyond what’s discussed above at this stage.

 
[h3]SPIFFO: BEYOND[/h3]
If you are a Terraria player then right now you are likely enjoying the amazing Labor of Love update, and maybe you’ve even discovered a certain someone has made the jump into another game – heralding the beginning of some sort of Spiffo Cinematic Universe.

Our endless thanks to everyone at Re-Logic for letting our little dude spread his wings (or spin his tail, I guess) and treating him so well.

[previewyoutube][/previewyoutube]

This week’s stunning outdoor scene from Citro. 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 games dev and want to work with us, especially if you’re an Animations Engineer as Christ alive that would be handy? Details here.

41.77 UNSTABLE Released




[h3]Hotfix#3 October 3rd:[/h3]

- Fixed the timed-action progress bar position not being updated during actions without a fixed duration.
- Fixed the animation speed of the timed-action progress bar at different framerates.


[h3]Hotfix #2 September 29th:[/h3]

- Fixed black screen issues with certain mod constellations.
- Improved ConnectionManager logs.
- Increased kick delay for CRC differences.


[h3]Hotfix #1 September 29th[/h3]
- Improved Type5 and Type22 Anti-Cheat behaviour to reduce false positives.
- Extended checksum logs for debugging CRC differences.
- Fixed Type21 black screen at connection stage when Type21 anti-cheat check is disabled.
- Fixed the character model always using media/textures/Body/Masks instead a clothing item's UnderlayMasks folder.


[h2]Original Patch[/h2]
[h3]MP[/h3]
- Improved client connection.
Important for server providers: Servers now have two ports for clients to connect to.
The game port (UDP 16261 by default) is used to handle Steam queries. The additional port (UDP 16262 by default) is used to handle the direct connection. These ports can be configured through the server options.
Clients will first try to use a direct connection. If direct connection fails, clients will try to connect via Steam.
The non-Steam version works as usual.
UPnP rules were changed accordingly (UPnP is used in cases to prevent manual port-forwarding).
The client will show the warning message "WARNING: SERVER HAS PORT %1 CLOSED. PERFORMANCE MAY BE SEVERELY AFFECTED" if the client can't connect through direct connection.

- ZNet libraries rebuilt for Windows, Linux, and Mac.
- ZNet, Connection, and Kick logs are improved.

- Additional logs were added.

- Fixed kicks after disabling VOIP.
- Fixed connecting to host after disconnection from a dedicated server.
- Fixed infinite connection attempt to non-steam server when it's not up.
- Fixed the client displaying "Disconnected" instead of "Wrong username or password".
- Fixed players being able to change their saved password for an already created account in some instances.


[h3]NEW[/h3]
- Added a looping progress bar for timed actions that have no defined end. This is mainly a stopgap "fix" for entering cars, to visualize that there is an ongoing unfinished action until we can have visually open doors, etc.
Specifically added for the scenarios where players reported being bitten through the car door after they had entered a car and interrupted the "enter car" action before it could finish (e.g. by opening the map, etc), i.e. before the door was "closed".
This bar extends to other "infinite" actions like Walk To.


[h3]MODELS[/h3]
- Added new body locations: Jacket_Bulky, JacketHat_Bulky, TorsoExtraVest, and JacketSuit.
- Assigned new body locations to existing clothing items to avoid clipping.
- Tweaked and added many clothing masks to avoid clipping through each other.
- Adjusted several clothing models and bone weighting to improve clipping.
- Removed Bowling shirt model from Bowling shirt definitions and made Bowling Shirt a texture. The model was left in the files in case mods use it.
- Improved base Body mask to help with clipping.
- Re-exported ALICE packs as some straps were missing.

The Good Life



Hello everyone.

[h3]NEXT[/h3]
The situation with Linux server instability remains ongoing, with the MP team working on another update to the Unstable beta – and an internal test of their work tonight.

The good news from the Unstable release of 41.76 was that overall network and connection speeds were improved, and will be beneficial to all online players once fully released, but the far more pressing issue was that residual errors in our zombienet library carried over server instability. Getting this, finally, sorted is currently the team’s number one priority.

This issue doesn’t impact all our players, but we recognise how frustrating it must be for those who play regularly on Linux servers – and above all those who operate them. We can only apologise for the continued outage and ongoing work, and recognise that patience has been running understandably thin.

In our travels fixing the issues, the networking has been changed so as to more directly communicate between server and client. The server now has 2 ports to connect to. The game port (16261 by default) is used to handle Steam queries. The additional port (16262 by default) is used to handle the direct connection, and thus circumnavigate the data travelling through the steam network which was impacting latency and throughput significantly. These ports can be configured through the server options.

We’re aware this may cause a bit of disruption when we first release this to stable. However, the positive impact this will have on server performance, reducing lag and improving syncing of the game is too great to ignore, and should be just an additional port for server operators to be aware of and shouldn’t affect the vast majority of players connecting. The non-Steam version, meanwhile, will just work as usual.


[h3]THEN[/h3]
Most of the non-MP team are now fully on B42 development, but we do have a few brave soldiers working on the final 41 patch that’s currently backlogged behind the aforementioned MP fixes.

The intention of this patch is to be as non-disruptive as possible, and to leave 41 in the best possible condition during the next period of extensive Build 42 development.

As such it’s primarily fix-based and polish, but there are also some expanded sandbox options. You can see the topline of new changes in the screenshot below.



You can thankfully also view the full current changelist by following this hotlink.

This build will go into the unstable beta once MP servers are fully patched up and stable.


[h3]42[/h3]
We’ve got a couple of videos from RJ this week to show his current work on domestic animals. They are fairly self-explanatory when you watch them, but PLEASE NOTE everything you see is heavily WIP.

RJ is working in something of a development debug sandbox here, and as such everything will have rough edges – and likewise some player actions will have more appropriate animations, animal sizes will be improved, sound effects, further polished UI etc. etc.

[previewyoutube][/previewyoutube]

[previewyoutube][/previewyoutube]

Finally, just to give you the shivers, here’s a sample of the Sound Team’s latest work on sprinter screams. Don’t have nightmares.

[previewyoutube][/previewyoutube]

This week’s book club from Kawri. 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 games dev and want to work with us, especially if you’re an Animations Engineer as Christ alive that would be handy? Details here.
 

41.76 UNSTABLE Released



We skipped public testing for 41.75.

The TL;DR of the changes from 41.74 to 41.76 is that the Steam Networking API implementation was improved; Linux crashes should be fixed and overall networking performance has been improved alongside connection stability in internal tests.
In essence, the game will now also use direct communication with dedicated servers, instead of going entirely through Steam’s own networking API, improving performance and stability for dedicated servers.


[h3]MP[/h3]
- Improved Steam Networking API implementation.
- Selected game data is no longer transmitted through the Steam P2P API but through UDP instead.

- Adjusted Anti-Cheat Types 21-24 to result in fewer false positives.

A note that if you do not run a public server (i.e. a server exclusively for you and your family & friends without the worry of griefing and cheating), you can entirely circumvent any sort of frustration with false positives by disabling all AntiCheat protections in the servers .ini file.

- Split the large ConnectionDetails packet into several smaller packets with one of the ConnectionDetailsPacket.State enum values indicating which data is requested.
- Improved algorithm for the transmission of large files while playing.

- Loading screen now shows the download status of large files when connecting to a server.

- ZNet library was rebuilt on all platforms.

- Fixed ObjectModData packets not being sent while the server was in the FastForward state.
- Fixed bug in world dictionary when an item in a different module but with a similar name as an vanilla item was removed.
- Fixed a new stubble Beard getting added to remote players after each appearance change, which resulted in receivePlayerZombieDescriptors errors.

Broadened HorizonZ



Okay, so here’s a run down on our current basic plans for finalizing Build 41, and then beyond.

[h3]NEXT[/h3]
We’ve left Linux server operators hanging out to dry a bit over the last two weeks and feel awful about it – especially ones with larger/busier servers.

41.73 came with crashes on Linux servers, and the version with the updated Steam API we put into the Unstable beta in 41.74 turned out to bring in as many issues as it solved.

As such Yuri and Andrei are currently working on another approach that will be going into Unstable beta (and then Stable) as soon as we can muster – which will have the crashes fixed, and should also have increased networking performance and improved connection stabilities for everyone. We’re hoping to conduct an internal test on it tomorrow.

In essence the game will now also use direct communication with dedicated servers, instead of going entirely through Steam’s own networking. This should improve things for all players on dedicated servers – including the Linux servers that were sadly the canary in the coalmine that flagged up the fact that something needed to be done here.

Again, our apologies to those impacted – we are thinking of ways to repair some of the damage done during the outage and appreciate your frustration.

[h3]THEN[/h3]
We have a staging branch backstage that all our coders are feeding aspects of their work that they wouldn’t want people to have to wait until Build 42 for – so no big features, but instead a lot of fixes and balance.

We will also be trying to limit mod disruption and big/controversial changes, as this will be the version that we leave folks with for quite a while when all of us are 100% working on new features alongside the existing 42 team. (Apart from anything urgent we might need to attend to on 41, clearly).

The sorts of things we’re currently testing for this patch include: many and various visual issues with the cutaway system, colour blind accessibility options, better crate highlights, many recipe improvements, better ways for the game to handle car alarms and (hopefully) fixes for sounds cutting out in busy MP situations.

There’s also some new 3D models where we’ve had icon mismatches, new tooltips to better explain what different items can do, weight/encumbrance rebalancing on some items, the lighter/Molotov fix we mentioned last time and many and varied other fixes. We’ve also done some work improving the in-game server browser that we would certainly like to include as well.

There’s a lot of other stuff too, but you probably get the gist. Nothing that’s going to rock the boat, but also enough stuff to keep the boat sailing until we reach the glittering shores of 42.

[h3]MAP NEXT[/h3]
While we can’t and won’t go into forensic detail on which towns and what design themes we’re going for, it’s perhaps time to talk about the next map expansion – which will most likely hit with 42.

Xeonyx and Ayrton are essentially pushing the map out on all sides, apart from beyond the game’s traditional Ohio River boundary.



The map team are returning to fictionalised versions of real places on the Kentucky map – Riverside and March Ridge being entirely fictional. We don’t want to name exactly which ones, but it might be worth mentioning one of them will be Ekron.

The location currently commonly known as Ekron within the community is not supposed to be our version of that place, and (for reasons that will become explicit when viewed on the PZ map) is internally known as Fallas Lake. We will erect a sign in Build 42 to make this information more prominent.

Here’s a few WIP screens of some of our future locations to keep you all going.




[h3]ALSO[/h3]
Other things currently being worked on for B42 inclusion that we haven’t mentioned before are:
  • The Sound Team are working on sprinter zed growls and screams – our first inspirations here will be the Dawn of the Dead remake but we will iterate until we get it right. Formosa have also created a variety of bullet impact noises (on cars, dirt, glass, plastic, trees, walls and wood) that we will be integrating come 42, alongside the further improvement of the dynamic music system. They will also clearly have their hands full with the cows, chickens, sheep, improved fishing and many and various new post-apocalypse items and actions that B42 will bring along with it.

  • RJ is currently experimenting with rats, which could also become part of the Knox Event alongside domestic animals. Martin, meanwhile, has been working on animal transportation – namely new trailers and potential new vehicles.
  • Pat_Bren has been expanding the breadth of different TV and radio channels available to tune into at the start of the outbreak, and is now moving onto some other frequencies that players might be lucky enough to come across later on within the PZ timeline too. Right now he’s added Public Access TV, a Music channel, a Sports channel, a movie channel, a new entertainment channel and a radio station called Upper South Radio.


We can’t remember if we showed it before, apologies if so, but seeing as RJ is back working with his rats – here’s what a PZ rat looks like when it bugs out with human hair.



Thanks all, and thanks for your patience. We’ll see you next time.

This week’s foggy overview from the Universe of Gamer. 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 games dev and want to work with us, especially if you’re an Animations Engineer as Christ alive that would be handy? Details here.