35 KiB
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 the GNU Free Documentation License - its text is provided in the LICENSE file.
Assorted Assets
This contains collections of miscellaneous assets of different kinds.
- 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.
Audio
Editors
- Ardour - The digital audio workstation. GNU GPLv2.
- Audacity - Software for recording and editing sounds. GNU GPLv2.
- Beast - Music composition and modular synthesis software. GNU LGPLv3.
- LMMS - A digital audio workstation. GNU GPLv2.
- MilkyTracker - Multi-platform application for creating .mod and .xm module files. GNU GPLv3
- Musagi - A large and sophisticated music editor. Expat.
Music
- 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.
- 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).
Sound Effects
- Freesound.org - A collection of CC-licensed sound effects. Various licenses, all CC.
- SoundBible's Royalty-free section - A collection of CC or public-domain-licensed sounds. Various licenses, all CC or public domain.
Engines
These are full-blown game engines.
General
- AGS - Implemented in C++. Designed for adventure games. Artistic License 2.0.
- Azul3D - Implemented in Go. 3-clause BSD.
- Backbone - Implemented in ECMAScript. Expat.
- BananaBread - Implemented in ECMAScript. A port of Sauerbrauten. zlib.
- Chili Source - Implemented in C++. Expat.
- cocos2d - Implemented in Python. 3-clause BSD.
- cocos2d-android - Implemented in Java. 3-clause BSD.
- Doomsday - Implemented in C++. GNU GPLv3.
- Duality - Implemented in C#. Expat.
- Fife - Implemented in C++. Has Python scripting. Designed for isometric games. GNU LGPLv3.
- Flare - Implemented in C++. Designed for action RPGs. GNU GPLv3.
- Fluxus - Implemented in C++. Designed for livecoding worlds. GNU GPLv2.
- GamePlay - Implemented in C++. Apache2.0.
- GDevelop - Implemented in C++. Targeted at non-programmers. Expat (IDE is GNU GPLv3).
- GNU FreeDink - Implemented in C++. GNU GPLv3.
- Godot - Implemented in C++. Has its own scripting language. Expat.
- Helm - Implemented in Haskell. Expat.
- HERITAGE - Implemented in ECMAScript. Designed for text adventure games. GNU GPLv3.
- Horde3D - Implemented in C++. EPLv1.
- ioquake3 - Implemented in C. A fork of the Quake III Arena engine. GNU GPLv2.
- Irrlicht - Implemented in C++. Has a range of bindings. zlib.
- JiGS - Implemented in PHP. Designed for MMORPGs. GNU GPLv2.
- JMonkey - Implemented in Java. 3-clause BSD.
- LambdaHack - Implemented in Haskell, Designed for roguelikes. 3-clause BSD.
- lycheejs - Implemented in ECMAScript. Designed for construction of HTML5 or native SDL games. Expat.
- Ogre3D - Implemented in C++. Has a range of bindings. Expat.
- Panda3D - Implemented in C++. Has a Python interface. 3-clause BSD.
- Ren'Py - Implemented in Python. Designed for visual novels. Expat.
- qfusion - Implemented in C++. Designed for FPS games. GNU GPLv2.
- RPGBOSS - Implemented in Scala. Designed for RPGs made by non-programmers. GNU AGPLv3.
- Sludge - Implemented in C++. Has its own scripting language. GNU LGPLv3.
- Spearmint - Implemented in C. Designed for FPS games. GNU GPLv3.
- Spring - Implemented in C++. Designed for RTS games. GNU GPLv2.
- Turbulenz - Implemented in ECMAScript. Expat.
- Torque2D - Implemented in C++. Has its own scripting language. Expat.
- Torque3D - Implemented in C++. Has its own scripting language. Expat.
- Urho3D - Implemented in C++. Has its own scripting language. Expat.
HTML5
Unless stated otherwise, these engines are implemented in ECMAScript.
- Akihabara - Designed for 8-bit and 16-bit games. Expat and GNU GPLv2.
- Babylon.js - Apache2.0.
- cocos2d-html5 - Expat.
- Coffee2D - Implemented in CoffeeScript. Expat.
- Crafty.js - Expat and GNU GPLv3.
- Cube - Designed for voxel games. WTFPLv2.
- kiwi.js - Expat.
- melonJS - Expat.
- panda.js - Expat.
- Phaser - Expat.
- PlayCanvas - Expat.
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.
- 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.
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).
- Curse of War - A fast-paced strategy game. GNU GPLv3 (code).
- edgar - A 2D platform game with a persistent world. GNU GPLv2 (code).
- FallingTime - An arcade game. GNU GPLv2 (code), various CC (no NC or ND) (assets).
- Taisei - Expat (code).
- Turtle Arena - Third-person action game. GNU GPLv3 (code).
- Wizznic - A puzzle game. GNU GPLv3 (code and assets).
C++
- Battle for Wesnoth - A turn-based strategy game. GNU GPLv2 (code and assets).
- Blackvoxel - A voxel game. GNU GPLv3 (code).
- Clonepoint - GNU GPLv3 (code), various CC (no NC or ND) (assets).
- colobot - A robot-based strategy game. GNU GPLv3 (code and assets).
- Crystal Picnic - An action RPG. 3-clause BSD (code).
- Egooboo - A 3D dungeon crawler in the spirit of NetHack. GNU GPLv3 (code).
- endless-sky - 3D space exploration game. GNU GPLv3 (code), various CC (no NC or ND) (assets).
- Freeminer - A 3D voxel world game. GNU GPLv3 (code).
- Megaglest - A 3D RTS game. GNU GPLv3 (code).
- Minetest - A 3D voxel world game. GNU GPLv2 (code).
- Monster 1 - A JRPG-style game. 3-clause BSD (code).
- Monster 2 - A JRPG-style game. zlib (code and assets).
- OpenDungeons - A version of Dungeon Keeper. GNU GPLv3 (code), various free culture licenses (assets).
- Race into Space - A space exploration game. GNU GPLv2 (code).
- SavageWheels - A car game. Expat (code and assets).
- Seven Kingdoms: Ancient Adversaries - A strategy game. GNU GPLv2 (code and assets).
- Stunt Rally - A 3D racing game. GNU GPLv3 (code).
- Supertux - A platformer. GNU GPLv3 (code).
- SuperTuxKart - A 3D racing game. GNU GPLv3 (code), various free licenses (assets).
- The Powder Toy - A sandbox falling sand physics game. GNU GPLv3 (code).
- Unvanquished - An FPS game with RTS elements. GNU GPLv3 (code).
- Warzone 2100 - An RTS sci-fi game. GNU GPLv2 (code), various free culture licenses (assets).
C#
- OpenRA - A real-time strategy game (with engine). GNU GPLv3 (code).
- voxeliq - A voxel world game. MsPL (code).
CoffeeScript
- coffee-snake - A version of Snake. GNU GPLv3 (code).
- Zop - Expat (code).
Dart
- Hauberk - A roguelike. Expat (code).
- Pop, Pop, Win! - A version of Minesweeper. 3-clause BSD (code).
ECMAScript
- 0h h1 - A logic game. Expat (code).
- 0h n0 - Expat (code).
- 2048 - Expat (code).
- A Dark Room - A text adventure game. MPLv2 (code).
- Ball and Wall - An Arkanoid-style game. Expat (code).
- Beatrix - A music game. Expat (code).
- binb - A music game. Expat (code).
- BitBot - Expat (code).
- blk-game - A voxel world game. Apache2.0 (code).
- Blockrain.js - A version of Tetris. Expat (code).
- BrowserQuest - An MMORPG. MPLv2 (code), CC-BY-SA-3.0 (assets).
- Clumsy Bird - A version of Flappy Bird. Expat (code).
- Coil - A version of Snake. Expat (code).
- Color Quest - An infinite runner game, which follows a black-and-white pixel's quest to become a colour pixel. GNU GPLv2 (code).
- Crappy Bird - A version of Flappy Bird. Expat (code).
- Dental Defender: Saga of the Candy Horde - A shooter/tower defence game. Expat (code).
- Drunken Viking - A top-down puzzle game. Expat (code).
- Duck Hunt JS - A version of Duck Hunt. Expat (code).
- Emberwind - A platforming game. 3-clause BSD (code).
- Follow ME! A Simon Clone - Exactly what it says on the tin. Expat (code).
- Freeciv-web - A port of Freeciv. GNU GPLv3 and GNU AGPLv3 (code).
- Javascript Snake - A version of Snake. Expat (code).
- Hextris - A puzzle game inspired by Tetris. GNU GPLv3 (code).
- HTML5-Asteroids - A version of Asteroids. Expat (code).
- Hyperspace Garbage Collection - Expat (code).
- Lost-Beneath-The-Surface - A maze running game. GNU GPLv3 (code).
- ludum-dare-28 - CC-BY-4.0 (code).
- Masonry-JavaScript-Tetris-Clone - Exactly what it says on the tin. Expat (code and assets).
- Parity - Expat (code).
- Particle Clicker - A game to teach the history of high-energy particle physics. Expat (code).
- Pond - GNU GPLv2 (code).
- Prism - A colour-matching game. Expat (code).
- Raging Gardens - Expat (code).
- Roguish - A roguelike. 3-clause BSD (code).
- Room for Change - Apache2.0 (code).
- Snake - A version of Snake. Expat (code).
- Space Shooter - Simple space shooting game. Expat (code).
- Sorades 13k - A scrolling shooter. CC-BY-SA-3.0 (code).
- Space Crusade - Expat (code).
- Squirts - Expat (code).
- TransCube - A 2D puzzle platformer. GNU GPLv3 (code), CC-BY-SA-4.0 (assets).
- Turkey Cooking Simulator - GNU GPLv3 (code).
Java
- epic-inventor - A side-scrolling action RPG. GNU GPLv2 (code).
- GidiGames - Three board games. Uses Android port of Cocos2D engine. Expat (code).
- Micropolis - A version of SimCity, based on the original code. GNU GPLv3 (code).
- 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).
- Pixel Dungeon - A roguelike. GNU GPLv3 (code).
- PuzzleGame - A slider puzzle game. Uses Android port of Cocos2D engine. Expat (code).
- Terasology - A 3D voxel world game. Apache2.0 (code).
Other/Multiple
- Cataclysm: Dark Days Ahead - A roguelike set in a post-apocalyptic world. CC-BY-3.0 (code).
- DynaDungeons - A version of Bomberman. Uses Godot engine. GNU GPLv3 (code), various CC (no NC or ND) (assets).
- Flare - A dark fantasy 2D RPG. Uses Flare engine. GNU GPLv3 (code), CC-BY-SA-3.0 (assets).
- Minilens - A puzzle platforming game. GNU GPLv3 (code).
- OpenLieroX - Implemented in C++ and Lua. GNU LGPLv2 (code).
- Pax Britannica - A ship-based strategy game. Implemented in C and Lua. Expat (code).
- Pioneer - A space exploration game. Implemented in C++ and Lua. GNU GPLv3 (code), CC-BY-SA-3.0 (assets).
- Source of Tales - An MMORPG. Scripted using Lua (implementation language unclear). GNU GPLv3 (code), CC-BY-SA-3.0 and GNU GPLv3 (assets).
- Tanks of Freedom - A turn-based strategy game. Uses Godot engine. Expat (code).
- 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 (code).
Python
- dmeternal - A party-based fantasy adventure game. GNU GPLv2 (code).
- Mystic Mine - Expat (code and assets).
- Unknown Horizons - A real-time strategy simulation game. GNU GPLv2 (code).
Scala
Graphics
Assorted
This is a section for everything else that doesn't fit in some other graphics category.
- CanTree - Free online tree generator. Generates PNG files. Expat.
- 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.
- Vecteezy - A collection of vector art. Various Creative Commons licenses.
Icons
- Game-icons.net - A constantly-growing collection of black-and-white icons. Available in SVG or PNG. CC-BY-3.0.
Sprites
Graphics Tools
Animation
Bitmap Compression
- 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
- 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.
- Blender - A 3D modelling and rendering editor. GNU GPLv2.
- GIMP - The GNU Image Manipulation Program. Designed for photo retouching, image composition and similar tasks. GNU GPLv3.
- Hme - A program for creating, manipulating and viewing height maps. GNU GPLv2.
- Inkscape - A vector image editing program. GNU GPLv2.
- Krita - A digital painting and illustration program. GNU GPLv2.
- MakeHuman - A tool for making 3D characters. GNU AGPLv3.
- MyPaint - A natural materials painting and drawing emulator. GNU GPLv2.
- NeoTextureEdit - An easy-to-use, graph-based, procedural texture editor. GNU LGPLv3.
- ngPlant - A 3D plant modelling software suite. GNU GPLv2.
- NormalMapOnline - An online normal-mapping tool. Expat.
- Overlap2D - An engine-agnostic game level and UI editor. Apache2.0.
- Synfig Studio - 2D animation software. GNU GPLv2.
- Tiled - Easy-to-use and flexible tile map editor. GNU GPLv2 and FreeBSD.
Mesh Tools
- MeshLabs - A portable system for the processing and editing of unstructured 3D triangular meshes. GNU GPLv2.
Spritesheet Tools
- Aseprite - Animated sprite editor and pixel art tool. GNU GPLv2.
- Piskel - Online pixel art and animated sprite creator. GNU AGPLv3.
Texture Tools
- 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.
Music
- LibreMusicProduction - A community-driven online resource for promoting musical creation and composition using free tools. CC-BY-SA-4.0.
Programming
Intermediate
- Mostly adequate guide to functional programming (in JavaScript) - A book on the fundamentals of functional programming in ECMAScript. CC-BY-SA-4.0.
- Lua Programming - A completed Wikibook on programming Lua. CC-BY-SA-3.0.
Reference
- breakouts - A collection of ECMAScript implementations of Breakout. Expat.
- Joey Hess' blog - A collection of posts, many of which are about Haskell use. CC-BY-4.0
- Haskell Programming - A complete wiki of the Haskell programming language. Expat.
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++. ClanLib license.
- CutJS - A lightweight and fast 2D HTML5 rendering engine for cross-platform game development. Implemented in ECMAScript. Expat.
- 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.
- Gladiator3D - A raycasting engine. Implemented in ECMAScript. Expat.
- HaxeFlixel - A cross-platform development framework, supporting many targets. Implemented in Haxe. Expat.
- Kivy - Rapid-development library for multi-touch and visual apps on many platforms. Implemented in Python. 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++. 3-clause BSD.
- 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.
- 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.
- 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.
- Quasi-Engine - A set of Qt-based tools for game development. Implemented in C++. GNU GPLv3.
- 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.
- Three.js - A library that makes WebGL easy to use. Implemented in ECMAScript. Expat.
- voxel.js - A multi-component framework for bulding voxel games for modern browsers. Implemented in ECMAScript. 3-clause BSD.
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.
- libnoise - A portable coherent noise-generation library. Implemented in C++. GNU LGPLv2.
- Monkey - A next-generation games programming language. Implemented in C++. zlib.
- 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.
- WorldForge - Provides everything needed to create your own free software MMORPG. GNU GPLv3 (or a compatible license).