Post article RSS Articles

This devblog will be focused on describing the progress with one of our biggest issues: Zombie Pathfinding.


Development Priorities and Pace

Our major focus has been on establishing the architecture, both in the team and in the game, in order to deliver best in the future. This involved us drastically increasing the size of the team working on the game. This had a severe short-term impact on our progress as our existing team had to devote time and resources to training and planning. The new zombie pathfinding is a good example of this approach beginning to produce results.

Some examples of future major changes coming as a result of this new focus:

  • Entirely new rendering system (allowing potential upgrades to DX10 or DX11, ports as well).
  • True multithreading / multicore for servers and possibly clients.
  • Completely new animal AI that mirrors an actual animals behaviors.
  • Redeveloped “action” system, replacing the mouse-wheel scroll action system.
  • Complete refactoring of the inventory system. While not a big change for users, possibly allows some more advanced systems to be implemented and better performance and less bugs.

Background

Zombies have proven to be one of the most difficult to develop components of the game. When we were developing the game we realized that in the time we had, we would need to work within the parameters of the AI already in the engine. In the engine, AI is calculated on a “per agent” basis, with some caching for things like targets (shared target info, etc…). In the mod, this was dropped in favor of calculating visibility and target info on a “per player” approach. This meant that zombies in the mod were simply pawns, activated by players moving around.

In addition to behavior problems we also experienced problems with pathfinding and collision for the AI. We were getting the engine to do things that it was never designed to do, especially regarding interiors of buildings. We attempted to refactor these solutions to accommodate our changes but, as can be seen by playing the current build, they fell short of our expectations. In the end we decided it would be easier to develop a new approach from scratch.

The Challenge

There are many exciting solutions available for pathfinding, it’s fairly standard fare in the video gaming industry. Our problem was not unique, but our situation was: our world is very big yet it requires the same precision as a small one.

The team devoted to solving this decided to use navigation meshes. The serious problem it presented, though, was how to generate these meshes, with nearly 2 million objects on the map doing it by hand would not be an option. So a method was devised to split the world up into grids, and then raycast at a precise interval and generate chunks of navmesh. This is all done during the packing process and “baked” out into data that can be read by the server and client. This uses the wonderful approaches outlined in the open source navmesh project Recast and Detour.

The Results

I spoke to Martin Slavkov, programmer behind the solution, to help me outline the result with some screenshots.

Generating the Navmesh (view Imgur Gallery of generation)

image

A small program was developed to read through the world, load all the objects, and then work its way through tracing billions of lines to calculate the ability to move. This then works out not only where outside you can walk, but inside as well. It gives great precision while still working for a very large scale world both indoor and outdoor. Having a unified solution for pathfinding makes implementation much easier.

Use in-game (view Imgur Gallery of navmesh in action)

The engine is then able to load the chunks in as it needs. It does use some memory (around 600mb extra, maximum), but it only loads the chunks it needs. However as we are moving to 64-bit on the server side, this reduces any potential issues with memory.

image

Performance optimizations can be very significant. Currently the team are working on parallelizing the AI pathfinding function so it can operate on a separate core. With all new functionality we are developing in this way, unfortunately that means that it can take longer for us to develop but the results for performance can be massive.

Previously two different systems were used for navigating AI. The exterior one handled navigation around static and dynamic objects, and an internal “path” system was used for building interiors. This involved artists defining paths that AI could follow. We had to drop this interior method because of the massive performance issues with large numbers of agents.

image

In the screenshot above, you can see a path between two red points. Because the system is now unified it means that more efficient (and more natural) pathfinding solutions are available to the AI, at a fraction of the performance cost as before.

Report from the Lead Artist, Chris Torchia (View Imgur Gallery of new art)


I’m happy to report on the loads of content which will soon hit experimental servers. Recently the Prague and Bratislava studios had our first meet and greet so I was able to get a first hand look at all of the ongoing work by the artists and animators on our new animals. We have a basic implementation of prototype animals that will be swapped out by our Bratislava artist’s work which is looking incredible!


