Ness-engine

Ness-Engine is an open source 2D rendering engine written in C++ under the zlib license. It uses SDL2.0 for rendering and event handling.

Design

The engine is primarily designed for an object-oriented approach to scene rendering; Every renderable object in the engine is either an entity or a scene node arranged in a Scene graph structure, transformations and other rendering effects are inherited from parent nodes to their sons.

Languages

The engine is written in C++ and currently have no bindings to other languages.

Features

Ness-Engine provides the following graphic functions:

  • Sprites:
    • Support scaling, rotation, flipping, alpha blending, mod and additive blending, color tinting and opacity.
    • Render on sprites, masking using external texture.
    • Sprite sheet animation.
    • Extendable sprite class.
  • Rendering utilities:
    • Built-in z-ordering.
    • 2D lighting effects.
    • 2D Particles system.
    • 2D Camera object with limits and auto-focusing on given target.
    • Built-in tile engine, extendable into Isometric tile engine.
    • Built-in background scrolling / Parallax scrolling.
    • Rendering targets that allows to render an entire scene or node onto a texture or sprite.
    • Static nodes to render massive amount of static entities with low cost.
  • Text:
    • Built in text object with multi-lines support.
    • Text supports all Sprite transformations and effects.
    • Replaceable fonts, support any ttf format.
  • File Types:
    • Support TEXtures from file types: GIF, BMP, PNG, JPEG.
  • Input:
    • Keyboard/mouse input manager.
  • Shapes:
    • Render shapes.
    • filled/outlined.