Interaction system
The core interaction system I built for University Life Simulator 3D. Physics-based object handling, magnetic snapping, an objective tracking brain, and door/switch/button behaviours, designed to be reusable across multiple projects.
The fundamental idea behind the development of this tool is to provide flexibility and versatility in terms of player interaction with the game world. In conjunction with an interaction system, this tool allows for the implementation of a wide range of objects and elements, such as doors, switches, buttons, and more, each with its own custom animation, behavior, and other attributes. This enables the future development of the game to incorporate a wide range of objectives and tasks that can be easily integrated into the game world. Overall, this tool is an essential component of the game and will greatly enhance the player's experience.
In conjunction with the interaction system, a centralised interaction system serves as the central hub for collecting and managing data on player interactions and "quests". This system tracks the states of all interactable objects in the game world and outputs this information to a visual component, allowing players to easily track and manage their progress. Furthermore, the objective system allows for the customization of behaviors and actions based on the state of interactable objects or the completion of objectives. This enables the game to provide a rich, dynamic experience for players and allows for a wide range of possible gameplay scenarios.
The project features the use of realistic physics, allowing objects to interact with the environment and each other in a natural and intuitive manner. Physics collisions are accurately simulated, providing a satisfying and believable experience for players. In addition, the project utilizes a simulated spring system to govern the behavior of objects when picked up by the player. The object will be drawn towards the center of the player's crosshair, using the force exerted by the spring. To maintain realism and ensure expected behavior, the spring is programmed to snap at a certain force limit, causing the object to drop. Overall, this system provides a seamless and immersive experience for players.
Inspired by Half-Life 2's interaction system. Weeks of playtesting and tweaking to get object behaviour feeling natural; virtual objects behave as players intuitively expect despite being physics simplifications.
The interaction system in this project utilizes hitboxes in conjunction with the objective system to allow for the preprogramming of objects to automatically snap to certain spots. This feature, combined with the highlight-lighting mechanism, provides a subtle and effective way for the game to communicate with the player regarding objectives and the placement of objects. This system enables a more seamless and immersive experience for players, allowing them to easily interact with the game world and progress through objectives