• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

SungJJinKang/DoomsEngine: Dooms Engine ( Game Engine )

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

SungJJinKang/DoomsEngine

开源软件地址:

https://github.com/SungJJinKang/DoomsEngine

开源编程语言:

C++ 83.4%

开源软件介绍:

Dooms Engine ( Game Engine ) ( 2021.01.07 ~ )

Video

Game Engine Video

Features

Requirement

  • C++17
  • C# ( used for making engine tools )
  • PC, Windows
  • Target Compiler : MSVC, Clang ( clang is used for generating reflection data )

Engine Core

  • Homemade Math Library ( JINMATH )
  • Support SIMD ( Currently AVX2 ) ( Math, Culling.... )
  • Asset Import Pipeline ( Automatically import assets located in asset folder )
  • Component based System
  • Object Management System for preventing memory leak ( 개발 일지 )
  • 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 ), source code )
  • Garbage Collector using reflection system ( stop-the-world, Mark ( multithread ) - Sweep algorithm, std::array, std::vector is also supported, nullify pointer referencing destroyed object ( to prvent referencing invalid address ), 개발 일지, video, soure code )

Rendering

  • Supported Graphics API : OpenGL, DIRECTX 11 ( 80% )
  • Deferred Rendering ( video )
  • Sort objects from front to back
  • Multi Thread ViewFrustum Culling From FrostBite Engine of EA Dice ( source code, 개발 일지 )
  • Masked SW ( CPU ) Occlusion Culling From Intel ( video1, video2, source code, 개발 일지, reference paper
  • Distance Culling from Unreal Engine ( reference, soure code )
  • Shader Language Portable System ( Automatically convert glsl files to hlsl, glslcc is used )
  • Shader Reflection System ( Provide shader variables data ( size, offset, variable name ... ) )
  • Static Batch Rendering ( video, Mesh data of static objects with same material is combined automatically at start of scene. They are drawed in 1 draw call )

Physics

Reflection

  • Automatic Reflection Data Generation System. ( video ) ( clrefelct_automation )
  • Customized Reflection Open Source Library ( video ) ( Customized clReflect )
  • Integrate imgui with reflection system. ( DObjects, std::vector, std::array, std::unique_ptr... is supported, video )

Misc

Currently working on

To Develop

  • completly support D3D11
  • Dynamic Batch Rendering
  • implement Hierarchical Shadow map
  • implement Asset Redirect

Thirdparty Dependencies

  • 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
  • Intel TBB ( malloc proxy )
  • concurrentqueue : A fast multi-producer, multi-consumer lock-free concurrent queue for C++11
  • json : JSON for Modern C++
  • glslcc : GLSL cross-compiler tool (GLSL->HLSL, MSL, GLES2, GLES3, GLSLv3), using SPIRV-cross and glslang
  • magic_enum : Static reflection for enums (to string, from string, iteration) for modern C++
  • googletest : Google Testing and Mocking Framework

Development Blog

Korean Blog




鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap