Short Term Goals
The last few weeks have been all about preparing for the future for the DayZ Dev Team. The decision has been made to increase the size of the team to allow for the zombie AI and animal AI to be done right. That also meant a lot of planning and training had to be done to accommodate the new team size. So what is in store for us in the near future?
- Entirely new rendering system (allowing upgrades to DX10 or DX11, ports to other platforms)
- Multithreading / multicore for servers and possibly clients
- Completely new animal AI that behaves like actual animals!
- A replacement system for the “scroll wheel action menu”.
- Complete refactoring of the inventory system. While not a big change for users, possibly allows some more advanced systems to be implemented which could result in better performance and less bugs.
Zombies and Their Challenges
Zombies have been difficult to do on the existing ArmA engine. Where as the system used to be used for soldiers to move from point A to point B. Not for massive hordes of zombies all doing their individual thing. In the mod, the zombies (from an AI perspective) were simply pawns that were activated by player presence. Nowadays we want more than that.
In addition to all the problems that has plagued the project in terms of pathfinding and collision for the AI. The engine was pushed to do things it was never designed to do. Especially regarding interiors of buildings. An attempt has been made to provide solutions for the shortcomings of what was possible. It still proved to be not enough. A new approach is being developed from scratch.
DayZ has the same problems as any other game in terms of pathfinding. Except one major addition. The map for DayZ is VERY LARGE. The team decided to start using “navmeshes”. Although since the map is so big this cannot be created by hand. A solution was devised to split up the world into grids and generate the mesh with smaller sections at a time. You can read all about this outlined in the project Recast and Detour.
Zombie Pathfinding Future
A small program has been developed to scan the world, load all the objects and then tracing billions of lines to calculate where AI should have the ability to move around for both indoors and outdoors. This results in great precision and a unified solution for the pathfinding.
Pathfinding over multiple levels
Pathfinding for interiors
Note that navigation mesh is included for interiors. In this screenshot, the proxy objects (furniture) has not been included in the nav mesh check, but this is planned for the future.
High precision over large distances
Note there is some “Z-fighting” in this screenshot, but it shows how a chunk of the navmesh looks when lined up with a small village.
Pathfinding into buildings
The engine will only load chunks of the navmesh as it needs them. This solution will result in about 600mb extra memory usage but as the team is working on a 64-bit server this will negate the potential issues with memory.
The performance gains however can be very significant! Currently the team is working on making sure the AI can run on a separate core. The downside to this approach is the extended time frame that is needed to make all of this great stuff a reality. But in the end the results will be massive.
Previously two different systems were used for navigating AI. An “outside” system where the AI would move around static (structures) and dynamic (vehicles) objects alongside an “inside” solution where the AI would move on rails inside buildings. This interior method was dropped because of the performance issues with large numbers of AI controlled zombies.
In thoses screenshots, you can see a path between two red points. Because this system is now meant to do what the team wants it to do, the results should be very good. Not only in terms of how well the system works but also in performance gains.
A lot of new content is about to hit the new experimental servers. Recently the new Bohemia Interactive studio in Bratislava alongside BI’s existing studio has produced some great results and some of it is ready to be put into the game. Here’s a short list of things to come:
- Several animals (including deer and fish)
- Several types of meat models
- Improvised Tackle
- Large capacity police vest
- OMON-inspired Opën uniform
- EMT (paramedic) uniform
- Firefighter uniform
- Gorka uniform (a type of Russian military uniform)
Fire building, Hunting and Tree Cutting
Fireplaces and hunting were not included in the previous update because of their state at the time. Rather than enhancing gameplay it would hinder it, it would need some extra time. You can now use your hatchet to gather wood from trees. If you swing your hatchet too many times the tree will become “out of logs” and fall over. Tree cutting as of now is done by holding a hatchet in your hands and using the mouse-wheel action menu. However this system is obviously is not very natural and much better solutions already exist in other games. Like swinging the hatchet at the tree and logs will be generated from that. The next experimental build will give some insight on how the basic system will work in the game.
Fireplaces can be created by crafting a “fireplace kit”. A kit that consists of things you need to start a fire in real life. For example small twigs or rags. Once you have created your fireplace, you can upgrade your fireplace by placing some small stones around it. These stones can be recovered from the ground around rocky areas or you can have a go at the rocks with your pick-axe and generate some stone that way. All these scavenging systems need refining by replacing the action menu with a more natural one. Nevertheless these are exciting new additions to the DayZ world and should pave the way for more complex systems.
A Visit to the Bratislava Studio
We visited our team in Bratislava – they have a TURTLE!
The next update
Currently the target for the team is a stable update once a month. The DayZ team claims the Prison Architect way of handling their game is their aspiration. The DayZ team has no set timeframe for experimental releases, they are only there to assist preparing for the stable updates.
Several things to note:
- Different tasks take different amounts of time
- Priorities for tasks are built around what is needed based on dependencies, not what is most needed to satisfy game design
- Scheduled builds are targets, not absolutes. The team will delay and postpone builds should they lack confidence in their status.
- Devblogs are no longer scheduled weekly, they are done as often as new information becomes available to show their progress.
This is a very exciting time for the team as they have just emerged from a time of very fast growth. Expanding the team like they did is very risky due to the fact that everything has to be re-planned and re-organized. However the results will show if their gamble paid off.