awesome-game-engine-dev
Awesome list of resources for Game Engine Development.
https://github.com/stevinz/awesome-game-engine-dev
Last synced: 17 days ago
JSON representation
-
Libraries
-
Zig
- Known Folders - Provides access to well-known folders across several operating systems.
- Mach - Game engine & graphics toolkit. [[Examples](https://machengine.org/gpu/)]
- Zig-Gamedev Project - Sample apps and libraries using DirectX 12.
- Mini Pixel - Tiny pixel art editor. [[Download](https://fabioarnold.itch.io/mini-pixel)]
- Pixi - Pixel art editor.
- Cyber - Fast, efficient, and concurrent scripting language.
- Zig-Gamedev Project - Sample apps and libraries using DirectX 12.
-
-
Open Source Games
-
Awesome Collections
- Quake Engines - List of repositories of _idTech_ engines, it's derivatives and sourceports.
- Open Source Games - Collection of games that have the source code available on _GitHub_.
-
C
- Handmade Hero - Videos on making a game from start to finish, source code for $15.
- Doom - The original 1993 3D masterpiece by _id Software_.
- Gish - Open Source version of the award-winning physics platformer. [[Steam](https://store.steampowered.com/app/9500/Gish/)]
- Wolfenstein 3D - The original open source release of _Wolfenstein 3D_.
-
C++
- Doom 3 - _Doom 3_ GPL source release.
- Dungeon Crawl: Stone Soup - Classic roguelike adventure. [[Play](https://crawl.develz.org/)]
- Etheral Legends - Indie Action RPG built with _Unreal Engine 4_. [[Steam](https://store.steampowered.com/app/428980/Ethereal_Legends/)]
- OpenLara - Classic _Tomb Raider_ open source engine. [[Play](http://xproger.info/projects/OpenLara/)]
- TeeWorlds - Retro multiplayer shooter. [[Website](https://teeworlds.com/)]
- zDoom - Modern, feature centric port for all Doom engine games.
- GemRB - Open source implementation of _Bioware_'s Infinity Engine.
- NetHack - Official _NetHack_ git repository.
-
Java
- Pixel Dungeon - Traditional roguelike game with pixel-art graphics and simple interface.
-
-
Specialty Topics
-
AI / Pathfinding
- Intro to AI - Intro to AI Programming for Games at RayWenderlich.com.
-
Animation Info
- Skeletons and Inverse Kinematics - Principles for using skeletons with IK for animation.
- Skeletons and Inverse Kinematics - Principles for using skeletons with IK for animation.
-
Asset Pipeline / Formats
- glTF - Runtime 3D asset delivery format for scenes, meshes, materials, animations, data.
- KTX-Software - _Khronos_ texture container tools and library for KTX/KTX2 workflow.
- MikkTSpace - Standard for tangent space used in baking tools to produce normal maps.
-
Color Manipulation
- How to Choose Colors Procedurally - Procedural palettes and how to generate them.
- Red, Yellow, and Blue - Convert colors from the paint color wheel to RGB space. [[Source](https://github.com/bahamas10/ryb)]
- Red, Yellow, and Blue - Convert colors from the paint color wheel to RGB space. [[Source](https://github.com/bahamas10/ryb)]
- How to Choose Colors Procedurally - Procedural palettes and how to generate them.
-
Enemies / Pathfinding
- Beginner's Guide to Game AI - Intro to concepts used in Enemy AI for games.
- Intro to AI - Intro to Enemy AI Programming for Games at RayWenderlich.com.
-
Entity Component Systems
- A Simple Entity Component System - Basis for an ECS in C++.
- Evolve Your Hierarchy - Overview of ECSs and why to use them, at [Cowboy Programming](https://cowboyprogramming.com).
- Intro to Component-Based Architecture in Games - Component-based architecture.
- Nomad Game Engine - Articles building an ECS from the ground up in C++. [[Source](https://github.com/taurheim/NomadECS)]
- What's an Entity System - Overview of ECSs, how they are used in game development.
- Intro to Component-Based Architecture in Games - Component-based architecture.
- What's an Entity System - Overview of ECSs, how they are used in game development.
-
Fluid / Smoke
- Fluid Simulation on the GPU - GPU Gems Chapter 38 - Fast, stable fluid simulation on the GPU.
- Fluids-2D - Real-time fluid dynamics on the GPU with the help of WebGL and Three.js. [[Source](https://github.com/mharrys/fluids-2d)]
- GPU Fluid Experiments - Cross-platform GPU fluid simulation. [[Source](https://github.com/haxiomic/GPU-Fluid-Experiments)]
- WebGL Fluid Simulation - Play with fluids in your browser (even on mobile). [[Source](https://github.com/PavelDoGreat/WebGL-Fluid-Simulation)]
- GPU Fluid Experiments - Cross-platform GPU fluid simulation. [[Source](https://github.com/haxiomic/GPU-Fluid-Experiments)]
- Fluids-2D - Real-time fluid dynamics on the GPU with the help of WebGL and Three.js.
-
Geometry
- Constructive Solid Geometry - Technique using boolean operations to combine primitive objects.
- Geometry, Surfaces, Curves, Polyhedra - Geometry topics including meshes, shapes, textures.
- Mesh Transforms - _Apple_'s private API for manipulation of UIView meshes. [[Source](https://github.com/olegtyshcneko/CAMeshTransform)]
- Laplacian Smoothing - Draft notes with C++ code for laplacian smoothing of meshes.
- Subdivision at Matt's Webcorner - Smoothing with subdivision surfaces.
- Subdivision Surfaces - Explanations of different schemes used in subdivision surfaces.
- csg.js - JavaScript library implementing CSG. [[Examples](https://evanw.github.io/csg.js/)]
- three-bvh-csg - Fast and dynamic CSG on top of three-mesh-bvh.
- three-csgmesh - Conversion of the csg.js library for use with Three.js.
- csg.js - JavaScript library implementing CSG. [[Examples](https://evanw.github.io/csg.js/)]
- Laplacian Smoothing - Draft notes with C++ code for laplacian smoothing of meshes.
- Subdivision at Matt's Webcorner - Smoothing with subdivision surfaces.
- Subdivision Surfaces - Explanations of different schemes used in subdivision surfaces.
-
Hair
- Fuzzy Meshes - Simulating fur with cones and gravity. [[Source](https://github.com/zadvorsky/three-fuzzy-mesh)]
-
Lighting / Shadows
- What Every Coder Should Know About Gamma - Light emission vs perceptual brightness.
- Gleaner Heights: 2D Lighting - Simple intro to 2D lighting in a game with GLSL.
- Basic Lighting - 3D lighting article by _LearnOpenGL_.
- Forward+ Rendering / Tiled Forward Shading - Forward rendering with tiled light culling.
- 2D Pixel Perfect Shadows - An approach to 2D pixel-perfect lights / shadows using shaders.
- 2D Visibility - Excellent interactive tutorial on 2D visibility.
- Fast 2D shadows in Unity - Adapting 3D rendering techniques to achieve fast 2D shadows.
- Sight & Light - How to create 2D visibility / shadow effects for your game. [[Source](https://github.com/ncase/sight-and-light)]
- Symmetric Shadowcasting - Common technique for calculating field of view.
- Efficient Soft-Edged Shadows - GPU Gems 2 Chapter 17.
- Screen Space Shadows - Great exploration of screen space shadows.
- Shadow Mapping - Shadow mapping and the techniques used to acheive it.
- Threex Volumetric Spotlight - Great example of volumetric lighting with Three.js. [[Source](https://github.com/jeromeetienne/threex.volumetricspotlight)]
- Volumetric Light Approximation - Volumetric light approximation (godrays) with Three.js.
- Gleaner Heights: 2D Lighting - Simple intro to 2D lighting in a game with GLSL.
- Forward Rendering vs. Deferred Rendering - Techniques for handling many lights.
- Threex Volumetric Spotlight - Great example of volumetric lighting with Three.js. [[Source](https://github.com/jeromeetienne/threex.volumetricspotlight)]
- Forward Rendering vs. Deferred Rendering - Techniques for handling many lights.
-
Network
- Source Multiplayer Networking - _Valve_'s Source Engine multiplayer system.
-
Particles
- Particles - Article by _LearnOpenGL_.
- Soft Particles - Implementing soft particles in WebGL.
-
Physics
- Fix Your Timestep! - How to keep physics stable with variable fps.
- Game Physics from Scratch - Starting resource for game physics.
- Intro to Physics - Part I: Intro to Rigid Body Dynamics.
- Open Source Physics Engines - List of open source physics engines.
- 2D Physics Games - Using Box2D for water, ropes, gravity, lines, vehicles, etc.
- Basic 2D Platformer Physics - How to create a physics system for a platformer.
- Ledge Grabbing - Tutorial on ledge grabbing in 2D platformer physics.
- Draw SVG rope using JavaScript - SVG path vector rope drawing.
- Ropes in Contraption Maker - Implementing the physics of ropes in _Contraption Maker_.
- Matter.js: Chains - Chains demo using _Matter.js_. [[Source](https://github.com/liabru/matter-js/blob/master/examples/chains.js)]
- Blob Physics - Using verlet physics to simulate 2D blobs.
- Oryol: Bullet Cloth - _Bullet 3D_ physics cloth using the _Oryol_ game framework. [[Source](https://github.com/floooh/oryol-samples/blob/master/src/BulletPhysicsCloth/BulletPhysicsCloth.cc)]
- Three.js: Ammo Volume - 3D soft body volumes using _Ammo.js_ and _Three.js_. [[Source](https://github.com/mrdoob/three.js/blob/master/examples/physics_ammo_volume.html)]
- 2D Water - Modeling 2D water with springs.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Making a Verlet Physics Engine - Under the hood of a 2D physics engine in JavaScript.
- Game Physics from Scratch - Starting resource for game physics.
- Basic 2D Platformer Physics - How to create a physics system for a platformer.
- Matter.js: Chains - Chains demo using _Matter.js_. [[Source](https://github.com/liabru/matter-js/blob/master/examples/chains.js)]
-
Rendering
- GPU Driven Rendering - Calculating rendering on the GPU in compute shaders.
- Model Batching - Drawing many different models in a single draw call.
-
Scripting
- Adding Languages to Game Engines - Story of adding scripting to a game.
- Implementing a Scripting Engine - Writting a scripting engine from scratch.
- Embedded Scripting Languages - Scripting languages and engines available as libraries.
- List of Embedded Scripting Languages - Scripting languages to use in your app / game.
- Scriptorium - Game scripting languages benchmarked.
-
Shaders
- 3D Game Shaders For Beginners - Shaders to improve your games. [[Source](https://github.com/lettier/3d-game-shaders-for-beginners)]
- Geeks3D Shader Library - Postprocessing, lighting, utlities and many more.
- Review of Shader Languages - Differences between HLSL, GLSL, MSL, and WGSL.
- Ronja Tutorials - Tutorials covering many shader techniques.
- LearnOpenGL Tutorial - Techniques used for bloom lighting, presented in OpenGL.
- Three.js: Bloom Example - WebGL bloom postprocessing using _Three.js_. [[Source](https://github.com/mrdoob/three.js/blob/master/examples/webgl_postprocessing_unreal_bloom.html)]
- Unity Tutorial - How to add support for a bloom effect.
- Basic GLSL Displacement Shader - Basic vertex displacement shader using Three.js.
- Dithering on the GPU - Ordered dithering in glsl using 8x8 Bayer Dithering.
- Fire Shader in GLSL - Fire intro shader using noise textures and masking.
- Simplex 3D Noise - Simplex noise fire simulation shader at ShaderToy.
- Drawing Lines - Techniques for 2D/3D line rendering.
- Book of Shaders: Noise - Excellent GLSL noise article by Book of Shaders.
- Color Banding - Using noise / dithering to improve drawing gradients.
- Understanding Perlin Noise - Analysis of Perlin Noise, written in C#. [[Source](https://gist.github.com/Flafla2/f0260a861be0ebdeef76)]
- Fast Solid 2D Outline - Drawing an outline on the alpha channel of a 2D image.
- Let it glow! - Article with shader code on dynamically adding outlines to characters.
- Outline Shader - Nice outline shader. [[Source](https://github.com/steincodes/godot-shader-tutorials)]
- Outlines w/Surface IDs - Technique combining depth, normals and surface IDs. [[Source](https://github.com/OmarShehata/webgl-outlines)]
- Sketchy Outling - Article on producing a sketchy outline look.
- Pixel Art Shaders - Useful GLSL postprocessing shaders for pixel art games.
- Three.js: Pixelation Example - WebGL pixelation postprocessing using _Three.js_. [[Source](https://github.com/mrdoob/three.js/blob/master/examples/webgl_postprocessing_pixel.html)]
- Image Editor Effects - WebGL image filters / effects shaders. [[Source](https://github.com/alaingalvan/image-editor-effects)]
- How do I perform an xBR or hqx filter in XNA? - Upscaling shader code.
- hqx - Wikipedia article about the hqx pixel art upscaling algorithm developed by Maxim Stepin.
- Flat and Wireframe Shading - Flat shading / wireframes using Barycentric Coordinates.
- 2D Water Shader - GLSL fragment shader to simulate 2D water surface in _libGDX_.
- CrossShader - Cross-compiling shaders between GLSL, HLSL, Metal, and more.
- Shader Park - Shader programming in JavaScript.
- SHADERed - Shader IDE, written in C++.
- Psrdnoise - Tiling simplex flow noise in 2D/3D.
- Shadertoy - Build and share shaders online.
- Psrdnoise - Tiling simplex flow noise in 2D/3D.
- WebGL Noise - Maintained branch of the original _Ashima Arts_ 2D, 3D and 4D noise functions.
- Let it glow! - Article with shader code on dynamically adding outlines to characters.
- Review of Shader Languages - Differences between HLSL, GLSL, MSL, and WGSL.
- Image Editor Effects - WebGL image filters / effects shaders.
- Understanding Perlin Noise - Analysis of Perlin Noise, written in C#. [[Source](https://gist.github.com/Flafla2/f0260a861be0ebdeef76)]
-
Signed Distance Fields
- CSG w/SDFs - Using circular SDFs to build 3D objects with CSG. [[Source](https://github.com/jasmcole/Blog/tree/master/CSG)]
- Basic 2D SDFs - Basics of rendering 2D shapes with SDFs in shaders.
- Bezier Strokes - Blog post on rendering bezier strokes with SDFs.
- 2D SDFs - Signed distance functions for basic 2D primitives.
- 3D SDFs - Signed distance functions for basic 3D primitives.
- 2D SDFs - Signed distance functions for basic 2D primitives.
- 3D SDFs - Signed distance functions for basic 3D primitives.
- Signed Distance Field Resources - Tutorials, papers, software, demos, discussions, etc.
- SDF Mesh Generation - Python API to generate 3D meshes with SDFs.
-
Tiling
- Auto-Tile - How to use tile bitmasking to auto-tile your level layouts.
- Blob Tileset - Tutorial on 2D edge and corner matched tilesets.
- List of Eucliden Uniform Tilings - Wikipedia article on uniform tiling, space-filling polygons.
- Space-Filling Polyhedron - [Polyhedra](https://en.wikipedia.org/wiki/Category:Space-filling_polyhedra), 3D polygons that fill space. [[5 Space-Filling Polyhedra](https://www.steelpillow.com/polyhedra/five_sf/five.html)]
- Auto-Tile - How to use tile bitmasking to auto-tile your level layouts.
-
Transparency
- Depth Peeling - Method for order-independent transparency.
- Intro to Order-Independent Transparency - Article by _LearnOpenGL_.
- Weighted, Blended - Method for order-independent transparency.
- Weighted, Blended - Method for order-independent transparency.
-
-
Tools / Software
-
2D Game Dev
- ShoeBox - Drag & drop tools for sprite sheets, bitmap fonts, texture ripping, tile maps and more.
-
AI Assistants
- Coplay - Multi-agent AI Assistant for all aspects of Unity game developement.
- Unity Muse - Unity's suite of AI products.
- Coplay - Multi-agent AI Assistant for all aspects of Unity game developement.
-
Animation Software
- DragonBones - Open source 2D game skeletal animation solution. [[Source](https://github.com/DragonBones/)]
- Mixamo - Animate 3D characters for games, films and more. By _Adobe_.
- Spine - 2D animation for games.
-
Audio Tools
- Cakewalk - Complete music production package.
- FamiStudio - Music editor targeted at chiptune artists and NES homebrewers. [[Source](https://github.com/BleuBleu/FamiStudio)]
- PixiTracker - Quickly create musical sketches, chiptunes and sound experiments.
- Sound Box - Compose synthetic music in your browser, good for small demos. [[Source](https://github.com/mbitsnbites/soundbox)]
- SunVox - Powerful [modular synthesizer](https://en.wikipedia.org/wiki/Modular_synthesizer) with pattern-based sequencer ([tracker](https://en.wikipedia.org/wiki/Music_tracker)).
- ZzFXM - Music generator for use in tiny JavaScript apps. [[Source](https://github.com/keithclark/ZzFXM)]
- ChipTone - Tool for generating sound effects.
- sfxia - Tiny sound generator.
- LMMS - Cross-platform music production software. [[Source](https://github.com/lmms/lmms)]
- ZzFX - Tiny JavaScript sound FX system / Zuper Zmall Zound Zynth. [[Source](https://github.com/KilledByAPixel/ZzFX)]
- Sound Box - Compose synthetic music in your browser, good for small demos.
- KiraStudio - Lightweight music studio built for clarity, automation, and sound creation.
- Bosca Ceoil - Easy to use tool for creating music.
- fmod - Popular (_Hades_, _Celeste_, _Untitled Goose Game_) audio software for games.
-
Awesome Collections
- Itch.io Tools - Huge collection of game dev tools on _Itch.io_.
- Tiny Tools - Tools that might be useful in building your game.
-
Color / Palettes
- Huemint - Uses machine learning to generate colors for graphic design.
- Lospec - Database of palettes for pixel art.
- COLOURlovers - Share colors, palettes and patterns.
- Coolors - Fast color palette generator.
- Colormind - Color scheme generator, can learn color styles from photographs, art, etc.
-
Programming Languages
Categories
Sub Categories
C++
211
JavaScript
201
C
80
Haxe
48
Computer Graphics
46
C#
43
Shaders
38
Physics
27
Commercial
22
Rust
21
Lighting / Shadows
18
Python
16
Materials / Textures
15
Audio Tools
14
Geometry
13
AAA
13
Zig
12
Specialty
12
Generative Art
11
Game Development
10
Pixel Art
10
Audio Assets
9
Java
9
Signed Distance Fields
9
Engine Development
9
Go
9
Awesome Collections
8
Model Assets
7
Modeling Tools
7
Pascal
7
Entity Component Systems
7
Ruby
7
Fluid / Smoke
6
Lua
6
BASIC
6
Kotlin
6
Color / Palettes
6
Voxel
6
Programming
6
Tiling
5
Scripting
5
Graphic Assets
5
F#
5
Dart
4
Color Manipulation
4
Transparency
4
Level Editors
4
Debugging / Profiling
4
Vector Editors
3
Popular
3
AI Assistants
3
Animation Software
3
Asset Pipeline / Formats
3
Particle Tools
3
Animation Info
2
Enemies / Pathfinding
2
Rendering
2
Tilemap Editors
2
Particles
2
AI / Pathfinding
1
Graphical User Interface
1
2D Game Dev
1
Hair
1
Material Assets
1
Network
1
Keywords
game-engine
100
gamedev
94
game-development
92
javascript
60
opengl
55
cpp
55
3d
44
game
43
cross-platform
38
graphics
36
c-plus-plus
35
webgl
35
c
33
vulkan
29
android
28
windows
28
gui
28
engine
27
linux
27
threejs
22
macos
21
python
21
2d
20
typescript
19
ios
19
3d-graphics
18
react
18
rust
18
lua
17
cpp17
17
imgui
17
awesome-list
17
animation
17
ui
16
audio
16
ecs
16
haxe
16
csharp
16
rendering
16
open-source
15
awesome
15
header-only
14
entity-component-system
14
monogame
13
wasm
13
physics
13
directx
12
3d-engine
12
metal
12
canvas
11