The 2019 Winter Release – BeamNG.drive v0.18

With the long nights of winter bearing down on us we’re escaping to the warm, sunny open spaces of Utah in this update. The map has been completely renovated, featuring improvements to foliage and road textures, new and improved buildings as well as abandoned mine tunnels for you to race through. On the vehicle side we’ve turned our attention to some of the older vehicles and given them some love. The venerable pickup, the first vehicle to be included in BeamNG.drive, has received a much-needed jbeam and visuals pass along with its colleagues the Van and the Roamer. The AI system has gotten several improvements and adjustments to improve the behaviour and handling of AI controlled vehicles. Our audio team has added new groundmodel effects for mud, metal and wood along with transmission whine for most vehicle models.

Delving even deeper under the hood you will notice we have made extensive changes to our rendering system. The overall appearance of the game has changed for the better as a result of these lighting changes. This is still very much a Work In Progress effort and expect many parts of the game to look different to what you may be used to. Overall we are very happy with the way BeamNG.drive looks as a result of these improvements to our tech and we hope you will be too.

There have also been a lot of improvements to loading times thanks to optimisations in various areas of the game. In addition, our physics engine has received several bug fixes, tweaks and improvements that have resulted in better performance. This is just a high-level summary of what is being released in build 0.18. As usual you can find the whole list of changes below. We hope you enjoy the new and improved features as much as we enjoyed making them.

Highlights

Utah map updates

New lighting see blogpost: Color space lighting and HDR rendering

Level loading optimizations

D-Series overhaul, phase one



Important Notices and Known Issues

Not all content has been adjusted to take advantage of the new lighting and rendering changes yet.

Thumbnails using new lighting changes are still being generated. Some vehicles do not yet have updated thumbnails.

The alt+down key binding has been deprecated as alt+up can be used to toggle slow-motion.

You may notice a rock-crawler variation of the Hopper in some videos and screenshots. This variation will be released at a later date.

Utah Renovation

Improved sky settings for better day/night cycle and lighting

Improved dirt cliff road to be more interesting

Improved all bridges and tunnels (correct texture pixel density and new materials)

Added mine shafts to numerous locations

Updated AI paths for the whole map

Improved cliff models to have back faces + randomly rotated many in the map to provide more variation

Modeled interior for tourist center + some exterior elements

Added more crawling opportunities along the cliff

Improved AI pathing in tunnels and on bridges

Added ranger station with parking facility

Added campground with caravan, tents, BBQ roofs and main office

Added auto repair building, convenience store and petrol station

Added car dealer building

Added new roadsigns

Added decal roads for dirt paths and damaged asphalt

Updated reduction mill building

Updated construction site

Created new textures for wood, plastic, normal edges, trim metal, trim plastic, concrete and cracks alphas

Created new decals for asphalt holes and cracks

Physics

Small optimizations of physics core

Optimized static collision initialization. Initialization time went down by ~75%

Fixed dynamic collision bug that caused certain triangle penetration events

Tweaked groundmodels to maintain more grip at small slip speeds

Increased ice friction

Reduced depthmap scaling unit from 1.5cm to 1cm. This will reduce the depth of mud/sand pits in certain maps

Game Engine

Level loading optimizations

Fixed a crash when a vehicle material used a deprecated feature

Allowed to use “and/or” in jbeam expressions

Add support for detaching locked and welded couplers via code

controller.lua now sends the controller’s jbeamData on all reset/init events

PostCrashBrake logic now also disables after reaching a certain speed

Small optimizations of castRayStatic

Fixed castRayStatic missing hits under certain cases

Render Engine

Improved lighting and HDR

Optimized decal road generation

Fixed lag during terrain LOD’s changes related to material generation

Fixed missing normals in meshes used as decals

Fixed bug causing random missing shadows in some materials

Fixed DecalRoads when used inside a Prefab

Fixed animated shapes using skin/bones

Fixed imposter render causing wrong normals and missing local transformations

Fixed ambient lighting in Zone/Portal objects

Fixed and enabled Bloom postfx (can be found in Options > Graphics)

Vehicles

Added 38in, 42in “Crawler” off road tires

Added Trial 150 and Trial 250 17×9 6 lug off road wheels

Added rally suspension to Bluebuck, Bolide, Burnside, ETK800, ETK-K, Grand Marshal, Legran, Midsize Pessima, Moonhawk, SBR4

Tweaked existing rally suspensions and configs

Added 225/60R16 Rally tire (fits 16×8 wheels)

Tweaked drift tires and related vehicle configs

Made transfer cases and differentials removable

Increase strength of ETK-I race engine internals

Fixed misnamed differentials in Pessima and 200BX

D-Series, H-Series, Roamer reworked. Total jbeam and visual overhaul.

Bodies/beds are now accurately separated and detachable from frames, revised front end structure for D-Series and Roamer.

Many more options for pickup frame lengths, allowing for long bed variants

WIP Short wheelbase D-Series frame with one-piece body

Modders rejoice! No more duplicate rear suspension jbeam files, each frame length now correctly offsets the rear suspension and its sub-parts

New front and rear 4-link suspensions

New configurations and customization parts

New Gavril AllSport 17×8 alloy wheels for mid range D-Series and Roamer

Generic disc brake meshes applied to all applicable vehicles

Added drift configurations for 88′ Pessima, Bluebuck, Barstow, Miramar, ETK 800, ETK K-Series and ETK I-Series

Bluebuck: fixes to exhaust path and rear wheel attach becoming unstable at certain offset settings with certain wheels

Grand Marshal: fixed instablity when door opens past a certain angle, weakened radiator support attach

Etk K: fixed position of headlight flares

Added 8 lug STX steel wheels

Fixed T-Series getting stuck in reverse gear after ripping off a wheel

Added ‘Camouflage’ skin to Ibishu Hopper

Powertrain

Improved clutch behavior in splitShaft device

Fixed DCT/automatic/sequential gearbox cutting throttle when “upshifting” from reverse or neutral

Tuned modern ETK auto gearbox shift behavior

Improved auto gearbox throttle handling during low aggression shifts

Made electric motor torque curve linear instead of constant power

Made low aggression DCT shifts less harsh

Tweaked TC logic to be less sensitive

Re-enabled TC wheel braking

Environment Art

Added shatter particles for plastic beams breaking, glass deform groups and wooden prop deform groups

Improved sky settings for better day/night cycle and lighting in East Coast USA and Italy

Fixed some incorrect groundmodels on objects in Jungle Rock Island and Italy

Added groundmodels to all materials in Gridmap

Added new ocean cubemap to many levels so the water looks better without dynamic reflections

Tweaked default post-fx to better suit the new gamma and HDR changes

Added new Sun Flare and adjusted sun sizes on all levels

Added new flare type for generic lights

Uniformed shadows resolution across all levels

Uniformed ‘NearClip’ values across levels

Fixed and improved ‘Gradient Files’ features in ScatterSky, now used in some levels

Camera

Fixed orbit camera not resetting smoothly in low FPS conditions

Fixed multiseat camera being affected by traffic cars

Fixed Field of View errors when using onboard camera

Reworked path camera to smoothly follow accelerating cars in more extreme situations

Added lookback function to onboard cam

Added ability to hide specific onboard cameras from the camera cycle

Added ability to lock onboard camera rotation

AI

Fixed AI’s map subsystem breaking with more than 65536 map nodes

Plan segment discretization scheduled on graphics step, allows for a more optimized (smoother curve) planned trajectory.

Improved planed trajectory curvature calculations (expanded neighborhood of calculation).

Fix in random mode math calculations

Bug fix in aiPosOnPlan relating to how the ai vehicle position is projected allong the planed trajectory

Relaxed error diffusion between ai position and planned trajectory. Error is now corrected gradualy.

Improvement in brake calculation

Bug fix in the planner path merging

Adjusted minimum distance of steering target position to allow for more accurate turns at low speeds in tight spaces.

Bug fix in how the planned trajectory is allowed to go off the road limits in overtaking situations (trafficSide.cTimer)

Bug fix for vehicle awareness getting deactivated when a change of plan occured

Bug fix for vehicle awareness being activated by default in AI manual mode in certain cases

Added “inCurvature” function to AI. It fixes degenerate path curvature cases

Traffic

Improved “getRandomPathG” function, used by traffic AI, to reduce path “folding”

Traffic is now disabling internal collisions and aerodynamics until they are hit or broken. It improves traffic performance by 30%

Fixed Powertrain UI app being affected by traffic cars

Added traffic option to bus routes gameplay mode

Implemented population-based vehicle selections for traffic (e.g. uncommon vehicles such as the Pigeon will be very unlikely to spawn)

Improved traffic respawn system

Vehicles may honk horns if they are being blocked

Vehicles may stop and pull over for emergency vehicles

Made under-the-hood changes to police pursuit system

Tweaked the Traffic UI app

Added 2nd and 3rd color options to the multi-vehicle spawner tool (in Editor 2.0)

User Interface

Significantly increased responsiveness of vehicle customization menus

Implemented new level loading screen providing more detail as to what is currently happening

Fixed and improved the placement and look of the binding keys in various places

World Editor 2

Added WIP Racepath Editor to World Editor Tools: This editor allows you to quickly and easily create races.

Racepaths consists of Pathnodes and Segments. Pathnodes are similar to Waypoints in the current race system, Segments connect Pathnodes.

Racepaths can have branching paths and multiple start positions.

Racepaths can be used by the Flowgraph editor to create races similar to Time Trials.

Added legend for shortcuts

Added mesh road editor

Added particle editor

Added datablock editor

Added window layout manager

Added tool for level related logs and for detecting static floating objects

Overhaul of camera path tool

Various fixes and usage changes to road editor

We have changed and added many icons in the editor for the toolbars

Implemented new object icon rendering system in the world space (with new icons)

Added camera bookmarks edit tool

Improved scene tree with context menu for the items (clone, delete, add group)

