Banshee Engine v0.3 Released

 

This is one of those projects that just impresses the hell out of me.  I first covered it back in January when v0.2 was released.  Banshee Engine is a complete 2D/3D game engine and editor, written using C++ 14, but with a managed C# layer available.  The part that boggles my mind is this is the project of one man as far as I can tell.  I have downloaded the most recent version and will be playing around with it over the next few days.  Anyways, back to the v0.3 released.  It was just recently announced in this reddit thread:

 

New Features

  • PhysX integration, with support for colliders, rigidbodies, triggers, joints and scene queries. Full access to the physics interface is provided by the scripting API, as well as integrated into the editor. The physics sub-system was also designed to be extensible, so you can easily add plugins for other middleware like Havok or Bullet without having to modify the user-facing interfaces.

  • Improvements to the renderer, including HDR rendering, filmic tone mapping and gamma correct rendering.

  • HTML documentation for both native and managed parts of the engine.

  • Clang compilation and CMake build in preparation for Mac/Linux ports.

The engine is still a work in progress but I think it’s coming along nicely. I’ll be adding a lot more throughout the coming months, including Vulkan support, physically based rendering and Mac/Linux ports, and a lot more after that.

If any of this sounds interesting, find out more on GitHub. If you like what you see consider spreading the word by linking the project to your friends, or contributing.

 

For those interested in checking out the engine, here’s a more complete list of engine features:

Core

  • Quality design
    • Modern code using C++14
    • Clean layered design Banshee Editor
    • 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, … images
      • OTF, TTF fonts
      • 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
  • 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

GameDev News CPP


Scroll to Top