-
Notifications
You must be signed in to change notification settings - Fork 7
Overview
Thanduriel edited this page Jan 18, 2021
·
11 revisions
AcaEngine notes
- decent programming skills
- preferably c++
- some linear algebra knowledge
- matrices, vectors
- e.g. "Mathematik für Informatiker 2"
- system with OpenGl 4.5 compatible GPU
- >= Nvidia GTX 400
- >= AMD Radeon HD 5000
- >= Intel® Iris® Plus Graphics 540 < 1000
- >= Intel® HD Graphics 500 < 1000
- >= Intel® UHD Graphics 620 < 1000
- meshes obj with custom loader
- textures ppm with custom loader
- scene as json use library
- glfw for window and input
- glew for opengl extensions
- glm for math
- opengl lib
-
C++17+ (C++20Concepts) - docker
0.5 weeks
- Knowledge of the functional range and basic efficient implementation strategies
- experience in modern c++ and software engineering
- effective use of modern hardware (GPU,CPU)
- basis for exotic or lean games
- NOT a good basis if you just want to make games
- will not cover all necessary components
- many good and complete engines available (unity, unreal, ...)
- overview of required components: rendering, physics, sound, assets, ...
2.5 weeks
- project setup: CMake, git, C++ build tools
- for windows(msvc), linux(docker, editor of choice)
- linear algebra refresh
- shader pipeline
- OpenGL Shader (uniform, input layout)
- Vertex/Index-Buffer
- phong shading
1 week
- logger usage
- glfw input handling
- usage json lib to load config
- abstraction key to action
- introduction HUD with label(font rendering)
- add clickable Button class to change the color of the cube
- mouseover, mouse down states
- function per call back
- load keybinding from config to pause rotation of the cube
4 weeks
- gameloop
- handling gamestates
- entity component system
- lifetime management
- safe handles to entities (shared_ptr)
- integrate Mesh into component
- spawn/destroy multiple etities in scene
1 weeks
- movement, rotation (quaternions), angular velocity
- brute force collision detection (Axis aligned bounding box)
- implement (angular) velocity, simple collision detection
1 week
- shadow (mapping)
water
2 week
- octrees
- implementation with insert/delete is given
- use Functor to access member
- raycasts
- culling
- accelerate collision detection
- glowing
- ambient occlusion
- normal maps
- parallax mapping
- shadow mapping
- water
- screen space reflections
- ambient occlusion
- deferred shading
- NPC/AI/behavior trees
- Path finding
- raytracing
- batching
- release 📛
- procedural content generation
- Level of detail
- preprocessing of assets
- generation of convex hull, packing
- fluid & gas simulation
- ai support
- volume particle system
- lightning
- volumetric clouds
- solid body (breakable)
- collision via convex hulls
- detection
- resolve (inertia tensor)
- initial project with
- libs as submodules
- CMakeLists.txt
- asset loaders
- hello world window