Skip to content

This project is a the core architecture of a new mobile game project

Notifications You must be signed in to change notification settings

CoderGamester/Core-Game

Repository files navigation

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

  1. Clone the repository:
    git clone https://github.com/CoderGamester/Core-Game/blob/master/README.md
  2. Open the project in Unity Hub
  3. Open Addressables Groups page and generate Addressables settings. Window > Asset Management > Addressables > Groups > Generate Settings
  4. Open the UiConfigs scriptable object. Search in the project or Tools > Select UiConfigs.asset
  5. Open the "Boot" Scene to play the game demo
  6. 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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📄 License

MIT License

📞 Contact

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/

About

This project is a the core architecture of a new mobile game project

Resources

Stars

Watchers

Forks

Packages

No packages published