Improved search in the scene tree (remember term) and inspector

Added more snapping functionality

Inspector is now supporting arrays and had some fixing done for derived classes

Optimized speed of inspector field gathering in C++

Tidy up the main menu items

Editor can now run on a level-less start (in main menu)

Many small fixes in the editor UI, adding/refactoring editor API functions based on requests

Flowgraph

Added Multiseat Autoball Demo

Added three Races made with the Racepath tool to the Flowgraph Gridmap Demo

Added around 50 new nodes: debug drawing, racepath, imGui nodes to prototype UI and more

Added Project Referencing nodes: Allows other projects to be referenced similar to the way macros work

Added WIP Flowgraph Support to Time Trials

Added hotloading for node lua files: When changing a lua file for a node, the game will now automatically reload this file.

All nodes now use the new pin schema. This allows various properties for pins like description, visibility, default values and more.

Fixed various cases where nodes would not show up correctly.

Changed Mouse Tool Test into a Flowgraph Window.

Audio

Improved attenuation and distance filtering for vehicle sounds (WIP)

Added new supercharger sound (currently used for Gavril Barstow)

Fixed engine sound cut below 500 RPM

Updated FMOD Studio and low level api to version 2.00.05

Added mud groundmodel audio

Added mud scrape audio

Added engine/exhaust shutoff sounds

Added wood groundmodel audio (for bridges)

Added metal groundmodel audio (for metal ramps)

Reworked ambiences for Utah V2

Added reverb zones for Utah V2

Added new V8 flatplane engine set (currently used for Civetta Bolide)

Added transmission whine to all vehicles, except Wentward DT40L and Gavril T-Series

Changed position of aero wind sound from refnode to horn node

Disabled impact,deformation and scrape sounds for nodes that have cloth material assigned to them

Input

Always send wheel Force Feedback updates on graphics steps

Changed default Force Feedback resolution to 65536 (from 256)

Improved multiseat assignment system: input devices can now be individually assigned to any vehicle (or no vehicle at all)

Added new multiseat-only binding to switch vehicles (assigned by default to d-up in XBox gamepad; will be displayed below Options > Gameplay > Enable Multiseat checkbox)

Fixed mouse cursor autohide kicking in while UI dev console is being used

Fixed extremely rare crash during DirectInput initialization of devices

Fixed inability to change FOV of freecamera when no vehicle is focused

Deprecated the alt+down key binding (since alt+up can be used to toggle slow-motion)

Fixed ambiguous message in Options > Controls > Force feedback when no bindings have been found

ConsoleNG

Made the console a lot faster and use less memory

Added a message describing the error if the filter is invalid

Added View menu to hide some column

Fixed some bugs (exception when there is no vehicle on the map)

Misc

Fixed Arcade mode not supporting 0 rev match throttle

Implemented a few missing OutGauge data fields

Fixed MotionSim and OutGauge sending data for non player vehicle

new Json parser (rapidjson) for the whole game, increasing loading speed

Optimized “json.lua” parser. It is now ~30% faster

Added “+-Infinity” support to json.lua parser

Reduced vehicle Lua’ garbage collector load to 1/5th of what it was previously

Fixed LuaJIT’s serialization/deserialization breaking with nested tables having more than 65536 elements

Added “getGraphpath” and “getManualWaypoints” functions to map.lua

Fixed map subsystem’s graphPath positions

Optimized map’s “Navigraph” debug visualization to have a smaller hit on FPS

“Clear Cache” now doesnt create backups of the cache anymore

Fixed bug that prevented map change while replay was playing

Fixed crash on object serialization

Optimization for object bounding boxes

Added horn and lightbar states to map objects data

Fixed transparency of debug visualization of BeamNGTrigger objects

Fixed rare crash when attempting to manipulate camera and no level has been loaded yet

Fixed location of Coupler camera checkbox within the Options > Camera menu

Bug fix in map.lua node aliases calculations

Fixed ai path waypoints in utah crawl scenario

Launcher : added error code number so we don’t have to translate them when user have localized windows

In-game repo : fix search terms breaking comunication with server

Cleaned and organized Datablocks

Cleaned up unused main.level.json files

Improved the F9 Vehicle Debug menu: Won’t save the Defaults if no apps is open. Added context messages.

Application Interface [API]

Exposed brakeTorqueApplied to wheel data of vehicle Lua

Added “cardinalSpline”, “catmullRomChordal”, “catmullRomCentripetal”, “monotonicSteffen” curve interpolation functions to mathlib.lua

Added a quaternion distance method to mathlib.lua

Added “obj:setBoundedBeamDamp” and “obj:setTorsionbarSpringDamp physics core functions that allow to change the damping parameters on the fly

Added “obj:getCameraPosition” physics core function that returns camera’s world position

Thanks for reading the full change log. 😉

An up-to-date list of known issues can be found in the dedicated Feedback & Bug Reporting Thread here.

Instructions on how to update the game here.

Ladies and gentlemen of the speculation thread, you may start your engines:

