Implementation of the Funiki Project in godot.
'main.tscn' contains the main text scene. Opening this with Godot and entering debug mode should be enough to run the simulation.
The basic node structure is as follows:
Main
└───Player // Controlling the player
└───Locations // A branch for locations
│ └───Location 1
│ └───Location 2
│ └─── ...
└───Sources // A branch for sources
│ └───Source 1
│ └───Source 2
│ └─── ...
└───Sensors // A branch for sensors
└───Lights
└───Sound
We do not distinguish between light and sound sources explicitly here as a single source could emit both light and sounds.
The folder structure is ordered functionally. That is, the function of entities are at the forefront rather than the type of thing that they are. It roughly corresponds to the node structure.
- locations - locations, such as rooms.
- sensors - source code for light and sound sensors.
- sources - different types of light and sound sources. A source might emit both light and sound (such as a fire) and could even be dynamic. We may also want to reuse sources across different locations.
- player - provides a main view into the scene for debugging.
- utils - general purpose utilities such as color utilities.
- main.tscn - this is the entry point for the Godot application.
Hue lights are connected via a Hue bridge that provides an API to the lights. They must first be registered with the bridge.
Hue lights are associated with 'Light Sensors' which are basically viewports with a low-res camera pointing at a point of interest. The GUID of a Hue light must be provided to Godot to know which light to send information to.
tbc