Improvised fishing tackle and a carp were created, which players will be able to catch in ponds. We have also created some filet models which you will eventually be able to cook. This will all add up to be a literal game-changer. Speaking of animals - we also met Big - the office pet tortoise in Bratislava. Hm, that gives me an idea…


Our character artist is further expanding with the addition of a new large-capacity police vest to go along with our ?MON-inspired ???? uniform. We have also started working on EMT, Firefighter, and finalizing the Gorka uniforms.

Fireplaces, Hunting, And being a lumberjack!

We pulled fireplaces and hunting from the previous update in their state at the time, we felt they would hinder gameplay not enhance it. The extra time has been spent improving gameplay aspects and also identifying how we can better support it.

The build to experimental will show the basic structure of how this will work. Chopping wood from trees now gives logs, and after a certain time, the trees will be “expended” and fall over. Tree cutting is done by holding an axe in your hands, and using the mouse-wheel action menu. This is a prime example of why we want to remove the mouse-wheel action system. Instead of this, we envision you simply hitting the tree with the axe and being rewarded with wood - but that is for the future.

Fireplaces can be upgraded with stones, which are recovered from the ground around rocky areas or by hitting rocks with a pick-axe. Fireplaces can be crafted by making a “fireplace kit” out of items such as rags and kindling. Kindling is recovered by searching the forest floor for sticks. All these scavenging aspects need more refinement as part of a new action system, but they’re exciting changes that will pave the way for more complex systems such as horticulture.

Bratislava Team Visit (view Imgur Gallery of the visit)

We visited our team in Bratislava - they have a TURTLE!


The next update

Our current targets have us putting out builds to stable once a month, a huge inspiration for approach we aspire to is Prison Architect who do this very well. We have no set timeframe for experimental releases, these are done to assist us with preparing for stable releases.

Above all else, it’s vital that people appreciate several things:

  • 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 the game design
  • Scheduled builds are targets, not absolutes. We will delay and postpone builds where we are not confident in their status.
  • Devblogs are no longer scheduled weekly, and are done as often as we can to provide background for our progress.

The Final Word

This is an extremely exciting time for us all as we come out of two months of very aggressive growth. We’ve expanded the team a great deal, taking a huge risk in doing so. That risk is paying off, and we’re excited to see the massive impact that the pathfinding and collision changes will have on the DayZ experience.

Dayz Reflection: Gamasutra Interview

Dayz Reflection: Gamasutra Interview

News 15 comments

DayZ blew up bigger than its creator, Dean Hall, ever expected. Now, he and a team at Arma developer Bohemia Interactive have taken on the task of radically...

Dead Rocket Hall responds to Dayz Steam Early Access

Dead Rocket Hall responds to Dayz Steam Early Access

News 2 comments

Recently we reported on DayZ's standalone making an appearance on the Steam database app. The update to the entry showed that the game is prepping for...

Dayz v1.81

Dayz v1.81

News 2 comments

Dayz has come a long way since it's initial roots in Arma 2, having influenced many in development survival zombie games, and even spawned a copy cat...

After huge community + devteam effort 1.7.3 is out!

After huge community + devteam effort 1.7.3 is out!

News 7 comments

This is the first community + development team generated update for the DayZ mod. Thank you so much for the communities help, without them not only would...

Add file RSS Files
DayZ: Absence

DayZ: Absence

Full Version 4 comments

Absence Ace Server is developing new DayZ Mod called DayZ Absence. It's based on very known DayZ Epoch but include itself some strong names in Arma 2...

DAYZ Epoch Beta test

DAYZ Epoch Beta test

Full Version

I work on this map alone since Nov. 2012 and it is still a previewmap and not finished. If you test my map, dont forget, its a preview. Some buildings...

DAYZ: Sauerland

DAYZ: Sauerland

Full Version

This map is based on real Geodata from the Nasa, but the villages haven't the real size.

DayZ: Unleashed

DayZ: Unleashed

Full Version

This is a mod that introduces a new map – Napf by Momo. Napf is based around a real mountain in Switzerland and features two large cities, 40 smaller...

DayZ: Hunting Grounds

DayZ: Hunting Grounds

Full Version

DayZ Hunting Grounds expands on the dark myths and legends of Lingor Island, bringing the newest version of IceBreakr’s Lingor Island together with...

DayZ: rMod2

DayZ: rMod2

Full Version

rMod2 is a client and server side plugin that enables the use of ArmA 2 and ArmA 2 Operation Arrowhead vehicles,

Post comment Comments  (0 - 10 of 233)
altruissaintfire
altruissaintfire - - 83 comments

will this work on arma 2 free version?

Reply Good karma Bad karma-3 votes
Pancake_Ninja123
Pancake_Ninja123 - - 20 comments

I did not know the game started here. The more you know I guess.

Reply Good karma Bad karma0 votes
croorc1
croorc1 - - 369 comments

How to instal help

Reply Good karma Bad karma+1 vote
FeralGryphon
FeralGryphon - - 59 comments

I don't have Combined Operation, but I have Arma 2 and Arrowhead. Will it still work?

Reply Good karma Bad karma+1 vote
Guest
Guest - - 689,535 comments

it will mate

Reply Good karma Bad karma-1 votes
FeralGryphon
FeralGryphon - - 59 comments

Alrighty, thanks!
Also, if I download this version will it work on Steam? The Steam version doesn't seem to work well for me.

Reply Good karma Bad karma+1 vote
SinKing
SinKing - - 3,119 comments

Why does it still say this is a Arma II: Combat Operations Mod, when it is actually a standalone game, based on the "A Take on Helicopters" Engine?
I was confused about the latest news, wondering why there is so much work still put into the mod for Arma II ^^

Reply Good karma Bad karma-3 votes
Guest
Guest - - 689,535 comments

THERES A MOD AND A STANDALONE GAME

Reply Good karma Bad karma+1 vote
majorkyle
majorkyle - - 158 comments

Hi i created zombies in Editor but they are not attacking me i also tried by placing Opfor hidden commander with them but no luck.

Reply Good karma Bad karma+1 vote
majorkyle
majorkyle - - 158 comments

Hello Guys i am new to DayZ stuff and my question is that what version is required to run DayZ 1.6.0.1?
Thanks in Advance...

Reply Good karma Bad karma+1 vote
Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account:

X

Latest posts from @dayzdevteam

PSA: This Twitter account is no longer active, we’ve moved to @DayZ some time ago - follow us there for the latest… T.co

Feb 9 2019

RT @DayZDevTeam: Survivors! Starting from today, you'll find us under a new Twitter user name - @DayZ Please use @DayZ in your ment… T.co

Jul 28 2018

Survivors! Starting from today, you'll find us under a new Twitter user name - @DayZ Please use @DayZ in your ment… T.co

Jul 14 2018

Survivors! Starting from today, you'll find us under a new Twitter user name - @DayZ! Please use @DayZ in you menti… T.co

Jul 13 2018

RT @sp1kerZDtheS: Good morning, survivors! I'm healthy. Today I'm putting myself forward again somewhere in the forest, in search of… T.co

Jul 13 2018

We just released a client update for Stable 0.62 that is aiming to resolve "Blue Screen" issues caused by BattleEye… T.co

Jul 13 2018

RT @spy_day: @dayzdevteam Yeeeeeeeah T.co

Jul 13 2018

RT @arrianaofmordor: It truly is stunning... #DayZ @dayzdevteam 0.63 T.co

Jul 13 2018

The Stable servers are coming back online now. To make sure we get rid of the issue for now, we moved all servers t… T.co

Jul 11 2018

Survivors, maintenance is prolonged today, we need to make some time heavy operations on the database machine. We a… T.co

Jul 11 2018