Skip to content

svatostop/anthrax-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Preview

language OS getting started Free youtube

โœจ table of contents

๐Ÿ’ฅ about anthrax-ai project

Vulkan-Based Game Engine written in C++, project is in active development, may not compile :)

I present my work real time on youtube youtube

โ›… This is an education project and I am improving/fixing my stuff as fast as I have capacity and time for this. I keep it open source since I like the idea of sharing the code. But since it is first of all my education project I would like to fix and improve stuff by my own :') I really appreciate your input but I can't promise that I will merge your PR since it is breaking my whole idea why this project is alive

๐ŸŽฎ usage

โš ๏ธ WARNING! issues remain

  1. Press Esc to visualize Editor window.
  2. In Editor Window select provided scenes from "Scenes" dropdown or create a default scene by pressing "New Scene" button.
  3. Use Esc to toggle between editor and play modes
  4. When in play mode use WASD to mode camera, for rotation use LMB
  5. You can select a 3D object and move it using arrows
  6. Use Debug tab for debug information
  7. Use Audio tab to play available audios
  8. Use Update Shader to update shader code in real time
  9. Use Rendering tab to visualize render targets, change light position, shadows, cubemaps
  10. Use Scene to navigate trough scene objects, change their textues; use Add Object to create new object more info in features

๐Ÿ’ซ features

vulkan features

  • Implemented multithreaded command buffer submission
  • Bindless textures and buffers
  • Dynamic rendering
  • Cool wrappers

mouse picking and gizmo

Custom implementation for object mouse picking using SSBO. Translation of objects using gizmo x, y, z axes


debug render target visualization

Visualize your render targets in order to help debugging and analyzing in real time


outlines

Outlines are rendered for selected object using object's mask


real time shader compilation

You can recompile shaders in real time


cubemaps

You can change cubemaps in real time

  • you can enable/disable cubemaps in Rendering tab in Editor window
  • you can select cubemap from available cubemaps in Rendering tab in Editor window

shadows

Simple shadow mapping Implemented

  • you can enable/disable shadows in Rendering tab in Editor window

adding or removing objects

You can add different types of objects (3D models, sprites, lights) using Editor Widnow

  • navigate to Scene tab
  • press Add Object and select type
  • in new window add object ID, select texture, model (if available, depends on the type), position
  • press Save
  • delete any object by selecting it and pressing Delete key on the keyboard

saving scene state

You can save current scene state by pressing Save Scene button in Editor Window

  • objects presented on the scene will be saved (their position, texture)
  • cubemap state will be saved
  • shadows state will be saved You can also create a new default scene by pressing New Scene button in Editor Window

โš’๏ธ how to build

dependencies

To build this project, you need to have the following dependencies installed:

If you're on linux, you can install them using the scripts under the tools/linux directory:

install Vulkan SDK

./tools/linux/install-vulkan-sdk.sh

install X11/XCB libraries

./tools/linux/install-x11-xcb.sh

If you're on windows, you can install the Vulkan SDK from the link above.

configure

This project uses CMake to generate the build files. To configure the project, you can use the following commands:

cmake -B build -S .

During the configuration process, the shaders will be compiled using the glslc compiler. If you don't want to compile them, you could pass the -DAAI_COMPILE_SHADERS=OFF flag to the cmake command above.

build

After configuring the project, you can build it using the following command:

cmake --build build

build using Visual Studio Code

As you could notice, this project has the Visual Studio Code workspace file. If you want to build and debug the project using Visual Studio Code, you can open the workspace file and install the recommended extensions: - on Windows open: engine-win.code-workspace - on Linux open: engine-lin.code-workspace

- make sure you have GCC compiler installed https://code.visualstudio.com/docs/languages/cpp#_example-install-mingwx64-on-windows
- make sure you have CMake Tools extension installed

With the CMakeTools extension installed, you could select the compiler, and then build or run the project using the F7 and F5 keys, respectively.

Don't forget that the CTRL+SHIFT+P key combination helps to configure and build as well.

tracy profiler

- uncomment `#define TRACY` from engine/code/include/anthraxAI/utils/tracy.h and recompile the project
- install [Tracy Profiler](https://github.com/wolfpld/tracy) locally, run the profiler
- connect anthraxAI engine in the profiler.
  • Audio functionality will be disabled due to code errors

๐Ÿ“Œ Known Issues

  • usually doesn't work under Windows
  • Pascal and older nvidia cards are unsupported due to unavailable vulkan features on that hardware.
  • Modified CatchyOS packages break compilation of required assimp library
  • Audio initialization sometimes fails with failed to allocate buffers error

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •