Proposed: Basic Real-Time Interaction for Character and World Scenes
The Context
The project will enable users to interact in real-time by manipulating objects within a shared virtual environment, enhancing the user experience.
The Problem Statement
I want to extend V-Sekai’s functionality to support real-time interaction with uploaded character and world scenes. This includes the ability for users to manipulate objects within the scene and have those changes reflected in real-time for other users connected to the same session. Additionally, seamless integration of new elements into the environment is crucial.
Here’s a detailed breakdown of the features we plan to implement:
- Real-time Interaction: Users can move and rotate objects in the scene. Changes appear instantly, providing immediate visual feedback.
- Networked Synchronization: When one user modifies something, the change is immediately visible to all other users in the same session.
- Object Persistence: Users can save their current scene setup to continue working on it later or retrieve it in another session.
- Dynamic Environment Integration: Facilitate the introduction of new interactive elements during live sessions.
- Mediator Role: A special user, called a mediator, can manage permissions like who can move what, start or end the session, and oversee interactions between users.
- Limited Scope: Initially, this feature will support multiple users interacting in one scene without additional complexities like handling multiple scenes or advanced physics.
This upgrade leverages the existing functionality of V-Sekai for uploading and rendering game engine assets. It assumes the utilization of V-Sekai’s current game engine and networking capabilities, or the integration of clearly specified, readily available libraries or services to achieve the desired real-time interaction and synchronization.
Describe how your proposal will work with code, pseudo-code, mock-ups, or diagrams
Mock-up Diagram
[Scene Interaction Mock-up]
+------------------------------------------------+
| |
| [User1] |
| * (Object1) <-- [Moving] |
| |
| [Tool Switcher Pie Menu] |
| - Move Tool |
| - Rotate Tool |
| - Close |
| |
| [User2] |
| * (Object2) |
| |
+------------------------------------------------+
The Benefits
Enhanced user engagement allows users to interact dynamically with objects, increasing the sense of presence. Establishing basic functionalities lays the foundation for future features that can include more complex interactions. Immediate feedback is crucial for collaborative environments, and intuitive tool selection through the Tool Switcher Pie Menu enhances workflow efficiency.
The Downsides
The initial features are limited to basic manipulations, which might not meet all user expectations. As the user base grows, the current simple synchronization mechanism may need significant enhancements.
The Road Not Taken
A full-scale interaction suite was initially considered, including scaling and advanced physics, but it was decided against due to complexity and resource constraints.
The Infrequent Use Case
While the system is designed for multiple users, it will also support single-user sessions, although this is not the primary focus.
In Core and Done by Us
This feature is core to the project’s mission of enhancing interactive capabilities and will be developed internally to ensure seamless integration and maintain control over quality.
Status
Status: Proposed
Decision Makers
- Project development team
- Fire
- Humble Tim
Further Reading
- Project GitHub - Official GitHub account for the project development community focusing on enhancing virtual interaction capabilities.
- Project Documentation - Comprehensive documentation on the project’s features and development guidelines.
AI assistant Aria assisted with this article.