Products
» Screenshots «
» Videos «
» Clients & Partners «

Our flagship product, the Nytro Game Engine is a game development platform which you can use to create games of any genre, from First Person Shooter (FPS) to Real Time Strategy (RTS) or Space simulators, for PC, XBOX360 and PlayStation 3 game consoles (in work).

The power of the Nytro Game Engine comes from its clean and documented code, plugin-based extensibility and the simplicity of the architecture.

At the same time, the engine can automate many tasks, or let the user tweak every detail of a game. The main tool when creating a game with Nytro, is the nytroStudio world editor, a WYSIWYG level editor and more, it loads user plugin tools, which run inside the editor and help the game developer to edit all the game's assets. Default tool plugins for the main nytroStudio editor: Scene, Particle, Model, Script, Logic, Shader, Landscape, AI, Actor, CutScene, Font, and GUI editor.

Being an XML data driven engine, it's easy to edit the game's data files, and create new user tools to handle them. The engine works with any modelling package which supports a COLLADA scene exporter ( 3D Studio MAX, Maya, XSI, Lightwave, Blender, etc. ), nytroStudio will load the COLLADA file and export it in its own binary format (so COLLADA is only an intermediate format). The Autodesk FBX will also be supported, and probably will replace COLLADA import in the future.

Table of contents:
  1. Engine overview diagram
  2. Overview info
  3. Rendering
  4. Math
  5. Network
  6. Physics
  7. Input
  8. Animation and models
  9. Game module (provider)
  10. Sound
  11. Scripting
  12. AI - Artifical Intelligence
  13. GUI - Graphical User Interface
  14. Files / game data
  15. Effects
  16. Tools
  17. Documentation
  18. Licensing information


» Overview
  • written in clean C++ classes
  • extensible through plugin based architecture
  • the engine is data-driven, loading most of its game data from XML files
  • basic services through provider plugins, virtual interfaces to:
    • file provider ( can be simple disk access or pak access to game data files )
    • graphics provider ( can be OpenGL, Direct3D 9 / 10 )
    • sound provider ( can be FMOD, OpenAL, or other API )
    • network provider ( can be Winsock2, DirectPlay, or other API )
    • physics provider ( can be ODE, Newton, Bullet, Havok, AGEIA PhysX or other API )
    • input provider ( can be DirectInput or other )
    • script provider ( can be LUA or another scripting system )
    • game provider ( custom game logic happens here, modding support )
  • built-in RTTI ( Run Time Type Information ) on base classes ( classname, usage count )
  • cross-platform, currently targeting PC Windows, XBox360 and PlayStation 3 ( consoles in work )
  • register class factories ( creating classes by their C++ name )
  • class property system ( like that in Delphi/C++Builder or .NET ), each object can have properties which are exposed to the editor and the scripting system
  • resource manager ( holds one instance for each resource loaded, unloading when not used )
  • other features: smart pointers, advanced logging, dynamic libraries, threads, built-in class commands (issue commands to classes, with a list of arguments), timer, variant class, xml parsing, exceptions, statistics, file functions, math library, and others.
  • based on STL containers
» Rendering
  • currently based on DirectX 9, and also planning for a DirectX 11 graphics provider
  • the rendering pipeline is shader-centric, no more fixed pipeline, supporting up to Shader Model 3.0 and beyond
  • implementations : render-to-texture, reflections, refractions, bump map (through normal maps), specular maps, light maps, fresnel term, phong/blinn lighting models.
  • vertex and pixel shaders using HLSL/GLSL/Cg
  • central shader library
  • shader fallback system
  • unified lighting based on global shader parameters ( like lights, scene shadow maps, and other parameters )
  • image loading supporting DDS,JPG,PNG,BMP,TGA and more
  • scene graph and scene nodes for a clear hierachy of the scene
  • rendering packets system, each scene node presents a list of render packets (vertex buffers with rendering settings) which it wants to render and the scene graph does all the sorting
  • partitioning: octtree, hash space (zones), portal triggers
» Math
  • generic math functions ( random number generator, primitive intersections )
  • bounding box (axis aligned and oriented), matrix, quaternion, 3D vector, ray, plane classes
» Network
  • client / server architecture, for multiplayer on LAN and internet
  • MMOG (massive multiplayer online games) layer ( work in progress )
  • assign codecs for packet encoding/decoding; reliable / unreliable packets
  • TCP/IP based
  • servers using multiple threads for communication with the clients, load balancing
» Physics
  • currently using NVIDIA PhysX
  • rigid bodies, rag-dolls, cloth, joints, vehicles, ropes, soft bodies
  • trace ray on every scene node
  • convex hulls for simple collisions
» Input
  • support for mouse, keyboard, joystick, wheel
  • input maps, holding key binds for the game in xml files
  • actions and combo actions set for keys
