Go to file
Alexander Yakovlev 5957be3856 added missing link 2017-09-26 07:22:15 +00:00
CONTRIBUTING.md Updating CONTRIBUTING.md 2016-10-20 13:09:19 +13:00
LICENSE.md Add OpenClonk 2017-01-26 23:39:45 +01:00
README.md added missing link 2017-09-26 07:22:15 +00:00
wall-of-shame.md Added coffee-snake back after clarifcation upstream. 2015-08-26 09:28:07 +10:00

README.md

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

This contains collections of miscellaneous assets of different kinds.

Audio

Editors

General

  • Musical Artifacts - A collection of music-related everything. Various licenses, all CC.

Music

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] 321 - A tool to generate sounds. [Expat] 11 .
  • [SoundBible's Royalty-free section] 32 - 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

HTML5

Unless stated otherwise, these engines are implemented in ECMAScript.

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.

Text-based

These engines suit text-rich games (from parser adventures to visual novels).

  • Ink - An embeddable scripting engine. Implemented in C# (also see InkJS).Expat
  • INSTEAD - Designed for visual novels. The engine is implemented in C with interface in Lua. Expat
  • Ren'Py - Implemented in Python. Designed for visual novels. Expat, with some parts under GNU LGPLv3 only.
  • Salet - Designed for rich media novels. Implemented in CoffeeScript. Expat
  • Twine - Novice-friendly, wide range of style. Implemented in JavaScript. Expat
  • Quest - The only parser engine on the list. Implemented in C#. Expat

Fonts

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] 216 - A CLI version of 2048. [Expat] 11 (code), no significant assets.
  • [2048-in-terminal] 217 - A CLI version of 2048. [Expat] 11 (code), no significant assets.
  • [Craft] 226 - A 3D voxel world game. [Expat] 11 (code and assets).
  • [Curse of War] 234 - A fast-paced strategy game. [GNU GPLv3] 23 or later (code and assets).
  • [The Legend of Edgar] 214 - A 2D platform game with a persistent world. [GNU GPLv2] 14 or later (code), various free culture licenses (assets).
  • [FallingTime] 196 - An arcade game. [GNU GPLv2] 14 or later (code), various CC (no NC or ND) (assets).
  • [Taisei] 199 - [Expat] 11 (code and assets), [OFL] 302 only for one font.
  • [Turtle Arena] 204 - Third-person action game. [GNU GPLv3] 23 or later (code), various free culture licenses (assets).
  • [Wizznic] 219 - A puzzle game. [GNU GPLv3] 23 or later (code and assets).

C++

  • [Battle for Wesnoth] 244 - A turn-based strategy game. [GNU GPLv2] 14 or later (code and assets).
  • [Blackvoxel] 225 - A voxel exploration and crafting game. [GNU GPLv3] 23 or later (code and assets).
  • [Clonepoint] 193 - [GNU GPLv3] 23 or later (code), various CC (no NC or ND) (assets).
  • [colobot] 233 - A robot-based strategy game. [GNU GPLv3] 23 or later (code and assets).
  • [Egooboo] 210 - A 3D dungeon crawler in the spirit of NetHack. [GNU GPLv3] 23 or later(code and assets).
  • [Endless Sky] 227 - 3D space exploration game. [GNU GPLv3] 23 or later (code), various CC (no NC or ND) (assets).
  • [Freeminer] 228 - A 3D voxel world game. [GNU GPLv3] 23 or later (code), [CC-BY-SA-3.0] 127 (assets).
  • [MegaGlest] 250 - A 3D RTS game. [GNU GPLv3] 23 or later (code), [CC-BY-SA-3.0] 127 (assets).
  • [Minetest] 229 - A 3D voxel world game. [GNU LGPLv2] 102 or later (code), [CC-BY-SA-3.0] 127 (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] 212 - A JRPG-style game. [3-clause BSD] 29 (code and assets).
  • [Monster 2] 213 - A JRPG-style game. [zlib] 45 (code and assets).
  • [OpenClonk] 389 - A jump'n'run/settlement/combat game. [ISC] 358 (code), [CC-BY-SA-3.0] 127 at most but mostly [CC-BY-3.0] 5 (assets).
  • [OpenDungeons] 236 - A version of Dungeon Keeper. [GNU GPLv3] 23 or later (code), various free culture licenses (assets).
  • Return of Dr. Destructo - An adventure game. Expat (code), CC-BY-SA-4.0 (assets).
  • [SavageWheels] 198 - A car game. [Expat] 11 (code and assets).
  • [Seven Kingdoms: Ancient Adversaries] 241 - A strategy game. [GNU GPLv2] 14 or later (code and assets).
  • [SuperTux] 215 - A platformer. [GNU GPLv3] 23 or later (code), various free culture licenses (assets).
  • [SuperTuxKart] 224 - A 3D racing game. [GNU GPLv3] 23 or later (code), various free licenses (assets).
  • TicTacToe - A simple tic-tac-toe game. Expat (code), CC-BY-SA-4.0 (assets).
  • [The Powder Toy] 231 - A sandbox falling sand physics game. [GNU GPLv3] 23 or later (code and assets).
  • Übergame - A multiplayer, casual FPS game. Expat (code), CC0 (assets).
  • [Warzone 2100] 248 - An RTS sci-fi game. [GNU GPLv2] 14 or later (code), various free culture licenses (assets).

