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.
- 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
Sound Effects
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.
- 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
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
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).
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.
Dart
ECMAScript
Java
Other/Multiple
Python
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.
- 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
Sprites
Graphics Tools
Animation
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
- 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
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
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 - 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.
- 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.
- 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.
- 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).