Dev #06: Current activities
For our upcoming second use case (see Dev #05) and the relating study the main work of the last months happened in the backend. Focusing on the creation of robust methods to import and work with files at runtime, grouping and nesting these objects into figments and environments and deploying this over the network is no small task, which is why we want to make sure everything is working as expected before building user facing methods. In a total opposite, we sure need to spend time on how users will interact with Figments.nrw, which is why work on a general interface design has started, beginning with the main menu users see first when starting the application. We took the opportunity to transition to Unity's UI Toolkit for this, as it happens to be ... at least different to creating user interfaces in Unity's "traditional" way. We hope Unity continues to improve on this, as we think UI Toolkit to be more suited for our needs currently.
Updates to our Roadmap
After changing our internal processes at the start of the year and subsequently having to remove the old roadmap, we are now comfortable in sharing our next steps in developing Figments.nrw. For the upcoming quarterly terms we collated issues we are currently working on and plan to work on. We took the opportunity to formulate our main goals as well, so feel free to take a look!
Towards a uniform User Experience
Up until a few weeks ago we used a relatively simple placeholder as our start menu. As some things simply are easier done in desktop mode, for example copying and pasting urls are creating custom settings to use in vr, we used this menu for most of everything "not VR". In keeping this approach we thought about on how to present this information to our future users and as such came up with a preliminary design for this menu, including resuable UI components. Starting the application in virtual reality (or as an observer in desktop mode) is still just one click away, but now it is far easier to set custom avatars and define which servers to connect for example. Especially the settings section will be expanded upon in the future to allow for further customization (e.g. enabling study tools with advanced tracking).
Creating the backbone of robust authoring tools
- FileIO: Loading and instancing of objects from local or networked sources (e.g. WebDAV)
- Input: XR and Desktop input actions as needed by Unity's input system
- Interaction: XR and Desktop interactions for object manipulation and environment navigation (in the broadest sense, as this relates to everything a user can do)
- Network: Handling player synchronisation and server orchestration, networking of loaded objects and environments and everything else that's fun relating to netcode 😛
- Player: Everything regarding character controllers, avatars and user specific data
- State: Players and objects can exist in different states, e.g. an object can be in the grabbed state while a user holds it or a player can be in an annotation state while using the 3d brush annotation tool
- Utilities: Helpers and everything the other cores may need