awesome-game-engine-dev
Awesome list of resources for Game Engine Development.
https://github.com/stevinz/awesome-game-engine-dev
Last synced: 9 days ago
JSON representation
-
Specialty Topics
-
Geometry
- Geometry, Surfaces, Curves, Polyhedra - Geometry topics including meshes, shapes, textures and more.
- 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)]
-
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.
-
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.
-
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)]
-
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.
- Sprite Illuminator - Create stunning light effects with 2D sprites in your game engine.
- Texture Packer - Create sprite sheets and optimize your game graphics.
-
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, cross-platform music studio built for clarity, automation, and sound creation.
-
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.
- Paletton - Explore complementary colors on the color wheel.
-
Generative Art
- DALL·E - Create realistic images from natural language.
- Midjourney - Image generation accessed through Discord.
- Replicate - Run open source models with a cloud API.
- Dream Fusion - Text-to-3D using 2D diffusion.
- Magic3D - High-resolution text-to-3D content creation.
- NeRF - View synthesis of scenes as neural radiance fields. [[Source](https://github.com/bmild/nerf)]
- Dittytoy - Create generative music using a simple JavaScript API.
- Stable Diffusion - Latent text-to-image diffusion model.
- GET3D - Generative model of 3D shapes from images by _NVIDIA_. [[Source](https://github.com/nv-tlabs/GET3D)]
- Shap-e - Generate 3D objects conditioned on text or images.
- Sonic Pi - Kind of musical instrument where you code music.
-
Level Editors
- Radiant - Cross-platform level editor for [idTech](https://en.wikipedia.org/wiki/Id_Tech) games. [[Source](https://github.com/TTimo/GtkRadiant)]
- TrenchBroom - Level editor for Quake-engine games. [[Source](https://github.com/TrenchBroom/TrenchBroom)]
-
Materials / Textures
- ArmorLab - Generate PBR materials by drag & dropping your photos. [[Source](https://github.com/armory3d/armorlab)]
- JSplacement - Cross-platform pseudo-random displacement map generator.
- Material Maker - Procedural [physically-based rendering](https://en.wikipedia.org/wiki/Physically_based_rendering) material maker. [[Source](https://github.com/RodZill4/material-maker)]
- Materialize - Tool for creating materials from images to be used in games. [[Source](https://github.com/BoundingBoxSoftware/Materialize)]
- PixPlant - Tool to allow simple creation of tiling 3D materials.
- TexaTool - Online tool to generate tileable textures by moving sliders.
- Texgen.js - JavaScript texture generator tool. [[Source](https://github.com/mrdoob/texgen.js)]
- TexTools for Blender - UV and texturing tools for _Blender_. [[Source](https://bitbucket.org/renderhjs/textools-blender/src/master/)]
- Filter Forge - Photo effects, realistic textures, and visual editor.
- ArmorLab - Generate PBR materials by drag & dropping your photos. [[Source](https://github.com/armory3d/armorlab)]
- Materialize - Tool for creating materials from images to be used in games. [[Source](https://github.com/BoundingBoxSoftware/Materialize)]
- TexTools for Blender - UV and texturing tools for _Blender_. [[Source](https://bitbucket.org/renderhjs/textools-blender/src/master/)]
- ArmorLab - Generate PBR materials by drag & dropping your photos. [[Source](https://github.com/armory3d/armorlab)]
-
Modeling Tools
- 3DS Max - Classic software for 3D modeling and rendering.
- Asset Forge - Create 3D models and 2D sprites using building blocks.
- Meshroom - 3D reconstruction, built with the [AliceVision](https://github.com/alicevision/AliceVision) framework. [[Source](https://github.com/alicevision/meshroom)]
- ZBrush Core Mini - Simple and easy to use 3D sculpting tool.
- ZBrush Core - Simple and easy to use 3D sculpting tool.
- Blender - Standard for open source 3D modeling. [[Source](https://github.com/blender/blender)]
- ZBrush - Simple and easy to use 3D sculpting tool.
-
Particle Tools
- Particle Designer - Powerful particle effects editor designed for macOS.
- TimelineFX - Create amazing particle effects for your games, apps and webpages.
-
Pixel Art
- Ditherdragon - Resample art, sketches and images into pixel-art.
- Fluid FX - Uses fluid simulation to achieve animations like explosions, blood, smoke, etc.
- Juice FX - Add style to your sprites and animations with ease.
- PixaTool - Create pixel art by converting your images, sprites or videos.
- Pixel FX - Create pixel art particle effects and render them to sprite sheets.
- Smear FX - Make your 2D animations juicy by adding some smearing to them.
-
Vector Editors
-
Voxel
- Qubicle - Popular (Crossy Road, Pacman 256) voxel editor, easy creation of 3D models.
- Ken Shape - Draw in 2D, set the depth for each pixel and generate 3D models!
- IsoVoxel - Generates isometric pixel art from _MagicaVoxel_ .vox files.
- Qubicle - Popular (Crossy Road, Pacman 256) voxel editor, easy creation of 3D models.
- Qubicle - Popular (Crossy Road, Pacman 256) voxel editor, easy creation of 3D models.
- MagicaVoxel - Lightweight voxel art editor.
-
-
Video Game Assets
-
Audio Assets
- BandLab Sounds - High-quality loops and packs used for music creation.
- Bensound - Original music tracks, free with attribution. Perfect for games.
- Incompetech - Nice collection of game tracks. Buy or attribution required.
- Melody Loops - Nice mix of free and affordable music loops.
- Royalty Free Music Clips - Huge collection of free and paid royalty free music tracks.
-
Programming Languages
Categories
Sub Categories
C++
204
JavaScript
197
C
77
Haxe
47
Computer Graphics
44
Shaders
37
C#
36
Physics
24
Commercial
20
Rust
20
Lighting / Shadows
17
Geometry
13
Materials / Textures
13
Audio Tools
12
Zig
12
AAA
12
Generative Art
11
Specialty
11
Audio Assets
9
Signed Distance Fields
9
Game Development
9
Go
9
Python
9
Engine Development
8
Java
8
Model Assets
7
Modeling Tools
7
Ruby
7
Pascal
7
Fluid / Smoke
6
Kotlin
6
Programming
6
Voxel
6
Color / Palettes
6
Pixel Art
6
Lua
6
F#
6
Graphic Assets
5
BASIC
5
Scripting
5
Entity Component Systems
5
Dart
4
Color Manipulation
4
Tiling
4
Transparency
4
Vector Editors
3
Animation Software
3
AI Assistants
3
Awesome Collections
3
Popular
3
2D Game Dev
3
Particles
2
Rendering
2
Animation Info
2
Particle Tools
2
AI / Pathfinding
2
Level Editors
2
Graphical User Interface
1
Network
1
Material Assets
1
Hair
1
Keywords
game-engine
99
gamedev
92
game-development
89
javascript
60
cpp
54
opengl
53
3d
44
game
41
cross-platform
38
c-plus-plus
35
webgl
35
graphics
32
c
31
windows
28
android
28
linux
28
engine
27
vulkan
27
gui
27
threejs
21
2d
20
python
19
macos
19
typescript
19
ios
19
3d-graphics
18
react
18
lua
17
imgui
17
rust
17
cpp17
17
animation
16
rendering
16
haxe
16
ecs
16
audio
16
open-source
15
ui
15
csharp
15
entity-component-system
14
header-only
14
monogame
13
awesome-list
13
physics
13
wasm
13
3d-engine
12
awesome
12
directx
11
reflection
11
framework
11