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 17x9 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 16x8 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 17x8 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
Instructions on how to update the game here.
Ladies and gentlemen of the speculation thread, you may start your engines: