All Projects → L-Sun → HitagiEngine

L-Sun / HitagiEngine

Licence: MIT license
DirectX12 game engine

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
lua
6591 projects
HLSL
714 projects

Projects that are alternatives of or similar to HitagiEngine

among-us-replay-mod
Replay mod for Among Us
Stars: ✭ 48 (-5.88%)
Mutual labels:  cpp20
photon mapping
minimal but extensible header only implementation of photon mapping in C++
Stars: ✭ 65 (+27.45%)
Mutual labels:  cpp20
doctest
The fastest feature-rich C++11/14/17/20 single-header testing framework
Stars: ✭ 4,434 (+8594.12%)
Mutual labels:  cpp20
MeetixOS
An hobby OS written in modern C++20 which aims to be Unix-like. Currently based on EvangelionNG, a GhostOS derived kernel
Stars: ✭ 179 (+250.98%)
Mutual labels:  cpp20
gal
Geometric Algebra Library
Stars: ✭ 78 (+52.94%)
Mutual labels:  cpp20
json5
Header only JSON/JSON5 parser and serializer for C++
Stars: ✭ 22 (-56.86%)
Mutual labels:  cpp20
tau
A Micro (1k lines of code) Unit Test Framework for C/C++
Stars: ✭ 121 (+137.25%)
Mutual labels:  cpp20
engine
A personal game engine project, with development focus towards 2D/2.5D games.
Stars: ✭ 32 (-37.25%)
Mutual labels:  cpp20
opzioni
The wanna-be-simplest command line arguments library for C++
Stars: ✭ 29 (-43.14%)
Mutual labels:  cpp20
Project-Template
A template for modern C++ projects with useful features for developing cross-platform products.
Stars: ✭ 44 (-13.73%)
Mutual labels:  cpp20
recursive-variant
Recursive Variant: A simple library for Recursive Variant Types
Stars: ✭ 67 (+31.37%)
Mutual labels:  cpp20
BackportCpp
Library of backported modern C++ types to work with C++11
Stars: ✭ 53 (+3.92%)
Mutual labels:  cpp20
bbai-lib
C++ library for getting the most out of polymorphic allocators
Stars: ✭ 41 (-19.61%)
Mutual labels:  cpp20
USmallFlat
Ubpa small flat containers based on C++20
Stars: ✭ 20 (-60.78%)
Mutual labels:  cpp20
sycl
SYCL for Vitis: Experimental fusion of triSYCL with Intel SYCL oneAPI DPC++ up-streaming effort into Clang/LLVM
Stars: ✭ 80 (+56.86%)
Mutual labels:  cpp20
valkyrie
🔮 A UNIX-like toy kernel built from scratch (for AArch64) with preemptive multi-threading, VM, CoW fork(), buddy, slob, VFS, FAT32.
Stars: ✭ 57 (+11.76%)
Mutual labels:  cpp20
Script
Script is an object-oriented interpreted programming language. Being migrated to CppUtils
Stars: ✭ 18 (-64.71%)
Mutual labels:  cpp20
cxbqn
BQN virtual machine
Stars: ✭ 20 (-60.78%)
Mutual labels:  cpp20
so stupid search
It's my honor to drive you fucking fire faster, to have more time with your Family and Sunshine.This tool is for those who often want to search for a string Deeply into a directory in Recursive mode, but not with the great tools: grep, ack, ripgrep .........every thing should be Small, Thin, Fast, Lazy....without Think and Remember too much ...一…
Stars: ✭ 135 (+164.71%)
Mutual labels:  cpp20
RavEngine
A fast, easy to use C++20 3D game library for modern computers
Stars: ✭ 122 (+139.22%)
Mutual labels:  cpp20

Hitagi Engine


Hitagi Engine 是以 C++20 开发的实验性游戏引擎,基本架构参考从零开始手敲次世代游戏引擎系列文章。目前能够完成基本的渲染功能,以及注册键盘鼠标监听事件。

基本架构

  • 核心 (Core)
    • 使用 pmr 实现的,类 TCMalloc 的内存分配器(缺失 span 的实现)
    • 简答的文件读写模块
    • 简易线程池-
  • 数学库
    • 3D相关的数学库,支持swizzle操作,以ISPC加速运算(需安装 Intel SPMD Program Compiler
      • 矩阵以行主序储存(无论是 CPU 侧,还是 GPU 侧。)
  • 资源管理
    • 以 Assimp 作为模型解析,并导入到 AssetManager 中
  • 图形接口模块
    • 图形接口抽象化
    • DX12中间层(进行中)
    • Render Graph (进行中)
  • HID
  • GUI
    • 使用 Dear ImGui
  • 平台相关层
    • Windows

编译

因为目前只支持 DX12 ,因此这里只介绍如何在 Windows 下编译。

环境准备

首先需要安装 Visual Studio 对 C++ 的开发支持。一般来说,安装完 Visual Studio IDE 后就已经带有 C++ 的开发环境。 下面介绍无需安装 IDE 的环境准备。

  1. 首先安装 Visual Studio Installer ,然后在 Visual Studio Installer 中勾选
    • MSVC v142 (可以的话尽可能最新)
    • C++ Clang-cl 生成工具, 用于 Clang 编译
    • C++ 核心功能、 C++ 生成工具核心功能
    • Windows 10 SDK (尽量最新)
    • Windows C 通用运行时
  2. 安装 XMake ,用于构建整个项目, 具体安装方式请访问 XMake 安装
  3. 安装 Clang14

编译步骤

首先 Clone 此项目,并进入项目目录中

git clone https://github.com/L-Sun/HitagiEngine
cd HitagiEngine

运行如下命令进行构建,期间可能需要安装依赖,请保证网络通畅

xmake f -m debug # 可以切换为 release

使用 Clang 进行编译

首先需要保证所有依赖使用 MSVC 安装完成(因为有些依赖无法使用 clang 编译),运行下面命令即可

xmake f -m debug -c # 保证依赖由 MSVC 编译
xmake f -m debug --cc=clang --cxx=clang++ # 切换为 clang 进行编译
xmake

启动

examples 目录下有部分简单的演示代码,可以在编译完成后,使用下面命令启动

xmake r demo
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].