CoffeeScript

  • [coffee-snake] 339 - A version of Snake. [GNU GPLv3] 23 or later (code), no significant assets.
  • [Zop] 186 - A 'connect the dots' game. [Expat] 11 (code), no significant assets.

Dart

  • [Hauberk] 190 - A roguelike. [Expat] 11 (code), no significant assets.
  • [Pop, Pop, Win!] 183 - A version of Minesweeper. [3-clause BSD] 29 (code and assets).

ECMAScript

  • 2048 - The original, classic casual game. Expat (code and assets).
  • [A Dark Room] 173 - A text adventure game. [MPLv2] 166 (code), no significant assets.
  • [Blockrain.js] 177 - A version of Tetris. [Expat] 11 (code and assets).
  • [BrowserQuest] 165 - An MMORPG. [MPLv2] 166 (code), [CC-BY-SA-3.0] 127 (assets).
  • [Clumsy Bird] 149 - A version of Flappy Bird. [Expat] 11 (code and assets).
  • [Drunken Viking] 178 - A top-down puzzle game. [Expat] 11 (code), various CC (no NC or ND) (assets).
  • [Freeciv-web] 167 - A port of Freeciv. [GNU GPLv2] 14 or later and [GNU AGPLv3] 27 or later (code and assets).
  • [ludum-dare-28] 180 - [CC-BY-4.0] 136 (code and assets).
  • [Masonry-JavaScript-Tetris-Clone] 252 - Exactly what it says on the tin. [Expat] 11 (code and assets).
  • [Parity] 181 - [Expat] 11 (code), no significant assets.
  • Particle Clicker - An incremental game that teaches the history of high-energy particle physics. Expat (code and assets).
  • [Prism] 184 - A colour-matching game. [Expat] 11 (code), no significant assets.
  • [Roguish] 163 - A roguelike. [3-clause BSD] 29 (code and assets).
  • [Snake] 157 - A version of Snake. [Expat] 11 (code), no significant assets.
  • [Sorades 13k] 159 - A scrolling shooter. [CC-BY-SA-3.0] 127 (code and assets).
  • Space Crusade - A space game. Expat (code), CC0 (assets).
  • [Space Shooter] 158 - Simple space shooting game. [Expat] 11 (code).
  • [Squirts] 191 - [Expat] 11 (code and assets).

Java

  • epic-inventor - An indie, side-scrolling RPG. GNU GPLv2 only (code and assets).
  • [Ned et les maki] 221 - A 3D puzzle game. [Expat] 11 (code), [FALv1.3] 222 (assets).
  • [Newton Adventure] 220 - A puzzle game. [3-clause BSD] 29 (code), various CC (no NC or ND) (assets).
  • [PuzzleGame] 257 - A slider puzzle game. Uses Android port of Cocos2D engine. [Expat] 11 (code and assets).
  • [Terasology] 230 - A 3D voxel world game. [Apache2.0] 20 (code and assets).

Other/Multiple

  • [Cataclysm: Dark Days Ahead] 207 - A roguelike set in a post-apocalyptic world. [CC-BY-3.0] 5 (code), CC-BY-SA-3.0 (assets).
  • [DynaDungeons] 194 - A version of Bomberman. Uses Godot engine. [GNU GPLv3] 23 or later (code), various CC (no NC or ND) (assets).
  • [FLARE] 211 - A dark fantasy 2D RPG. Uses FLARE engine. [GNU GPLv3] 23 or later (code), [CC-BY-SA-3.0] 127 (assets).
  • [Pioneer] 239 - A space exploration game. Implemented in C++ and Lua. [GNU GPLv3] 23 only (code), [CC-BY-SA-3.0] 127 (assets).
  • [Source of Tales] 242 - An MMORPG. Scripted using Lua (implementation language unclear). [GNU GPLv3] 23 or later (code), [CC-BY-SA-3.0] 127 and [GNU GPLv3] 23 (assets).
  • Tanks of Freedom - Pixed-based turn-based strategy. Uses Godot engine. Expat (code and assets).
  • [Teeworlds] 200 - Implemented in C and C++. [3-clause BSD] 29 (code), [CC-BY-SA-3.0] 127 (assets).
  • [Zero-K] 249 - An RTS game. Uses Spring engine. [GNU GPLv2] 14 or later (code and assets).

Python

  • Bullet dodger - A fun and challenging mouse game where you must dodge bullets. [GNU GPLv3] 23 only (code), various CC (no NC or ND) (assets).
  • Hexoshi - Free-roaming Metroid-like. [GNU GPLv3] 23 only (code), various CC (no NC or ND) (assets).
  • [Mystic Mine] 197 - [Expat] 11 (code and assets).
  • ReTux - A platformer. [GNU GPLv3] 23 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] 245 - A real-time strategy simulation game. [GNU GPLv2] 14 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] 11 .
  • Kator Legaz 3D Models - 3D Models by of various subjects. [CC-BY-3.0] 5.
  • mocapdata.com - A library of motion capture data. Various licenses, including free ones.
  • 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.

Icons

  • Game-icons.net - A constantly-growing collection of black-and-white icons. Available in SVG or PNG. [CC-BY-3.0] 5 .
  • Tango Icon Library - An icon set project with a goal to create a consistent user interface. Public domain.

Sprites

Graphics Tools

Animation

  • [Synfig Studio] 104 - 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

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

Texture Tools

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

Graphics

Beginner

Reference

Music

  • [LibreMusicProduction] 124 - A community-driven online resource for promoting musical creation and composition using free tools. [CC-BY-SA-4.0] 125 .

Programming

Beginner

Intermediate

Reference

Talks

