1. Project Zomboid
  2. News

Project Zomboid News

Flame On



Evening all.

[h3]NOW[/h3]
We released 41.77 into the stable beta last week, which fixed up linux servers and also improved client to server connections by preferring a direct connection to the server.

It was mission successful in most regards, but a minority of users still had issues connecting – which we have been addressing over the past few days via hotfixes in the Unstable beta.

If you were one of the frustrated souls impacted by this, then let us know if you are still suffering on Unstable (hopefully not) on this thread on the Steam Board.

Our current plan is to get these final people back on board the connection train, then move onto releasing the final 41 patch into the freshly vacated Unstable beta next week.

We’ve now locked coder submissions to this patch (necessary fixes aside) and the final changelist looks like this.


[h3]LATER[/h3]
We’ve blogged a bunch of stuff that we’re working towards getting into 42 now, but this week we thought it also worth mentioning that work has re-begun on the fire revamp.

The fire revamp is something that got a lot of coverage in ‘doids around two years ago, so it probably predates the knowledge of a fair few readers who have come on board in more recent times during B41’s MP launch and consequent hi-jinks.

Work on revamped fire had to be put to one side in favour of bolstering the Multiplayer code team, and ever since then it has been sitting on a dusty shelf and getting a little stale.

The tldr of it when last we left it runs as follows:
  • A realistic spread of fire, with combustible materials that make sense.
  • A system that takes into account temperature, material types, weight, volume, surface area, heating energy, cooling energy etc
  • A set-up on both a solo map and an MP network that means that the game can ‘remember’ what is going on in terms of a spreading fire when players leave the area.
  • Fire spread that uses the direction and speed of the wind, with in-game rain helping with fires being put out.
  • Improved effects and visuals.


So what now? Well a nice chap called Denis is brushing off the unfinished work – and has brought it all up to date with the codebase two years later. This task is now complete, and this video shows a quick summary of where we got to.

[previewyoutube][/previewyoutube]
 
So where does this leave us? Well it doesn’t make it a confirmed 42 feature, we are already going to be packing a LOT in, but it does make its inclusion more likely.

We want to improve the visuals still (we are still not happy with whether it fits the game scene), and we want Denis to take his time getting to grips with the codebase and what can be done with the system still. Likewise we’ll be working on new anims for zeds and players who have caught fire, and the sound team will be providing all manner of sizzle noises.

So this is basically us waving a flag at you to say that we hadn’t forgotten all this cool shit, and it’s back off the shelf and receiving some active love and attention for later on down the line.


[h3]WELCOME KIRRUS![/h3]
The team would like to officially welcome Kirrus to the TIS locker-room! Kirrus has been a long-term contributor, helper and ‘cool head in troubled times’ throughout the history of Project Zomboid – but has never been officially on the team.

He’s now a full time member of the gang, and our new Sys Admin. Big Spiffo hug incoming!

This week’s office space from Sr.Cannoli. 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 Released

Compliled changelist (41.74-41.77).
These small updates were intended to address the crashes affecting Linux MP servers and improve the client-to-server connections.
 
[h3]Hotfix October 20th:[/h3]
41.77.9:

- Added checks for a null VehicleScript to IsoPlayer.getNearVehicle() and IsoZombie.getNearVehicle().


[h3]Hotfix October 17th:[/h3]
41.77.7:

- znet libraries were rebuilt.
- Minor revision number now displayed on main menu instead of just inside the console.

- Fixed being stuck on the connection screen or a black screen when trying to connect to a co-op server.
- Fixed: log messages and NPE during the processing of the RakNet already-connected packet.
- Fixed instances of clients being unable to connect to a server where logs showed that the client is already connected. The client will use 127.0.0.1 to connect if it is a co-op host.
- Fixed host connections from remote clients.
- The client will save coop server logs to the logs.zip file before and after each start.


[h3]Hotfix October 7th:[/h3]
- Rebuilt znet libraries
- Fixed /banid command

[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.

- Improved Type5, and Type21-24 Anti-Cheat behaviour to reduce 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.
- Extended checksum logs for debugging CRC differences.
- Increased kick delay for CRC differences.
- Additional logs were added.

- 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.
- 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.
- 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.
- Fixed black screen issues with certain mod constellations.
- 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]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.

Project Zomboid build 42 will allow spooky basements and sewers

One of the most surprising things about Project Zomboid is how genuinely frightening it can be, despite the outwardly friendly visuals. Developer The Indie Stone is planning on making things quite a bit scarier, however - with some upcoming changes to the survival game's underlying technology, soon we'll be faced with exploring subterranean levels like basements and sewers. And they're going to be very, very dark.


Read the rest of the story...


RELATED LINKS:

Project Zomboid Build 42 will make the map a lot bigger

Project Zomboid update 41.73 lets you store gas in bottles

Project Zomboid is getting "realistic bleach-drinking"

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.