---
title: "Introduction"
description: "NeoGameLib is a prefab framework for MonoGame — GameObjects, collision, cameras, UI, input, timers, and more."
canonical_url: "https://docs.ctrl-neo.dev/en/neogamelib/introduction"
---
# Introduction

NeoGameLib is a prefab framework for MonoGame. It layers a Unity/Godot-style GameObject system, a collision bus, a render bus with world-space cameras, a screen-space UI system, input action maps, timers, storage helpers, and an asset cache on top of plain MonoGame. Everything is components attached to objects, and every system is a bus hanging off one `NeoGame` instance.

- Targets **.NET 8 and .NET 9**
- Built against **MonoGame.Framework.DesktopGL 3.8.x**
- License: AGPL-3.0-or-later
- All public types live under the `NeoGameLib` namespace tree (`NeoGameLib.NeoGO`, `NeoGameLib.NeoRendering`, `NeoGameLib.NeoCollision`, `NeoGameLib.NeoUI`, `NeoGameLib.NeoInput`, `NeoGameLib.Common`, `NeoGameLib.NeoStorage`)

## Features

- **GameObject model** — worlds hold objects, objects hold components, components hold your logic. Load/unload worlds at runtime.
- **Collision bus** — AABB colliders with interface-based callbacks and world collision groups.
- **Render bus** — sprites, text, world-space cameras with zoom and layer culling, sprite animations, render features.
- **Screen-space UI** — canvases, panels, flexbox, buttons, anchors and sizing modes, resolution scaling.
- **Input action maps** — named actions over keyboard and mouse with edge-triggered pressed/released states.
- **Timers, movement, storage** — reusable countdowns, a platformer movement component, JSON/file stores, an asset cache.
- **Letterboxed viewport** — fixed-aspect viewport with window modes, independent of the window size.

## What's where

<table>
<thead>
  <tr>
    <th>
      Page
    </th>
    
    <th>
      Covers
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <a href="https://docs.ctrl-neo.dev/2.getting-started">
        Getting Started
      </a>
    </td>
    
    <td>
      install, minimal game, lifecycle hooks, frame order
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://docs.ctrl-neo.dev/3.game-objects">
        Game Objects
      </a>
    </td>
    
    <td>
      <code>
        NeoGame
      </code>
      
      , worlds, <code>
        NeoObject
      </code>
      
      , <code>
        NeoComponent
      </code>
      
      , transforms, queries
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://docs.ctrl-neo.dev/4.rendering">
        Rendering
      </a>
    </td>
    
    <td>
      render bus, sprites, cameras, text, animations, render features
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://docs.ctrl-neo.dev/5.collision">
        Collision
      </a>
    </td>
    
    <td>
      colliders, <code>
        ICollision
      </code>
      
      , collision groups
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://docs.ctrl-neo.dev/6.input">
        Input
      </a>
    </td>
    
    <td>
      input maps, actions, axes, the <code>
        Input
      </code>
      
       facade
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://docs.ctrl-neo.dev/7.ui">
        UI
      </a>
    </td>
    
    <td>
      canvases, elements, layout, flexbox, scaling, hit testing
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://docs.ctrl-neo.dev/8.systems">
        Systems
      </a>
    </td>
    
    <td>
      timers, <code>
        NeoMover
      </code>
      
      , storage, asset manager, windowing
    </td>
  </tr>
  
  <tr>
    <td>
      <a href="https://docs.ctrl-neo.dev/9.api-reference">
        API Reference
      </a>
    </td>
    
    <td>
      every public type and member, compact
    </td>
  </tr>
</tbody>
</table>

The library is small and consistent: once you understand the GameObject world model and the per-frame order, every subsystem follows the same shape.


## Sitemap

See the full [sitemap](https://docs.ctrl-neo.dev/sitemap.md) for all pages.
