GithubHelp home page GithubHelp logo

brotcrunsher / brotboxengine Goto Github PK

View Code? Open in Web Editor NEW
54.0 13.0 11.0 36.22 MB

A C++ prototyping engine that is striving for an easy to use API, hiding all the dirty details so that you don't have to care.

License: Other

C++ 96.53% Batchfile 0.03% GLSL 0.55% CMake 2.61% C 0.29%
vulkan vulkan-game-engine engine cpp cmake glfw stb-image stb-truetype dear-imgui google-test

brotboxengine's Introduction

Brot Box Engine

A C++ prototyping engine that is striving for an easy to use API, hiding all the dirty details so that you don't have to care.

Used technology

Quick Start

There are a lot of examples in the repository. Have a look at ExampleSnake for a first start. To create build files for your local machine you have to download and install CMake and the Vulkan SDK. Then, while being in the main directory of the repository, execute the following commands in a terminal:

mkdir Build
cd Build
cmake ..

After that, build files like Solution Files (on Windows) are created. To build the projects you can either use your favorite IDE or directly interact with CMake using the following command while you are in the Build directory:

cmake --build . --target ExampleSnake

This will build an executable that you may run.

FAQ

Would you recommend using the Brot Box Engine to create a game right now?

No. The Brot Box Engine is still in a very, very early state. The API is changing rapidly, without warning, without changelogs and without backwards compatibility.

Can I contribute to the Brot Box Engine?

Yes. Feel free to open merge requests! They are always welcome, even if you are a beginner. In such a case you get information about what can be improved, and you can learn from it. Don't be shy, just go for it!

Which compilers are supported?

The project is regularly build with Microsoft Visual Studio Version 16.5.4 (with its default MSVC) as well as GCC Version 8.4.0. Other versions of said compilers probably also work as long as they have full C++17 support. Completely different compilers like clang are untested, though it's quite possible that they work as well. Feel free to try and let me know.

Other Resources

This shows you how you can set up an external project that uses the Brot Box Engine. The repository itself is tiny, but it's CMake code downloads and integrates the Brot Box Engine in an easy to use way.

brotboxengine's People

Contributors

brotcrunsher avatar siretty avatar tystgit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

brotboxengine's Issues

Debug break and Validation Error by trying to run a ExampleProject

Validation Error: [ VUID-vkCmdDrawIndexed-blendEnable-04727 ] Object 0: handle = 0x625f640000000058, type = VK_OBJECT_TYPE_PIPELINE; | MessageID = 0x8a06751e | vkCmdDrawIndexed: Image view's format features of the color attachment (0) of the active subpass do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT bit, but active pipeline's pAttachments[0].blendEnable is not VK_FALSE. The Vulkan spec states: If rasterization is not disabled in the bound graphics pipeline, then for each color attachment in the subpass, if the corresponding image view's format features do not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the blendEnable member of the corresponding element of the pAttachments member of pColorBlendState must be VK_FALSE (https://vulkan.lunarg.com/doc/view/1.3.239.0/windows/1.3-extensions/vkspec.html#VUID-vkCmdDrawIndexed-blendEnable-04727)

`Starting Game: Neural Rocket!
Starting math
Creating window
Init render manager
Vulkan Manager: init instance
loader_get_json: Failed to open JSON file E:\Epic Games\Launcher\Portal\Extras\Overlay\EOSOverlayVkLayer-Win32.json

debugBreak() was triggered! C:\Users\mankn\Desktop\BrotBoxEngine-0.2.0\BrotBoxEngine-0.2.0\BrotBoxEngine\Vulkan\VulkanInstance.cpp(45)`

Mac OS X M-series mac build failure

Compiler helped find the fix, rename hackstack to haystack. Probably your tests are on Windows so this gets missed in the ifdef.

[ 65%] Building CXX object CMakeFiles/BrotBoxEngine.dir/BrotBoxEngine/String.cpp.o
/Users/dkords/dev/repos/BrotBoxEngine/BrotBoxEngine/String.cpp:797:20: error: use of undeclared identifier 'hackstack'; did you mean 'haystack'?
        return strcasestr(hackstack, needle) != nullptr;
                          ^~~~~~~~~
                          haystack
/Users/dkords/dev/repos/BrotBoxEngine/BrotBoxEngine/String.cpp:792:52: note: 'haystack' declared here
static bool platformIndependentStrStrI(const char* haystack, const char* needle)
                                                   ^
1 error generated.

missing dependencies

Please remove -lportaudio_static. I cannot find a good way to install it on Manjaro or Fedora. Only the dynamically linked library -lportaudio is in the package manager. Not all dependencies are checked in the Cmake script.

NoSuchKeyCodeException is thrown when pressing Fn Key

Hello,

I am developing a project that uses the BrotBoxEngine to do real-time rendering of a simulated environment. I have now run into an issue that causes the engine to fail with a NoSuchKeyCodeException once the "Fn" key on the keyboard is pressed. To provide some reference, I am developing on a Lenovo Notebook and have my Fn and Strg Keys swapped on the keyboard, but I do not know if this makes a difference.

Here is a screenshot of where the exception is thrown. I was previously using BBE 0.1.7 and have now updated to 0.1.8 for testing if the bug is still present.

image

The debugger will fail at this point but it seems to be because the exception is thrown:
image

These are the values that are passed to the above method:
image

Thank you,
Marius Heil

.............................

As a workaround, I was able to include:

void bbe::INTERNAL_keyCallback(GLFWwindow * window, int keyCode, int scanCode, int action, int mods)
{
	if (keyCode == 0xFFFFFFFFUL) return;

in Window.cpp but this could have a number of side affects, but it looks like the keycode/scancode functionality is a bit of a mess between different vendors.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.