-
Notifications
You must be signed in to change notification settings - Fork 1
Module and Project Structure
The game is built in different modules for:
- Decide at boot time whether to load VR, Flat, or other integrations (Adapter pattern)
- Overwrite prefab logic. (e.g. UnZENity-Core//oCItem.prefab can be overwritten by UnZENity-VR//oCItem.prefab based on active module)
Current structure:
/Assets
|--- UnZENity modules
| |-- UnZENity-Core
| |-- Editor - Actions to set up UnZENity. MenuItem: UnZENity
| |-- Resources - Resources to load at runtime. e.g. Prefabs.
| |-- Scenes - Main scenes
| |-- Scripts - C# scripts with core logic. C# Module: UnZENity.Core
| |-- UnZENity-Flat/
| |-- Resources - Overwritten prefabs and other elements to load at runtime.
| |-- Scripts - C# Module: UnZENity.Flat
| |-- UnZENity-Gothic1/
| |-- Scripts - C# Module: UnZENity.G1
| |-- UnZENity-Gothic2/
| |-- Scripts - C# Module: UnZENity.G2
| |-- UnZENity-Lab/
| |-- Scripts - C# Module: UnZENity.Lab
| |-- UnZENity-Tests/
| |-- PlayMode - Integration tests while game is running. C# Module: UnZENity.Tests.PlayMode
| |-- UnZENity-VR/
| |-- Editor - Actions to alter VR context and initialize Hurricane VR. MenuItem: UnZENity
| |-- Resources - Overwritten prefabs and other elements to load at runtime.
| |-- Scripts - C# Module: UnZENity.VR
|--- Other modules
| |-- HurricaneVR - Installation of HVR (if available). Will be leveraged by UnZENity-VR module
| |-- Plugins - Used for Rider.Flow and other editor plugins if needed locally
| |-- Resources - Unused. But Unity is always recreating it ;-/
| |-- StreamingAssets - Json configuration for Players to define (e.g.) Gothic installation path after installation
| |-- TextMesh Pro - Resources like shaders/sprites to ensure TMP is working properly. (No C# scripts as they're included via package.json)
| |-- XR - OpenXR settings
The named UnZENity modules leverage Unity's C# modules to define proper dependencies. Please read Unity's documentation for more information: https://docs.unity3d.com/Manual/ScriptCompilationAssemblyDefinitionFiles.html
Note
If you need to add a dependency to a Unity package/module or another UnZENity module, please follow this guide --> Referencing another Assembly.

The dependency graph goes like this: Every module depends from UnZENity.Core and has no interaction with other UnZENity modules.
Core
<- Flat
<- VR
<- Lab
<- Tests
Copyright © 2026. Gothic Unity Contributors
Contents
Home
Get Started
Developer Setup
Module & Project Structure
Coding Style Guide
Core Architecture
Software Architecture
Technical Designs
Asset Loading and Animations
Integrations
Hurricane VR Integration
(TBD) Mod Support
Resources & Tools
OBS & Recording Setup
Build Pipelines