Game Engine From Scratch

这个项目是由netwarm007编写的,作为其知乎专栏系列文章《从零开始手敲次世代游戏引擎》的示例。(This project is written by netwarm007 as the sample of My articles Hand-made Next-Gen Game Engine From Scratch)

Github stars Tracking Chart

Game Engine From Scratch

CircleCI Build Status
Build status
GitHub license

配合我的知乎专栏当中的系列文章《从零开始手敲次世代游戏引擎》所写的项目。

This project is written by me as the sample of My articles Hand-made Next-Gen Game Engine From Scratch

このプロジェクトは私の連載中のゼロから始める手作り次世代ゲームエンジンのサンプルソースである

Platform Support Status

  • Windows 10 / 11
  • MacOS Catalina - Monterey
  • Linux (Build test on Ubuntu 20.04 - 22.04 and CentOS 7)
  • FreeBSD (Not tested recently, build might fail)
  • Android (Not tested recently, build might fail)
  • WebAssembly (Emscripten, not tested recently, build might fail)
  • PlayStation 4 (Not continued, related source code not disclosed due to NDA)
  • PlayStation Vita (Not continued, related source code not disclosed due to NDA)

Graphic API Support Status

  • OpenGL
  • OpenGL ES (Not tested recently)
  • Metal2
  • DirectX 12 (On going)
  • Vulkan (On going)
  • GNM (Not disclosed due to NDA)

Physics

  • Bullet
  • My Physics (on going)

Scene Graph

  • OpenGEX
  • Collada (On the roadmap, not implemented yet)

Shading Language

  • HLSL, auto convert to GLSL/Metal Performance Shader

Texture Format

  • JPEG
  • PNG
  • TGA
  • HDR
  • DDS
  • BMP
  • PVR (BC1 - 7)
  • ASTC

High Performance / Parallel Computing

  • ISPC

Dependencies

  • Windows
    -- Windows Platform SDK
    -- Visual Studio or Clang
    -- CMake

  • MacOS
    -- Xcode
    -- Xcode command line tools
    -- MacPorts
    -- CMake

  • Linux
    -- gcc/g++ or clang/clang++
    -- uuid-dev libx11-dev libx11-xcb-dev libgl1-mesa-dev libnss3-dev libxss-dev libatk1.0-dev libatk-bridge2.0-dev libglib2.0-dev libpango1.0-dev libxi-dev libfontconfig1-dev libnspr4-dev libxcomposite-dev libxcursor-dev libxrender-dev libxtst-dev libxrandr-dev libgio2.0-cil-dev libdbus-1-dev libasound2-dev libcups2-dev libncurses5-dev

  • Android
    -- Android SDK
    -- Android NDK

Build Steps

Windows

scripts\build_crossguid
scripts\build_opengex
scripts\build_zlib
scripts\build_bullet
scripts\build_cef
scripts\build_glslangValidator
scripts\build_spirvcross
scripts\build_imgui
scripts\build_libispc-texcomp
scripts\build

MacOS & Linux

./scripts/build_crossguid.sh
./scripts/build_opengex.sh
./scripts/build_bullet.sh
./scripts/build_cef.sh
./scripts/build_glslangValidator.sh
./scripts/build_spirvcross.sh
./scripts/build_imgui
./scripts/build_libispc-texcomp
./scripts/build-ninja.sh

Cook Materials

Windows

scripts\cook_material

Mac)S & Linux

./scripts/cook_material

Main metrics

Overview
Name With Ownernetwarm007/GameEngineFromScratch
Primary LanguageC++
Program languageCMake (Language Count: 13)
PlatformLinux, Windows, Android, BSD, Mac, PlayStation
License:Other
所有者活动
Created At2017-08-18 00:28:20
Pushed At2023-09-16 13:30:04
Last Commit At2023-03-07 17:37:28
Release Count87
Last Release Namearticle_100 (Posted on )
First Release Namearticle_1 (Posted on )
用户参与
Stargazers Count1.8k
Watchers Count133
Fork Count283
Commits Count1.9k
Has Issues Enabled
Issues Count14
Issue Open Count2
Pull Requests Count15
Pull Requests Open Count0
Pull Requests Close Count0
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private