EA26 is finally out! This update focuses heavily on improving upon the base game experience by heavily improving performance and compatibility with modern systems (thanks to updating to a new Unity Engine version, 2020.3). The update also features lots of quality-of-life improvements and bugfixes.
One of the major improvements in EA26 is the increased framerates and reductions in frame jitter. The framerate should now scale way better with the bot count, allowing you to play with more bots than ever before. You can also run a benchmark to easily compare your performance to others. A default benchmark is available from the launch menu in Steam (launching the game with 60 bots on Island without mods loaded) but you can also use the launch option “-benchmark *bot count*” to launch a benchmark on any map, with mods enabled.
Another major new feature is full support for Steam Input. This means that you can connect any gamepad or joystick to the game through the Steam Input system, and create controller binds that you can share with other players. The game has full action map support, meaning that you can easily create separate binds for infantry, vehicle, aircraft use, etc. Additionally, the game will display key/mouse/controller input prompts based on your binds while ingame. If you’re planning on playing the game with a controller, please bind all inputs through Steam Input instead of the built-in input options menu. That way, you can take advantage of the Steam Input features. I have created an official controller binds for the Dualshock 4 controller, which should automatically work for other controller types as well.
EA26 improves upon the vehicle picking system, allowing mods to easily bundle vehicle variants that appear in the vehicle selection screen. When picking a vehicle, the game will now display a list of vehicles complete with images to make it easy to find exactly the vehicle you’re looking for. Additionally, you can select “Show All Vehicles”, allowing you to pick a vehicle regardless of type. This means you can for example replace all aircraft with cars, or vice versa.
If you want to play a mod that straight up does not work on EA26, you can switch to the Ravenfield legacy branch (Go to your steam library, right click Ravenfield -> Properties -> Betas and select the legacy-ea25 branch). This branch will downgrade your game version to EA25, which should be compatible with all older mods. When you want to return to EA26 to play new mods, just pick the None option in the beta dropdown.
Full change log
– Updated to Unity Engine 2020.3.32f1
– Updated post processing version to 3.1.1
– Changed AO implementation which fixes various shadow artifacts
– Removed AO quality levels from the options menu as the new implementation doesn’t have quality levels
– Replaced limit framerate option with VSync
– Loadout screen no longer extends beyond the screen on ultrawide monitors
– Increased max FOV value to 180 degrees
– Added -resetresolution launch option which forces the game into a 1280*720 window
– Added optional Vulkan graphics API to Windows and Linux platforms, use launch option “-force-vulkan” to enable.
– Added OpenGL Core graphics API as fallback on all platforms. Linux uses this graphics API by default.
– Added benchmark mode which can be used to benchmark game performance. You can run a benchmark either from the game’s launch menu options, or by using the command line argument “-benchmark *optional botcount*”.
– “-map *path*” launch option now accepts .rfld or .rfl paths as argument.
– Bots and vehicles now use interpolated rigidbody movement which results in less jittery movement.
– Added blood decal options in the options menu.
– Reworked the Vehicle Switch screen.
– Added Vehicle picker screen that shows vehicle icon and title.
– Toggle “Show All Vehicles” in the vehicle picker to access all vehicles, regardless of type.
– Added cool loading screens!
– Improved spec ops intro, Eyes is now only introduced in the first spec ops game you play each session.
– Removed fog rendering from HUD shaders.
– Increased audio DSP buffer size, which should reduce crackling and other audio issues.
– Improved terrain geometry and house positions on Citadel near west eagle spawn.
– Fixed a bug where weapons with multiple muzzles would not fire when their ammo was set to infinite.
– Refactored Actor damage code to make it easier to integrate with Ravenscript
– Capped the maximum vehicle mass force gain based imparted on infantry when rammed by a vehicle
– Reduced camera jitter when getting up from ragdoll.
– When exiting a vehicle seat, the game will now do raycasts to determine where the exiting actor ends up. This prevents actors from ending up inside geometry or under the terrain after exiting a vehicle.
– Various improvements to UI scaling and visibility, especially noticable 4k resolutions.
– Fixed a bug where LUA errors would sometimes cause the Lua VM to run out of memory and overflow. Also added debug values to the console to help monitor the VM memory state.
– Suppressed warning logs from builds, these weren’t useful anyway and would just clog the log file.
– Suppressed stack trace when logging info messages.
– You can no longer swap to the seat you’re already in.
– Ragdolls that are moving faster than 20 meters per second will now automatically use continuous collision detection, which should prevent ragdolls tunneling through the terrain or other static geometry.
– Updated physics settings to speed up the game and provide more stable physics simulation (reduced risk of the spaghetti man appearing!)
– Fixed a bug where bots would sometimes tunnel through the level geometry when deploying their parachute very close to ground level.
– Added one progress bar per content mod worker in the mod loading screen. This allows you to monitor the progress of loading each mod. The point of this is to more easily debug the cases where modding unexpectedly hangs, as it’s now possible to see what mod is being loaded when everything breaks.
– Added a -strictmodversion launch option. When this launch option is used, the game will only load mods created with the same major unity version. That is, EA26 will only load mods built with 2020.3.XX versions of Unity.
– Fixed car pathfinding on the coastline cliff ruins flag (finally lol)
– Updated navmeshes on Coastline and Archipelago
– Made water deeper around attack boats on Twin Island, and also rotated the attack boat spawns 90 degrees
– Fixed an issue where APC lock on sounds were not affected by sound volume settings
– Added -resetresolution launch option that will force reset the game to run in a 1280*720 window
– Removed box men option, replaced with box men actor skin that’s available in the actor skin dropdown menu (it’s called Ravenfield 2016).
– Added kick foot model for box man skin
– Major improvements to transport helicopter landing AI, it happens much faster and more reliably now
– Improved spec ops detection system so it’s easier to escape detection
– Replaced visibility test randomness with a deterministic system when bots are detecting you in spec ops. This should make the detection system easier to understand.
– Fixed a bug where bots would not detect you if they didn’t have a weapon that was effective against you.
– Added helicopter patrol to Spec Ops. A transport helicopter carrying high-level enemies will be called in if you’re spotted and the defenders manage to fire a flare.
– Laser sight dots are now scaled based on distance to the player camera
– Filled up a hole in the citadel mesh
– Added support for Steam Input to the game. This control system completely bypasses the options menu keybindings, and allows you to set up pretty much any gamepad/joystick/other controller through the Steam Input UI.
– Added default Steam Input bindings for Dualshock 4 controllers.
– Added sprint toggle option.
– Added bindable seat keys (defaults to F1 -> F7)
– Added keybind visualizer system, which will be exposed to RS later.
– The game keeps track of the active input type (Unity default or Steam Input). This is used when deciding which control glyph to render.
– Added Controller Hint option toggle. Disabling it stops the game from displaying the default control hints. Control prompts such as Press F to plant timed explosive in spec ops are still shown regardless of the setting.
– Forced all terrains to use a default material
– Terrains now use instanced rendering on high terrain quality, reducing CPU rendering overhead on modern systems.
– Replaced Ingame Map Editor level generator code, which runs faster and produces more detailed results.
– Ingame Map Editor levels now use Unity’s built in mesh baker, significantly reducing the CPU overhead when rendering the level. On busy levels, this can lead to more than twice the frame rate!
– The game now uses GPU skinning to offload the CPU.
– The game now uses graphics jobs, which should multi-thread parts of the rendering work.
– Added deferred squad spawning, meaning the game will spawn at most one squad every frame by default. This reduces frame spikes when spawning lots of bots at once.
– Reworked the minimap code and rendering, significantly boosting overall game performance.
– Tweaked a physics property to prevent the engine from doing unnecessary synchronization of physics transforms.
– Disabled graphics raycasting on some game UI elements that didn’t need them.
– Airplane ailerons now move correctly according to roll input (they were reversed before)
– Actor animator now internally uses precalculated parameter hashes instead of strings
– Optimized name tags mutator, it now uses the new PlayerHud element tracking.
– Deferred lua console updates to happen max once per frame.
Various tweaks to AI weapon usage to reduce rocket spam towards helicopters/airplanes and similar long range shots:
– Added weapon target difficulty value, for example targeting a helicopter with the dagger is considered a Hard shot.
– Added bot skill level value. Bots will only take shots that are within their skill level ability.
– Bots that haven’t engaged any targets in a while can attempt harder shots.
– Weapon difficulty values can be set manually using the new mod tools pack, but will be automatically set by matching the weapon to a weapon architype such as machine gun, pistol, rocket launcher etc.
Various improvements to mod content loading:
– Added multi-threading to mod loading, allowing the game to load multiple mods at once.
– Shader reloading is run on all platforms when loading a content mod that was built with an Unity editor version that doesn’t match the game’s current engine version.
– Auto-upgrading of deprecated Plane component class to Airplane.
– Added fallback shader lookup for legacy shaders resolving.
– Added “-verbose” launch option, which logs shader resolving results. If you’re experiencing pink error materials, you can find out which shader failed to resolve using this feature.
– Mod content such as weapon entries, skins, mutators etc are now sorted by source mod.
– Added source mod title grouping in the weapon picker UI.
– Added support for vehicle content variants, allowing modders to package multiple vehicles of the same type in their vehicle content mods.
– Added retargeting system for actor skins, allowing the game to load and retarget skins made in engine version 5.6 and 2020.3 (and any future versions)
– When resolving material shaders, the game will now keep the material’s render queue value (previously the game would change it to the shader’s default render queue value).
– Attempted to fix 5.6 maps terrain tree instances colliding with player. This is done by assuming that only capsule colliders should be solid (as these the collider types that are typically used for tree trunks, etc). All other collider types are assumed to be Ai Vision blockers.
– Exposed WeaponEntry.uiSprite to Ravenscript
– Added weapon target difficulty value
– Added AnimationCurves, Color and Gradient to the data container component
– Added a warning when custom weapon CullInThirdPerson values would cull the third person transform. This also prevents the third person transform being culled.
– Removed support for CustomActorSkin in custom maps as it was using an outdated actor skin system that was incompatible with Unity 2020.3
– Added actor skin retargeting to DataContainers, which should make it so actor skins loaded from data containers should be retargeted correctly.
– Added HUD Unlit shader variant
– HUD Light material now uses alpha blending (identical to EA24 and earlier releases). Use HUD Additive for additive blending.
– Exposed variout requested featured to common classes such as SpawnUI, Player, Actor, Weapon, Projectile, Minimap, AiActorController and Vehicle classes.
– Added PlayerHud class that can be used to automatically track world objects on a 2d canvas.
– Exposed player loadout to RS
– Exposed OnAnimatorIK to RS
– Exposed VideoPlayer/VideoClip to RS
– Various improvements to navmesh generation which should improve the generated navmesh shapes.
– The last error logged in the console will now automatically stack. This should prevent the entire console from being clogged when the same error is thrown every frame.
– Added .patch file support. Patch files contain extra data that can be used to recover old, outdated mods to be compatible with new Ravenfield builds. This is currently used to recover animations that appear broken on EA26 due to a compatibility bug inside the Unity engine.
– The game now tries to log the source directory of ScriptedBehaviours. This should help debug issues with RS from log files.
– Fixed Vehicles.GetTrackingMissiles() throwing clr type cast errors.
– Exposed various projectile types to RS. The API of all projectiles are currently identical, but they will be populated with type specific properties in future updates.
– References to destroyed GameObjects/Components will now evaluate to nil in RS, creating parity with the official Unity API.
– Exposed DamageInfo, HitInfo and ExplosionInfo structs to RS, which simplifies the RS API when interacting with damage values and events, etc.
– Added various damage/explosion events using the DamageInfo and ExplosionInfo data structs.
– Exposed ExplosionConfiguration to RS.
– Exposed ActorManager.Explode() that can be used to trigger an explosion from RS.
– Added Weapon.GenerateWeaponRoleFromStats() which generates a weapon role based on the weapon stats. Can be useful for classifying weapons.
– Added OnVehicleDisabled and OnVehicleExtinguish events in RS
– Exposed PlayableDirector to RS
– Made it possible to disable stabilization for each axis on MountedStabilizedTurrets. This will be made available through a future RF mod tools update.
– Debug gizmos triggered from RS (Debug.DrawLine etc) are now visible through geometry
– When running the game in test content mod mode while in the test game mode, the game draws the path of your squadmates.
Known issues with this update
– Many mods made in Unity Editor 5.6 have broken animations in this update. This is a bug in the Unity engine itself and isn’t fixable from the game code. I have however generated patch files for some older, unmaintained mods to get around this. It is recommended that mods suffering from this bug is re-exported using Unity 2020.3 and the 2020.3-compatible Ravenfield modding tools. Alternatively, It is sometimes possible to solve this issue in the Unity 5.6 tools by making sure the “Resample Curves” option is checked inside the animation import settings of a model, and then re-exporting the mod.
– Some maps made in Unity Editor 5.6 have broken collisions on trees and other detail objects. The game tries to solve this by assuming that only capsule colliders are solid, and any other colliders should only block bot vision. This runtime patch is only applied on 5.6-made maps, and does not affect fully compatible maps created in Unity Editor 2020.3.xx.
Trouble running the update?
If you’re having problems running this update, please make sure that your system drivers are up to date, and that your system passes the minimum requirements of the game. You can always access the previous update EA25 by changing to the legacy-ea25 branch by following these instructions:
- Go to your Steam Library page
- Right click Ravenfield, click Properties
- Select the Betas tab and in the dropdown, choose the legacy-ea25 branch. (No need to enter any access code)
- Click OK and wait for the game to update.
I hope this update works well for you and that you are looking forward to the story campaign content that I will be working on next!