# GameEngineFromScratch **Repository Path**: netwarm007/GameEngineFromScratch ## Basic Information - **Project Name**: GameEngineFromScratch - **Description**: 配合我的知乎专栏写的项目 - **Primary Language**: C - **License**: CC-BY-4.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 21 - **Forks**: 8 - **Created**: 2017-12-12 - **Last Updated**: 2025-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Game Engine From Scratch [![CircleCI Build Status](https://circleci.com/gh/netwarm007/GameEngineFromScratch.svg?style=shield)](https://circleci.com/gh/netwarm007/GameEngineFromScratch) [![Build status](https://ci.appveyor.com/api/projects/status/hld88pk7py29thx5?svg=true&branch=master)](https://ci.appveyor.com/project/netwarm007/gameenginefromscratch) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/netwarm007/GameEngineFromScratch/master/LICENSE) 配合我的知乎[专栏](https://zhuanlan.zhihu.com/c_119702958)当中的系列文章《从零开始手敲次世代游戏引擎》所写的项目。 This project is written by me as the sample of My articles [Hand-made Next-Gen Game Engine From Scratch](https://zhuanlan.zhihu.com/c_119702958?group_id=934116274502500352) このプロジェクトは私の連載中の[ゼロから始める手作り次世代ゲームエンジン]( https://zhuanlan.zhihu.com/c_119702958?group_id=934116274502500352)のサンプルソースである ## 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