2015년 6월 30일 화요일

Since there's been some discussion regarding changes in the character zoom mechanic I decided to jump in and explain what are we trying to achieve. 

We should probably start by asking the question "Why have a characters-eye zoom in the first place?". It's the old problem with emulating a 3D world on insufficient hardware. The human field of vision (fov) is around 190° and the area where the vision cones of both eyes overlap is around 100°.  Unfortunately, most of todays monitors viewed from a regular distance usually tend to cover only 45°of human fov in real life. This means that if you want for target on screen to appear in real-life size you are only able to display around ~1/2 of what you would see in reality, stereoscopically. 

And so as a designer you have to choose - Should I display objects in the distance properly but sacrifice the overall vision or set the fov to 100° but deform the whole picture? The trick of Arma is actually not to choose and instead introduce an "eye zoom" instead. This way you can keep the surrounding awareness by setting the default fov to 100°, but when necessary to perceive a depth of field properly occurs (ie. you are shooting), you can "zoom in" to 45°.

6JpDaM2.jpg
0.57 Unzoomed Eye Vision

U1ViUlj.jpg
0.57 Eye Zoom

 
But is it ok to force fix a fov on players? We thought not. Not only because 100° fov does not feel right to everyone, but some players can't even physically play with it. (Motion sickness, performance of PC, different monitor setup...). So the FOV slider was introduced and with it multiple problems we are ironing out now.
The most important step was to even out players by moving fixed fov to ironsights. This way you can most of the time play with whatever fov you like, but when the fov becomes a matter of life or death (shoot outs) it is set same for everyone to keep the game fair. 

We know that zoomed fov or ironsights must be 45° because it emulates the eye and we stated earlier that 45° is realistic. But what should the unzoomed fov be? It can't be higher than a number the player can set through FOV slider. (This way would going into iron sights actually shows the unzoomed picture which is definitely not something you would desire). So the fov of ironsights should be also the the smallest fov we allow players to set by the fov slider. 
We decided to set range of fov slider from 60° to 90°.

Bc47rHt.jpg
0.58 Eye Zoom
It's important to keep in mind, that double pressing + or - extends it to 45° or 105°, so the range is not so small as it might appears. It also doesn't matter what is your current fov - double pressing + key will always set it to 45°. This means you can quickly switch between observing surroundings and focusing on objects "modes", while being able to play with your prefered fov for most of the time. I belive this descision helps equalize players and reduce fov slider abuse. 
Greetings Survivors,

While development keeps moving along as usual, a lot of you have patiently been waiting for info on the new renderer, and for this week's Status Report Lead Producer Brian Hicks touches upon that very subject. Also, Senior Designer Jan Tomasik gives us some input on the ingame FOV; the theory and thought process behind the design solutions as well as decisions for the current iteration of FOV.

For this week we also present you with a link to the DayZ Trello board where Lead Artist Chris Torchia provides us with a small peek at environment updates, and lastly, we have a small feature on one of DayZ's content creators - Super Dan.


Contents This Week


Development Board Spotlight
IMG_26062015_165513.png



Dev Update/Hicks

Greetings Survivors,

This week we'll touch on two topics. We'll start off discussing the work ongoing with the new renderer for Enfusion, and then wrap up discussing the current behaviour and mechanics behind sprinting, holding breath, and so on.

m9sNC5w.jpg

Players who have been actively following the development of DayZ are aware of the large task the engine team undertook to separate the legacy RV renderer from the simulation, and replace it with a more modular and updated version. The task itself of creating a new renderer is not huge, the length and weight of the task is related primarily to:

- Separating the legacy renderer from the simulation
    - Ensuring the separation is complete, as the RV engine and its functions tied to it are extensive

Once the above was complete, the new renderer itself was broken into three primary modules. (Bear with us, this can be moderately technical)

* Pipeline module (1)
    * the pipeline of objects rendering is new (defines the "way" how the objects are moving from entity in world to set of rendering commands)
    * is responsible to prepare meshes to be rendered
    * is multi-threaded
    * filling of pipeline will be also multi-threaded, in phase of testing and debugging

