Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.4.0-beta5] - 2023.09.21
Added
- [Post Effects] Depth of field autofocus mode
- [Rendering] Optimized clustered lighting pass
- [Rendering] Improved range and quality of the volumetric lighting
Changed
- [Editor] Palettes can now also be imported from BMP and JPG files
- [Post Effects] Added new "response" parameter for tweaking film grain; also improved the effect in general
- [Post Effects] Overhauled various volumetric lighting related parameters, so they're easier to tweak/use
- [Rendering] Improved blending of low resolution depth of field with high resolution scene
- [Rendering] Improved look of rain puddles and water; also added some optimizations in this context
- [Rendering] The lighting and GI passes now support up to 64k lights in the world
Fixed
- [Rendering] Bug in the lighting pass that influenced performance negatively
- [Rendering] Outlines and debug geometry, including gizmos, etc., are no longer pitch black with HDR display mode active
- [Rendering] Lights now correctly respect the shadow intensity in the volumetric lighting pass
Removed
- [Components] Light type property from light components
[0.4.0-beta4] - 2023.09.19
Added
- [General] Exposed near and far clip plane distances for camera components
Fixed
- [Rendering] Depth of field works correctly in conjunction with orthographic cameras now and fixed various other issues in this context
- [Rendering] Reprojection passes now correctly work when changing/animating the camera field of view
- [Rendering] Removed bias applied to shape bounds when rendered in the occlusion pass; this triggered flickering when getting close to huge shapes
[0.4.0-beta3] - 2023.09.18
Added
- [API] Adjustments to API version 0.4.0
- Added function for querying the voxelization status per shape to the voxel shape interface
- [Editor] It's now possible to copy the transforms of the selected or the active camera via the node inspector context menu
- [General] Added
sky
,water_plane
,shape_32
,shape_64
, andshape_128
prefabs - [General] Plugins now log and display an error in the plugin manager if loading fails
- [General] Added some particle effects to the
forest
world
Changed
- [Editor] The palette import and mesh voxelization now utilize native file dialogs for picking assets
- [Editor] The
imgui.ini
file is now stored in the user data directory - [Editor] Improved entity naming and node placement of scenes imported from VOX files and voxelized meshes
- [Editor] Additional tweaks
- Adjusted initial window layouts
- Restructured node context menu
- Nodes in the node inspector can now also be expanded/collapsed via clicking on the arrow
Fixed
- [General] The node bounds are computed correctly now if there are no component-provided bounds available
- [Rendering] BVH culling is now correctly executed based on the more detailed shape bounds (and not the coarse node bounds)
[0.4.0-beta2] - 2023.09.15
Added
- [API] Adjustments to API version 0.4.0
- Added function for retrieving the currently active camera to the world interface
- [General/Editor] The node hidden state is now propagated to the descendants and the behavior is reflected in the editor; a greyed out eye icon reflects a node hidden by an ancestor
Changed
- [General] Albedo of the water plane in the world template is now brighter
- [General] Applied some minor tweaks to the forest world
- [Rendering] Improved handling of local lights in large worlds
[0.4.0-beta1] - 2023.09.14
Added
- [API] Support for API version 0.4.0
- Added interface for providing custom denoisers
- Exposed functionality to "compact" voxel shapes
- Added shape-based scene queries (ray cast, overlap, etc.) to the voxel shape interface
- Added helper function for retrieving the current palette to the voxel shape interface
- Added the option hide nodes to the node interface
- Added Box drawing functions to the debug geometry interface
- Added interface for creating custom editor tools
- [Plugins] New plugins available in our repository
- Added OIDN based denoiser plugin
- Added plugin for editing and authoring voxel shapes directly in the editor
- [General] Improved performance and quality of the voxel meshing and bounds generation algorithms
- [Rendering] Improved quality, stability, and performance of all GI related passes
- [Rendering] Improved performance of the voxel G-buffer pass
- [Editor] Added new frame time overlay (see
[Tools and Settings] => [Frame Time Overlay]
) - [Editor] Nodes can now be hidden/shown via the node inspector
- [Editor] It is now possible to import palettes from PNG files
- [Editor] Improved overall camera behavior (and the according editor settings) and added support for an orbit camera control style. Camera control styles can be switched via the
[View]
menu - [Editor] Improved voxel shape grid rendering (plane grids now fade depending on the viewing direction, visual tweaks, etc.)
- [Editor] Improved flags editor. It now only shows a summary of the currently selected flags by default, while the actual editor is now hidden in a popup accessible via the edit button
- [Editor] It's now possible to reload all plugins at once using the plugin manager window, taking into account changes to the
plugins.json
file - [Editor] Progress bars for status messages are now smoothly animated/interpolated
- [Path Tracer] Added support for exporting renders in JPG, PNG, and EXR file formats
- [Path Tracer] Added the option to specify the quality when exporting JPG files
Removed
- [General] OIDN-based denoising functionality; available as a plugin now
Changed
- [General] The factory plugins are now available as separate releases from our public GitHub repository
- [Editor] Highlights are now only visible while the selection tool is active
- [Editor] Editing related scene queries now use shaped-based queries instead of relying on physics collision being available
- [General] Plugins are now sourced from the new
plugins.json
file instead of theapp_metadata.json
file
Fixed
- [Editor] The mesh voxelizer no longer stalls the application and operates as a background task
- [Editor] Minor property editor layout improvement
- [Editor] The grid visualization of voxel shapes correctly uses the world size of the attached node now
- [Rendering] Debug geometry which is rendered as "always in front" behaves correctly now when close to the camera
- [Rendering] Various (low-resolution) rendering artifacts for diffuse GI and shadows
- [General] It's no longer possible to register multiple plugins with the same name
- [General] Plugins which are sourced from different paths (system folder, directory of the executable instead of the working directory, etc.) now correctly look up their path internally
[0.3.3] - 2023.08.04
Fixed
- [Rendering] Visual glitches with enormous water planes
[0.3.2] - 2023.08.04
Fixed
- [General] It's no longer possible to create nodes tagged as spawned outside the context of the main game state
- [Rendering] TAA smearing of (line) debug geometry
[0.3.1] - 2023.08.03
Changed
- [Physics] Don't overdo it with the number of worker threads for simulating the PhysX scene
- [General] More prominent watermark
- [Editor] Overhauled plugin manager layout
Fixed
- [UI System] Add one pixel wide border to all shapes to account for anti-aliasing
[0.3.0] - 2023.08.02
Added
- [API] Support for API version 0.3.0
- Added helper function for executing tasks at fixed intervals
- Added updated interface for the UI system
- Added support for executing tasks using the internal task scheduler
- Added
get_entity
function to the custom component interface - Added functions for drawing line and triangle batches to debug geometry interface
- Added function for creating and retrieving directories in the user data directory
- Added
on_activate
andon_deactivate
functions to the user task and user editor interfaces
- [API] Extended C++ sample plugin
- Added boids sample to showcase the usage of custom components
- Added UI sample to showcase the usage of the overhauled UI system
- [UI System] Completely overhauled the in-game UI system
- New anchor based approach for building rectangle transforms
- Added support for clipping, text wrapping, detailed text alignment, text and shape outlines, and anti-aliasing for all shapes
- Added support for drawing rectangles, circles, and n-sided polygons
- [Components] Extended text component, including support for text backgrounds, outlines, etc.
- [Debug Views] Added memory statistics for the UI and Imgur render passes to the primary debug view
- [General] The splash screen now shows the version string in the bottom left corner
Changed
- [Terrain] Moved implementation of the terrain generator to a separate plugin
Fixed
- [General] The initial game state from the app metadata file is now correctly considered when disabling the splash screen
- [Renderer] Potential out-of-bounds access in the GI shaders
- [Renderer] Various minor VK validation warnings
[0.2.4] - 2023.07.29
Fixed
- [General] Plugin validation in the free version works correctly in Flatpak builds now
[0.2.3] - 2023.07.28
Added
- [General] Support for hot-swapping plugins if a DLL named
YourPluginFilename.dll_swap
is detected (orYourPluginFilename.so_swap
on Linux)
[0.2.2] - 2023.07.28
Changed
- [Rendering] Updated FidelityFX FSR2 from version 2.2.0 to 2.2.1
Fixed
- [General] Unloaded plugins now correctly release their handle on Windows
[0.2.1] - 2023.07.24
Changed
- [General] Plugin API versions have to match perfectly till we can guarantee API stability
[0.2.0] - 2023.07.23
Added
- [General] IOLITE PRO is available with additional features for everyone who wants to support this project. More details can be found here
- [General] Support for writing native engine and editor plugins using the C/C++ API. Check out the documentation for more details
- [Path Tracer] Drastically improved the quality and performance of the GPU path tracer
Changed
- [General] Cleaned up and simplified default worlds
- [Post Effects] Sky exposure now defaults to 1 and the sun intensity to 10
- [Post Effects] Only serialize post-effect properties with a blend factor greater than zero
- [Post Effects] Improved the quality of the depth of field effect
- [Rendering] Various smaller internal optimizations
Fixed
- [Editor] Various smaller errors in the property metadata file
- [Particles] Particles could end up with duplicate RNG seeds, resulting in particles spawning at the same position and moving in the same initial direction
- [Voxel Shapes] Support structures could sometimes become active outside the context of the main game state
- [Sound] Potential crashes with sound files with certain lengths
[0.1.22] - 2023.06.26
Added
- [Documentation] Lua API docs are now in sync with the actual state of the API
- [Core] Meshes are now sourced from OBJ files, making it possible to add custom meshes
- [Editor] Meshes can now be created via the Prefab Browser
- [Editor] Voxel shapes can now be generated by voxelizing meshes (see
[File] => [Voxelize Mesh]
) - [Editor] Press
[CTRL]
while activating the game mode to skip automatically restoring the world state when returning to the editor - [Editor] Option to manually save and restore world states (see the new buttons in the menu bar right next to the
[Game Mode]
button) - [Camera Controllers] New Offset Y property. The offset is added to the position of the controller's target node
- [Camera Controllers] New Flags property. Can be used to enable/disable the new leaning feature
- [Components] New Despawn component which can be used to despawn nodes after a certain amount of time and/or if they're invisible or occluded
- [Voxel Shapes] Option to customize shape chunks by providing a prefab named
shape_chunk
; useful for, e.g., attaching a Despawn component to chunks - [Editor] New voxel shape toolbar which offers editing tools for voxel shapes. Supports the following operations:
- Clear, full, fill, and invert
- Boolean operators, including union, intersection, replacement, and subtraction
- [Voxel Shapes] Modified shapes save their state as so-called snapshots next to the according JSON file (worlds, prefabs, etc.)
- [Editor] Option to delete snapshots from shapes via the context menu in the world inspector
- [Editor] Voxel shapes with snapshots are now highlighted in the world inspector
- [Voxel Shapes] New property to override the size. Can be used to create custom shapes or to resize shapes based on voxel assets
- [Voxel Shapes] New flag to skip the loading from voxel assets, so that only the palette gets loaded
- [Voxel Shapes] New property to override palette
- [Core/Editor] Overhauled handling of data sources:
- The active data source is no longer part of the app metadata file and can now be configured during runtime via the editor settings
- When saving via the resource inspectors, all resources are saved to or removed from their corresponding data source directories
- It's now possible to move resources from one data source to another by changing the data source property in the resource inspectors
- When cloning via the resource inspectors, the cloned resource is assigned to the currently active data source
- [Core] Settings can store strings now; to set a string setting via the console, type:
my_setting this_is_my_string_value
and press[Enter]
- [Scripts] Changes to scripts are now detected in all registered data source directories
- [Core/Rendering] Various optimizations related to support structures, rendering, path tracing, BVH, etc.
- [Rendering] Vastly improved quality of the diffuse part of the GI
- [Rendering] Shadows are now traced in half-resolution by default
- [Rendering] Improved depth of field effect
Changed
- [Editor] Changes to string/name properties are now published after finishing editing, not directly while typing
Fixed
- [Rendering] Various rendering issues with modern AMD desktop GPUs
- [Voxel Shapes] Infinite loop when more than 255 regions are detected
- [Volumetric Lighting] Typo that made the main pass four times as costly
- [Volumetric Lighting] Improved height fog
- [Core] Duplicate file watcher events are now ignored
- [Core] It's no longer possible to clone root nodes
[0.1.21] - 2023.06.05
Added
- [Components] New Flipbook Animation component which can be used to animate voxel shapes
- [Texts] Flag (see Occlude), which can be used to hide the components when occluded by static physics geometry
- [Rendering] Various CPU- and GPU-sided optimizations to support large worlds with huge rendering distances
- [Voxel Shapes] Optimized memory usage (device- and host-sided)
Changed
- [Core] Property metadata now utilizes static type names instead of the cryptic and variable type IDs
Removed
- [Components] Procedural Animation, Water Plane, and Dynamic Character Controller components
Fixed
- [Rendering] Potential crash with 4k+ voxel shapes in the scene
- [Editor] Selected items now use a less aggressive color
[0.1.20] - 2023.06.02
Added
- [General] IOLITE is now available as a Flatpak (check the download section on the landing page for details)
- [Voxel Shapes] Radius damage now utilizes the job scheduler to allow large radii in complex worlds
- [Voxel Shapes] Static shapes now use an optimized triangle mesh as collision geometry
- [Voxel Shapes] Flag which can be used to turn physics debug geometry on/off per shape
- [Editor] Option to visualize the voxel grid for the selected entity
- [Components] Text component, which can be used to render text at specific positions in the world
- [Voxel Shapes] Various CPU-sided optimizations when dealing with a lot of dynamic shapes in the world
Fixed
- [Core] Remove jitter from viewport rays (also affects working with the gizmos)
- [Particles] Bad performance on Linux
- [Editor] Console and debug view windows now have a default size and position
[0.1.19] - 2023.05.29
Added
- [Voxel Shapes] Support for sector-based convex decomposition, which can be used to create compounds of convex hulls as collision geometry for shapes and chunks. See the new Max Num Convex Subdivisions property. Defaults to 1 (one single convex hull if convex hulls are enabled via the flags)
- [Scripting]
Random.set_seed(seed [number])
which can be used to initialize the seed of the underlying RNG - [Editor] Tooltip indicating how to return to the editor from game mode
Changed
- [Editor] Sort resources in the resource inspectors alphabetically
- [Editor] Open the first property category header by default
- [Editor] Display properties in the same order as in the property metadata JSON file
Fixed
- [Editor] Jiterring editor UI elements
- [Editor] Label text in flag editors now wraps instead of being cut off
- [Editor] Order property categories deterministically
[0.1.18] - 2023.05.27
Added
- [Voxel Shapes] Support for Voronoi-based fracturing. Set the new Fracture Type property to the desired detail level to enable it for shapes. Fracturing can then be applied using the extended
radius_damage
scripting interface - [Voxel Shapes] New flags to use convex shapes as collision geometry for voxel shapes and/or fractured chunks; disabled by default. See Use Convex Hull and Convex Hull for Chunks
- [Editor] It's now possible to modify and save palettes in the palette inspector, including the new hardness parameter for palette entries
- [Components] New Kill Plane component, which automatically despawns dynamic voxel shapes below it
- [Editor] New editor-specific settings dialog (see
[File] => [Settings]
) - [Editor] Editor settings for configuring camera parameters, including the option to disable the "smoothed" camera handling
- [Sound] Stereo-panning effect to spatial sound effects; the distance at which the effect becomes active can be controlled via the new
spatialSize
parameter in the corresponding*.effect.json
. Defaults to 5 meters
Changed
- [Scripting] The radius damage interface has changed. There are now three variations available:
World.radius_damage(position: Vec3, radius: number)
World.radius_damage(position: Vec3, radius: number, flags: number)
, the currently available flags arekShadeCrater = 1
andkFracture = 2
. Fracturing splits the voxel shapes into regions and does not remove any voxels. Defaults tokShadeCrater
for the other variants of this functionWorld.radius_damage(position: Vec3, radius: number, flags: number, max_hardness: number)
. The maximum hardness parameter defines the upper bounds of which voxels with a particular hardness value are affected. Defaults to zero for the other variations of this function
- [Editor] Save as prefab dialog is now pre-filled with the name of the currently selected entity; instead of being empty
Fixed
- [Scripting] It's now possible to use scripts named
minimal.lua
[0.1.17] - 2023.05.23
Added
- [Sound] Support for spatial sound effects; set to
"spatial": true
in the corresponding*.effect.json
file - [Scripting]
Sound.set_position(handle, position: Vec3)
for spatial audio effects - [Editor] Option to save single resources in resource inspectors via the context menu
- [Editor] Status message when saving resources in resource inspectors
- [Core] Variants now support storing strings; see
Variant.from_string(value: string)
, returningvalue: Variant
andVariant.get_string(variant: Variant)
, returningvalue: string
- [Editor] Palette Inspector to inspect the cached color/material palettes
- [Voxel Shapes] Palette color variations now seek similar colors in the palette if running out of free slots
Changed
- [Voxel Shapes] More clever internal caching for palettes
- [Core] Log files are now appended to and only get reset after reaching a threshold of 16 MiB
[0.1.16] - 2023.05.21
Added
- [Components] New Custom Data component supporting the storage of any amount of user-defined properties. E.g., usable for keeping track of the player's hit points or state information of NPCs. Properties can be modified/added/removed via the editor or the scripting interface
- [Scripting] New
CustomData
interface to interact with the new component:
CustomData.get(custom_data: Ref, index: number)
, returningvalue: Variant
CustomData.set(custom_data: Ref, index: number, value: Variant)
CustomData.add(custom_data: Ref, value: Variant)
CustomData.remove(custom_data: Ref, index: number)
- [Scripting] New
SaveData
interface, supporting the loading and saving of node hierarchies (single nodes, small hierarchies, or whole worlds) to the user data directory. Can be used to, e.g., create savegames, specifically in conjunction with the new Custom Data component:
SaveData.save_to_user_data(filename: string, node: Ref)
SaveData.load_from_user_data(filename: string)
, returningnode: Ref
- [Samples] The Flappy Bird sample now keeps track of the high score using the Custom Data component and the new
SaveData
scripting interface - [Post Effects] Support for procedural rain puddles
Changed
- [Renderer] Improved latency of occlusion culling
[0.1.15] - 2023.05.20
Added
- [Scripting]
Utils.load(script_name: string)
which always executes the script and returns its result
Changed
- [Scripting]
Utils.require(script_name: string)
now executes once for each script and caches the return value
[0.1.14] - 2023.05.20
Fixed
- [Scripting] Potential crash when globally returning values from Lua scripts
[0.1.13] - 2023.05.19
Added
- [Editor] Notification-like display of status messages (voxelization status, screenshots, etc.)
- [Components] New Sound component for placing sound effects in the world
- [Post Effects] Option to configure the strength of the "dirt mask". Disabled by default now
- [Scripting]
Physics.set_gravity(gravity: Vec3)
andPhysics.get_gravity()
, returninggravity: Vec3
Changed
- [Editor] Moved prefab/voxel shape randomization parameters to a separate window (available via the dice icon in the prefab window)
- [Post Effects] Disabled chromatic aberration by default
Fixed
- [Editor] Website links now work correctly on Windows
[0.1.12] - 2023.05.17
Added
- [Character Controller] Support for different controller types, including box-shaped controllers
- [Character Controller] Property to control the slope limit. Works with box controllers
- [Scripting]
Physics.overlap_sphere(position: Vec3, radius: number)
, returninghit: bool
andentity: Ref
Changed
- [Scripting]
Physics.raycast
now returnshit: bool
,distance: number
,position: Vec3
, andentity: Ref
- [Scripting]
Physics.sweep_sphere
now returnshit: bool
,distance: number
,position: Vec3
,normal: Vec3
, andentity: Ref
- [Scripting] Overhauled
Settings
interface. The following functions are available now:
get_[type](setting_name: string)
,set_[type](setting_name: string, value: number, boolean)
where[type]
can either bebool
,uint
, orfloat
Fixed
- [Voxel Shapes] Support structures were no longer triggered in combination with radius damage
- [Character Controller] Character controllers behave less error-prone on detailed voxel shapes now
- [Scripting]
VoxelShape.get
function works correctly now - [Scripting] Lua scripts are more fail-safe now (especially on Linux)
[0.1.11] - 2023.05.15
Added
- [Samples] The Spectrum sample now showcases the dynamic modification of voxel shapes
- [Scripting] Support for executing Lua code asynchronously using the new
TickAsync
callback. Great for, e.g., generating terrain chunks using coroutines without affecting the main thread. Use with caution! - [Scripting]
VoxelShape.get(shape: Ref, position: UVec3)
Fixed
- [Core] Detection of enclosed chunks in the height map terrain generator was not conservative enough
- [Core] Potential crash when setting the position of newly created kinematic voxel shapes
- [Core] Logging is now wholly thread-safe
- [Editor] Random entries in one of the combo boxes in the sound system debug view
[0.1.10] - 2023.05.13
Added
- [Samples] The new Spectrum sample is available
https://github.com/MissingDeadlines/iolite/tree/main/samples - [Core] Optimized radius damage. Performs a lot better now with many shapes and more enormous radii
- [Core] Overhauled property system and moved all editing-related metadata to the new
property_metadata.json
file. This file can be used to tweak property editor parameters as well as icons for property categories and types - [Core] Global key bindings are now sourced from the new
keybindings_global.json
file - [Core] Packaged data sources are now streamed from disk instead of memory
- [Scripting] Enabled Lua
base
andcoroutine
standard libraries - [Scripting] Functions for modifying voxels, see
set(shape: Ref, position: Vec3)
,set_unsafe(shape: Ref, position: UVec3)
,fill(shape: Ref, min: UVec3, max: UVec3)
,get_dim(shape: Ref)
, andvoxelize()
functions toVoxelShape
component interface - [Scripting]
Input.is_key_clicked(key: number)
helper function - [Scripting] Exposed sound spectrum via
Sound.get_spectrum()
. This function returns a Lua table with 50 frequency bins representing the current state of the master bus. Amplitude and bin spacing are logarithmic - [Editor] Hovering property labels now shows a descriptive tooltip
- [Editor] Overhauled the help menu and added an overview for the global key bindings
- [Editor] Node placement and snapping now fall back to the xz-plane
- [Editor] Setting
editor_ui_scale
, which can be used to scale the UI of the editor when using displays with higher display resolutions - [General] Package generator Python script to the public GitHub repository
- [General] Emissive sphere array prefab to base data source
Changed
- [Particles] Nicer default parameters for effects
- [Post Effects] Color grading now uses an ASC-CDL-based transform
Fixed
- [Scripting] Terrain generation-related functions return a valid node ref now
- [Character Controller] Assert/crash when properties set via the editor are not sane
- [Particles] It's no longer possible to mix particle collision and local space simulations
- [Renderer] GI flickering when using orthographic cameras
- [Renderer] Various Vulkan validation fixes
- [Editor] It's no longer possible to clone the root node of the world
- [Core] UUIDs are now correctly handled for cloned entities/resources
[0.1.9] - 2023.05.05
Added
- [Samples] New Flappy Bird, Minecraft Map, and Heightmap samples are available
https://github.com/MissingDeadlines/iolite/tree/main/samples - [Editor] Resources and entities (with components) created in the editor now get a more meaningful default name ("my_resource" => "post_effect, "my_entity" => "light", etc.)
- [Scripting] Exposed
floor(x [number])
,ceil(x [number])
,round(x [number])
,fract(x [number])
, andtrunc(x [number])
functions via theMath
interface - [Scripting] Setting/getting of the linear and angular velocities of voxel shapes
- [Sound] Sound effects are now sourced from separate JSON files instead of a single JSON file containing all effects
- [Voxel Shapes] Density property, kinematic flag, and angular/linear axis lock flags
Fixed
- [Editor] Crash when importing scenes from VOX files
[0.1.8] - 2023.05.03
Added
- [Samples] New pathfinding sample
https://github.com/MissingDeadlines/iolite/tree/main/samples - [Pathfinding] General progress and improvements
- [Scripting] General API progress
- [Scripting] Option to import other scripts as modules via
Utils.require(script_name [string])
- [Scripting] Option to execute strings as scripts via
Utils.execute(lua_code [string])
[0.1.7] - 2023.04.27
Added
- [Physics] Forces can now also be applied to voxel shapes, which have just been spawned
- [Scripting] General Lua API progress
Fixed
- [Physics] Rare crash when initializing joints
[0.1.6] - 2023.04.27
Added
- [General] Samples are now available in our GitHub repository:
https://github.com/MissingDeadlines/iolite - [Rendering] Various improvements to the diffuse part of the global illumination
- [Physics] The physics simulation is now ticked with a fixed time-step, and the visual representations of voxel shapes, etc., are interpolated
Fixed
- [Physics] Default values of linear and angular damping were too high
- [Linux] Water was not rendered correctly
- [Physics] Various bugs related to physics and especially joints
[0.1.5] - 2023.04.25
Added
- [General] Support for Linux (Validated on Ubuntu 22.04.2 LTS and the latest SteamOS on Steam Deck)
- [Editor] Missing directories are now automatically created when saving files in the editor
Fixed
- [Editor] Crash when importing from VOX files with less than 256 entries in the color/material palette
- [Editor] The debug rendering overlay can now be correctly disabled again
[0.1.4] - 2023.04.21
Added
- [Scripting] Exposed more UI, sound, and physics-related functions to scripts
- [Core] Support for Ogg Vorbis files to the sound system
- [Core] Various new IES profiles
- [Voxel Shapes] Exposed linear and angular damping parameters for voxel shapes
- Multiple improvements to the stability of the physics simulation
Removed
- Destruction sample scene (samples will be provided separately via the website at a later date)
Fixed
- [Core] A rare random crash during startup
- [Core] WAVE files are treated more carefully in the sound system now, and metadata at the end of the files is no longer interpreted as sound/samples
[0.1.3] - 2023.04.14
Added
- [Physics] Support for spherical, revolute, fixed, and distance joints
- [Physics] Limit support for all joint types (besides fixed joints)
- [Physics] Improves joint visualization, so it's easier to work with joints hidden inside voxel shapes
- Optimizes how flag properties are handled internally
Fixed
- [Editor] Some overlays in the editor were rendered with one frame delay
- [Physics] Cached linear and angular velocities are applied correctly again if a shape is modified
[0.1.2] - 2023.04.13
Added
- [Physics] Basic prototype for joints
- [Voxel Shapes] Voxelization pass optimization/simplification
- [Physics] Physics actors use the raw voxel shape bounds again (instead of the first LOD)
- [Core] After becoming active, the main game state now postpones processing tasks till the initial voxelization of the scene has finished
Changed
- [Voxel Shapes] Tweaks "crater shading" palette colors
Fixed
- [Voxel Shapes] Fixes a crash occurring when computing connected regions while resizing the memory area backing voxel shapes
- [Voxel Shapes] Voxelization for connected region chunks is now prioritized to avoid "plopping" (the base chunk could disappear before the sub-chunks got spawned)
- [Voxel Shapes] Fixes a rare issue where voxel shapes apply their previous linear and angular velocities after spawning
- [Physics] Relaxed voxel shapes when penetrating each other
[0.1.1] - 2023.04.11
Added
- [Core] Resources now store their initial data source
- [Editor] Only resources assigned to the currently active data source get saved
[0.1.0] - 2023.04.11
Added
- [General] The first pre-release-version of IOLITE
© 2023 Missing Deadlines. All rights reserved.