Overview of Nez features
masterNez is a feature-rich 2D framework built on top of MonoGame/FNA. It provides a comprehensive suite of tools for 2D game development, including:
- Entity Management: A Scene/Entity/Component system with Component render layer tracking.
- Physics & Collision:
- AABB, circle, and polygon collision/trigger detection.
SpatialHashfor fast broadphase physics lookups (used internally for raycasts and overlap checks).- Farseer Physics (Box2D-based) integration for full physics simulations.
- Verlet physics bodies for particle-based constraints.
- Task Management:
Core.startCoroutinefor efficient coroutines to handle tasks across multiple frames.Core.schedulefor delayed and repeating tasks.
- Rendering & Visuals:
- Extensible rendering system with support for custom Renderers, PostProcessors, and custom sorters.
- Deferred lighting engine with normal map support.
- Tween system for animating fields (int, float, Vector, quaternion, color, rectangle).
- Sprite support (animations, scrolling, repeating, and trails).
- Line renderer with configurable end caps.
- Particle system with Particle Designer file support.
- Debugging Tools:
- In-game debug console (accessible via the tilde
~key) with visual physics debugging, asset tracking, and profiling. - In-game Component inspector: use the
inspect ENTITY_NAMEcommand in the debug console to edit properties and call methods. - Dear ImGui integration for custom debug panels via attributes.
- In-game debug console (accessible via the tilde
- Data & Pathfinding:
- Serialization via
Nez.Persistenceusing JSON, NSON (strongly typed, human-readable), or binary formats, supporting polymorphic classes and reference resolution. - Pathfinding via Astar and Breadth First Search for tilemaps or custom formats.
- Serialization via
- Scene Management:
- Per-Scene content managers that automatically unload scene-specific content upon scene changes.
- Customizable Scene transition system with built-in transitions.
- Events: Optimized
Emitterclass for core and custom events.