» Animation and meshes/models
  • TCB/Bezier/Linear based animation, highly customizable ( keys, tracks )
  • every parameter of a class can be animated
  • actors: skeletal animation, frames exported from 3D Studio MAX, Maya or XSI through COLLADA file format, cand be blended with IK (Inverse Kinematics) for special cases, like stairs or terrain; works with the physics systems rag-dolls; actors can have slots assigned, for example: weapon placement or backpacks; body parts hit damage, look-at controllers
  • cinematic sequences for cut-scenes
  • meshes are the raw data
  • models have assigned a mesh, and for each submesh of that mesh : shader and textures
  • assembly objects are many models assembled in a hierachy-based structure ( for example a vehicle with wheels and gun on top )
» Game provider
  • entities, are special scene nodes, populating a world (level)
  • the entities can be: actors, terrain, items, triggers or user defined
  • streamable worlds
  • game state handlers ( like: intro, main menu, in-game )
» Sound
  • WAV and MP3/OGG streaming
  • 2D/3D sound sources with various effects applied
  • blocker geometry, sounds affected by the game's geometry
  • in-game sound track change depending on the game state ( battle/peace/alert )
» Scripting
  • currently based on LUA scripting language, but any kind of scripting system can be easily integrated
  • set / get entity properties from script
  • call commands on entities
  • create new entities in script
» AI - Artifical Intelligence
  • brain, personality, AI agents, waypoints and hint systems ( grid / graph )
  • group behavior ( run-away, attack, defend member, hero-like members )
  • virtual senses ( smell, sight, hearing )
  • AI can use the surroundings / objects in various scopes ( attack, defend, build )
» GUI - Graphical User Interface
  • widgets: layer, window, menu, tab, panel, button, toggle button, check box, combo box, group box, image box, label, list box, progress bar, radio, scroll bar, slider, spinner, text box, tree view, 3D viewport, movie player
  • central kernel managing the widgets
  • in-game console ( can be linked with the logger(s) )
  • pixel based fonts, text align, wrapping
  • UI stored in XML files, easy to tweak
» Files / game data
  • game data locations - the user can define archives or physical directories to load game data, in virtual directories
  • archives can be ZIP ( optionally with scrambled headers ) or a custom archiving format / system, the user can even implement a remote internet archive system
  • files are loaded into the resource manager, for one-time load and precache
» Effects
  • post-process HDR bloom, glow, sepia, tv noise, black and white
  • auto-exposure
  • cinematic motion blur
  • lens flares and coronas
  • advanced modular particle system, with many parameters to set
  • soft particles
  • billboards
  • sky dome
  • water planes
  • fire / explosions / path trails / sparks
  • object impostors
» Tools
  • NytroStudio world ( level ) creation editor, WYSIWYG
  • on-place game testing, directly in the editor
  • several tool-plugins startable within the editor:
    • Model Editor - import meshes from various formats and save as nytro native mesh format, assign shaders and shader presets for the sub-meshes, assemble many models into a complex object ( assembly object ), setup axis constrains on hierachy, edit slots
    • Actor Editor - skeleton import from various formats, mesh skinning preview, with ragdoll physics setup and testing, animation blending setup, lip sync editing for characters speech, with keyframing and sync
    • AI Editor - with diagrams and connections, behavior / brain building
    • CutScene Editor - with splines for camera movement, cinematic triggers, movie-like effects, keyframing
    • Landscape Editor - create vast, tileable, optionally infinite terrains, with or without vegetation, detail objects like rocks or custom objects, raise / lower terrain with 3D brushes, create caves on top of the terrain using voxel techniques, paint terrain layers with chosen textures and also setup a skybox, fog, viewing distance, vegetation system long distance rendering optimizations ( impostors ), water zones.
    • Font Editor - create font textures and font description files
    • Shader Editor - build a shader from pre-made shader modules, visually interconnected through in/out slots, shader presets editor and edit shader HLSL / GLSL source
    • GUI Editor - form editing, 2D / 3D menu editor
    • Particle Editor - with particle system visualization and keyable attributes
    • Resource Browser - game resources are managed through this tool, as a browseable database
  • export data from 3D Studio MAX, Maya, XSI or other modelling program through COLLADA file format, and using the collada to nytro tool to get the data ( meshes, animations, skinned meshes bones ) into the engine
» Documentation
  • core engine classes are all fully documented ( Doxygen generated, both C++ source files and header files )
  • the editor has CHM/HTML/PDF manuals
  • subsystems diagrams and engine internal flow charts images
  • tutorials and full game examples
» Licensing information

Soon we will have a complete pricing and license information table, with a wide range of licensing options at your disposal, email to office@7thfactor.ro for more information, and to be added as a beta tester for the upcoming SDK.