View Code? Open in Web Editor
NEW
This project forked from sungjjinkang /doomsengine
Dooms Engine ( Game Engine )
License: GNU General Public License v3.0
C 3.02%
C++ 92.59%
GLSL 0.67%
CMake 3.69%
Batchfile 0.01%
Assembly 0.03%
doomsengine's Introduction
Dooms Engine ( Game Engine ) ( 2021.01.07 ~ )
Game Engine Video
C++17
C# ( used for making engine tools )
Target Compiler : MSVC ( clang is used for generating reflection data )
OpenGL
Component based System
Deferred Rendering ( https://youtu.be/TU9P8gcKsi8 )
Homemade Math Library (https://github.com/SungJJinKang/LightMath_Cpp )
Multi Thread ViewFrustum Culling From FrostBite Engine of EA Dice ( https://sungjjinkang.github.io/doom/c++/computergraphics/game/2021/04/02/viewfrustumculling.html )
Support SIMD ( Currently AVX2 )
HW Query Occlusion Culling, Conditional Rendering ( https://github.com/SungJJinKang/EveryCulling )
Asset Import Pipeline ( Automatically import assets located in asset folder )
JobSystem ( Thread Pool - https://github.com/SungJJinKang/JobSystem_cpp )
Collision, Raycasting, Picking ( implemented with BVH Tree ) ( https://youtu.be/ZASdCIKeG6s )
BVH, KDTree ( source code directory : https://github.com/SungJJinKang/DoomsEngine/tree/main/Doom3/Source/Core/utility/BVH , https://github.com/SungJJinKang/DoomsEngine/tree/main/Doom3/Source/Core/utility/KDTree )
Object Management System for preventing memory leak ( https://sungjjinkang.github.io/computerscience/gameengine/2021/09/25/dangling_pointer.html )
Fast Runtime Type Casting ( writing manually type name is not required, reflection data is used. check reflection.h files ) ( time complexicity is always O(1), dynamic_cast isn't used ( RTTI option is disabled ), https://github.com/SungJJinKang/Fast_Runtime_TypeCasting_cpp )
Automatic Reflection Data Generation System. ( video - https://youtu.be/KGihaYTzqG8 ) ( clrefelct_automation - https://github.com/SungJJinKang/clReflect_automation )
Customizing Reflection Open Source Library ( video - https://youtu.be/9DKGvkdR6zw ) ( Customized clReflect - https://github.com/SungJJinKang/clReflect_ForDoomsEngine )
Integrate imgui with reflection system. ( DObjects, std::vector, std::array, std::unique_ptr... is supported, video - https://youtu.be/wxZIGoTRcpo )
Garbage Collector using reflection system ( Mark ( multithread ) - Sweep algorithm, std::array, std::vector is also supported, nullify pointer referencing destroyed object, 한국어 블로그 - https://sungjjinkang.github.io/computerscience/2021/12/01/reflection_gc.html , video - https://youtu.be/E4CNOIXYQnQ , soure code : https://github.com/SungJJinKang/DoomsEngine/tree/main/Doom3/Source/Core/GarbageCollector )
Masked SW ( CPU ) Occlusion Culling From Intel ( video : https://youtu.be/tMgokVljvAY , https://youtu.be/1IKTXsSLJ5g , source code direcotry - https://github.com/SungJJinKang/EveryCulling/tree/main/CullingModule/MaskedSWOcclusionCulling , 개발 일지 : https://sungjjinkang.github.io/computerscience/computergraphics/2021/12/31/masked_sw_occlusion_culling.html , reference : https://software.intel.com/content/dam/develop/external/us/en/documents/masked-software-occlusion-culling.pdf , https://www.slideshare.net/IntelSoftware/masked-software-occlusion-culling )
Distance Culling from Unreal Engine ( Reference : https://docs.unrealengine.com/en-US/RenderingAndGraphics/VisibilityCulling/CullDistanceVolume/index.html , Soure Code : https://github.com/SungJJinKang/EveryCulling/tree/main/CullingModule/DistanceCulling )
glfw : A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
assimp : The official Open-Asset-Importer-Library Repository
DirectTex : DirectXTex texture processing library
imgui : Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
English
Korean
Korean Blog
doomsengine's People
Contributors