* Material system module (2)
    * objects are rendered using new material system, old one is still present to have the comparison
    * each mesh has assigned a material (not rvmat) with material class which is responsible for it's rendering
    * setting of material is editable in workbench editor and you see real-time the changes in render
    * each material class was written from scratch, visualisation currently as much similar as possible to old render but now we can add simply new features (like PBR)
    * huge simplification for filling GPU command buffers, can be easily sorted to minimize changes in command buffers
    * all renderable game objects have now representation in material class
  
* High level rendering API module (3)
    * GPU API is DX11 for now (With DX 12 supporting coming later)
    * implementation of GPU API now hidden behind rendering API, no one is allowed to use direct GPU API commands
        * it allows us to add new GPU API like DX12, XBOX one, PS4...much easier
    * Initial implementation done, currently in testing and bug fixing phase (optimization still in progress but looks promising)

DVgYcvK.jpg hXuEf4l.jpg
  
In addition:    

* GUI manager  
    * GUI pipeline and rendering system is completely new    and different from the one in original RV engine
    * GUI layouts will be defined in workbench using graphic editor not by config system (huge improvement for designers)
    * rendering works, currently debugging and working on the editor
    * In a future experimental build it'll be possible to try it using command line switch (startup switch)
  
* other notes  
    * postprocesses were completely rewritten into new system of effects
    * more worlds can be renderered in one frame, it allows to create independent scenes
        * needed for workbench
        * usable also in game to create e.g. mirrors, cameras...

As work on the new renderer continues and we look at our plans for the eventual push to experimental we have several goals:

- Testing partnerships with Intel, AMD, and nVidia to ensure compatability with market leader and average hardware configurations
- Marked performance for gameplay in large cities (Elektro, Cherno, Novod, Severograd, Berezino, etc)
      
Next up - There has been a good deal of discussion, and questions on exactly how hold breath, lung capacity, and dispersion when characters are tired. Below we have a few example videos with debug data on screen so you can see the specific values.

sddefault.jpg

In the first video you see the user start out stationary - not tired, and begin to hold his breath. With the inaccuracy value falling sharply upon holding his breath, as the character continues to hold his breath and his lung capacity drains - the inaccuracy slowly starts climbing.

sddefault.jpg

With the second video, we have a character who starts off tired (has been sprinting for an extended duration - 90 to 120 seconds of solid sprinting) who takes a knee (supported firing position) as his tired value decreases, his lung capacity increases - and he begins to hold his breath.
Mind you, this is only how it performs now (on 0.57 stable) and this is prior to the implementation of weight and character stamina. That said, we would love to hear your thoughts on the current behavior of the mechanic. Please make sure to head over to the Official DayZ forums and discuss this in the latest Status Report discussion thread! 

Can I run DayZ standalone on this old PC?

Can I run DayZ standalone? What are the technical specifications for DayZ standalone?
Can an old computer run DayZ standalone? Can a laptop run DayZ standalone?


I've had quite a lot of people ask me what computer is needed to run DayZ standalone.
I made a video showing it running on quite an average PC and many people have commented
asking if it will run on their computer. So I'm making this article to help people answer this
question for themselves.

Before I start, I have to emphasise that DayZ does not run like other games. Most games these
days heavily rely on the graphics card to do most of the work, but DayZ mostly uses the processor
and gets very little benefit from the graphics card. It's been like this with all the ArmA games and
DayZ standalone uses the game engine from Take on Helicopters - the Real Virtuality 3 engine - which
is an updated version of the engine used in ArmA 2 and Operation Arrowhead. It's because of this that
DayZ very much relies on the processor to do all the work. So if your processor isn't up to the job,
you won't be able to run DayZ standalone well.

What processor do you need to run DayZ?

Well, you need one with at least two cores. The more cores the better. Bohemia specify an Intel
 Dual-Core 2.4 GHz or AMD Dual-Core Athlon 2.5 GHz. Bear in mind that these are minimum
specs and will run the game at the lowest graphics settings. If you've got two cores, you need
 2.4GHz of clock speed, if you've got four cores or more, then clock speed doesn't really matter.

Also remember that laptop CPUs tend to be a bit weaker than their desktop counterparts.
 Due to lack of space, laptops don't have big heatsinks and fans for their processors,
 so they need one that runs cooler and uses less power. So a dual core laptop CPU
 running at 2.4 GHz is going to be a little weaker than a desktop dual core CPU at the
 same clock speed.

In the video, I'm using an Intel Core 2 Duo E8400 running at 3 GHz and it runs the game
acceptably. You can use this tool from CPU Boss to compare any processor with that one.
Halfway down the right side of the page, you can enter your CPU model and it'll show you
a comparison. The main stat to look at is the one marked Performance
(Benchmark performance using all cores) as that shows you the overall performance level
of the CPU. If you've got better performance than the E8400, your processor is up to the task
of running DayZ.


What processor do I have?

Surprisingly, a lot of people don't seem to know what CPU is in their PC. It's quite easy
to find out by using the System information display in the Control Panel. 


If you don't know how to find and bring up this window, here's how to do it in Windows 7.



How much RAM do I need?

Bohemia say you need 2 GB as a minimum, but I really would recommend 4 GB. 2 GB will run it,
 but it leaves almost no slack. You need to close absolutely everything that is not essential to
 keeping your PC running and I would recommend a fresh boot beforehand just to maximise the
 amount of available memory. If Windows runs out of RAM, it will start using virtual memory - to
 make space in the RAM, Windows will copy some of its contents to the hard disk and copy it back
 again when it needs it. This can lead to serious thrashing of the hard disk and slow down the game.
 RAM is about a thousand times faster than a hard disk, so you really want to avoid any virtual
 memory activity when playing DayZ.

4 GB is a lot more suitable for running DayZ. Although the game will only use about 1.5 GB of RAM,
 Windows always needs some memory for background tasks and keeping the PC running.
 4 GB is enough for all that with a bit left over.

Also, some built-in graphics don't have their own memory and use system RAM further cutting
 into the memory you need to run the game.

What graphics card do I need?

Oddly, it doesn't matter very much. I've tried a variety of graphics cards with DayZ and it barely
 uses any of them. DayZ does need a certain level of card because it uses features that aren't
 present on every card. Bohemia say you need an NVIDIA GeForce 8800GT or
 AMD Radeon HD 3830 or Intel HD Graphics 4000 with 512 MB VRAM. I have actually
 managed to get the game running on Intel HD graphics 3000, so Bohemia are being a little
 pessimistic.


It's very difficult to understand which graphics cards are more powerful than others, so I would
 suggest that you consult this list of relative performances:

http://www.tomshardware.com/reviews/gaming-graphics-card-review,3107-7.html

It doesn't list every graphics card and the results are approximate, but you'll be able to see
 roughly where your card stacks up. If your card falls below the minimum, realise that you
 probably will not be able to run DayZ. It barely uses the card, but it relies on certain features
 to be able to run. For instance, if you try to run it on Intel HD Graphics or Intel HD Graphics 2000,
 you'll get an error about the shader mode not being supported and the game will refuse to run.
 You can't negotiate your way past this - if it doesn't support the shader mode, it doesn't support
 the shader mode and the game cannot run at all.

Almost every game relies on the graphics card to do a lot of the work, but the DayZ standalone
 does not. It will barely use any of your graphics card's power as thigns stand at the moment.

What graphics card do I have?

Again, it's surprising how many people don't know what graphics card is in their PC. You can find
 out what it is by using the guide in this article:

http://www.pcmag.com/article2/0,2817,2406120,00.asp

What graphics settings should I use?

This is a subjective thing. Setting the right level of graphics is a trade-off between framerate and
 prettiness. The game will run at a higher framerate in open areas than it will in the middle of a big
 town like Cherno or Electro. Experiment with all the graphics settings in order to get the best
 level of performance for yourself. Here's a list of all the settings:


This is the main video settings window. Select Custom for overall quality and you'll be able to
 change all the settings individually.

The Rendering Resolution should always be set to 100%. DayZ allows you to change the
 resolution that 3D objects are rendered at. What this means is that it keeps the same screen
 resolution and renders objects at a lower resolution and scales them up. Depending on your
 graphics card, this can cause extra work for your computer and may make things even slower
 than if you use 100%. So keep this at 100% unless you have tried everything else - it will make
 your game look ugly and it probably won't help.

