LambdaMod 0.5.0 Release
26th November 2021
After many many delays version 0.5.0 of LambdaMod is now out, adding proper VR support! Here's what was worked on across the last three months:
- Added support for OpenXR validation layers.
- Improved OpenXR conformance.
- Reworked the entire VR positioning system (now operates via a separate room anchor on the host entity).
- Fixed VR rendering being double upside down.
- Fixed host entities not moving when the user is teleported.
- Added a viewer prediction system.
- Added VR movement and sprint.
- Added VR attach.
- Added Google Daydream controller support.
- Added VR main menu.
- Fixed incorrect sRGB handling.
- Added VR laser pointers for menu interaction.
- Fixed clicking on text buttons in flat mode.
- Fixed improper creation of the VR context with the wrong display format.
- Fixed placement of VR panels.
- Fixed compilation with VR disabled.
- Updated splash text to be more concise.
- Fixed VR input direction (i.e. button up/down) being backwards.
- Added VR snap turning.
- Improved OpenXR diagnostic output.
- Added VR device visualization.
- Added all the various global settings panels.
- Fixed VR pose inputs not working.
- Added VR smooth turning.
- Added player height scaler.
- Added tracking calibrator.
- Added
vrForced
setting to assist with launching VR sessions. - Added main menu for flat mode.
- Improved text editor search.
- Added VR keyboard.
- Added VR inverse kinematics.
- Added setting for head-directed or hand-directed VR motion.
- Added more text editing keybinds.
- Fixed ray tests not being directional.
- Added wait indicator.
- Added syntax highlighting.
- Added server-side storage of command history.
- Refactored scripting language behavior to improve consistency.
- Added teams.
- Added support for full-body tracking.
- Added settings to specify audio, video and gamepad devices by name.
- Added missing math functions to the scripting API.
- Added new constants to the scripting API.
- Added team-based voice chat.
- Improved fuzzy find.
- Added placeholder text to all line edits.
- Added memory usage safety limiter to the scripting language.
- Added gamepad support for flat mode.
- Added gamepad haptics support.
- Fixed queried anchor positions being incorrect.
- Fixed ping sound not playing.
- Fixed various crashes involving querying non-existent users.
- Fixed line edit scroll.
- Fixed console line wrap.
- Fixed orthographic mode using the wrong matrix and not being orthographic.
- Added visual mode to the Vim-like text editor.
- Added OpenXR interaction profile diagnostic reporting.
- Fixed magnitude limit increasing player magnitudes.
- Fixed magnitude not always announcing an update.
- Fixed HUD not disappearing after detach.
- Added new game functions to the scripting API.
- Removed HUD and text titlecard panels from flat mode and made everything draw directly to the screen.
- Added VR in-game menu.
- Added additional feedback to attaching and detaching.
- Fixed various events reoccurring upon reconnect.
- Added UI for access to the mouse lock flag.
- Fixed crashes in body editing.
- Added bounding radius computation.
- Refactored various space transforms and line end position calculations.
- Fixed body editor color pickers displaying wrong.
- Added various useful stdlib functions to the scripting API.
- Added VR recenter tool.
- Added VR roll cage.
- Added attachable flag to entities to minimize attachment mistakes.
- Updated contributing info.
- Fixed virtual window behavior when resizing application window.
- Improved icons to be more consistent and less blurry.
- Fixed client-side rotation prediction.
- Fixed relative rotation mistakes throughout the codebase.
- Added new entity and body editing keybinds.
- Fixed some VR inputs being blocked incorrectly.
- Added split between viewer mode and entity mode for better editing keybinds.
- Fixed X11 clipboard not working when pasting to other windows.
- Fixed scaling not working.
- Fixed being able to click on hidden windows.
- Improved deletion to be more Blender-like.
- Added confirmation dialogs to all types of deletion.
- Improved window behavior to be more natural.
- Laid the groundwork for the future addition of more body part types.
- Added new pivot ID feature for controlling IK behavior.
- And many other refactors and bug fixes!
This version unfortunately took much longer to release than expected. This was mostly because of various unscheduled disruptions and work on another more important project. I managed to keep up a fairly regular rate of patches but wasn't able to tackle some of the larger items as quickly as I would have liked, instead publishing a large number of smaller patches that focused on issues outside of VR that are easier to test.
As for what's next... I'm going to try to avoid being too specific about the goal of the next version this time. I've found I'm most efficient when I can reshape the work to fit the time I have. "I have half an hour free, I'll patch this obscure little thing that's been bugging me" is a much more productive approach for me than "I have half an hour free, I should be working on inverse kinematics and that isn't enough time to tackle it, so I won't even start." That said, my motivation (and the project's visual promotional materials) would be best served by a push that skips over important groundwork like sound and animation systems and goes straight for better body editing, greater VR interaction and a wider variety of visual primitives to populate scenes with, so that's what will probably happen. Probably.