"The Nebula Device" is a new professional quality game engine, that can be used by anybody for free - full source included. Its creators, the core team behind "Urban Assault" (published in 1998 by Microsoft), use Nebula to implement their next commercial computer game project, codenamed "The Nomads".
Coolest Features
-
it's free
-
Provided for free on an "as-is" basis, including full source.
You can do with it whatever you want, just keep the copyright notices
in place (see license.txt for details)
-
modern architecture
-
object oriented; Nebula is a collection of c++ classes
-
modular; c++ class dlls are depend-loaded and -unloaded at runtime
-
portable; currently runs on Linux, Win9x, WinNT. Platform dependent code
is kept minimal and isolated in wrapper classes
-
hot pluggable objects; e.g. switch between D3D and OpenGL rendering without
interruption
-
no custom transform pipeline; leaves vertex transformation, diffuse lighting,
clipping, hidden surface removal, etc. to the 3D API to make automatic use of
transform/lighting hardware
-
integrated scripting system
-
uses industry standard Tcl/Tk as the default scripting language
-
easy support for other scripting languages through plug-in script
server classes
-
select c++ objects by name and invoke methods as script commands on them
-
object serialization uses script language syntax to create human readable
persistent object files
-
channel based animation system
-
small set of general purpose classes for interpolating and mixing object
attributes allows any 1..4 dimensional float attribute to be animated
(position, rotation, scale, light color, material attributes,...)
-
animation channels: keyframe definitions can
be bound to channels, where "time" is only one of many. Application can write
their own values into custom channels, so that animations can be bound to
"speed", "temperature", "wind direction", or whatever the application decides
to export.
-
weight based animation blending allows to blend any number
of animation states into a resulting complex animation, controlled by
per-state-weights which can be read from channels
-
optimized classes for animating vertex buffers
-
shape interpolation, all vertex attributes (e.g. uv, color) can be interpolated
-
weight based shape blending, mix vertex buffers based on weights
-
realtime bone animation with weighted vertex skin
-
powerful console
-
"nsh" the standard Nebula shell, let's the user
browse the internal object hierarchy like a filesystem, create,
save, load or delete objects, invoke script commands on them, run
Tcl/Tk scripts or generally any Tcl/Tk statement
-
built in client/server protocol: connect to another Nebula application
running on the same machine or on a remote machine and manipulate
its objects
- flexible input mapping, bind abstract "app events" or the execution
of scripts to input events
-
built in console, same feature set as the stand alone "nsh", but
is layered in realtime over the 3d view
-
with the help of Tk, easily create portable GUIs that can directly
interact with Nebula objects
-
system information database; many Nebula objects export useful information
into the internal object hierarchy, e.g. which 3d devices have been found
in the system, and what resolutions and features they support, what input
devices are connected, etc.; the exported data can easily be parsed with
the script interface
-
Wavefront OBJ tools included
-
comes with small set of command line tools for processing Wavefront files
(cleanup, transform, triangulate, smooth, compute lod levels, etc...)
-
ascii file formats
-
3d mesh file format is a slightly extended Wavefront OBJ format
-
no conceptual difference between a script and a stored object, the latter
is just a sequence of script commands
Details
More details are availabe in the downloadable package.
|