-
-
Notifications
You must be signed in to change notification settings - Fork 78
Folder Structure
Prefer PascalCase when naming folders and files. Prefer plural forms when naming folders (e.g. Images
instead of Image
).
The current assets folder hierarchy is structured by scene and combines assets that implement a common idea. The goal is to have assets nearby that are closely related to each other, such that a task at hand can be done with little search in the folder hierarchy.
As a result, assets that are used in only one scene are placed in the folder of this scene.
Similarly, assets that implement a common idea (e.g. a DragonImage.png
, DragonControl.cs
, DragonSound.ogg
) could go to a common folder Dragon
.
The UltraStar Play repo holds multiple Unity projects: one for the main game and one for the Companion App.
Common code of these projects is placed in a Unity package /UltraStar Play/Packages/playshared
.
The playshared
package is then referenced in the Packages/manifest.json
file of other Unity projects.
Top level structure:
Where | What |
---|---|
/ | Main repo folder. Try to not add any new files here, but instead place them in a fitting subfolder. |
/NukeBuild/ | Files of Nuke build tool, i.e., a small dotnet project to build the project. |
/UltraStar Play/ | Unity project of the main game |
/UltraStar Play Companion/ | Unity project of the Companion App |
/UltraStar Play/Packages/playshared | Unity package with common code of main game and Companion App |
Inside a Unity project (or inside the package for common code):
Where | What |
---|---|
./Assets/Editor/ | Special folder for code that extends the Unity Editor. Also, our unit tests and integration tests go here |
./Assets/Plugins/ | Third party libraries |
./Assets/Scenes/ | Unity scene files with their related assets |
./Assets/Common/ | Assets that are used only in this Unity project in multiple scenes or are not related to any scene |
./Assets/Common/R/ | Generated classes that hold constants to reference resources |
./Assets/Common/Utils/ | Rather generic utility code that is not specific to this karaoke game |
Still having questions or looking for general help with UltraStar games? Please see ❔Common FAQ or go to 💬UltraStar Play Discord. There is also a 👋🏻central help desk for UltraStar, Vocaluxe, and Performous Communities on Discord.