Game Framework
A collection of C# interfaces only, to uniformize games structure. Inspired by Unreal Game Framework (Pawn, Actors, Controllers).
com.awesomeprojection.gameframework 
Install via UPM
Add to Unity Package Manager using this URL
https://www.pkglnk.dev/awesomeprojectiongames-gameframework.git README Markdown
Copy this to your project's README.md
## Installation
Add **Game Framework** to your Unity project via Package Manager:
1. Open **Window > Package Manager**
2. Click **+** > **Add package from git URL**
3. Enter:
```
https://www.pkglnk.dev/awesomeprojectiongames-gameframework.git
```
[](https://www.pkglnk.dev/pkg/awesomeprojectiongames-gameframework)README
GameFramework
A collection of C# interfaces only, to uniformize games structure. Inspired by Unreal Game Framework (Pawn, Actors, Controllers).
Designed for building scalable and maintainable Unity games, it provides a robust architecture for defining actors, controllers, game flow, and interaction systems, making it easier to manage complexity in both single-player and multiplayer environments.
Core Architecture
The framework differentiates logical control (IController), physical presence (IPawn), and game rules (IGameMode).
Actors & Possession
IActor: A significant world object with ownership hierarchy. Should not be considered as a GameObject. For example, a pressure plate will have anIActoron the root gameobject but not on the children gameobjects used for rendering and collision.IPawn: Physical avatar possessed by a controller. Generally movable.ICharacter: SpecializedIPawnwith movement capabilities.IController: "Brain" that possesses a Pawn (AI or Player).ISpectateController: Controller dedicated to viewingISpectatetargets for game views.IMachine: The physical application instance (Client/Server).IGameInstance: Persistent cross-scene data and lifecycle management. Only singleton you should need, because it hasIComponentsContainerto add global services andIEventBusfor global events.
Game Flow
IGameMode: Match rules, scoring, and spawning logic. Generally one per scene.IGameState: Replicated global game state (teams, scores).ISpawnPoint: Validated location and rotation for spawning actors. Can have physics checks to ensure validity.
Systems
- Dependencies:
IComponentsContaineracts as a highly optimized service locator forIActorComponentto build modular actors. - Identity:
IHaveUUIDprovides unique, persistent, network-synced identity.IIDRegistryallows O(1) lookups. - Reactive:
IValueObservable<T>exposes reactive data streams.IEventBushandles decoupled local/global pub/sub events. - Health:
IHealthmanages vitality and death;IDamageablehandles damage/healing logic;IBatteryfor energy mechanics. - Interaction:
IInteractable(target) andIInteractor(source) standard interactions.IRaycastablefor pointer/cursor detection. - Inventory:
IInventorymanagesIItemActorandIItemStackcollections. SupportsISelectableInventory/IInventoryOrderableList. - Spectating:
ISpectatedefines view targets;ICameraandICameraControllerhandle view rendering logic. - Traits:
IDroppable,IThrowable. - Persistence:
ISerializedObjectfor saving/loading state.
Installation
To install this package, you can use the Unity Package Manager. To do so, open the Unity Package Manager and click on the + button in the top left corner. Then select Add package from git URL... and enter the following URL:
https://github.com/AwesomeProjectionGames/GameFramework.git
Or you can manually to add the following line to your manifest.json file located in your project's Packages directory.
{
"dependencies": {
...
"com.awesomeprojection.gameframework": "https://github.com/AwesomeProjectionGames/GameFramework.git"
...
}
}
No comments yet. Be the first!