Game engine
I always wondering how game engines are working, what are their architecture inside, what algorithms are used, and so on. That's Why I decided to create my own game engine from scratch, without any thirdparty libraries or use minimum of them. Full implementation and some animations can be found here: https://github.com/Basicula/AKE
Here are key points that was done under this project:
- Math
- Matrix and Vector structures
- Operations for vector-vector, vector-matrix math
- Geometry
- 3D
- Analytical representation for primitives (sphere, cylinder, torus etc)
- Ray-primitive intersection calculation
- Transformations
- 2D
- Basic shapes representation (rectangle, circle etc)
- Rendering
- Ray tracing algorithm
- Kd-tree for optimization
- Camera implementation
- Drawers using OpenGL for 2D primitives
- Spot lighting for 3D scene
- Image for rendering 3D scene as texture using OpenGL
- Materials based on pong material (mirror, glass, specular etc)
- Fractals
- Mandelbrot
- Julia set
- Lyapunov
- Customizable color mapping
- Physics
- GJK collision detection for 2D objects
- SPH fluid simulation in 3D
- Window creation and events capturing
- GLFW
- GLUT
- Python wrappers - wrapping C++ functionality for python library to use same functionality in Python
- Tried to transfer calculation workflows on GPU using CUDA, Vulcan, OpenCL, OpenGL
Here are key points that was done under this project:
- Math
- Matrix and Vector structures
- Operations for vector-vector, vector-matrix math
- Geometry
- 3D
- Analytical representation for primitives (sphere, cylinder, torus etc)
- Ray-primitive intersection calculation
- Transformations
- 2D
- Basic shapes representation (rectangle, circle etc)
- Rendering
- Ray tracing algorithm
- Kd-tree for optimization
- Camera implementation
- Drawers using OpenGL for 2D primitives
- Spot lighting for 3D scene
- Image for rendering 3D scene as texture using OpenGL
- Materials based on pong material (mirror, glass, specular etc)
- Fractals
- Mandelbrot
- Julia set
- Lyapunov
- Customizable color mapping
- Physics
- GJK collision detection for 2D objects
- SPH fluid simulation in 3D
- Window creation and events capturing
- GLFW
- GLUT
- Python wrappers - wrapping C++ functionality for python library to use same functionality in Python
- Tried to transfer calculation workflows on GPU using CUDA, Vulcan, OpenCL, OpenGL