This will be collection of tutorials, projects (and examples later on) written only/mainly in C.
If you want some project, site removed from here please do create an issue or pull request for it.
If you want to help me gather resources in one place, please do an issue or pull request.
For the moment this will be my personal collection of tutorials & projects that i have found.
Currently i have included SDL2, OpenGL, Vulkan and raylib as those i am interested in, this might expand in the future.
- https://acry.github.io/SDL2-C.htm
- https://prdeving.wordpress.com/2019/05/30/how-to-write-a-game-engine-in-pure-c-part-1-state-manager/
- https://lazyfoo.net/tutorials/SDL/index.php
- https://wiki.libsdl.org/Tutorials
- https://nullprogram.com/blog/2023/01/08/ - SDL2 common mistakes and how to avoid them
- https://www.youtube.com/watch?v=XfZ6WrV5Z7Y - Creating a Game Loop with C & SDL (Tutorial) by pikuma
- https://www.youtube.com/watch?v=yFLa3ln16w0 - Writing 2D Games in C using SDL by Thomas Lively (CS50)
- https://gigi.nullneuron.net/gigilabs/animations-with-sprite-sheets-in-sdl2/ - Animations with Sprite Sheets in SDL2
- https://gigi.nullneuron.net/gigilabs/sdl2-bounding-box-collision-detection/ - SDL2 Bounding Box Collision Detection
- https://gigi.nullneuron.net/gigilabs/handling-keyboard-and-mouse-events-in-sdl2/ - Handling Keyboard and Mouse Events in SDL2
- https://github.com/tsoding/nothing - A simple platformer about nothing
- https://github.com/nybblesio/ckong - Reproduction of the classic Donkey Kong coin-op arcade using C11 and SDL2.
- https://github.com/chocolate-doom/chocolate-doom - Chocolate Doom is a Doom source port that is minimalist and historically accurate.
- https://github.com/andwn/sdl2-tetris - Tetris clone written in C
- https://github.com/rapiz1/DungeonRush - A opensource game inspired by Snake, written in pure C with SDL
- https://github.com/angeluriot/Minecraft_clone - A simplified version of the famous game Minecraft.
- https://github.com/cuppajoe123/Pong-Hard-Mode - A game inspired by Pong, but with several twists and added functionalities
- https://github.com/dashed/tetris-sdl-c - A toy project implementing a simple tetris clone in C for learning SDL 2.x.
- https://github.com/velorek1/asteroid - Classic Asteroid Game coded with SDL2 in C
- https://github.com/bradharding/doomretro - The classic, refined DOOM source port. For Windows PC.
- https://github.com/deccanengine/DeccanEngine - Deccan Engine is an Open-Source Cross-Platform 2D Game Engine written in C11. Powered by SDL2.
- https://github.com/silvematt/TomentRaycaster 1 Toment Raycaster - A Raycasting Engine written in C and SDL2.
- https://github.com/NVIDIA/Q2RTX - NVIDIA’s implementation of RTX ray-tracing in Quake II
- https://github.com/megamarc/Tilengine - Free 2D graphics engine with raster effects for retro/classic style game development
- https://github.com/Janko-dev/raycasting_c - 2D raycasting in C using SDL2
- https://github.com/superjer/tinyc.games - Tiny C games you can compile and run RIGHT NOW
- https://github.com/vkoskiv/c-ray - c-ray is a small, simple path tracer written in C
- https://github.com/Error916/Chip8_emulator
- https://github.com/angband/angband - A free, single-player roguelike dungeon exploration game
- https://github.com/cxong/cdogs-sdl - Classic overhead run-and-gun game
- https://github.com/sezero/quakespasm - QuakeSpasm -- A modern, cross-platform Quake game engine based on FitzQuake.
- https://github.com/iortcw/iortcw - Merge of ioquake3 features and fixes into RTCW code bases
- https://github.com/olzhasar/sdl-tetris - Tetris game implemented with C and SDL-2
- https://gitlab.com/KilgoreTroutMaskReplicant/1oom - 1oom is a Master of Orion (1993) game engine recreation.
- https://sourceforge.net/projects/abe - A scrolling, platform-jumping, key-collecting, ancient pyramid exploring game, vaguely in the style of similar games for the Commodore+4. The game is intended to show young people (I'm writing it for my son's birthday) all the cool games they missed.
- https://github.com/dorkster/freeblocks - FreeBlocks is a puzzle game with similar gameplay to Tetris Attack.
- https://gitlab.com/osgames/freenukum
- https://github.com/DarkPlacesEngine/darkplaces - DarkPlaces is a game engine based on the Quake 1 engine by id Software. It improves and builds upon the original 1996 engine by adding modern rendering features, and expanding upon the engine's native game code language QuakeC, as well as supporting additional map and model formats.
- https://github.com/dethrace-labs/dethrace - Reverse engineering the 1997 game "Carmageddon"
- https://sourceforge.net/projects/etw/ - Eat the whistle GPL is a football simulation game written in C that works on many platforms (win32/linux/macosx/amigaos/morphos), it uses the SDL framework.
- https://github.com/alxm/faur - My personal C games framework. 2D graphics, sound, inputs, states, ECS, and misc utils for data, files, math, memory, strings, time, and more. Builds for Linux, Windows, Web, and embedded devices.
- https://github.com/JNechaevsky/inter-doom - International Doom is a set of bilingual limit-removing source ports of Doom, Heretic and Hexen. It has numerous optional gameplay and aesthetic enhancements, higher 640x400 and 1280x800 rendering resolutions along with emulated Doom Press Beta and Jaguar Doom game modes.
- https://github.com/riksweeney/edgar - A 2D platform game with a persistent world. When Edgar's father fails to return home after venturing out one dark and stormy night, Edgar fears the worst: he has been captured by the evil sorcerer who lives in a fortress beyond the forbidden swamp.
- https://github.com/pr-starfighter/starfighter - Project: Starfighter is a space shoot 'em up game originally developed by Parallel Realities in 2002, and released in 2003. You assume the role of Chris Bainfield in his quest to put an end to WEAPCO, the weapons corporation which has enslaved the galaxy.
- https://github.com/sergiou87/open-supaplex - Reverse engineering Supaplex
- https://github.com/callaa/luola - A 2D caveflying action game
- https://github.com/nevat/abbayedesmorts-gpl - l'Abbaye des Morts - ported to Linux, Pandora, GCW0, Wii and PSP
- https://github.com/cknave/kevedit - KevEdit ZZT editor
- https://github.com/ioquake/ioq3 - The ioquake3 community effort to continue supporting/developing id's Quake III Arena
- https://github.com/sezero/hhexen - HHexen: Hacked Hexen
- https://github.com/snesrev/smw - Smw
- https://github.com/Drabble/SuperMario - SuperMario in C/SDL
- https://github.com/minirop/Super-Mario-Remake - Super Mario Bros. in C with SDL
- https://github.com/DbpGaming/VisualNovelEngine - A VisualNovel engine written in c, using the sdl library
- https://web.archive.org/web/20140209181347/http://www.arcsynthesis.org/gltut/
- https://www.glprogramming.com/red/chapter01.html
- https://github.com/SonarSystems/Modern-OpenGL-Tutorials
- https://openglbook.com/the-book.html
- https://youtu.be/huMO4VQEwPc - Let's Program Doom - Part 1 by 3DSage
- https://youtu.be/gYRrGTC7GtA - Make Your Own Raycaster Part 1 by 3DSage
- https://lazyfoo.net/tutorials/OpenGL/index.php
- https://github.com/afiskon/c-opengl-text - OpenGL example in pure C: text rendering, textures, etc
- https://github.com/orangeduck/Corange - Pure C Game Engine
- https://github.com/eduard-permyakov/permafrost-engine - An OpenGL RTS game engine written in C
- https://github.com/fogleman/Craft - A simple Minecraft clone written in C using modern OpenGL (shaders).
- https://github.com/c6dy/minecraft-c - Minecraft clone made with C and OpenGL
- https://github.com/ec-/Quake3e - Improved Quake III Arena engine
- https://github.com/tsherif/space-shooter.c - A cross-platform, top-down 2D space shooter written in C using only platform libraries.
- https://github.com/MarilynDafa/Bulllord-Engine - lightspeed lightweight elegant game engine in pure c
- https://github.com/etlegacy/etlegacy - ET: Legacy is an open source project based on the code of Wolfenstein: Enemy Territory which was released in 2010 under the terms of the GPLv3 license.
- https://github.com/bentorkington/sf2ww - A clone of Street Fighter 2 World Warrior, written from scratch in C + OpenGL
- https://github.com/quou/openmv - An open source metroidvania engine.
- https://github.com/FabianHahn/shoveler - A minimalistic OpenGL 3D game engine written in C
- https://github.com/knicked/CCraft - A Minecraft clone written in C
- https://github.com/Mikepicker/opengl-racing - An OpenGL game and simple game engine, written in C99
- https://github.com/yui0/catgl - a cross-platform 3D graphics engine
- https://github.com/loopj/opengl-racing-game - Simple OpenGL racing game I made back in 2001, just rediscovered the dusty zip file
- https://github.com/lowlevel86/OpenGL-3D-Adventure-Game-Engine - A minimalistic super mario 64 like 3D game engine.
- https://github.com/TheComet/lightship-dbp - A cross-platform multi-player 3D arcade game implemented entirely in plain C and OpenGL.
- https://github.com/goodpaul6/Wolf3D - Modern OpenGL clone of Wolfenstein 3D (1992).
- https://github.com/ArtemisChief/Heracles - a simple 2D Graphic Physics Engine based on OpenGL 3.3
- https://github.com/WHKnightZ/OpenGL_Cube_Snake - Game Cube Snake
- https://github.com/justinmeiners/shamans - A 3D turn-based strategy game for the iPad.
- https://github.com/joeycollins/EvoC2D - Evolution simulator written in C and OpenGL
- https://github.com/RosieSapphire/glfw-3d [Repository deleted from Github]
- https://github.com/victor-borges/aim-trainer - Joguinho de treinar mira feito em OpenGL
- https://github.com/yalue/l_system_3d - A library for drawing 3D L-systems using plain C, with OpenGL and GLFW.
- https://github.com/Denzy7/dengine - Simple 3D Graphics Engine
- https://github.com/licktheroom/warship-opengl - A textureless navel combat game.
- https://github.com/rfmineguy/firefly-lib - This library is intended to be something you can use to make a game.
- https://github.com/Chloekkk/cub3D - 3D game using raycasting DDA algorithm
- https://github.com/Silviculturalist/OpenForestViz - Forest Visualisation with OpenGL. Experimental. For learning. Can change at any time.
- https://github.com/nusbog/Basilisk - Rendering engine developed in C with OpenGL
- https://github.com/RohanFredriksson/WaffleEngine - An OpenGL 2D game engine built with GLFW in C.
- https://github.com/MrFrenik/gunslinger/ - C99, header-only framework for games and multimedia applications
- https://github.com/NetHack/NetHack - Official NetHack Git Repository
- https://github.com/rswinkle/PortableGL - An implementation of OpenGL 3.x-ish in clean C
- https://github.com/xtreme8000/BetterSpades - BetterSpades, an Ace of Spades client targeted at low end systems (GL/ES 1.1). Runs on your grandmother's rig!
- https://github.com/GameEngineering/EP01_SandSim - Inspired by Noita, this is a simple "falling sand" simulation to demonstrate the mechanics and ideas behind Cellular Automata.
- https://github.com/scottcgi/Mojoc - A cross-platform, open-source, pure C game engine for mobile game.
- https://github.com/jakehffn/lesser-doom - Doom-style render engine experiment in C
- https://github.com/kraflab/dsda-doom - This is a fork of prboom+ with extra tooling for demo recording and playback, with a focus on speedrunning.
- https://sourceforge.net/projects/dtris - 4D-TRIS is an alteration of the well-known Tetris game. The game field is extended to a 4D field, which has to filled up by the gamer with 4D hyper cubes. The software is written in C with OpenGL and GLUT
- https://github.com/aperture-software/colditz-escape - Amiga's "Escape From Colditz" ported to Windows, Linux, macOS and PSP
- https://github.com/yquake2/yquake2 - The Yamagi Quake II client
- https://github.com/FNA-XNA/FNA3D - FNA3D - 3D Graphics Library for FNA
- https://github.com/Rinnegatamante/vitaGL - openGL wrapper for PSVITA.
- https://github.com/n64dev/cen64 - Cycle-Accurate Nintendo 64 Emulator
- https://github.com/Falconerd/engine-from-scratch - 2D platformer + shooter engine and game written in C
- https://github.com/johnpayne-dev/MinecraftC - A Raytraced Minecraft Classic 0.0.30a port to C
- https://github.com/solenum/exengine - A C99 3D game engine
- https://github.com/taisei-project/taisei - A free and open-source Touhou Project fangame
- https://github.com/OpenSWE1R/openswe1r - An Open-Source port of the 1999 Game "Star Wars Episode 1: Racer"
- https://github.com/cdev-tux/q3lite - Q3lite, an OpenGL ES port of Quake III Arena for embedded Linux systems.
- https://github.com/dreamchess/dreamchess - DreamChess - OpenGL Chess Game
- https://github.com/KellerMartins/PixelVoxels - A "Pixelart like" voxel engine
- https://github.com/ultitech/GLMaze - GLMaze is a Windows 95 Maze screensaver clone written in C using OpenGL.
- https://github.com/justinmeiners/c-craft - Minecraft clone written in C.
- https://github.com/lcthums/C3D - OpenGL 3D Game Engine written in C
- https://github.com/zorgiepoo/Sky-Checkers - Blast off enemies and be the last one standing!
- https://github.com/renehorstmann/Pixelc - An opensource tile/sprite editor in C, using SDL2 and OpenGL, also running on Android and in the web
- https://github.com/renehorstmann/some - Sdl2 OpenGL Mini Engine.
- https://github.com/tristanpenman/asteroids - Asteroids clone written in old-school C. Ported to JS using Emscripten, and currently being ported to N64
- https://github.com/Vespidian/GameFramework - 3D game / software engine built upon SDL2 and OpenGL
- https://github.com/zaps166/NFSIISE - Need For Speed™ II SE - Cross-platform wrapper with 3D acceleration and TCP protocol!
- https://github.com/shinyquagsire23/OpenJKDF2 - A cross-platform reimplementation of JKDF2 in C
- https://github.com/atsb/Doom64EX-Plus - An improved modern version of Doom64EX.
- https://github.com/mdsteele/azimuth - A metroidvania with vector graphics
- https://github.com/UnknownShadow200/ClassiCube - Custom Minecraft Classic 0.30 / ClassiCube client written in C from scratch (formerly ClassicalSharp in C#)
- https://github.com/Interrupt/systemshock - Shockolate - A minimalist and cross platform System Shock source port.
- https://github.com/zturtleman/spearmint - Spearmint — an updated id Tech 3 engine for continuing the classics and creating new games.
- https://github.com/simple2d/simple2d - Simple, open-source 2D graphics for everyone
- https://renderdoc.org/vulkan-in-30-minutes.html
- https://web.engr.oregonstate.edu/~mjb/vulkan/
- https://github.com/ShabbyX/vktut - (!!OUTDATED!!) Shabi's Vulkan Tutorials
- https://www.youtube.com/playlist?list=PLv8Ddw9K0JPg1BEO-RS-0MYs423cvLVtj - Vulkan Game Engine Series playlist by Travis Vroman
- https://github.com/Sl3dge78/vulkan - Simple Lightweight 3D Game Engine
- https://github.com/Novum/vkQuake - Vulkan Quake port based on QuakeSpasm
- https://github.com/ec-/Quake3e - Improved Quake III Arena engine
- https://github.com/kennyalive/Quake-III-Arena-Kenny-Edition - The cradle of Quake III Arena
- https://github.com/gheshu/pim - Pim is a little "zen garden" for tinkering around, for my own personal use.
- https://github.com/PaoloMazzon/Vulkan2D - 2D renderer written in C utilizing Vulkan
- https://github.com/suijingfeng/vkOpenArena - Old games never die, they just fade away...
- https://github.com/fknfilewalker/Quake-III-Arena-R - Vulkan RTX Path Tracing Implementation for Quake III
- https://github.com/felipeagc/vkrender - Vulkan renderer / game engine (Public archive)
- https://github.com/cfnptr/uran - Multi-platform game engine written in C
- https://github.com/kondrak/vkQuake2 - id Software's Quake 2 v3.21 with mission packs and Vulkan support (Windows, Linux, macOS, FreeBSD, Raspberry Pi 4)
- https://www.raylib.com/examples.html
- https://www.youtube.com/watch?v=HPDLTQ4J_zQ - How to compile Raylib from scratch and set up your first projects (Windows / C ) in 15 minutes by Rudy Faile
- https://www.youtube.com/watch?v=JE7F7DLEjbo - Raylib tutorial | Episode 1 | Setting up Raylib and Creating a Window by SkyVaultGames
- https://www.youtube.com/watch?v=-F6THkPkF2I - Getting Started with Raylib - C Tutorial by Andrew Hamel Codes
- https://github.com/raysan5/raylib-intro-course - A small raylib introductory course developing a simple game
- https://github.com/Pakz001/Raylib-Examples - My collection of raylib code examples - For learning the C language with 2D and 3D games.
- https://www.youtube.com/watch?v=kBky9_X8j3Y - How to create a game with 'raylib' in C by victor fisac fuentes
- https://www.youtube.com/watch?v=p1VQuMziTek - Coding a synthesizer in C (episode #1) by locogame
- https://github.com/victorfisac/Physac - 2D physics header-only library for videogames developed in C using raylib library.
- https://github.com/Rabios/LINES - Very hard game about avoiding a lot of moving lines,Written in C using raylib library
- https://github.com/xav1t0/Clock - Click Made With raylib in C
- https://github.com/albertnadal/Wolf3DClone - Implementation of the "Wolfenstein 3D"(1992) game engine from scratch using vanilla C and raylib
- https://github.com/PixelPhobicGames/Chrome-Dino-game-ripoff- - Chrome Dinosaur game written in c
- https://github.com/jubalh/raymario - Super Mario Bros. remake
- https://helderman.github.io/htpataic/htpataic01.html - How to program a text adventure in C
- https://www.youtube.com/playlist?list=PLT6WFYYZE6uLMcPGS3qfpYm7T_gViYMMt - Learn Videogame Programming in C playlist by VertoStudio3D
- https://www.youtube.com/watch?v=-_HxKDNuCqA - Header-Only Game Framework in C by John Jackson
- https://www.youtube.com/watch?v=9pnEBa4cy5w - Pixel Perfect Collision Detection in C by Nick Walton
- https://github.com/camc/chess - A C11 chess engine & GUI
- https://github.com/snesrev/zelda3 - A reimplementation of Zelda 3.
- https://github.com/slembcke/Chipmunk2D - A fast and lightweight 2D game physics library.
- https://github.com/erkkah/tigr - TIGR - the TIny GRaphics library for Windows, macOS, Linux, iOS and Android.
- https://github.com/domeengine/dome - A lightweight game development environment where games can be written in Wren
- https://github.com/rxi/microui - A tiny immediate-mode UI library
- https://github.com/syoyo/tinyobjloader-c - Header only tiny wavefront .obj loader in pure C99
- https://github.com/datenwolf/linmath.h - A small library for linear math as required for computer graphics
- https://github.com/zpl-c/librg - Single-header cross-platform world replication in pure C99.
- https://github.com/n64decomp/mk64 - A speedy Mario Kart 64 decompilation, brought to you by the cousin of a tame racing driver.
- https://github.com/trevarj/dotris - A mini Tetris clone made with dots
- https://github.com/edubart/sokol_gp - Minimal modern efficient cross platform 2D graphics painter in C
- https://github.com/id-Software/DOOM - DOOM Open Source Release
- https://sourceforge.net/projects/duelcommander - Duel Commander is a turn based command line fighting game for Windows and Unix-like systems.The game is completely text based with an easy-to-use interface.
- https://github.com/jwm-art-net/XorCurses - A remake of Xor by Astral Software for Linux, using Ncurses.
- https://github.com/smcameron/wordwarvi - Word War vi is a retro-styled old school side scrolling shooter reminiscent of Defender or Scramble, with an "Emacs vs. vi" theme.
- https://github.com/vicgeralds/vitetris - Classic multiplayer tetris for the terminal
- https://github.com/scandum/tintin - TinTin++, aka tt++, is an extensible console MUD client.
- https://github.com/Dotz0cat/farmd - half of a farm game
- https://github.com/FoxdieTeam/mgs_reversing - Metal Gear Solid PSX reimpl repo
- https://github.com/erincatto/box2c - Library for 2D Game Physics
- https://github.com/CTR-tools/CTR-ModSDK - ModSDK - a modding toolkit to create mods for Crash Team Racing in C.
- https://github.com/vitasdk/vita-headers - This repository contains all Vita headers needed for development.
- https://github.com/kcat/dsoal - A DirectSound DLL replacer that enables surround sound, HRTF, and EAX support via OpenAL Soft
- https://github.com/zeldaret/tmc - Decompilation of The Legend of Zelda: The Minish Cap (USA/JP/EU)
- https://github.com/notaz/picodrive - Fast MegaDrive/MegaCD/32X emulator
- https://github.com/libretro/libretro-common - Reusable coding blocks useful for libretro core and frontend development, written primarily in C. Permissively licensed.
- https://github.com/ekeeke/Genesis-Plus-GX - An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
- https://github.com/profi200/open_agb_firm - open_agb_firm is a bare metal app for running GBA homebrew/games using the 3DS builtin GBA hardware.
- https://github.com/Xeeynamo/sotn-decomp - Decompilation of Castlevania: Symphony of the Night
- https://github.com/devkitPro/3ds-examples - Examples for 3DS using devkitARM, libctru, citro3d and citro2d
- https://github.com/emu-russia/UltraHLE - UltraHLE source code
- https://github.com/pmret/papermario - Decompilation of Paper Mario
- https://github.com/fte-team/fteqw - This is the official GitHub mirror for the FTEQW project.
- https://github.com/devkitPro/3ds-hbmenu - The 3DS Homebrew Menu (∩ ͡° ͜ʖ ͡°)⊃━☆゚
- https://github.com/zeldaret/af - Decompilation of Animal Forest
- https://github.com/mariopartyrd/marioparty4 - A work-in-progress decompilation of Mario Party 4.
- https://github.com/NathanGuilhot/VNES_Engine - a visual novel engine in C for the NES
- https://github.com/floalazais/VisualNovelInterpreter - Visual Novel script language and interpreter inspired by Ren'Py.
- https://github.com/BeepLoveKarki/wheel-of-fortune - A simple casino wheel of fortune game designed using purely C language!!!
- https://github.com/ACreTeam/ac-decomp - Decompilation in progress of Animal Crossing for the Nintendo GameCube.