What is [url=\"http://nebuladevice.cubik.org/\"]Nebula[/url]?
The leading Open Source 3D game and visualisation engine used in dozens of commercial games and professional visualisation applications released worldwide.
* A well-tried and robust C++ game engine
* An “Operating System” for games
* OpenSource - License - It’s free !
* Multiplattform - Win, Linux, Irix, Mac, Xbox, …
* A portability wrapper - unified API
* An abstraction layer - simplified API
* An extensive and most modern feature set
* A DX9 rendering engine
* Flexible scripting: TCL, Python, Lua, …
Design Philosophy
* Integration is better than implementation
* Make extensive use of existing libraries - DevIL, Tcl, Lua, Python, TinyXML, D3DX, SQLite…
* Throwing away source code can be good
* Modular architecture supports high source code fluctuation
* When in doubt, throw away and rewrite
* Prevent unmaintainable code
* Small is beautiful
* Clear restriction to rendering, audio, input, resource management, scenegraph management: Nebula is not a game framework - check Mangalore.
* New Nebula releases often have less source code then their predecessors
What is Nebula not:
* A complete out-of-the-box running and genre specific game framework (like the Quake-, Unreal- or Lithtech engines)
* A point & click or prototyping tool (like Macromedia Director or VirTools)
Nebula is since 1999 a OpenSource project with constant refactoring and skilled contribution form a living community and Radon Labs. Nebula is for developers, you still need a team of programmers.
Features
Tree Of Named Objects
* Nebula objects have a string name
* Nebula objects are arranged in a hierarchy, similar to a filesystem
* An object name can be converted to a C++ pointer, and back
* String names for objects are useful for scripting and persistency (you can´t save a pointer)
* Safe object access through RefCounting and smart pointers
* Class nRoot as common base class
Server Objects
* Nebula2 runtime consists of a number of server objects which offer central services
* Server objects live under a defined name: Graphics server: /sys/servers/gfx …
Scripting
* Scripting in Nebula2 means: invoking script commands directly on C++ objects
* Every nRoot derived class is scriptable
* Scripting languages are exchangeable (e.g. Tcl, Lua, Python)
* RadonLabs uses a special Tcl version: MicroTCL
* Reduced to 36 commands
* Only 160 kByte
* Portable (good for minimal environments like game consoles)
Object Persistency
* Nebula objects can save themselves into a file, and restore themselves from there
* This also works for hierarchies of objects
* ASCII and binary fileformats
* Persistency files are compatible with the used scripting language
* Just run a persistency file through the script server, it takes care of constructing the resulting objects
* Advantage: no extra loader code needed
Filesystem
* A fileserver object encapsulates the host filesystem
* Completely removes differences between Windows-, Linux- or Xbox filesystems
* OOP concepts: File and Directory as comfortable C++ classes
* Under Windows, the Win32 file routines are used, not the ANSI-C file routines (CreateFile(), WriteFile(), ReadFile(), etc…)
* Directory assigns -> textures:image.dds instead of C:\Program Files\…\textures\image.dds . Nebula cares about conversion to absolut path.
File Archives
* Similar to Quake´s PAK files
* Packs directory hierarchies into a single file
* No wasted disk space with many small files
* Drastically smaller loading time
* Cleaner application directory layout
* Integrated with the Nebula file subsystem
Multithreading
* Simple wrapper classes for multithreading when necessary: for blocking Socket routines or background loading of resources
Communication
* Nebula2 offers low level wrapper classes for Socket functionality
* Optional a simple client/server system or a simple peer-to-peer network
* Wrapper for TCP/IP address and a port number
Remote Control
* Telnet-like functionality for Nebula2 applications useful for game console development, or remote debugging
Built-in command console
* All Nebula applications have an integrated command console
Build-in debug tools
* All Nebula applications have integrated debug tools
* Texture Viewer
* Object Viewer
* Light Control Tool
* Display Adjustment
* System Information
Graphics Subsystem
* Complete rewrite for DX9
* Full support for DX7 and DX9 hardware
* D3DXEffects (.fx files)
* D3D´s HLSL (High Level Shader Language)
Audio Subsystem
* Hundreds of sound sources in a 3d environment
* Static and streamed sounds
* Simple usage
Input Subsystem
* Mouse, keyboard, gamepads, joysticks and more supported
* Simple and comfortable input mapping (via C++ or script interface)
Resource Management
* Resources are: meshes, textures, shaders, fonts, sounds, animation data
* Loading of resource data from disk
* On demand or preload
* Automatically restores resources when necessary (for instance after Alt-Tab)
* Optional: resource sharing
* Optional: asynchronous resource loading in background thread
* Class hierarchie designed to be extended easily by new custom resource classes
Animation Subsystem
* Animation data optionally completely in memory, or streamed
* ASCII or binary file formats (ASCII good for debugging)
* Streaming useful for large cutscenes
* Animation data compression
* Any type of 4-dimensional data, not just translation, rotation, scaling
* Rotation animation through quaternions, not Euler angles
* Weighted animation blending
Character Subsystem
* Vertex skinning with 4 weights per vertex
* Any number of bones per character
* Any number of skin meshes per character
* Skinning running completely in the vertex shader : no per-vertex operations on the CPU
Special Effects
* Particle System for smoke, fire, sparkles and more
* Moving Trees
* Shaders for grass, water, glass, metal and more
* Fog
* Bumpmaps
* Realtime Shadows
* Prerendered Lightmaps
* HDR Rendering
[b]Features[/b]
Tree Of Named Objects
* Nebula objects have a string name
* Nebula objects are arranged in a hierarchy, similar to a filesystem
* An object name can be converted to a C++ pointer, and back
* String names for objects are useful for scripting and persistency (you can´t save a pointer)
* Safe object access through RefCounting and smart pointers
* Class nRoot as common base class
Server Objects
* Nebula2 runtime consists of a number of server objects which offer central services
* Server objects live under a defined name: Graphics server: /sys/servers/gfx …
Scripting
* Scripting in Nebula2 means: invoking script commands directly on C++ objects
* Every nRoot derived class is scriptable
* Scripting languages are exchangeable (e.g. Tcl, Lua, Python)
* RadonLabs uses a special Tcl version: MicroTCL
* Reduced to 36 commands
* Only 160 kByte
* Portable (good for minimal environments like game consoles)
Object Persistency
* Nebula objects can save themselves into a file, and restore themselves from there
* This also works for hierarchies of objects
* ASCII and binary fileformats
* Persistency files are compatible with the used scripting language
* Just run a persistency file through the script server, it takes care of constructing the resulting objects
* Advantage: no extra loader code needed
Filesystem
* A fileserver object encapsulates the host filesystem
* Completely removes differences between Windows-, Linux- or Xbox filesystems
* OOP concepts: File and Directory as comfortable C++ classes
* Under Windows, the Win32 file routines are used, not the ANSI-C file routines (CreateFile(), WriteFile(), ReadFile(), etc…)
* Directory assigns -> textures:image.dds instead of C:\Program Files\…\textures\image.dds . Nebula cares about conversion to absolut path.
File Archives
* Similar to Quake´s PAK files
* Packs directory hierarchies into a single file
* No wasted disk space with many small files
* Drastically smaller loading time
* Cleaner application directory layout
* Integrated with the Nebula file subsystem
Multithreading
* Simple wrapper classes for multithreading when necessary: for blocking Socket routines or background loading of resources
Communication
* Nebula2 offers low level wrapper classes for Socket functionality
* Optional a simple client/server system or a simple peer-to-peer network
* Wrapper for TCP/IP address and a port number
Remote Control
* Telnet-like functionality for Nebula2 applications useful for game console development, or remote debugging
Built-in command console
* All Nebula applications have an integrated command console
Build-in debug tools
* All Nebula applications have integrated debug tools
* Texture Viewer
* Object Viewer
* Light Control Tool
* Display Adjustment
* System Information
Graphics Subsystem
* Complete rewrite for DX9
* Full support for DX7 and DX9 hardware
* D3DXEffects (.fx files)
* D3D´s HLSL (High Level Shader Language)
Audio Subsystem
* Hundreds of sound sources in a 3d environment
* Static and streamed sounds
* Simple usage
Input Subsystem
* Mouse, keyboard, gamepads, joysticks and more supported
* Simple and comfortable input mapping (via C++ or script interface)
Resource Management
* Resources are: meshes, textures, shaders, fonts, sounds, animation data
* Loading of resource data from disk
* On demand or preload
* Automatically restores resources when necessary (for instance after Alt-Tab)
* Optional: resource sharing
* Optional: asynchronous resource loading in background thread
* Class hierarchie designed to be extended easily by new custom resource classes
Animation Subsystem
* Animation data optionally completely in memory, or streamed
* ASCII or binary file formats (ASCII good for debugging)
* Streaming useful for large cutscenes
* Animation data compression
* Any type of 4-dimensional data, not just translation, rotation, scaling
* Rotation animation through quaternions, not Euler angles
* Weighted animation blending
Character Subsystem
* Vertex skinning with 4 weights per vertex
* Any number of bones per character
* Any number of skin meshes per character
* Skinning running completely in the vertex shader : no per-vertex operations on the CPU
Special Effects
* Particle System for smoke, fire, sparkles and more
* Moving Trees
* Shaders for grass, water, glass, metal and more
* Fog
* Bumpmaps
* Realtime Shadows
* Prerendered Lightmaps
* HDR Rendering
[b]License[/b]
This software is copyrighted by the Radon Labs GmbH, Berlin/Germany (the Authors) and other parties. The following terms apply to all files associated with the software unless explicitly disclaimed in individual files.
The Authors hereby grant permission to use, copy, modify, distribute, and license this software and its documentation for any purpose, provided that existing copyright notices are retained in all copies and that this notice is included verbatim in any distributions. No written agreement, license, or royalty fee is required for any of the authorized uses. Modifications to this software may be copyrighted by their authors and need not follow the licensing terms described here, provided that the new terms are clearly indicated on the first page of each file where they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE IS PROVIDED ON AN “AS IS” BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
The Nebula Device
Moderators: Moderator, Global Moderator
Jump to
- General Category
- ↳ KillaNet Country
- ↳ 2D Graphics
- ↳ KillaNet News
- ↳ 3D & Animation
- ↳ Chatroom
- ↳ Flash
- ↳ Help & Suggestions
- ↳ Game Dev
- ↳ Audio & Video
- ↳ Introductions
- ↳ Journalism
- ↳ Phoenix Lounge
- ↳ Application Dev
- ↳ Toga Toga Toga!!!
- ↳ Photography
- ↳ Main Street Archives
- ↳ Web Design
- ↳ Fonts Icons Cursors & Screensavers
- ↳ Book Reviews
- ↳ General
- ↳ Tech Industry News
- ↳ Legal Resources
- ↳ Industry Contests
- ↳ Graphix Battle Arena
- ↳ KillaNet Contests
- ↳ Competition Archives
- ↳ Education Information
- ↳ Careers
- ↳ Game Studies
- ↳ Motivation
- ↳ Conferences & Seminars
- ↳ KillaDesign
- ↳ Animation & Film
- ↳ The Studio
- ↳ Game Development
- ↳ 2D Graphics
- ↳ Audio & Video
- ↳ 3D Graphics
- ↳ Flash
- ↳ Fonts, Icons & Emoticons
- ↳ Design Requests
- ↳ PhotoShop
- ↳ Cinema 4D
- ↳ Bryce
- ↳ Flash
- ↳ Paint Shop Pro
- ↳ Blender
- ↳ Poser
- ↳ The Darkroom
- ↳ Photo & Camera Discussion
- ↳ Photo Journalism
- ↳ Web Design Principles
- ↳ PHP & MySQL
- ↳ Designing For Print
- ↳ Writer\'s Desk
- ↳ Fiction Writing
- ↳ News Journalism
- ↳ Poetry
- ↳ Technical Writing
- ↳ Biographical Writing
- ↳ General Writing Resources
- ↳ Promotional Writing
- ↳ Film & Television
- ↳ VideoGames
- ↳ Computer Department
- ↳ General Discussion
- ↳ Windows Help
- ↳ Linux Help
- ↳ Builds & Mods
- ↳ Geek Gadgets
- ↳ Security
- ↳ Dev Discussion
- ↳ C++
- ↳ Visual Basic
- ↳ Java
- ↳ Application Skinning
- ↳ IRC Scripting
- ↳ Gaming Centre
- ↳ Guild Wars
- ↳ Aion
- ↳ Computer
- ↳ World of Warcraft
- ↳ Nintendo
- ↳ General RPG & MMORPG
- ↳ PlayStation
- ↳ XBox
- ↳ Other Consoles
- ↳ All Action
- ↳ Racers
- ↳ Sports
- ↳ FPS
- ↳ RTS
- ↳ Sim
- ↳ Casual Games
- ↳ Kids' Games
- ↳ Mobile Games
- ↳ Retro Games
- ↳ Challenges, Friendly Taunts & Discussion
- ↳ Game Requests & Bug Reports
- ↳ Open Source Games
- ↳ Puzzle Games
- ↳ HeadQuarters
- ↳ Uber Coffee Room
- ↳ KillaNet
- ↳ Coffee Room
- ↳ KillaNet
- ↳ KillaGraphix
- ↳ KillaHosting
- ↳ Marketing etc.
- ↳ Staff Issues
- ↳ Reference & Software
- ↳ Archives
- ↳ KillaBlogs
- ↳ Journalism
- ↳ Trash Can

