#3d #game-engine #engine #gamedev
|
|
10 years ago | |
|---|---|---|
| BansheeCore | 10 years ago | |
| BansheeD3D11RenderAPI | 10 years ago | |
| BansheeD3D9RenderAPI | 10 years ago | |
| BansheeEditor | 10 years ago | |
| BansheeEditorExec | 10 years ago | |
| BansheeEngine | 10 years ago | |
| BansheeFBXImporter | 10 years ago | |
| BansheeFontImporter | 10 years ago | |
| BansheeFreeImgImporter | 10 years ago | |
| BansheeGLRenderAPI | 10 years ago | |
| BansheeMono | 10 years ago | |
| BansheeOISInput | 10 years ago | |
| BansheeSL | 10 years ago | |
| BansheeUtility | 10 years ago | |
| Documentation | 10 years ago | |
| ExampleProject | 10 years ago | |
| Game | 10 years ago | |
| License | 10 years ago | |
| MBansheeEditor | 10 years ago | |
| MBansheeEngine | 10 years ago | |
| RenderBeast | 10 years ago | |
| SBansheeEditor | 10 years ago | |
| SBansheeEngine | 10 years ago | |
| Scripts | 10 years ago | |
| .gitignore | 10 years ago | |
| BansheeEngine.sln | 10 years ago | |
| README.md | 10 years ago |
A modern open-source game development toolkit. It aims to provide simple yet powerful environment for creating games and other graphical applications. A wide range of features are available, 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.
For game developers Banshee aims to provide a complete set of tools and APIs needed to make a game from start to finish. It provides a highly intuitive and customizable editor that is easy to use by artists, designers and programmers alike, supporting development stages from asset management, scene building, scripting to game publishing. C# scripting makes your development easier by giving you access to the entire .NET library, along with fast iterations times while being safe and easy to write. Editor is fully extensible with the help of specially developed scripting API so you may customize it for exact needs of your project.
For engine developers it aims to provide a high quality foundation to build and improve upon. Banshee runs on a powerful multi-threaded C++14 core created to take advantage of all resources modern hardware can offer. Built from ground up using modern design principles, everything is modular, layered and decoupled as much as possible, making it easier to modify, replace or add functionality. Platform specific functionality is kept at a minimum making porting as easy as possible. Additionally every non-trivial method, class and field is documented. All this combined makes Banshee a great platform to build upon, for developing higher level systems like editor tools, core enhancements like new rendering techniques and platform ports, all the way to creating fully specialized toolsets that fit your team's needs exactly.
Project is currently in active development. Current version is considered a preview version. Bugs are to be expected, optimization is not complete and some major features are yet to be added (see below for a list).
Downloading pre-compiled binaries is the easiest way to check out Banshee if you don't want to go through the hassle of compiling it yourself.
Download binaries (Windows x64)
Banshee compiles on VS2013 and VS2015. Other Windows compilers might work but have not been tested. Support for more platforms and compilers will become available with time.
Aside from Banshee source code you will also need various third party dependencies. You may retrieve/compile those dependencies yourself by following a guide in "CompilingDependenciesManually.txt". If you are using VS2015 you can avoid compiling dependencies by downloading a set of pre-compiled dependencies below. These should be extracted in the root of the directory containing Banshee source code.
Download precompiled dependencies (VS2015)
Editor
Core
Banshee is a multi-layered engine that aims to be flexible enough to handle various needs. Therefore this section is split into two sub-sections, first one aimed for game developers (high-level C# programmers, artists, designers) and engine developers (low level C++ programmers).
TODO - Create a simple editor project with a mesh, texture and a basic script. Show the user how to load the project, add the objects to scene, attach the script, tweak material & script values and start playing the game. Provide a small tutorial on the C# scripting API as well (creating a scene object, custom component, handling input, moving the camera).
Easiest way to get started with low-level Banshee programming is to check out the ExampleProject included with the source code. However to give you a taste here are a few code snippets.
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();
HMesh dragonModel = gImporter().import<Mesh>("Dragon.fbx");
HTexture dragonTexture = gImporter().import<Texture>("Dragon.psd");
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));
HSceneObject dragonSO = SceneObject::create("Dragon");
HRenderable renderable = dragonSO->addComponent<Renderable>();
renderable->setMesh(dragonModel);
renderable->setMaterial(dragonMaterial);
HSceneObject guiSO = SceneObject::create("GUI");
HCamera guiCamera = guiSO->addComponent<Camera>(window);
HGUIWidget gui = guiSO->addComponent<GUIWidget>(guiCamera);
GUIPanel* guiPanel = gui->getPanel();
GUILayout* guiLayout = guiPanel->addNewElement<GUILayoutY>();
guiLayout->addNewElement<GUIButton>(HString(L"Click me!"));
guiLayout->addNewElement<GUIButton>(HString(L"Click me too!"));
Banshee is offered completely free for personal or commercial use under the GNU Lesser General Public License v3 (LGPL v3). A commercial license is also available for those that cannot comply with LGPL terms or just want more flexibility.
Banshee was created and is developed by Marko Pintera.