NeoEngine

From NeoWiki

What is NeoEngine?

NeoEngine 2 – Evolution is the second iteration of the game engine created by Reality Rift Studios. It is a modern object-oriended game engine written in C++, featuring all components needed to create a modern 3D game including subsystems for rendering, audio, physics, input, scripting and networking with a platform-independent API.

NeoEngine 2 – Evolution is currently ported to Windows, Linux and MacOS X, and runs on x86, x86–64 and PPC CPUs.


Feature list

Platforms

  • Windows
  • GNU/Linux
  • MacOS X

Core subsystem

  • Efficient generic containers (array, hashmap, balanced tree, any)
  • Manager objects for core platform information and engine subsystems
  • Smart pointers and reference counting for shared resources
  • Radix sorter
  • Platform-independent high-precision timers
  • String utility methods
  • Base functionality classes (hash, activator, exceptions)

File subsystem

  • Platform and byte order independence
  • Virtual file system
  • Mount directories and packages anywhere in file system
  • Package support through codecs (read/write)
  • ZIP codec
  • Wrapper streams classes for std streams and debuggers
  • Network integration for downloadable packages

Image subsystem

  • Load/save functionality through codecs
  • PNG, JPEG, TGA, DDS codecs
  • Image resize and format conversion
  • Custom mipmaps
  • Compressed formats (DXTn)
  • Generic pixelformats

Math subsystem

  • Vector, matrix and quaternion classes
  • Euler angles and axis-angle legacy support
  • Optimized core math routines

Log subsystem

  • Generic log stream support through file subsystem ostreams
  • Log level, threshold and filtering

Scripting subsystem

  • Scripting language Lua
  • Most engine resources accessible to scripting

Rendering subsystem

  • Generic platform and API independent device
  • OpenGL and DirectX device implementations
  • Vertex and index buffers with multistream support
  • Accelerated storage with read/write buffers in system RAM
  • Flexible vertex format
  • Vertex and pixel shaders with support for vs1.x, vs2.x, ps1.x, ps2.x, arbvp, arbfp, atifs and nvrc targets
  • Trianglelist, trianglestrip, linelist, linestrip, point and pointsprite primitives
  • Fixed-function "shading" language
  • GLSL, vs3.x, ps3.x support
  • Adapter and resolution enumeration
  • Technique with multipass rendering, zbuffer modes and blend modes
  • Dynamic lights and shadows with integration to shaders
  • System shaders and textures
  • Occlusion culling
  • Curved surfaces (bezier pathces, NURBS)
  • Z buffer and stencil buffer support

GUI susbsystem

  • Core classes for 2D overlay rendering
  • Font rendering and text formatting with support for flow control (right-to-left, bottom-to-top)
  • Core widgets, areas, buttons, textfields, static controls, scrollbars
  • Complex widgets, listboxes, tree controls, edit boxes, windows
  • Z ordering
  • Event system, processing, hooks
  • Scripting integration

Input susbsystem

  • Events for keyboard, mouse, joystick and auxiliary devices
  • Device base and implementations for supported APIs and platforms
  • Scripting integration

Network susbsystem

  • Streams for TCP and UDP sockets
  • Scripting integration

Scene susbsystem

  • Generic object with SRT data management and generic attributes
  • Controller plugin architecture for extending objects
  • Hierarchy management through controller
  • Geometry for render, collision, occlusion and shadow processing
  • Mesh as collection of geometries with LOD management
  • Generic scene manager class
  • Scene specializations (ABT, BSP, terrain)
  • Scripting integration

Animation susbsystem

  • Skeletal and vertex animations
  • Animation blending
  • Scripting integration

Collision susbsystem

  • AABB, OBB, sphere and capsule bounding volumes
  • Intersection and collision queries
  • Ray and sphere-swept volume queries
  • Polygon soup queries
  • Scripting integration

Physics susbsystem

  • Rigid-body simulation
  • Stacking and friction model
  • Joints and constraints
  • Ragdolls
  • Scripting integration