features.md 5.2 KB

Features

All features listed here are the ones currently available (implemented). If you are interested in what's coming up in the near future check out our roadmap.


Core

  • Quality design
    • Modern code using C++14
    • Clean layered design
    • Fully documented
    • Modular & plugin based
    • Minimal third-party dependencies
    • Multiplatform ready
  • Renderer
    • DX9, DX11 and OpenGL 4.3 render systems
    • Multi-threaded rendering
    • Powerful material system
    • BansheeFX language for material definitions
    • Shader parsing for HLSL9, HLSL11 and GLSL
  • Asset pipeline
    • Asynchronous resource loading
    • Extensible importer system
    • Available importer plugins for:
    • FBX, OBJ, DAE meshes
    • PNG, PSD, BMP, JPG, etc. images
    • OTF, TTF fonts
    • OGG, FLAC, WAV, MP3 sounds
    • HLSL9, HLSL11, GLSL shaders
  • GUI system
    • Unicode text rendering and input
    • Easy to use layout based system
    • Many common GUI controls
    • Fully skinnable
    • Automatic batching for fast rendering
    • Supports texture atlases
    • Supports arbitrary 3D transformations
    • Localization support (string tables)
  • Input
    • Mouse/keyboard/gamepad support
    • Provides both raw and OS input
    • Virtual input with built-in key mapping
    • Virtual axes for analog input devices
  • Physics
    • Implemented using NVIDIA PhysX
    • Multi-threaded for best performance
    • Abstract plugin interface extensible for other physics implementations (e.g. Havok, Bullet)
    • Supported features
    • Colliders (Box, Sphere, Capsule, Mesh)
    • Triggers
    • Rigidbody
    • Character controller
    • Joints (Fixed, Distance, Hinge, Spherical, Slider, D6)
    • Scene queries
    • Collision filtering
    • Discrete or continuous collision detection
  • Scripting
    • C# 6.0
    • Separate high level engine API
    • Integrated runtime for maximum performance
    • Full access to .NET framework
    • Integration with Visual Studio
    • Automatic serialization
    • Works with custom components, resources or arbitrary types
    • Save/load data with no additional code
    • Handles complex types (e.g. array, list, dictionary) and references
    • Fast and small memory footprint
  • Audio
    • 3D sounds (panning, attenuation, doppler effect) and 2D sounds (music, narration)
    • On-the-fly streaming and decompression
    • Multi-channel support up to 7.1 sound
    • Multiple listener support for split-screen
    • Multiple backends
    • OpenAL
    • FMOD
    • Extensible to others
  • Other
    • CPU & GPU profiler
    • Advanced run-time type information for C++ code
    • Iterate over class fields, safely cast objects, clone objects, detect base types
    • Find references to specific objects (e.g. all resources used in a scene)
    • Serialize/deserialize with no additional code and with automatic versioning
    • Generate diffs
    • Utility library
    • Math
    • File system
    • Events
    • Thread pool
    • Task scheduler
    • Logging
    • Debug drawing
    • Crash reporting
    • Unit testing
    • Custom memory allocators

Editor

  • Asset management
    • Simple drag and drop import for many popular formats
    • Automatic reimport of externally modified assets (e.g. modify a shader, see changes in editor right away)
    • Asset modifications immediately reflected in-game (resource hot-swap)
    • Version control friendly format
  • Powerful object inspector
    • Exposes script object properties for artists/designers
    • Automatically generated GUI for custom classes
    • Customize visible elements via attributes or create GUI manually
  • Level creation
    • Simple drag and drop interface
    • Traditional set of tools (Move/Scale/Rotate/Select, etc.)
    • Interface for creating custom 2D and 3D tools
  • Prefab system
    • Save parts or entire levels as prefabs so they may be re-used later
    • Separate larger levels into smaller prefabs for easier loading
    • Reduce conflicts when multiple people are working on the same level
    • Customize individual prefab instances without breaking the prefab link
    • Supports nesting and complex hierarchies to ensure maintaining complex levels is easy
  • Play in editor
    • Compile all scripts within editor
    • Scripts and data transparently reloaded after compilation so changes may be tested immediately
    • Pause and frame-step to better test and debug your game
    • Analyze and modify scene while playing
  • Fully extensible
    • Specialized scripting API only for editor extensions
    • Easy to use without needing to know about engine internals
    • Extend almost anything. Create:
    • Custom editor windows
    • Custom object inspectors
    • Custom 2D/3D tools
    • Code for automating common tasks
  • Game publishing
    • Build a game ready for distribution from within the editor
    • One click build process, just choose a platform and build
    • Automatically detects only the required resources to minimize build size
    • Automatically packages and outputs an executable
  • Customizable frontend
    • Dockable layout and floating windows
    • Custom GUI skin & localization support