Announcing rg3d 0.20
I'm happy to announce that rg3d 0.20 has been released. This release contains a lot of new features and improvements. The most large are WebAssembly support, initial 2D support and multi-layer terrains.
Let's start from the engine, there are 182 new commits compared to 0.19 and here's the most interesting changes:
# rg3d
- WebAssembly support - check this online demo (opens new window)
- Initial 2D support - with lighting and physics (check it by
cargo run --example 2d --release
) - Multi-layer terrains - now you can create outdoor scenes as you would in many other game engines -
check example by
cargo run --example terrain --release
- Added
Framework
which hides engine initialization and a game loop, all you need to do to start writing your game is to implementGameState
trait for your game structure - here (opens new window) is the minimal example. Some examples have been refactored to use Framework, so can be used as a guide. - Changed a way of setting shader uniforms - now it uses closure instead of set of enum variants which is a lot faster.
- Added
Save
mode for FileSelector and FileBrowser widgets - no need to type file name manually at the end of the path text box - there is separate "File name" field for that. - Immediately load requested textures to GPU to prevent huge lag on first frame.
- Changed selection behaviour for TreeWidget.
- Refactored examples - now they should be more clear.
- Added continuous integration (huge thanks to Gideon Grinberg (opens new window) and Voodlaz (opens new window))
- Support for custom vertex formats.
- Ray-terrain intersection test.
- Ability to pause sound context.
- TextBox widget now can be in read-only state.
- Fixed procedural textures serialization.
- Added serialization support for arrays.
- Fixed instanced rendering.
- Fixed Screen-Space Ambient Occlusion banding issues.
- Fixed light scattering issues.
- Smart cascade selection for shadow maps.
- Added proc-macro for Visit trait (huge thanks to toyboot4e (opens new window))
- Fixed lighting issues.
- Added scroll options for ScrollViewerBuilder.
- Default shadows precision is now Full instead of Half which could cause graphical artifacts.
- Fixed critical physics serialization bug (opens new window).
- Added "on-demand" texture compression via tbc (opens new window) crate which supports R8RGTC, RG8RGTC, DXT1, DXT3, DXT5 compression.
- Improved renderer performance.
- Built-in profiler now able to print result in a string.
- Added parallax mapping.
- Improved performance of UI layout and message routing.
- Added tooltips and context menus (huge thanks to MinusGix (opens new window)).
- Ambient lighting belongs to scene, not renderer as it was before.
- Multiple expansion strategies for Tree widget.
- Fixed selection in ListView.
- Added first overview of engine's architecture - it should help newcomers to be able to easily start contributing.
- Minor fixes and improvements.
# rusty-editor (opens new window)
rusty-editor has gain lots of improvements for last few months. One of the huge improvements is the terrain editor. Check this video:
There are 98 new commits compared to 0.7, here's the most interesting changes:
- Terrain editor.
- Fixed Save/Save As dialog windows - now you don't have to type scene name in the path field,
only in separate
File name
field. - Sound editor - now it is possible do add and edit sound sources.
- Added Grid snapping for Move interaction mode.
- Fixed Move interaction mode - now it correctly handles complex hierarchies and multi-selection.
- Improved Settings window - now it has separate categories instead of huge list.
- Added continuous integration (huge thanks to Voodlaz (opens new window))
- Added context menu for world outliner.
- Change main loop to prevent editor from spending too much time in logic update.
- Added ability to create quads.
- Save settings on every change.
- Tangent-space visualizer.
- Added ability to slowdown (Shift) or speedup (LeftCtrl) editor camera movement.
- Gizmos are full-bright and not affected by scene lights.
- Change selection to pasted nodes.
- Fixed uniform scaling.
- Fixed picking issues.
- Fixed "Fit Collider" issues.
- Now it is possible to change
znear
andzfar
of preview camera. - Level-of-detail (LOD) editor.
- Added ability to change render path for meshes.
- Fixed potential infinite message loops that might hang editor.
- Added ability to clear command stack.
- Added ability to edit collision groups and masks for colliders
- Minor fixes and improvements.
# Discussion
Join the Discord server (opens new window)
Discuss on Reddit (opens new window), HackerNews (opens new window).
# Support the engine
I'm working on the engine for more than 2 years now and getting very little financial support. If you want to see the project alive, please consider making a donation on Patreon (opens new window) or LiberaPay (opens new window) or one-time donation via BuyMeACoffee (opens new window)