Awesome Gamedev
A curated list of good stuff related to the development of games. This list contains only free software for code, sellers who aren't evil for physical resources, and free cultural works for assets.
I have also provided a list of resources which are not free, and the reasons why, in the associated Wall of Shame file.
This is released under a Creative Commons-Attribution-ShareAlike license,
version 4.0. You can find its text in the LICENSE.md
file.
This project is part of Peers - a community for growing freedom. Support us today!
Table of Contents
- Assorted Assets
- Audio
- Communities
- Engines
- Math
- Fonts
- Games
- Graphics
- Graphics Tools
- Learning Resources
- Programming Frameworks and Libraries
- Utilities
Assorted Assets
This contains collections of miscellaneous assets of different kinds.
- Openclipart - A giant collection of clip art. CC0.
- OpenGameArt.org - A large collection of art intended for game development. Various licenses, including free ones.
- Wikimedia Commons - A collection of various assets of all kinds. Various licenses, all CC or free-er.
- Open Source Game Clones - A collection of open source videogames that are clones of old games.
Audio
Editors
- Ardour - The digital audio workstation. GNU GPLv2 or later.
- Audacity - Software for recording and editing sounds. GNU GPLv2 or later.
- Beast - Music composition and modular synthesis software. GNU LGPLv3 or later.
- Hydrogen - An advanced drum machine, with a free drum kit included. GNU GPLv2 or later.
- LMMS - A digital audio workstation. GNU GPLv2 or later.
- MilkyTracker - Multi-platform application for creating .mod and .xm module files. GNU GPLv3 or later.
- Musagi - A large and sophisticated music editor. Expat.
- MuseScore - A music notation program capable of generating engraved scores and audio and MIDI files. GNU GPLv2 or later.
- rFXGen - a tool to generate sound waves procedurally. zlib
General
- GameSounds.xyz - Royalty free music and sounds. Various licenses, including free ones.
- Musical Artifacts - A collection of music-related everything. Various licenses, all CC.
Music
- CC0 Music - A collection of music. CC0.
- ccMixter - A site for collaborating with musicians. Various licenses, all CC.
- Creative Commons on Bandcamp - Everything on Bandcamp under a CC-license. Various licenses, all CC.
- Creative Commons on SoundCloud - A Creative Commons collection on SoundCloud. Various licenses, all CC.
- Free Music Archive - An archive of free music. Various licenses, all CC.
- Incompetech - An artist providing royalty free music of all genres. CC-BY-3.0.
- Jamendo - A site providing music licensed under the Creatives Commons. Various licenses, all CC.
- LibreFM - A big collection of stations, with fully-free music. Licenses allow downloads and reuse.
- Musopen - A site dedicated to copyright-free (and culturally free) music. Various licenses, all copyright-free (varies by piece).
- Open Music Archive - Digitized out-of-copyright sound recordings. Public domain in the UK.
- Silverman Sound Studios' Music Tracks - A bunch of musical tracks. CC-BY-4.0.
Sound Effects
- Audioaugust - A collection of sound effects, originally used for a game. CC-BY-4.0.
- Freesound.org - A collection of CC-licensed sound effects. Various licenses, all CC.
- jsfxr - A tool like sfxr-sdl but in ECMAScript. Unlicense.
- Opsound - A collection of assorted sounds. CC-BY-SA-3.0.
- sfxr-sdl - A tool to generate sounds. Expat.
- SoundBible's Royalty-free section - A collection of CC or public-domain-licensed sounds. Various licenses, all CC or public domain.
Communities
Gamedev can be a lonely job, and it also can have a steep learning curve. These communities are designed to assist you in terms of camaraderie, expert knowledge and resources.
- /r/freeculture - Part of the Free Culture Reddit Community. A general free-culture-focused community.
- /r/FreeGaming - Part of the Free Culture Reddit Community. Designed specifically for discussion of free culture games.
- /r/freesoftware - A general free-software-focused community.
- /r/godot - A community for discussion and support in development with the Godot game engine.
- FreeGameDev Forums - A forum community for all things free-game-development-related.
- FreeGaming - A freepo.st community dedicated to free gaming.
- Libregamewiki - The free gaming encyclopedia.
Engines
These are full-blown game engines.
General
- AGS - Implemented in C++. Scripted using its own scripting language. Designed for adventure games. Artistic License 2.0.
- AlephOne - Implemented in C++. Designed for FPS games. GNU GPLv3 or later.
- AnKi 3D - Implemented in C++. 3-clause BSD.
- Arianne - Implemented in Java. Includes a multiplayer game framework. GNU GPLv2 only.
- Azul3D - Implemented in Go. 3-clause BSD.
- Backbone - Implemented in ECMAScript. Expat.
- BananaBread - Implemented in ECMAScript. A port of Sauerbrauten. zlib.
- Castle Game Engine - Implemented in ObjectPascal. GNU LGPLv2 or later.
- Chili Source - Implemented in C++. Expat.
- Cocos2d - Implemented in Python. 3-clause BSD.
- Cocos2d-android - Implemented in Java. 3-clause BSD.
- Cocos2d-X - Implemented in C++. Has ECMAScript, Lua and C++ scripting. Expat.
- DarkPlaces - Implemented in C. GNU GPLv2 or later.
- delta3d - Implemented in C++. Also useful for simulations. GNU LGPLv2 or later.
- Doomsday - Implemented in C++. GNU GPLv2 or later.
- Duality - Implemented in C#. Expat.
- EasyRPG - Implemented in C++. Designed for JRPG-style games. GNU GPLv3 or later.
- ENIGMA - Implemented in C++. Has its own scripting language and GUI editor. GNU GPLv3 or later.
- FIFE - Implemented in C++. Has Python scripting. Designed for isometric games. GNU LGPLv3 or later.
- Fillwave - Implemented in C++. Has an easy graphics API. FreeBSD.
- Flambe - Implemented in Haxe. Designed for 2D games. Expat.
- FLARE - Implemented in C++. Designed for action RPGs. GNU GPLv3 or later.
- Fluxus - Implemented in C++. Designed for livecoding worlds. GNU GPLv2 or later.
- Free Hero Mesh - Implemented in C. Designed for turn-based grid-based 2D puzzle games. Public domain.
- gamekit - Implemented in C++. Scripted using C++, Lua or logic blocks. Expat.
- GamePlay - Implemented in C++. Apache2.0.
- GDevelop - Implemented in C++. Targeted at non-programmers. Expat (IDE is GNU GPLv3 only.)
- GNU FreeDink - Implemented in C++. GNU GPLv3 or later.
- Godot - Implemented in C++. Has its own scripting language. Expat.
- Gosu - Implemented in C++. has a Ruby interface. Expat.
- Helm - Implemented in Haskell. Expat.
- HERITAGE - Implemented in ECMAScript. Designed for text adventure games. GNU GPLv3 or later.
- Horde3D - Implemented in C++. EPLv1.
- ioquake3 - Implemented in C. A fork of the Quake III Arena engine. GNU GPLv2 or later.
- Irrlicht - Implemented in C++. Has a range of bindings. zlib.
- JMonkey - Implemented in Java. 3-clause BSD.
- JNGL - Implemented in C++. Designed for 2D games. zlib.
- kengine - The Koala engine is a type-safe and self-documenting implementation of an Entity-Component-System (ECS), with a focus on runtime extensibility and compile-time type safety and clarity. MIT
- KivEnt - Implemented in Python. Expat.
- LambdaHack - Implemented in Haskell, Designed for roguelikes. 3-clause BSD.
- litiengine - Implemented in Java, Designed for 2D games. MIT
- lycheejs - Implemented in ECMAScript. Designed for construction of HTML5 or native SDL games. Expat.
- Maratis - Implemented in C++. Has Lua for scripting. GNU GPLv2 or later.
- Moai - Implemented in C++. Has Lua for scripting. CPAL.
- OctaForge - Implemented in C++. Has LuaJIT for scripting. Fork of Sauerbraten. NCSA Open Source License.
- Ogre3D - Implemented in C++. Has a range of bindings. Expat.
- OHRRPGCE - Implemented in BASIC. Designed for 8/16-bit-like games like Final Fantasy. Has custom plotscript language for advanced scripts. An oldschool RPG Maker alternative. GNU GPLv2 or later.
- Orx - Implented in C. zlib.
- Oxygine - Implemented in C++. Expat.
- Panda3D - Implemented in C++. Has a Python interface. 3-clause BSD.
- PlayN - Implemented in Java. Apache2.0.
- Processing - Implemented in Java. Has its own scripting language. GNU GPLv2 only.
- Processing.js - Implemented in ECMAScript. Has its own scripting language. Expat.
- qfusion - Implemented in C++. Designed for FPS games. GNU GPLv2 or later.
- Ren'Py - Implemented in Python. Designed for visual novels. Expat, with some parts under GNU LGPLv3 only.
- SGE - Implemented in Python. Designed for 2-D games. GNU GPLv3
- SLUDGE - Implemented in C++. Has its own scripting language. GNU LGPLv3 only with the GTK Dev Kit GNU GPLv3 or later.
- Sly - Implemented in Guile. Uses functional reactive programming. GNU GPLv3 or later.
- Solarus - Implemented in C++. Has a Lua API and game editor. Designed for Action-RPGs. GNU GPLv3 or later.
- Spearmint - Implemented in C. Designed for FPS games. GNU GPLv3 or later.
- Spring - Implemented in C++. Designed for RTS games. GNU GPLv2 or later.
- Torque2D - Implemented in C++. Has its own scripting language. Expat.
- Torque3D - Implemented in C++. Has its own scripting language. Expat.
- Turbulenz - Implemented in ECMAScript. Expat.
- Urho3D - Implemented in C++. Scripted using AngelScript or Lua. Expat.
- voxeliq - Implemented in C#. Designed for voxel world games. MS-PL.
HTML5
Unless stated otherwise, these engines are implemented in ECMAScript.
- Akihabara - Designed for 8-bit and 16-bit games. Expat.
- Babylon.js - Apache2.0.
- Cocos2d-html5 - Expat.
- Coffee2D - Implemented in CoffeeScript. Expat.
- Crafty.js - Expat.
- Cube - Designed for voxel games. WTFPLv2.
- kiwi.js - Expat.
- melonJS - Expat.
- panda.js - Expat.
- Phaser - Expat.
- PlayCanvas - Expat.
- PuzzleScript - Expat.
- Sprig - MIT.
- Superpowers - ISC.
Physics
- ammo.js - Implemented in ECMAScript. A port of Bullet. 3-clause BSD.
- Box2D - Implemented in C++. Designed to simulate rigid body physics. zlib.
- Bullet - Implemented in C++. General physics engine. zlib.
- LiquidFun - LiquidFun is a 2D rigid-body and fluid simulation C++ library for games based upon Box2D. zlib.
- Matter.js - Implemented in ECMAScript. Physics engine for HTML5. Expat.
- ODE - Open Dynamics Engine; implemented in C++. Designed to simulate rigid body dynamics. Original BSD.
- Oimo.js - Implemented in ECMAScript. Expat.
- Physics.js - Implemented in ECMAScript. Expat.
Math
- Hypatia - A pure-C math library for 2D/3D graphics (matrix, vector, quaternion) Seeks to be close to C89/C90 compliant for portability. MIT.
Fonts
- Google Fonts - A collection of freely-licensed fonts. OFL.
- Open Font Library - A collection of freely licensed fonts. OFL.
- ParaType Public Fonts for Minority Languages of Russia - Three freely-licensed fonts with support for many character sets. ParaType Free Font Licensing Agreement.
- The League of Moveable Type - A collection of fonts with high standards. OFL.
Games
These are meant to serve as examples for your own work, or foundations to built upon.
I have endeavoured to provide both code and asset licenses here - if no asset license is listed, assume it to be non-free or questionably-free. These entries may be removed upon clarification.
C
- 2048-cli - A CLI version of 2048. Expat (code), no significant assets.
- 2048-in-terminal - A CLI version of 2048. Expat (code), no significant assets.
- Craft - A 3D voxel world game. Expat (code and assets).
- Curse of War - A fast-paced strategy game. GNU GPLv3 or later (code and assets).
- The Legend of Edgar - A 2D platform game with a persistent world. GNU GPLv2 or later (code), various free culture licenses (assets).
- FallingTime - An arcade game. GNU GPLv2 or later (code), various CC (no NC or ND) (assets).
- Taisei - Expat (code and assets), OFL only for one font.
- Turtle Arena - Third-person action game. GNU GPLv3 or later (code), various free culture licenses (assets).
- Wizznic - A puzzle game. GNU GPLv3 or later (code and assets).
C++
- Battle for Wesnoth - A turn-based strategy game. GNU GPLv2 or later (code and assets).
- Blackvoxel - A voxel exploration and crafting game. GNU GPLv3 or later (code and assets).
- Clonepoint - GNU GPLv3 or later (code), various CC (no NC or ND) (assets).
- colobot - A robot-based strategy game. GNU GPLv3 or later (code and assets).
- Egooboo - A 3D dungeon crawler in the spirit of NetHack. GNU GPLv3 or later(code and assets).
- Endless Sky - 3D space exploration game. GNU GPLv3 or later (code), various CC (no NC or ND) (assets).
- Freeminer - A 3D voxel world game. GNU GPLv3 or later (code), CC-BY-SA-3.0 (assets).
- MegaGlest - A 3D RTS game. GNU GPLv3 or later (code), CC-BY-SA-3.0 (assets).
- Minetest - A 3D voxel world game. GNU LGPLv2 or later (code), CC-BY-SA-3.0 (assets).
- Minilens - A cute puzzle platformer starring a cleaning robot on post-Apocalyptic Earth. Made with the Godot engine. GNU GPLv3 or later (code), CC-BY-SA-3.0 (assets).
- Monster 1 - A JRPG-style game. 3-clause BSD (code and assets).
- Monster 2 - A JRPG-style game. zlib (code and assets).
- OpenClonk - A jump'n'run/settlement/combat game. ISC (code), CC-BY-SA-3.0 at most but mostly CC-BY-3.0 (assets).
- OpenDungeons - A version of Dungeon Keeper. GNU GPLv3 or later (code), various free culture licenses (assets).
- Return of Dr. Destructo - An adventure game. Expat (code), CC-BY-SA-4.0 (assets).
- SavageWheels - A car game. Expat (code and assets).
- Seven Kingdoms: Ancient Adversaries - A strategy game. GNU GPLv2 or later (code and assets).
- SuperTux - A platformer. GNU GPLv3 or later (code), various free culture licenses (assets).
- SuperTuxKart - A 3D racing game. GNU GPLv3 or later (code), various free licenses (assets). (code), CC-BY-SA-4.0 (assets).
- The Powder Toy - A sandbox falling sand physics game. GNU GPLv3 or later (code and assets).
- Γbergame - A multiplayer, casual FPS game. Expat (code), CC0 (assets).
- Warzone 2100 - An RTS sci-fi game. GNU GPLv2 or later (code), various free culture licenses (assets).
- Noiz2sa - A classical vertical arcade shooter with an abstract theme and matching electronic music. 2-clause BSD (code), no significant assets.
CoffeeScript
- coffee-snake - A version of Snake. GNU GPLv3 or later (code), no significant assets.
- Zop - A 'connect the dots' game. Expat (code), no significant assets.
- 2014's ABA Games - Kenta Cho has created 50 games in 2014. (git). MIT, no assets.
Dart
- Hauberk - A roguelike. Expat (code), no significant assets.
- Pop, Pop, Win! - A version of Minesweeper. 3-clause BSD (code and assets).
ECMAScript
- 2048 - The original, classic casual game. Expat (code and assets).
- A Dark Room - A text adventure game. MPLv2 (code), no significant assets.
- Blockrain.js - A version of Tetris. Expat (code and assets).
- BrowserQuest - An MMORPG. MPLv2 (code), CC-BY-SA-3.0 (assets).
- Clumsy Bird - A version of Flappy Bird. Expat (code and assets).
- Drunken Viking - A top-down puzzle game. Expat (code), various CC (no NC or ND) (assets).
- Freeciv-web - A port of Freeciv. GNU GPLv2 or later and GNU AGPLv3 or later (code and assets).
- ludum-dare-28 - CC-BY-4.0 (code and assets).
- Masonry-JavaScript-Tetris-Clone - Exactly what it says on the tin. Expat (code and assets).
- Parity - Expat (code), no significant assets.
- Particle Clicker - An incremental game that teaches the history of high-energy particle physics. Expat (code and assets).
- Prism - A colour-matching game. Expat (code), no significant assets.
- Roguish - A roguelike. 3-clause BSD (code and assets).
- Snake - A version of Snake. Expat (code), no significant assets.
- Sorades 13k - A scrolling shooter. CC-BY-SA-3.0 (code and assets).
- Space Crusade - A space game. Expat (code), CC0 (assets).
- Space Shooter - Simple space shooting game. Expat (code).
- Squirts - Expat (code and assets).
Java
- epic-inventor - An indie, side-scrolling RPG. GNU GPLv2 only (code and assets).
- Ned et les maki - A 3D puzzle game. Expat (code), FALv1.3 (assets).
- Newton Adventure - A puzzle game. 3-clause BSD (code), various CC (no NC or ND) (assets).
- PuzzleGame - A slider puzzle game. Uses Android port of Cocos2D engine. Expat (code and assets).
- Terasology - A 3D voxel world game. Apache2.0 (code and assets).
Other/Multiple
- Cataclysm: Dark Days Ahead - A roguelike set in a post-apocalyptic world. CC-BY-3.0 (code), CC-BY-SA-3.0 (assets).
- DynaDungeons - A version of Bomberman. Uses Godot engine. GNU GPLv3 or later (code), various CC (no NC or ND) (assets).
- FLARE - A dark fantasy 2D RPG. Uses FLARE engine. GNU GPLv3 or later (code), CC-BY-SA-3.0 (assets).
- Pioneer - A space exploration game. Implemented in C++ and Lua. GNU GPLv3 only (code), CC-BY-SA-3.0 (assets).
- Source of Tales - An MMORPG. Scripted using Lua (implementation language unclear). GNU GPLv3 or later (code), CC-BY-SA-3.0 and GNU GPLv3 (assets).
- Tanks of Freedom - Pixed-based turn-based strategy. Uses Godot engine. Expat (code and assets).
- Teeworlds - Implemented in C and C++. 3-clause BSD (code), CC-BY-SA-3.0 (assets).
- Zero-K - An RTS game. Uses Spring engine. GNU GPLv2 or later (code and assets).
- Haskell Games - An index of Games written in Haskell. Various licenses.
Python
- Bullet dodger - A fun and challenging mouse game where you must dodge bullets. GNU GPLv3 only (code), various CC (no NC or ND) (assets).
- Hexoshi - Free-roaming Metroid-like. GNU GPLv3 only (code), various CC (no NC or ND) (assets).
- Mystic Mine - Expat (code and assets).
- ReTux - A platformer. GNU GPLv3 only (code), various free culture licenses (assets).
- RogueBox Adventures - A mix of classical roguelike and sandbox game. GNU GPLv3 or later (code), various free culture licenses (assets).
- Unknown Horizons - A real-time strategy simulation game. GNU GPLv2 or later (code), CC-BY-SA-3.0 (assets).
Graphics
Assorted
This is a section for everything else that doesn't fit in some other graphics category.
- Blender 3D Model Repository - User-submitted 3D models made with Blender. Various licenses, including free ones.
- Blend Swap - A community of Blender artists and their work. Various licenses, all CC.
- CanTree - Free online tree generator. Generates PNG files. Expat.
- Kator Legaz 3D Models - 3D Models by of various subjects. CC-BY-3.0.
- mocapdata.com - A library of motion capture data. Various licenses, including free ones.
- Poly Pizza - Thousands of free low poly 3D models licensed under CC0 and CC-BY-3.0
- Yobi3D - A search engine for 3D models that aims to display license information when possible. Various licenses, including free ones.
Collections
This category contains any 'grab-bags' of different kinds of art assets.
- Free stuff by 7Soul1 - A collection of various game-related assets. Available in PNG. Public domain.
- openclipart - A collection of various clip art. Available in PNG. Public domain.
- Remastered Tyrian graphics - A collection of pixel spreadsheets for a top-down shooter. CC0.
- Vecteezy - A collection of vector art. Various Creative Commons licenses.
- ZipUp Free Game Elements - A collection of various graphical elements. Custom attribution license, free.
Icons
- FatCow - A set of 3900 colour icons in 16x16 and 32x32 pixel format. CC-BY-3.0.
- Font Awesome - A large set of vector icons. CC-BY-4.0.
- Game-icons.net - A constantly-growing collection of black-and-white icons. Available in SVG or PNG. CC-BY-3.0.
- IconFontCppHeaders - C and C++ headers for icon fonts Font Awesome, Material Design Icons and Kenney Game Icons. zlib
- Kenney Game Icons - A font pack specifically designed for (browser) games and other gaming related websites/projects. CC0.
- Material Design Icons - An official icon set from Google following specific guidelines. Apache2.0.
- Tango Icon Library - An icon set project with a goal to create a consistent user interface. Public domain.
Sprites
- LPC Spritesheet Character Generator - A pixel-art RPG-style character spritesheet generator. Arts are dual licensed : GNU GPLv3 and CC-BY-SA3
- SpriteLib - A big collection of sprites. Available in PNG. CPL 1.0.
Graphics Tools
Animation
- Synfig Studio - A 2D animation tool. GNU GPLv2 or later.
Bitmap Compression
- FLIF - Reference implementation of the Free Lossless Image Format. Comes with additional tools. GNU GPLv3 only.
- pngquant - A command-line utility for lossy compression of PNG images. Has various front-ends available. FreeBSD.
- Trimage - A cross-platform tool for losslessly optimizing PNG and JPG files. Expat.
Editors
- Blender - A 3D modelling and rendering editor. GNU GPLv2 or later.
- GIMP - The GNU Image Manipulation Program. Designed for photo retouching, image composition and similar tasks. GNU GPLv3 or later.
- GrafX2 - A bitmap paint program specialized for 256-color drawing. GNU GPLv2 only.
- Hme - A program for creating, manipulating and viewing height maps. GNU GPLv2 or later.
- Inkscape - A vector image editing program. GNU GPLv2 only.
- Krita - A digital painting and illustration program. GNU GPLv2 or later.
- MakeHuman - A tool for making 3D characters. GNU AGPLv3 or later.
- MyPaint - A natural materials painting and drawing emulator. GNU GPLv2 or later.
- ngPlant - A 3D plant modelling software suite. GNU GPLv2 or later.
- NormalMapOnline - An online normal-mapping tool. Expat.
- Overlap2D - An engine-agnostic game level and UI editor. Apache2.0.
- Pixelorama - 2D pixel art editor with animation support. Expat.
- Synfig Studio - 2D animation software. GNU GPLv2 or later.
- Tiled - Easy-to-use and flexible tile map editor. GNU GPLv2 or later and FreeBSD.
Mesh Tools
- MeshLabs - A portable system for the processing and editing of unstructured 3D triangular meshes. GNU GPLv2 or later.
- Dilay - A 3D sculpting application that provides an intuitive workflow using a number of powerful modelling tools. GNU GPLv3 or later.
Procedural Generators
- SpaceshipGenerator - A Blender script allowing generation of spaceships from a random seed and some parameters. Expat.
Spritesheet Tools
- Piskel - Online pixel art and animated sprite creator. GNU AGPLv3 or later.
Texture Tools
- AwesomeBump - A program that generates normal, height, specular or ambient occlusion, roughness or metallic textures. Requires a graphics card with support for OpenGL4 or greater. GNU LGPLv3 or later.
- Material Maker - Procedural texture generation tool for use with PBR engines. Expat.
- NeoTextureEdit - An easy-to-use, graph-based, procedural texture editor. No longer maintained. GNU LGPLv3 or later.
- TextureGeneratorOnline - An online tool for texture generation. Expat.
Voxel Editors
- Sproxel - A 3D interface for quickly editing and creating voxel-based 3D models. 3-clause BSD.
Learning Resources
These are all collections of information to help you learn about things that might be necessary for developing games.
We aim for complete and current resources here whenever possible.
Game Design
- School of Game Design, Wikiversity - A collection of learning resources for would-be game designers. CC-BY-SA-3.0.
Graphics
Beginner
- Blender 3D: Noob to Pro - A Wikibook for learning how to make 3D graphics with Blender. CC-BY-SA-3.0.
Reference
- Procedural Content Generation Wiki - A collection of articles about the use of procedural generation to make stuff in games. CC-BY-SA-3.0.
Music
- LibreMusicProduction - A community-driven online resource for promoting musical creation and composition using free tools. CC-BY-SA-4.0.
Programming
- Computer Science section on Saylor Academy - A collection of computer science courses. Many of these deal with useful concepts for game programming. CC-BY-3.0.
- Introduction to Mobile Game Development - Class on making simple mobile games with Gideros and Lua. Expat.
Beginner
- An Introduction to Python - Pretty much what it says on the tin. Python License.
- Beginner 2d Game Programming Tutorial (video) - A set of tutorials in 2D game programming, illustrated using ECMAScript. CC-BY-3.0.
- C++ Tutorial for Beginners (video) - A collection of basic video tutorials for C++. CC-BY-3.0.
- Effective Go - A guide to writing good, clean and readable Go code for beginners. CC-BY-3.0 (text), 3-clause BSD (code).
- Functional Programming in JavaScript (video) - A series of tutorials about functional programming concepts, illustrated using ECMAScript. CC-BY-3.0.
- Java Collections Framework (video) - A set of tutorials for using Java collections properly. CC-BY-3.0.
- Java For Complete Beginners (video) - A collection of basic video tutorials for Java. CC-BY-3.0.
- Lua Programming - A completed Wikibook on programming Lua. CC-BY-SA-3.0.
- Practical Haskell - getting started with Stack - A series of tutorials designed to help people get started programming Haskell. CC-BY-SA-4.0.
- pygame_stuff - A collection of code samples using PyGame. GNU GPLv3 or later.
- ocaml-sdl2-minigames - A collection of code samples using OCamlSDL2. Zlib.
- The GNU C Programming Tutorial - An introduction to programming in C by the nice GNU people. PDF. GNU FDL.
- why's (poignant) Guide to Ruby - An interesting introductory book for Ruby. CC-BY-SA-3.0.
Intermediate
- Advanced C++ (video) - A tutorial on advanced aspects of C++. CC-BY-3.0.
- Dive Into Python - A Python book for experienced programmers. GNU FDL.
- Haskell - A very thorough Wikibook on programming Haskell. CC-BY-SA-3.0.
- Haskell Tutorial for C Programmers - An introduction to Haskell for people coming from C-family languages. Expat.
- JavaFX Tutorial (video) - A series of videos about how to use JavaFX to make GUIs. CC-BY-3.0.
- Java Multithreading (video) - A series of videos about how to do multithreading work in Java. CC-BY-3.0.
- Mostly adequate guide to functional programming (in JavaScript) - A book on the fundamentals of functional programming in ECMAScript. CC-BY-SA-4.0.
- Structure and Interpretation of Computer Programs - A classic programming and teaching text. Designed for teaching Scheme, but can be useful to anyone writing in any language. CC-BY-SA-4.0.
Reference
- breakouts - A collection of ECMAScript implementations of Breakout. Expat.
- Haskell Programming - A complete wiki of the Haskell programming language. Expat.
- Joey Hess' blog - A collection of posts, many of which are about Haskell use. CC-BY-4.0.
Talks
These are collections of game development-related talks, podcasts etc. that might be interesting or informative to people seeking to design games.
- Composers Play (podcast) - Listen to a video game composer discuss soundtracks of iconic games such as Mass Effect, Duke Nukem II, Doom, and System Shock with their composers, often while playing the game.
- GameDevRadio (podcast) - A series of online radio shows devoted to entertaining and educating whoever is interested in game development. CC-BY-SA-4.0.
- Indievelopment talks (video) - A collection of talks about various aspects of game development. CC0.
Programming Frameworks and Libraries
These are programming libraries or low-level code-based tools which are designed to support game programming, but do not provide as much structure or support as an engine would.
- ActionKid - A simple video game framework. Implemented in Haskell. 3-clause BSD.
- Allegro 5 - A cross-platform library for low-level tasks, like creating windows, accepting user input and so forth. Implemented in C and C++. 3-clause BSD.
- Bacon2D - A framework to ease 2D game development, providing QML elements representing basic game entities. Implemented in C++. Expat.
- bgfx - A 'build-your-own-engine' rendering library. FreeBSD.
- Chipmunk2D - A fast and lightweight 2D game physics library. Implemented in C. Expat.
- ChipmunkSharp - Advanced physics engine library based on Chipmunk. Implemented in C#. Expat.
- Cinder - A community-developed library for creative coding. Implemented in C++. FreeBSD.
- ClanLib - A cross-platform toolkit with a primary focus on game creation. Implemented in C++. (git). zlib.
- CutJS - A lightweight and fast 2D HTML5 rendering engine for cross-platform game development. Implemented in ECMAScript. Expat.
- Dear ImGui - An Immediate Mode Graphical User interface for C++ with minimal dependencies. zlib
- enchant.js - A framework for developing simple HTML5 + ECMAScript games. Implemented in ECMAScript. Expat.
- EndGate - A framework for building HTML5 games. Implemented in TypeScript. Expat.
- Epoxy - A library for handling OpenGL function pointer management. Implemented in C. Expat.
- FNA - A reimplementation of the Microsoft XNA Game Studio 4.0 Refresh libraries. Implemented in C#. MS-PL
- GameJs - A thin library on top of the Canvas API, including some helpful game development modules. Expat.
- Gideros - A cross-platform game development framework in Lua. Various licenses, all free.
- Gladiator3D - A raycasting engine. Implemented in ECMAScript. Expat.
- GLFW - A multi-platform library for OpenGL, OpenGL ES and Vulkan development on the desktop. zlib
- HaxeFlixel - A cross-platform development framework, supporting many targets. Implemented in Haxe. Expat.
- HaxePunk - A development framework designed to let you build games on any platform. Expat.
- ImGuizmo - An immediate mode 3D gizmo for scene editing and other controls based on Dear ImGui. MIT
- Kcp - A fast and reliable ARQ protocol that helps fast-action games reduct network latency. MIT
- Kivy - Rapid-development library for multi-touch and visual apps on many platforms. Implemented in Python. Expat.
- Kuko - A cross-platform development library, designed for mobile devices. Implemented in C++ and Lua. Expat.
- libGDX - Cross-platform game development framework. Implemented in Java. Apache 2.0.
- libRocket - An HTML/CSS-based UI library. Implemented in C++. Expat.
- libSDL2pp - A set of C++11 bindings for SDL2. Implemented in C++. zlib.
- LimeJS - A framework for building fast HTML5 games. Implemented in ECMAScript. Apache 2.0.
- LoomSDK - A very large and powerful framework for cross-platform 2D game development. Implemented in C++. Apache 2.0.
- LΓVE - A framework for making 2D games. Implemented in Lua. zlib .
- LuaStudio - A cross-platform framework/development tool for making 2D/3D games. Lua/LuaJIT programming language based. zlib
- MINX - MINX Is Not XNA; a framework resembling XNA. Implemented in C++. 3-clause BSD.
- p2.js - 2D physics library. Implemented in ECMAScript. Expat.
- pixi.js - A 2D rendering engine. Implemented in ECMAScript. Expat.
- Polycode - Framework for games and interactive applications. Implemented in C++. Has Lua bindings. Expat.
- putils - Phisko's C++ utilities. Large collection of helper classes and functions. [MIT]
- putils_meta - Phisko's metaprogramming utilities. Collection of type traits and compile-time helpers. [MIT]
- putils_reflection - A simple, stand-alone, header-only and easily pluggable
constexpr
reflection system. [MIT] - PyDark - Game framework on top of PyGame; designed to be easy to pick up. Implemented in Python. Expat.
- PyGame - A set of modules designed for writing games. Implemented in Python. GNU LGPLv2 or later.
- Quasi-Engine - A set of Qt-based tools for game development. Implemented in C++. GNU LGPLv2 or later.
- raylib - Low-level library designed to learn videogames programming. Implemented in C, but has Lua and Go bindings. zlib
- SDL - Another cross-platform library for low-level tasks, like creating windows, accepting user input, and so forth. Implemented in C. zlib.
- SFML - Simple and Fast Multimedia Library; a multi-platform, multi-language, multimedia interface to various computer hardware. Implemented in C++. Has a range of bindings. 3-clause BSD.
- Slick2D - A set of tools to make 2D game development easier. Implemented in Java. 3-clause BSD.
- Three.js - A library that makes WebGL easy to use. Implemented in ECMAScript. Expat.
- Tracy - C++ frame profiler. 3-clause BSD.
- voxel.js - A multi-component framework for bulding voxel games for modern browsers. Implemented in ECMAScript. 3-clause BSD.
- ZenGL - A cross-platform game development library designed to provide necessary functionality for rendering 2D-graphics, handling input, sound output, etc. Implemented in Pascal. zlib.
Utilities
This is a catch-all category for things that don't fit anywhere else.
- Assimp - Open Asset Import Library; a portable way to import various well-known 3D model formats in a uniform manner. Implemented in C++, with a range of bindings. 3-clause BSD.
- Easel.js - Provides a range of tools to make working with the HTML5 Canvas API easier. Implemented in ECMAScript. Expat.
- Gmsh - A 3D finite-element grid generator with a built-in CAD engine and post-processor. GNU GPLv2 or later.
- libcaca - An ASCII graphics rendering library for terminal-based interfaces. WTFPLv2.
- libnoise - A portable coherent noise-generation library. Implemented in C++. GNU LGPLv2 or later.
- PhysicsFS - A library to provide abstract access to various archives. zlib.
- ScummVM - A program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. GNU GPLv2 or later.
- Torsion - A TorqueScript IDE. Expat.
- TrenchBroom - A cross-platform level editor for Quake-engine-based games. Currently supports Quake, Quake 2 and Hexen 2 engine-based games. GNU GPLv3 or later.
- WorldForge - Provides everything needed to create your own free software MMORPG. GNU GPLv3 or later (or a compatible license).