| .vs | ||
| game_design | ||
| game_development | ||
| pixel_art | ||
| source_control | ||
| unity | ||
| .gitattributes | ||
| .gitignore | ||
| README.md | ||
Awesome Game Dev
A curated list of game development resources focused on C99, Python, OpenGL, Vulkan, Godot, SDL, and from-scratch coding.
Contents
- From Scratch / Low-Level
- Graphics APIs
- Game Engines
- Python Game Development
- Game Design
- Architecture & Patterns
- Art & Assets
- Developer Tools
- Other Awesome Lists
From Scratch / Low-Level
C99 Libraries & Frameworks
- raylib - Simple and easy-to-use C99 library for videogames programming. Hardware accelerated via OpenGL with full 3D support, 120+ examples, bindings for 60+ languages.
- Flecs - Fast and lightweight Entity Component System in C99. Portable, data-oriented, production-ready with no dependencies.
- sokol - Minimal cross-platform standalone C headers for graphics, windowing, audio, and more.
- TIC-80 - Fantasy computer for making, playing, and sharing tiny games. Great for retro 8-bit style development.
- Allegro 5 - Cross-platform library for audio, video, and game development. Supports Android, Windows, macOS, Linux.
Curated Lists
- awesome-c - Curated list of C frameworks, libraries, and resources.
- gamedev_libraries - Collection of open source C/C++ libraries for gamedev, including many single-header libraries.
- awesome-game-engine-dev - Comprehensive list of resources for game engine development.
Graphics Programming
Books & Tutorials
- Computer Graphics from Scratch - Gabriel Gambetta. Build a raytracer and rasterizer from first principles.
- Michael Abrash's Graphics Programming Black Book - Classic text on low-level graphics and optimization by Michael Abrash.
- 3D Math Primer for Graphics and Game Development - F. Dunn & I. Parberry. Essential math for graphics: vectors, matrices, quaternions.
Video Channels
- javidx9 / One Lone Coder - Excellent from-scratch game programming tutorials in C++.
- Writing an ultra-portable game without using an engine - Sos Sosowsky. Building games with minimal dependencies.
SDL
Tutorials
- Lazy Foo' Productions - Beginning Game Programming - Comprehensive SDL2 tutorials for C++ programmers moving from text-based to real-time games.
- Parallel Realities SDL2 Tutorials - Tutorials for 2D shooters, platformers, roguelikes, isometric games, and more.
- StudyPlan.dev SDL2 Course - Learn C++ and SDL by creating hands-on projects inspired by classic retro games.
- SDL2 Game Development (Conan Blog) - Setting up a basic app with keyboard controls, images, and text.
Video Tutorials
- How To Make A Game In C++ & SDL2 From Scratch - Build a 2D roguelike RPG from scratch.
Networking
- Beej's Guide to Network Programming - Beej Jorgensen. The classic guide to socket programming in C.
Graphics APIs
OpenGL
- LearnOpenGL - Comprehensive OpenGL tutorial covering graphics pipeline, transformations, lighting, and advanced techniques.
- open.gl - Modern OpenGL tutorial with clear explanations.
Vulkan
Official & Tutorials
- Vulkan Tutorial - Step-by-step guide to rendering 3D graphics with Vulkan, from setup to debugging.
- Vulkan Guide - Light read that leads to many other useful links, fills gaps about Vulkan nuances.
- Khronos Vulkan Samples - Official collection of Vulkan samples and resources.
Curated Lists
- awesome-vulkan - Curated list of the Vulkan ecosystem including tutorials, libraries, and tools.
Books
- Vulkan Programming Guide - Graham Sellers & John Kessenich. The official guide to learning Vulkan.
- Vulkan Cookbook - Pawel Lapinski. Wide range of graphics and GPU compute methods.
- Mastering Graphics Programming with Vulkan - Marco Castorina & Gabriel Sassone. Modern rendering engine from first principles.
Learning Path
If you haven't done any graphics programming, start with OpenGL. It's easier to learn without being overwhelmed by Vulkan's complexity. Much of your OpenGL knowledge transfers to Vulkan later.
Shaders
- The Book of Shaders - Patricio Gonzalez Vivo & Jen Lowe. Gentle step-by-step guide through fragment shaders.
- Shadertoy - Create and share shaders in the browser.
- Filament PBR Documentation - Best-in-class documentation about high performance PBR lighting shaders.
Game Engines
Godot
Official Resources
- Godot Documentation - Official documentation with tutorials and API reference.
- Godot Tutorials List - Community-curated third-party tutorials.
Curated Lists
- awesome-godot - Official curated list of free/libre games, plugins, add-ons, and scripts.
- godot-powerful - Essential plugins for almost any project.
Notable Plugins (2024-2025)
- GdUnit4 - Godot unit testing framework.
- Godot Doctor - Validation plugin that catches errors before runtime.
- godot-ink - Integration for ink interactive narrative scripting.
- Dialogic - Create RPG-quality dialogue without coding.
Plugin Collections
- Best Godot Plugins 2025 - 15 essential Godot plugins for developers.
- itch.io Godot Plugins - Community-curated collection.
Unity
Architecture & Patterns
- Unite Austin 2017 - Game Architecture with Scriptable Objects - Decouple game code using ScriptableObjects for variables, events, and systems. Example project.
- Game Architecture with ScriptableObjects - More examples of decoupling via ScriptableObjects including input systems.
Tutorials
- What are Interfaces? (C# Basics) - Quick overview of interfaces in Unity context.
- Node-based Dialogue System (GraphView API) - In-depth series on Unity's experimental GraphView API.
Bezier Curves & Splines
- The Beauty of Bezier Curves - Freya Holmer. Definitive explanation of how bezier curves work.
- Procedural Geometry - Freya Holmer. Creating meshes that follow curves.
- CodeMonkey Splines Tutorial - How bezier curves work and how to code your own.
- BGCurves - Free asset for curve editing (complex options, some animation limitations).
- Unity SpriteShapes - Built-in splines for 2D (limited animation support in play mode).
Useful Code Snippets
- Serializable Dictionary - Make dictionaries viewable in the inspector.
- Assign Interfaces in Inspector - Drag & drop interface assignment.
- SerializedPropertyExtensions - Access object properties in PropertyDrawers.
Python Game Development
Frameworks
- Pygame - The classic Python game library built on SDL. Cross-platform, beginner-friendly.
- Pygame CE - Community Edition of Pygame with active development and improvements.
- Python Arcade - Modern Python framework designed for simplicity, ideal for beginners and educators.
- Pyglet - Cross-platform windowing and multimedia library.
- Panda3D - Open-source 3D engine supporting both Python and C++.
- Ursina Engine - Easy-to-use 3D game engine built on Panda3D.
- Ren'Py - Visual novel engine with Python scripting.
Learning Resources
- Making Games with Python & Pygame - Free book with source code for 11 games (Tetris, Snake, etc.).
- Real Python - Game Development - Tutorials and code examples for Python games.
- Pygame Primer - Real Python's introduction to Pygame.
Game Design
Theory & Methodology
- Game Design Pillars - Understanding and defining design pillars.
- The Method - Design methodology video.
- Game Maker's Toolkit - Mark Brown. Excellent video essays on game design.
- No Twinkie Database - Ernest Adams. Learn from classic game design mistakes.
Books
- Game Design Workshop - Tracy Fullerton. Playcentric approach to creating innovative games. Great chapters on prototyping.
- A Theory of Fun for Game Design - Raph Koster. Why games are fun and how to design them.
- The Art of Game Design: A Book of Lenses - Jesse Schell. 100+ perspectives on game design.
GDC Talks & Resources
- GDC Vault - 20 years of Game Developers Conference talks, 12,000+ videos.
- One-Page Designs (GDC 2010) - Stone Librande. Why use one-page designs instead of GDDs.
- GDC Proceedings 1997-2001 - Video Game History Foundation. 300+ classic dev talks.
- Game Developer (formerly Gamasutra) - Articles, postmortems, and GDC summaries.
Architecture & Patterns
Entity Component System (ECS)
Data-oriented programming architecture for game development.
Best Practices
- Ensure entity coherence - Guarantee that created entities will eventually be deleted. Unused entities still consume resources.
- Use events - Elegant way for systems to communicate without coupling.
- Think components, not resources - Even singleton-like data should be components to reduce coupling.
Libraries
- Flecs - Fast, lightweight ECS for C99.
- EnTT - Gaming meets modern C++ with ECS.
- specs - Parallel ECS for Rust.
Resources
- ECS FAQ - Frequently asked questions about ECS.
Art & Assets
Pixel Art
Books
- Pixel Art for Game Developers - Daniel Silber. Comprehensive guide.
- Pixel Logic Book - Visual guide to pixel art fundamentals.
Tutorials
- Pedro Medeiros Tutorials - Professional pixel art tutorials covering animation, shading, color theory, and more.
- Lospec - Palettes, tutorials, and pixel art resources.
Tools
- Aseprite - Professional pixel art editor with animation support.
- Piskel - Free online pixel art editor.
- GraphicsGale - Free animation graphic editor.
Developer Tools
Source Control
Git Workflow
- main - Production-ready code
- develop - Integration branch for features
- feature/* - New feature development
- release/* - Release preparation
- hotfix/* - Emergency production fixes
Resources
- Atlassian Gitflow Workflow - Comprehensive guide to gitflow.
Other Awesome Lists
- Kavex/GameDev-Resources - Comprehensive game development resources.
- AwesomeCppGameDev - C++ game development resources.
- awesome-gamedev - Game development resources and tools.
- awesome-game-engine-dev - Resources for game engine development.
Contributing
Contributions welcome. Add resources via pull request or open an issue.
