Berserk
|
Berserk engine is designed as a powerful and compact tool for creating high-performance applications. It will be written in C++11 with support for Vulkan and OpenGL graphics, OpenAL audio, Bullet Physics, Assimp importer for models, STB texture loader and FreeType font loader.
The engine will provide functionality in memory management, math, SIMD instructions set utilisation, working with strings, multi-threading, exporting/importing various kinds of resources (such as textures, geometry, audio files etc.), displaying fonts, text and 3d graphics.
The idea behind this hobby project is to implement a simple, compact, friendly, and at the same time powerful enough engine in order to create a 3d third-person platformer game, which is fully featured with modern graphics, visual effects, audio, physics, and scripting features. Since I am a big fan of 3d-graphics, games, and programming, this project will allow me to practice my skills as well as have a lot of fun with fancy programming tasks and design decisions.
At this moment the primary goal is to create core structure with an usable stuff, which will be expanded later by the engine modules/components. Project under heavy development.
Glfw library dependencies setup for Linux-based OS. Glfw uses native windowing APIs and built-in OS window frameworks, however it may require additional setup step for linux users. Follow the official glfw guide to setup this dependencies by apt-get
tool.
To build library OpenGL-based low-level renderer on Linux-based OS sometimes you need make sure, that glew
dependencies are installed. So follow glew installation dependencies requirements.
To build library Vulkan-based low-level renderer you need to download and install official Vulkan SDK from LunarG website. Follow instructions in order to install this SDK. Note, that this project uses CMake to locate SDK location, so remember to expose environment variable VULKAN_SDK
if it is required.
The following code snippet downloads project source code repository, enters project root folder and runs submodules init in order to get dependencies source code initialized. Must be executed from the folder where you want to locate project.
The following code snippet runs cmake build configuration process with output into build
directory, in Release
mode with tests BERSERK_BUILD_TESTS=ON
enabled. Then runs build process for build
directory in verbose mode with -j 4
four system threads. Must be executed from project root folder.
On macOS, you can optionally specify target binaries architecture to build. Pass option -DCMAKE_OSX_ARCHITECTURES
with x86_64
or arm64
respectively. By default, build falls back to CMAKE_SYSTEM_PROCESSOR
specified architecture. See example bellow, replace <arch>
with desired architecture for your build.
The following code snippet executed python script, which allows to run all native C++ library unit-tests, located in build directory, specified in --build-dir=build
. Must be executed from project root folder.
This project licensed under MIT license. License text can be found in license file.
If you have any questions, ideas, how to improve/implement something, or you want to contribute to the project, please, feel free to contact me at egoro. Also, you can create an issue or pull request in the repository. rach yov@g mail .com