August 2016 Devlog
Probably one of the largest changes for this build is an all new settings and performance system. In the previous versions the options were rather limited as we really hadn't nailed down our effects stack or assets being used, but as we get more solid on those we really needed a new way to manage settings for video, audio, performance, and controls. What has spawned of this is a very robust and flexible system that can be used as framework for any of our other projects in the future. Most individual selections for settings range from 'low' (for lower end hardware) to 'ultra' (for top end machines).
The system stores these settings in an accessible JSON formatted settings file and will later allow multiple versions to be stored so a player could store a 'high', 'medium', and 'low' type of preset in their machine and not have to reset all of the settings every time.
We have exposed nearly every video setting that won't change the game to the point of making it unbalanced with some features allowing the player to add/remove contrast from the screen for accessibility to those with color issues in their vision. Each option for effects can have rather different performance impacts on different systems so we wanted to open up the system to be very flexible so that it can apply to the widest variety of systems. Here is a rundown of the current video options.
- Resolution – current display resolution and refresh rate
- Fullscreen – enable full screen viewing
- Field of View – Adjust how much the camera 'sees' in degrees of view
- View Distance – How far into the distance the camera will render object such as models and terrain
- Beautify – This is an addon component that can sharpen the view considerably and can possibly replace antialiasing for lower cost
- HDR – Enhanced colors and palette
- Bloom – Adds a bloom effect to the camera
- Bloom Threshold – Some of us don't want 'J.J Abrams' levels of bloom, so this allows that to be adjusted in game.
- Lens Flare – Requires bloom to be enabled and adds a nice flare to the view
- Sun Rays – Sun rays (god rays) enabled on the view
- Tonemapping – Allows for various types of color tonemapping to help give the game a distinct appearance
- Exposure – Allows to brighten up a dark screen or darken a bright one
- Color Palette – Can completely change the type of game look and coloring though pre-made palette choice selections
- Texture Quality – For lower hardware this can considerably speed up the game
- Anisotropic – Another performance option to allow for different levels of Anisotropic filtering
- Realtime Reflection – Enables a realtime reflection probe to get more accurate reflection and lighting
- Shadow Detail – Change the fidelity of shadows being shown
- Shadow Distance – Adjust how far away shadows render. Closer distances means higher quality.
- Vertical Sync – Helps on high end hardware to keep it from 'running away'
- Shadow Cascades – Helps with shadow quality over distances
- Horizon Based AO – Ambient occlusion rendering post process
- Dynamic Global Illumination – This can replace standard lighting, but has a few limitation and is really made for high end hardware. The results are fantastic though.
- Antialiasing – Take the AA quality from none to maxed out
This is still in its infancy but is getting some work done soon. Through this panel you can adjust the volume of different 'channels' of sound and change the number of channels (stereo, 5.1, 7.1, etc).
The ocean system in the game is a major performance factor for some players. It can range from low detail to photorealistic based on the hardware that the player has. We have allowed as many options as possible to both allow players to get the best performance, but not gain any advantage on others through changes in the settings.
Controls for keyboard and even controllers can be set through this panel. Every input is allowed to be mapped to any controller or interface that we can connect to, with more profiles being added every month, usually.