Skip to content
@openugd

OpenUGD

Open Unity Game Development

OpenUGD

Small Unity packages that compose instead of taking over: scopes with deterministic clean-up, typed events, dependency injection that validates the whole graph before it builds, and the pieces that connect them to a Unity scene. Each package is usable on its own, documented, and tested.

Unity 6000.0 or newer · Apache-2.0 · published on OpenUPM under the com.openugd scope · Tests

Packages (2.x)

Package What it gives you Depends on
Lifetime — com.openugd.lifetime Scopes with deterministic, reverse-order clean-up —
Signal — com.openugd.signal Typed events whose subscriptions end with a lifetime Lifetime
Context — com.openugd.context Dependency injection that validates the whole graph before it builds anything Lifetime
CoreLib — com.openugd.corelib The Unity boundary: ContextBehaviour, presenters, commands, logging Lifetime, Signal, Context
CoreLib uGUI Presenters — com.openugd.corelib.widgets Presenters that bind uGUI and TextMesh Pro controls to a model CoreLib, Context, Signal, Lifetime, uGUI
uGUI Components — com.openugd.ui Shader-free uGUI components: flip, gradient, invisible hit area uGUI

Where to start

  • Plain C# scopes and events: Lifetime, then Signal.
  • Dependency injection: Context. It has no Unity dependency, so it also runs in plain NUnit tests and servers.
  • Inside a Unity scene: CoreLib boots a Context from a MonoBehaviour; add CoreLib uGUI Presenters to bind UI.
  • Just the uGUI effects: uGUI Components needs nothing else from the family.

Install with the OpenUPM CLI, which adds the scoped registry and brings the dependencies along:

openupm add com.openugd.corelib

or add the registry to Packages/manifest.json yourself:

{
  "scopedRegistries": [
    { "name": "package.openupm.com", "url": "https://package.openupm.com", "scopes": ["com.openugd"] }
  ],
  "dependencies": {
    "com.openugd.corelib": "2.0.0"
  }
}

Each package's README has a quick start, the concepts, an API overview, samples you can import from the Package Manager, and how to run its tests.

How it is tested

upm-tools holds the checks. Its CI compiles every package, its samples and the complete examples in its README against Unity 6000.0's assemblies, runs the engine-free tests, and checks managed-code stripping with Unity's linker, on every change there and every Monday. Before a release the full suites also run in a real Unity editor, from the packages exactly as OpenUPM publishes them, and in an IL2CPP player.

Also here

  • upm-configuration — string-keyed configuration for Context; 0.x, not on OpenUPM yet.
  • upm-dependency-injection — archived, replaced by Context.
  • The other repositories hold packages that predate 2.0 and are not part of the 2.x family.

Popular repositories Loading

  1. upm-ecs-engine upm-ecs-engine Public

    C#

  2. upm-ecs upm-ecs Public

    C#

  3. upm-corelib upm-corelib Public

    The Unity boundary of OpenUGD: ContextBehaviour, presenters, commands, logging. OpenUPM: com.openugd.corelib

    C#

  4. upm-corelib-widgets upm-corelib-widgets Public

    Presenters that bind uGUI and TextMesh Pro controls to a model. OpenUPM: com.openugd.corelib.widgets

    C#

  5. upm-lifetime upm-lifetime Public

    Scopes with deterministic, reverse-order clean-up for Unity and plain C#. OpenUPM: com.openugd.lifetime

    C#

  6. upm-signal upm-signal Public

    Typed events whose subscriptions end with a Lifetime, for Unity and plain C#. OpenUPM: com.openugd.signal

    C#

Repositories

Showing 10 of 16 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…