3dzavr
3D game engine with custom CPU rendering
Install / Use
/learn @vectozavr/3dzavrREADME
🚀 3Dzavr - Light C++ Game Engine
<img src="https://github.com/vectozavr/3dzavr/assets/60608292/9b411b45-9e63-4a55-a8d1-924579ae504c" width="300">About:
3Dzavr is yet another 3D engine for C++ that uses SDL as multimedia framework.
Motivation:
Initially this project was created as a Proof Of Concept in implementing <b>custom CPU render from scratch</b>. <br> Gradually, 3dzavr became more like a very simple version of big engines like Godot, Unity or Unreal. <br> Our goal is to create light and easy to use/study/contribute Open Source and free engine, which anyone can access and use in whatever purposes. <br> <b>But the main goal is to have fun! You are welcome to use and contribute!</b>
Main functionality:
- Operations with vectors, matrices, triangles etc
- Projections from 3D on 2D plane, movement and rotation of camera and meshes
- The custom light component system
- The system of attachments and hierarchy tree
- Advanced smooth animations by using Bézier curves for meshes and camera
- Collision detection (GJK) and resolution (EPA)
- Resource manager and other useful utils
Installation (Linux):
- Update apt packet manager: <code>sudo apt update</code>
- Install gcc and c++ compilers: <code>sudo apt install gcc</code> and <code>sudo apt install g++</code>
- Install SDL2: <code>sudo apt-get install libsdl2-dev</code>
- Install SDL 2 TTF (for working with fonts and text): <code>sudo apt install libfreetype6-dev libsdl2-ttf-dev libsdl2-ttf-2.0-0 -y;</code>
- Install libpng library: <code>sudo apt-get install libpng-dev</code>
- Install pkg-config: <code>sudo apt-get install -y pkg-config</code>
- Clone this repository into the folder you want to work with: <code>git clone https://github.com/vectozavr/3dzavr</code>
If you want to use CLion (recommended)
- Install CLion: <code>sudo snap install clion --classic</code>
- Build and run the project.
If you don't want to use IDE or you don't want to spend your time on configuring it
- Install make: <code>brew install make</code>
- Go into the engine folder: <code>cd 3dzavr</code>
- Run make utility: <code>cmake .</code>
- Compile the project: <code>make</code>
- Run the compiled project: <code>./3dzavr</code>
Installation (MacOS):
-
Install brew: <code>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" </code>
-
Install developer tools: <code>xcode-select --install</code>
-
Install SDL 2: <code>brew install sdl2</code>
-
Install SDL 2 TTF (for working with fonts and text): <code>brew install sdl2_ttf</code>
-
Install libpng library: <code>brew install libpng</code>
-
Clone this repository into the folder you want to work with: <code>git clone https://github.com/vectozavr/3dzavr</code>
If you want to use CLion (recommended)
- Download and Install CLion: <code>brew install clion</code>
- Build and run the project.
If you don't want to use IDE or you don't want to spend your time on configuring it
- Install make: <code>brew install make</code>
- Go into the engine folder: <code>cd 3dzavr</code>
- Run make utility: <code>cmake .</code>
- Compile the project: <code>make</code>
- Run the compiled project: <code>./3dzavr</code>
Installation (Windows):
TODO: Needs to be written
