Project Zomboid

Upstairs Downstairs



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

NEXT


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.


THEN


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.


OOH, 42


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.

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

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

https://www.youtube.com/watch?v=9_0TiPQ-JQA

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.

https://www.youtube.com/watch?v=1KgbGw9lnW4

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.

 

SPIFFO: BEYOND


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.

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

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.