Core Game Template Project
🎮 Overview
A Unity game template project to develop your own mobile or web game, designed with scalability, performance, and best practices in mind.
🚀 Features
- Follow game development best practices with SOLID principles foundation
- Optimized performance and architecture design
- Contains a Compliance Screen for mobile and web-based games with terms of service and privacy policy
📦 Prerequisites
- Unity 2022.3.51f1
- .NET 4.x or .NET Standard 2.1 compatible
- Git LFS (Large File Storage)
🛠️ Installation
- Clone the repository:
git clone https://github.com/CoderGamester/Core-Game/blob/master/README.md
- Open the project in Unity Hub
- Open Addressables Groups page and generate Addressables settings. Window > Asset Management > Addressables > Groups > Generate Settings
- Open the UiConfigs scriptable object. Search in the project or Tools > Select UiConfigs.asset
- Open the “Boot” Scene to play the game demo
- Run the project
🧩 Project Structure
Assets/
: Main project assets
Addressables/
: Static game resources to be loaded at runtime via addressables
Libs/
: Third-party libraries
Resources/
: AVOID THIS FOLDER. Only used by deafult Unity assets or some plugins. Use Addressables instead
Src/
: All game relacted code
Scenes/
: Game scenes and that are not dynamic loaded at runtime via addressables
📚 Package Dependencies
- Game Services to provide the intricate connection between game logic and different modules of the game
- Game State Machine to control the game’s flow
- Ui Service to provide the necessary MVP architecture to control the game’s UI flow and object visibility
- Asset Importer to import addressable assets from the Unity Hub
- Configs Provider to provide the necessary static configuration for the game. Useful for game settings and to use in par with the Asset Importer
- Google Sheet Importer to import data from Google Sheets
- Data Extensions to provide the necessary Unity’s data extensions to use in a game. E.g. Observable Collections
- Notification Service to provide the necessary notification system to use in a game running on a notification based device (e.g web browser & mobile)
- Mobile UI Service to provide the default mobile app UI system
- Unitask to provide the necessary async extensions to use in a game
- Mathfs to provide the necessary math extensions to use in a game
🔧 Dependency Injection
This project uses manual dependency injection through the Main Installer, providing:
- Loose coupling between game modules
- Easy testability
- Flexible and modular architecture
🌐 Asset Management
Leverages Unity Addressables with Asset Importer for:
- Efficient asset loading
- Dynamic resource management
- Reduced initial load times
- Generate Addressables loading paths and groups for easier coding in AddressableId. Can be used in the following way:
AddressableId.Addressables_Configs_DataConfigs.GetConfig().Address;
- Open Addressables Groups page and generate Addressables settings. Window > Asset Management > Addressables > Groups > Generate Settings
🤝 Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
)
- Commit your changes (
git commit -m 'Add some AmazingFeature'
)
- Push to the branch (
git push origin feature/AmazingFeature
)
- Open a Pull Request
📄 License
MIT License
Create new issues and pull requests at or contact us via Discord for any questions or suggestions:
Unity Project Keybind Shortcuts
- ALT+R to force compile all project code
- ALT+1 to open the “Boot” scene
- ALT+2 to open the “Main” scene
Demo URL
https://codergamester.github.io/Core-Game/WebGL_Build/