Tearing - click to view full size
VSync is much misunderstood. What it does is synchronises the game's framerate to that of your
 monitor. A lot of people like to boast that their computer can run a game at 200fps or something
 like that. It's pretty pointless as almost all monitors can only display 60fps. So vsync just locks the
 framerate to match your monitor. If you let a game run higher or lower than the monitor's
 framerate, then you can get 'tearing' - this is where the graphics card is only halfway through
 drawing a frame before it's time to draw the next one. See the image above for an example.

So vsync is a good thing? Mostly, yes. But vsync needs your computer to do a little extra work to
 check when the time is right to draw the next frame, so vsync will slow down your computer
 a little. And if you're getting less than 60fps, it not only won't help, but it can drop your framerate
 a little lower. So turn it off unless you're running way above 60fps.


The Quality settings are mostly obvious. The settings for ObjectsTerrain and Shadows do
 just what you'd think and control the level of detail used in the polygon meshes for those things;
 the lower they are, the faster the game runs. The setting for Clouds is worth looking at as they
 do seem to have a disproportionate effect on framerate. In the tests I've run, it seems that
 clouds affect lighting, so turning them off can lead to surprising jumps in framerate.


The Textures settings affect how things look in the game. Video Memory should be set to Auto
 by default and you should keep it at that. It's possible that DayZ will not correctly measure your
 graphics card memory, but I haven't seen it get it wrong yet. So don't touch this.

Texture Detail and Texture Filtering are settings that can have a profound effect on how the
 game runs. Some graphics cards have the ability to handle texture filtering themselves and some
 don't. Those that don't are passing that work to the processor and, with DayZ already getting
 the processor to do just about everything, this can really slow down your game. Set both of these
 as low as you can put up with and revise them upwards until it starts to affect your framerate.


The Rendering settings affect how the game looks and how it runs. A lot of them are unnecessary.
 I recommend turning offpostprocessing and rotation blur (motion blur) - they may look pretty,
 but they really disrupt your ability to see. A lot of the time, you're going to be identifying potential
 enemies from a couple of pixels, so anything that blurs these can lead to you missing a guy
 who's going to shoot you in the face. With HDR, antialiasing, etc it's mostly personal choice,
 but they all have an impact on framerate, so try turning them on and off and see what you're
 happy with.

How do I improve framerate?

The short answer is that you can't. Changing the settings will help but, if you're already running
 at the lowest settings, there's nothing you can do to improve things. Yeah, there are loads of videos
on YouTube that claim to be able to provide miraculous boosts to performance if you just change
 a few settings in a confirguration file, but they're all bullshit. By mucking around with the config
 files (changing the number of rendered frames ahead, etc) you might at best be able to get an
 extra frame or two per second, but you'll get nothing like the performance boosts that the video
 creators claim. Those YouTubers are just making videos that will attract a lot of views in order
 to earn themselves advertising money. Notice that they don't reply to the hundreds of comments
 below their videos saying that nothing helped.

If you have more than one graphics card, I would suggest that you try disabling all but one. DayZ
 doesn't seem to like SLI or Crossfire very much and it seems to actually run slower with two
 cards than with one. This situation might be improved with future updates
 (Rocket has said that he'd like to use graphics cards a bit more) but right now it's worth
 trying to run on one card to see if it helps. Using some Nvidia 660 Ti cards in SLI, I found
 that they ran 50% slower than with just one card on its own.

Help! I still don't know if I can run the game

If you'd like to leave me a comment below, I'll do my best to reply to you. Please leave as much
 information as you can. At a minimum, I need to know what processor you have
 (and be specific - just saying "3GHz dual core" isn't much help), how much RAM you've got
 and what graphics card or built-in graphics chipset you have.

Please do try to go through the article to check if your graphics card and processor are up to
running the game. I get up to a hundred emails a day about DayZ (I have an installation guide
 for the mod and many articles and videos about running the single player mods that my
 programming team put together), so I would prefer it if you can answer your own question.
 But if you're stuck, leave a comment and I will get back to you.