#3d #game-engine #engine #gamedev

BearishSun 0f8c90d9da Create README.md il y a 11 ans
BansheeCore 90e94fb9b2 Fixed issue with HString parameter placement il y a 11 ans
BansheeD3D11RenderSystem a9bf1fec5f Various fixes to get shutdown work properly il y a 11 ans
BansheeD3D9RenderSystem 2e6a197523 Added ability to set world position and rotation to SceneObjects il y a 11 ans
BansheeEditor 8c5ffb497d Various fixes in order to get example model to render il y a 11 ans
BansheeEditorExec 72dc696f1c More documentation il y a 11 ans
BansheeEngine 90e94fb9b2 Fixed issue with HString parameter placement il y a 11 ans
BansheeFBXImporter 82a6817efd FBX importer fixed and working il y a 11 ans
BansheeFontImporter 17afc600a7 Massive Cm->Bs file rename il y a 11 ans
BansheeFreeImgImporter 47b7a6fdfe Added documentation to example project il y a 11 ans
BansheeGLRenderSystem e918178f0e Added mip/format texture options il y a 11 ans
BansheeMono 17afc600a7 Massive Cm->Bs file rename il y a 11 ans
BansheeOISInput 25e7c861ca Limit mouse sampling to reduce jitter at extreme framerates il y a 11 ans
BansheeRenderer 2386b6c4cd Ensured meshes get properly released il y a 11 ans
BansheeSceneManager 97744d0baf A lot more renderer and proxy refactoring il y a 11 ans
BansheeUtility 90e94fb9b2 Fixed issue with HString parameter placement il y a 11 ans
ExampleProject 90e94fb9b2 Fixed issue with HString parameter placement il y a 11 ans
License 82a6817efd FBX importer fixed and working il y a 11 ans
MBansheeEditor ae856ed0f4 WIP UndoRedo group system il y a 11 ans
MBansheeEngine 27d6c98bb2 Fixed various issues with Inspector element areas il y a 11 ans
SBansheeEditor 203fbc8fc6 Renamed all macros/methods starting with "cm" to "bs" il y a 11 ans
SBansheeEngine 17afc600a7 Massive Cm->Bs file rename il y a 11 ans
.gitignore cbacc12172 Removed a bunch of obsolete files, or files that shouldn't be versioned il y a 11 ans
BansheeEngine.sln f272125527 Release build compiles il y a 11 ans
CSharpWrap.txt 13f93f07b1 TabbedTitleBar no longer uses layout il y a 12 ans
Dependencies.txt ffb7e93312 Added Banshee and 3rd party licenses il y a 11 ans
DrawHelper.txt 200d516c80 Added AABox debug draw rendering il y a 12 ans
EditorWindowDock.txt 053df91815 Better modal window test case il y a 11 ans
GameGUI.txt a0160383af More documentation il y a 11 ans
GameObjectSerialization.txt 42b20759ef Refactored Module startUp (does not compile because of a weird linker error ATM) il y a 11 ans
Inspector.txt 927fb6c3e5 More documentation il y a 11 ans
MonoIntegrationGuide.txt 8bfe4ef813 Ported to VS2013 and removed boost completely il y a 11 ans
Notes.txt 7912eda84e Fixed XInput key mappings il y a 11 ans
Opts.txt 99f545b06f Added frame allocator il y a 12 ans
Polish.txt 90e94fb9b2 Fixed issue with HString parameter placement il y a 11 ans
ProjectLibrary.txt 942eb008db EditorWidgetManager il y a 11 ans
README.md 0f8c90d9da Create README.md il y a 11 ans
ResourceBundles.txt e51cbce52c Started work on scripting il y a 12 ans
SpriteTexture.txt c58b45571a Added managed HString il y a 12 ans
TODO.txt e918178f0e Added mip/format texture options il y a 11 ans
TODODoc.txt e918178f0e Added mip/format texture options il y a 11 ans
TreeView.txt 6824ae90d6 Added VirtualInput (still WIP but working) il y a 12 ans
UndoRedo.txt 88c83017de Started work on undo/redo system il y a 12 ans

README.md

BansheeEngine

