The development has been, and still is, an incredible taxing but also enjoyable experience. Despite our team consisting of people from different cultures, with different ideas, opinions and talents, we all share the same passion for ZPS which allows us to be a very productive team.
We have reached a point in the development where we feel comfortable enough to share the news that you have all been waiting for.
Progress of v3.0
The update has come a long way from its beginnings, and JonnyBoy has put together a small showcase of the builds' progress over the months. The video also shows several new features that we are excited to properly introduce!
It's important to take note of a few things in the video though:
- The features teased in the video are still subject to change, remember that this is the progress of the work over time. Most things have been changed or are still being tweaked in ways.
- The Workshop for ZPS will not be implemented with the release of v3.0, even though it appears to be a selectable option in the video. However, it will be implemented later once the dedicated server is able to download and update the maps from the Workshop.
We've added many new features and entities as well as made changes to existing ones for several different reasons. We wanted to give more options and add more variety, make it easier to balance things, and give the level designer more control. Some things were suggested by community members, others were just created out of necessity from common sense or issues and ideas that arose through testing.
Cascaded Shadow Mapping (CSM):
- We've announced this feature before, but CSM is a new and improved shadow system similar to what CS:GO uses. They dynamically draw the shadows, meaning that a moving objects will have its shadow change depending on the angle the lighting is coming from. CSM can be toggled on/off depending on your preference.
One minor issue we've ran into with CSM is that certain shades of light have a very noticeable green tint to them. There doesn't seem to be anything we can do about this, the only solution seems to be using a different shade of color if you don't want the green tint.
New "ZP Options" menu:
- We've created a new options menu where you can find all the adjustable cvars and settings that are exclusive to ZPS. These setting were previously stored under Options - Multiplayer - Advanced, but we decided it would be better to make a new menu which wasn't so hidden.
Awaiting More Players Mode:
- The first player that joins the round will now be able to walk around and explore the map while waiting for more players. Once another player joins the round, everything will reset and the round will start like normal.
Stats and achievements will not count while the player is waiting, and the score and items will reset once the round has actually begun. If the map uses "logic_rounds OnRoundStart" then this might keep certain objectives from activating, keeping you from exploring the map completely.
- A unique ability that allows only the Carrier to temporarily highlight survivors for the zombie team to see, at the cost of feed-o-meter. This helps relay their position to your zombie minions, so you may all converge on their location. Making it easier to cooperate without the need to communicate.
Optional Zombie Respawn Delay:
- Implemented to help balance particular sections of levels where the zombies spawn very close to survivors, and/or where zombies have a close quarters advantage. This is only adjustable by the level designer via the logic_player_manager entity. You can specify the zombie respawn delay up to a maximum of 5 seconds.
Ammo Requesting & Sharing:
- When a player uses the "Need Ammo" or "Need Weapon" voice commands, you can share the ammo directly with them by looking at them and dropping the selected ammo (when within range). You can only give them one weapon or one box of ammo per request, if they need more they'll have to request more.
HUD Icon for Flashlight:
- This was implemented so that as a survivor you can tell at a glance how much battery is remaining in your flashlight. Giving you the ability to easier manage its remaining power. However, in hardcore mode the battery level of your flashlight is not shown.
New Zombie Vision Shader:
- The method for which the old zombie vision shader was implemented no longer works on the 2013 engine. So JonnyBoy had to implement a new and improved zombie vision shader.
This zombie vision is a dynamic_light attached to the zombie which when activated lights up the surrounding area for that zombie only. Since it's a dynamic light, it's a lot harder on performance than the previous zombie vision. But we've implemented some control over the range the light extends to help keeps things at an acceptable performance for lower-end PCs. You can set these values under the new ZP Options menu.
Optional Anti-Panic Rush:
- This will make panic unavailable for the specificed duration at the beginning of the round. It is disabled by default, but server owners can choose to enable it via cvar, and specify the max amount of seconds you have to wait before panicking up to a maximum of 5.
The reason for that limit is because on many of the stock maps, you can encounter a zombie within the first 10-15 seconds of the round. In such scenarios this feature would greatly limit the survivors chance of being able to escape an attack.
Updated Glow System:
- This will allow level designers to select which color the item_deliver highlight should have. Now it is no longer restricted to only the white color as it was previously.
FMOD Sound Engine:
- The old MP3 Music system has been replaced with FMOD. This elimates the lag that can occur when the track changes, which creates a smoother transition between tracks. The main ZPS theme music will now also play during the first few portions of the loading screen, and slowly fade out.
This also gave us the opportunity to implement the logic_music entity. Which gives level designers the ability to override the current music playing, making "stopmp3" obsolete on maps with custom tracks.
- The old Source UI menu has now been replaced with a new design, to make ZPS more professional and modern.
- The scoreboard has gotten an overhaul on the design because when there was a certain amount of players - The old Source UI would draw beyond the players screen.
(However, when playing on low resolution you may still encounter this issue. This is due to the Source UI code, and unfortunately we do not have the access to modify it. It is recommended to play on a higher resolution than 800x600.)
We've solved this issue by implementing another colum onto the scoreboard. In the process we've improved the look and design as well.
Updated Unload Animation for Pistols:
- The pistol animations for unloading have been added back. This has also fixed the problem where the holster or draw animation would show the empty version or vise versa, when the weapon wasn't empty in the first place.
- Now after discharging enough bullets through a firearm, the muzzle smoke will come out of the barrel in a trail until it dissipates.
- This feature first moves AFK survivors or zombies to the lobby, then kicks them from the server if they proceed to be AFK for too long. However, spectators are exempt from being kicked. The default time limits are 2 minutes before moving players to the Lobby, and 5 minutes before kicking players from the server, with a max time limit of 30 minutes. These values can be adjusted via cvar to fit each server's need.
The server owner can choose to turn this feature off via cvar if they wish. But they do so at their own discretion, because we've used this feature to balance unfair zombie spawn points throughout the maps. With this feature we've been able to place zombie spawn points in better locations, keeping zombies from spawning directly in sight of survivors. Now we no longer need to account for AFK players in the spawn placements. We can instead remove them from play so the round can continue on if they're hindering it, and then remove them from the server so they aren't taking up space or data.
Built-in Admin System:
- This will work similar to SourceMod administration system. You can assign admins to certain groups, you can also specify their immunity, and forcefully set their access to certain abilities such as - reserved slot, basic immunity, kick, ban, ban removal, map change, mute/gag, mute/gag removal, and rcon.
We felt like these abilities were necessary in efficiently managing a server, so we decided to implement them directly into the game.
Simple Bot System:
- This was implemented to allow server owners and level designers to test out plugins, entities and scenarios when in testmode. These bots were only programmed for the simplest of tasks. You can force them to crouch, attack, mimic your actions, or teleport them directly to you. However, for the purpose that we implemented these bots - Their ability to interact with the nav mesh was unnecessary and was removed. It is too heavy on network performance and needs to have a lot of time and effort dedicated to programming and optimizing it properly.
At that point, we would be better off going all the way and implementing fully functional bots, which is an incredibly time consuming task. The bots won’t only have to move around and shoot - They’ll need to be able to clear obstacles, pick up weapons and guns, manage their inventory and stamina, and perform objectives. This is incredibly difficult and time consuming to code, and it simply isn’t worth it for us because there's much more important things for us to be spending our time working on. Perhaps in the future at some point this could be viable, but we have no plans to implement fully functional bots.
SDK Tools for ZPS:
- Includes our own ZPS Hammer, already configured and ready for level designing. You won't need to use Source SDK anymore. There's also many new models and textures that have been added, fixed, and remade.
New & Updated Entities for Community Mappers
- This entity can check if the round has either started or ended, useful to make sure that only certain entities get triggered when the round actually starts.
- This is used to control the respawn delay for zombies, as well as set the weapons survivors spawn with. You can specify weapons, completely strip weapons, spawn them with only a random melee, or even give them armor.
- Level designers can use this to override the hardcore timer, so it can be adjusted appropriately per map. You can also add or substract time as needed, so you can extend the time when survivors complete an objective for example.
- This will count how many times survivors or zombies have won, and will call the respective outputs when the number is reached. Allowing the level desinger to adjust things according to how a team is performing.
- We've used this entity to help balance maps according to player count. It counts how many players there are and if it reaches the specified amount or higher, it will call the respective outputs.
- Similar to logic_playercounter, this trigger will check how many players there are within it and fire the output if it reaches the specified amount.
- This will override the current music track playing, which makes "stopmp3" obselete on maps with custom tracks.
- This entity will spawn the carrier there if the spawn exists or is valid, else the carrier will spawn at info_player_zombie.
- This entity has been updated to support more than just 1 SourceEntityTarget. That way it helps save entdata by only having 1 ambient_generic for multiple sources of output throughout the level.
v3.0 Release Window!
We expect the update to be ready to release sometime between Summer and Fall of 2017. Since issues can spring up out of seemingly nowhere, we feel a release window allows us more time to fix potential problems and make sure everything works as intended. As opposed to a release date which could very likely be pushed back, to both you and our disappointment.
The final stages of development require large-scale playtests. What remains to be done is to properly test out the new features and maps, as well as old ones, and make sure they all get some needed balance tweaks.
Now Accepting Team Applications!
We know that community consists of many talented and dedicated people that we are sure would benefit the development. If you’re interested in playtesting, or want to apply for a position on the development team, you can do so in our new Team Applications sub-forum.
It’s essential that you read and follow the Application Rules & Sample Application Format if you wish for your application to be valid.
Weekly Development Streams on Twitch! Every Friday @ 9 PM EDT
We stream every Friday for a few hours starting at 9PM EDT. Come check out our channel if you have any questions about development, want to catch sneakpeeks or just want to hang out and discuss games in general.
You can also go and check out our past broadcasts if there's anything you've missed.
It’s been a while since the MOTY 2016 Nominations where we last addressed the community. Sadly, we didn’t make into the Honorable Mention. But we did land ourselves a nice 85th place on the Top 100 Mods List. We are truly thankful for the huge, and incredibly dedicated, support that you all continue to show us. It keeps us motivated and dedicated in our work.
See you around,
- Zombie Panic! Development Team