# Project Description This is a basic future game engine for OpenGL 3D rendered games ## Building on Windows In order to configure and run project on windows platform accomplish several steps. ### Configuring ```console cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows -DCMAKE_BUILD_TYPE=Release ``` ### Building ```console cmake --build build --config Release ``` ### Static Linking For static linking you just need to modify the configure command as follows: ```console cmake -S . -B build -G "Visual Studio 17 2022" -A x64 -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DCMAKE_BUILD_TYPE=Release ``` ## Multi-GPU Devices If you want to use non-primary GPU on your device when launching the game specifically on Linux you should specify additional environment variables before running. For example in my case I have a hybrid gaming laptop with 2 GPUs AMD from CPU and NVIDIA discrete. The run command in that case would look following: ```console __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./build/CodingGame ``` ## TODO List ### Optimizations 🚀 Summary of Speedups - Replace toElement / toMtlElement string comparisons with char-based switches. - Replace std::stoi with a custom fast Parser::TakeIndex. - Pre-reserve vectors for vertices, normals, texcoords, meshes. - Load whole file into memory before parsing (fastest for large OBJs). - Defer texture loading until after parsing. - Store material pointers in meshes → no runtime lookups in render. - Inline parsing functions.