These are collections of game development-related talks, podcasts etc. that might be interesting or informative to people seeking to design games.

  • 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] 73 - Advanced physics engine library based on Chipmunk. Implemented in C#. [Expat] 11 .
  • [Cinder] 113 - A community-developed library for creative coding. Implemented in C++. [FreeBSD] 17 .
  • [ClanLib] 131 - A cross-platform toolkit with a primary focus on game creation. Implemented in C++. [ClanLib license] 132 .
  • [CutJS] 76 - A lightweight and fast 2D HTML5 rendering engine for cross-platform game development. Implemented in ECMAScript. [Expat] 11 .
  • [enchant.js] 65 - A framework for developing simple HTML5 + ECMAScript games. Implemented in ECMAScript. [Expat] 11 .
  • [EndGate] 78 - A framework for building HTML5 games. Implemented in TypeScript. [Expat] 11 .
  • Epoxy - A library for handling OpenGL function pointer management. Implemented in C. Expat.
  • [GameJs] 279 - A thin library on top of the Canvas API, including some helpful game development modules. [Expat] 11 .
  • Gideros - A cross-platform game development framework in Lua. Various licenses, all free.
  • [Gladiator3D] 267 - A raycasting engine. Implemented in ECMAScript. [Expat] 11 .
  • [HaxeFlixel] 79 - A cross-platform development framework, supporting many targets. Implemented in Haxe. [Expat] 11 .
  • [HaxePunk] 179 - A development framework designed to let you build games on any platform. [Expat] 11 .
  • Kivy - Rapid-development library for multi-touch and visual apps on many platforms. Implemented in Python. [Expat] 11 .
  • Kuko - A cross-platform development library, designed for mobile devices. Implemented in C++ and Lua. Expat.
  • [libGDX] 86 - Cross-platform game development framework. Implemented in Java. [Apache 2.0] 71 .
  • [libRocket] 270 - An HTML/CSS-based UI library. Implemented in C++. [Expat] 11 .
  • [libSDL2pp] 271 - A set of C++11 bindings for SDL2. Implemented in C++. [zlib] 45 .
  • [LimeJS] 87 - A framework for building fast HTML5 games. Implemented in ECMAScript. [Apache 2.0] 71 .
  • [LoomSDK] 88 - A very large and powerful framework for cross-platform 2D game development. Implemented in C++. [Apache 2.0] 71 .
  • [LÖVE] 90 - A framework for making 2D games. Implemented in Lua. [zlib] 45 .
  • [MINX] 92 - MINX Is Not XNA; a framework resembling XNA. Implemented in C++. [3-clause BSD] 29 .
  • [p2.js] 111 - 2D physics library. Implemented in ECMAScript. [Expat] 11 .
  • [pixi.js] 275 - A 2D rendering engine. Implemented in ECMAScript. [Expat] 11 .
  • [Polycode] 120 - Framework for games and interactive applications. Implemented in C++. Has Lua bindings. [Expat] 11 .
  • [PyDark] 95 - Game framework on top of PyGame; designed to be easy to pick up. Implemented in Python. [Expat] 11 .
  • [PyGame] 106 - A set of modules designed for writing games. Implemented in Python. [GNU LGPLv2] 102 or later.
  • [Quasi-Engine] 276 - A set of Qt-based tools for game development. Implemented in C++. [GNU LGPLv2] 102 or later.
  • [SDL] 46 - Another cross-platform library for low-level tasks, like creating windows, accepting user input, and so forth. Implemented in C. [zlib] 45 .
  • [SFML] 109 - Simple and Fast Multimedia Library; a multi-platform, multi-language, multimedia interface to various computer hardware. Implemented in C++. Has a [range of bindings] 110 . [3-clause BSD] 29 .
  • [Slick2D] 322 - A set of tools to make 2D game development easier. Implemented in Java. [3-clause BSD] 29 .
  • [Three.js] 69 - A library that makes WebGL easy to use. Implemented in ECMAScript. [Expat] 11 .
  • [voxel.js] 67 - A multi-component framework for bulding voxel games for modern browsers. Implemented in ECMAScript. [3-clause BSD] 29 .

Utilities

This is a catch-all category for things that don't fit anywhere else.

  • [Assimp] 100 - 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] 29 .
  • [Easel.js] 265 - Provides a range of tools to make working with the HTML5 Canvas API easier. Implemented in ECMAScript. [Expat] 11 .
  • [Gmsh] 138 - A 3D finite-element grid generator with a built-in CAD engine and post-processor. [GNU GPLv2] 14 or later.
  • libcaca - An ASCII graphics rendering library for terminal-based interfaces. WTFPLv2.
  • [libnoise] 101 - A portable coherent noise-generation library. Implemented in C++. [GNU LGPLv2] 102 or later.
  • [PhysicsFS] 99 - A library to provide abstract access to various archives. [zlib] 45 .
  • [ScummVM] 53 - A program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. [GNU GPLv2] 14 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] 135 - Provides everything needed to create your own free software MMORPG. [GNU GPLv3] 23 or later (or a compatible license).