A free & modern multi-platform game development toolkit. It aims to provide simple yet powerful environment for creating games and other graphical applications. A wide range of features are offered, ranging from a math and utility library, to DirectX 11 and OpenGL render systems all the way to asset processing, fully featured editor and C# scripting.

Download

Along with the source you will need these dependencies (Extract to the same folder as the source code): Download dependencies

Or download the combined package: Download source + dependencies

Features (currently available)

  • Design
    • Built using C++11 and modern design principles
    • Clean layered design
    • Fully documented
    • Modular & plugin based
    • Multiplatform ready
  • Renderer
    • DX9, DX11 and OpenGL 4.3 render systems
    • Multi-threaded rendering
    • Flexible material system
    • Easy to control and set up
    • Shader parsing for HLSL9, HLSL11 and GLSL
  • Asset pipeline
    • Easy to use
    • Asynchronous resource loading
    • Extensible importer system
    • Available importer plugins for:
    • FXB,OBJ, DAE meshes
    • PNG, PSD, BMP, JPG, ... images
    • OTF, TTF fonts
    • HLSL9, HLSL11, GLSL shaders Powerful GUI system
    • Unicode text rendering and input
    • Easy to use layout based system
    • Most common GUI controls
    • Fully skinnable
    • Automatch batching
    • Support for texture atlases
    • Localization
  • Other
    • CPU & GPU profiler
    • Virtual input
    • Advanced RTTI system
    • Automatic object serialization/deserialization
    • Debug drawing
    • Utility library
    • Math, file system, events, thread pool, task scheduler, logging, memory allocators and more

Features (upcoming)

  • C# scripting support (in development, coming soon)
  • Multi-purpose and extensible editor (in development, coming soon)
  • High quality renderer
  • Physics system integration
  • Audio system integration
  • Video system integration
  • Networking system integration
  • Animation
  • GUI animation

Development state

Project is currently in active development. Current version is considered a preview version. Bugs are to be expected and new features will be added as development progresses.

Jump in

Easiest way to get started with Banshee is to check out ExampleProject included with the source code. However to give you a taste here are a few code snippets.

Starting a minimal application

	RENDER_WINDOW_DESC renderWindowDesc;
	renderWindowDesc.videoMode = VideoMode(1280, 720);
	renderWindowDesc.title = "My App";
	renderWindowDesc.fullscreen = false;
	
	Application::startUp(renderWindowDesc, RenderSystemPlugin::DX11);
	Application::instance().runMainLoop();
	Application::shutDown();

Importing resources

  HMesh dragonModel = static_resource_cast<Mesh>(Importer::instance().import("Dragon.fbx"));
  HTexture dragonTexture = static_resource_cast<Texture>(Importer::instance().import("Dragon.psd"));

Adding and positioning a camera

  HSceneObject sceneCameraSO = SceneObject::create("SceneCamera");
  HCamera sceneCamera = sceneCameraSO->addComponent<Camera>(window);

	sceneCameraSO->setPosition(Vector3(40.0f, 30.0f, 230.0f));
	sceneCameraSO->lookAt(Vector3(0, 0, 0));

Adding an object for rendering

  HSceneObject dragonSO = SceneObject::create("Dragon");
  
	HRenderable renderable = dragonSO->addComponent<Renderable>();
	renderable->setMesh(dragonModel);
	renderable->setMaterial(dragonMaterial);

Adding GUI

  HSceneObject guiSO = SceneObject::create("GUI");
  HCamera guiCamera = guiSO->addComponent<Camera>(window);
  
  HGUIWidget gui = guiSO->addComponent<GUIWidget>(guiCamera->getViewport().get());
  GUIArea* guiArea = GUIArea::createStretchedXY(*gui, 0, 0, 0, 0);
  guiArea->getLayout().addElement(GUIButton::create(HString(L"Click me!")));
  guiArea->getLayout().addElement(GUIButton::create(HString(L"Click me too!")));

License

Banshee is offered completely free for personal or commercial use. Only requirement is that you include Banshee Logo in your application when using any part of Banshee. Read BansheeLicense.rtf included with the project for more details.

Author

Banshee is developed by Marko Pintera. I created and built the entire project from my bedroom in my free time out of personal interest in game engine development, never having had the chance to do it professionally.

I appreciate any feedback at [email protected] (antispam: flip gmail/com).