awesome-gamedev/README.md

360 lines
18 KiB
Markdown
Raw Normal View History

2015-04-14 02:05:48 +03:00
# Awesome Gamedev #
A curated list of good stuff related to the development of games. This list contains *only* [free software][1] for code, sellers who aren't evil for physical resources, and [free cultural works][2] for assets.
2015-04-16 14:09:01 +03:00
I have also provided a list of resources which are *not* free, and the reasons why, in the associated Wall of Shame file.
2015-04-14 02:05:48 +03:00
This is released under the GNU Free Documentation License - its text is provided in the LICENSE file.
2015-04-16 14:09:01 +03:00
Assorted Assets
===============
This contains collections of miscellaneous assets of different kinds.
* [OpenGameArt.org][7] - A large collection of art intended for game development. Various licenses, including free ones.
* [Wikimedia Commons][97] - A collection of various assets of all kinds. Various licenses, all CC or free-er.
2015-04-14 02:05:48 +03:00
Audio
=====
## Editors ##
2015-04-19 08:56:41 +03:00
* [Ardour][130] - The digital audio workstation. [GNU GPLv2][14].
* [Audacity][33] - Software for recording and editing sounds. [GNU GPLv2][14].
* [Beast][133] - Music composition and modular synthesis software. [GNU LGPLv3][38].
2015-04-14 02:05:48 +03:00
* [MilkyTracker][34] - Multi-platform application for creating .mod and .xm module files. [GNU GPLv3][23]
* [Musagi][35] - A large and sophisticated music editor. [Expat][11].
## Music ##
2015-04-16 14:09:01 +03:00
* [Creative Commons on Bandcamp][85] - Everything on Bandcamp under a CC-license. Various licenses, all CC.
* [Creative Commons on SoundCloud][98] - A Creative Commons collection on SoundCloud. Various licenses, all CC.
* [LibreFM][96] - A big collection of stations, with fully-free music. Licenses allow downloads and reuse.
2015-04-14 02:05:48 +03:00
* [Musopen][31] - A site dedicated to copyright-free (and culturally free) music. Various licenses, all copyright-free (varies by piece).
## Sound Effects ##
* [Freesound.org][30] - A collection of CC-licensed sound effects. Various licenses, all CC.
* [SoundBible's Royalty-free section][32] - 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][57] - Implemented in C++. Designed for adventure games. [Artistic License 2.0][58].
2015-04-17 12:18:29 +03:00
* [Azul3D][112] - Implemented in Go. [3-clause BSD][29].
2015-04-16 14:09:01 +03:00
* [cocos2d][75] - Implemented in Python. [3-clause BSD][29].
2015-04-18 03:51:42 +03:00
* [Dash][114] - Implemented in D. [Expat][11].
2015-04-19 08:56:41 +03:00
* [Doomsday][134] - Implemented in C++. [GNU GPLv3][23].
2015-04-16 14:09:01 +03:00
* [Duality][77] - Implemented in C#. [Expat][11].
* [Fife][55] - Implemented in C++. Has Python scripting. Designed for isometric games. [GNU LGPLv3][38].
* [Flare][54] - Implemented in C++. Designed for action RPGs. [GNU GPLv3][23].
* [GDevelop][60] - Implemented in C++. Targeted at non-programmers. [Expat][11] (IDE is [GNU GPLv3][23]).
* [GNU FreeDink][47] - Implemented in C++. [GNU GPLv3][23].
* [Godot][51] - Implemented in C++. Has [its own scripting language][52]. [Expat][11].
2015-04-16 14:09:01 +03:00
* [Helm][83] - Implemented in Haskell. [Expat][11].
2015-04-18 03:53:35 +03:00
* [HERITAGE][123] - Implemented in ECMAScript. Designed for text adventure games. [GNU GPLv3][23].
2015-04-18 03:51:42 +03:00
* [Horde3D][115] - Implemented in C++. [EPLv1][116].
* [Irrlicht][43] - Implemented in C++. Has a [range of bindings][44]. [zlib][45].
2015-04-16 14:09:01 +03:00
* [LambdaHack][84] - Implemented in Haskell, Designed for roguelikes. [3-clause BSD][29].
* [lycheejs][89] - Implemented in ECMAScript. Designed for construction of HTML5 or native SDL games. [Expat][11].
* [Ogre3D][41] - Implemented in C++. Has a [range of bindings][42]. [Expat][11].
2015-04-18 03:51:42 +03:00
* [Panda3D][119] - Implemented in C++. Has a Python interface. [3-clause BSD][29].
2015-04-17 12:18:29 +03:00
* [Ren'Py][107] - Implemented in Python. Designed for visual novels. [Expat][11].
* [RPGBOSS][108] - Implemented in Scala. Designed for RPGs made by non-programmers. [GNU AGPLv3][27].
* [Sludge][56] - Implemented in C++. Has its own scripting language. [GNU LGPLv3][38].
2015-04-18 03:51:42 +03:00
* [Spring][121] - Implemented in C++. Designed for RTS games. [GNU GPLv2][14].
* [Torque2D][63] - Implemented in C++. Has its own scripting language. [Expat][11].
* [Torque3D][61] - Implemented in C++. Has [its own scripting language][62]. [Expat][11].
2015-04-18 03:51:42 +03:00
* [Urho3D][122] - Implemented in C++. Has its own scripting language. [Expat][11].
## HTML5 ##
2015-04-16 14:09:01 +03:00
* [Crafty.js][68] - Implemented in ECMAScript. [Expat][11] and [GNU GPLv3][23].
* [melonJS][93] - Implemented in ECMAScript. [Expat][11].
* [Phaser][64] - Implemented in ECMAScript. [Expat][11].
* [PlayCanvas][65] - Implemented in ECMAScript. [Expat][11].
## Physics ##
* [Box2D][48] - Implemented in C++. Designed to simulate rigid body physics. [zlib][45].
* [Bullet][59] - Implemented in C++. General physics engine. [zlib][45].
2015-04-16 14:09:01 +03:00
* [Matter.js][91] - Implemented in ECMAScript. Physics engine for HTML5. [Expat][11].
2015-04-18 03:51:42 +03:00
* [ODE][117] - Open Dynamics Engine; implemented in C++. Designed to simulate rigid body dynamics. [Original BSD][118].
2015-04-14 02:05:48 +03:00
Graphics
========
## Assorted ##
This is a section for everything else that doesn't fit in some other graphics category.
* [CanTree][10] - Free online tree generator. Generates PNG files. [Expat][11].
* [Yobi3D][13] - 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][3] - A collection of various game-related assets. Available in PNG. Public domain.
* [openclipart][6] - A collection of various clip art. Available in PNG. Public domain.
* [Vecteezy][12] - A collection of vector art. Various Creative Commons licenses.
## Icons ##
* [Game-icons.net][4] - A constantly-growing collection of black-and-white icons. Available in SVG or PNG. [CC-BY-3.0][5].
## Sprites ##
* [SpriteLib][8] - A big collection of sprites. Available in PNG. [CPL 1.0][9].
Graphics Tools
==============
## Bitmap Compression ##
* [pngquant][16] - A command-line utility for lossy compression of PNG images. Has various front-ends available. [FreeBSD][17].
* [Trimage][18]- A cross-platform tool for losslessly optimizing PNG and JPG files. [Expat][11].
## Editors ##
* [AwesomeBump][41] - 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][38].
2015-04-14 02:05:48 +03:00
* [Blender][25] - A 3D modelling and rendering editor. [GNU GPLv2][14].
* [GIMP][22] - The GNU Image Manipulation Program. Designed for photo retouching, image composition and similar tasks. [GNU GPLv3][23].
* [Inkscape][24] - A vector image editing program. [GNU GPLv2][14].
* [Krita][25] - A digital painting and illustration program. [GNU GPLv2][14].
* [MakeHuman][26] - A tool for making 3D characters. [GNU AGPLv3][27].
2015-04-16 14:09:01 +03:00
* [MyPaint][81] - A natural materials painting and drawing emulator. [GNU GPLv2][14].
* [NeoTextureEdit][37] - An easy-to-use, graph-based, procedural texture editor. [GNU LGPLv3][38].
2015-04-17 12:18:29 +03:00
* [ngPlant][105] - A 3D plant modelling software suite. [GNU GPLv2][14].
* [NormalMapOnline][40] - An online normal-mapping tool. [Expat][11].
2015-04-14 02:05:48 +03:00
* [Overlap2D][19] - An engine-agnostic game level and UI editor. [Apache2.0][20].
2015-04-17 12:18:29 +03:00
* [Synfig Studio][104] - 2D animation software. [GNU GPLv2][14].
2015-04-14 02:05:48 +03:00
* [Tiled][21] - Easy-to-use and flexible tile map editor. [GNU GPLv2][14] and [FreeBSD][17].
2015-04-17 12:18:29 +03:00
## Mesh Tools ##
* [MeshLabs][103] - A portable system for the processing and editing of unstructured 3D triangular meshes. [GNU GPLv2][14].
2015-04-14 02:05:48 +03:00
## Spritesheet Tools ##
* [Aseprite][13] - Animated sprite editor and pixel art tool. [GNU GPLv2][14].
* [Piskel][15] - Online pixel art and animated sprite creator. 'Do whatever you want' license.
2015-04-16 14:09:01 +03:00
## Texture Tools ##
* [TextureGeneratorOnline][39] - An online tool for texture generation. [Expat][11].
2015-04-14 02:05:48 +03:00
## Voxel Editors ##
* [Sproxel][28] - A 3D interface for quickly editing and creating voxel-based 3D models. [3-clause BSD][29].
2015-04-19 03:26:09 +03:00
Learning Resources
==================
These are all collections of information to help you learn about things that might be necessary for developing games.
2015-04-19 08:56:41 +03:00
We aim for *complete* and *current* resources here whenever possible.
2015-04-19 03:26:09 +03:00
## Music ##
* [LibreMusicProduction][124] - A community-driven online resource for promoting musical creation and composition using free tools. [CC-BY-SA-4.0][125].
## Programming ##
Intermediate
------------
* [Lua Programming][126] - A completed Wikibook on programming Lua. [CC-BY-SA-3.0][127].
Reference
---------
* [Joey Hess' blog][129] - A collection of posts, many of which are about Haskell use. [CC-BY-4.0][136]
2015-04-19 03:26:09 +03:00
* [Haskell Programming][128] - A complete wiki of the Haskell programming language. [Expat][11].
2015-04-16 14:09:01 +03:00
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.
2015-04-16 14:09:01 +03:00
* [ActionKid][82] - A simple video game framework. Implemented in Haskell. [3-clause BSD][29].
* [Allegro 5][36] - 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][29].
2015-04-16 14:09:01 +03:00
* [Bacon2D][72] - A framework to ease 2D game development, providing QML elements representing basic game entities. Implemented in C++. [Expat][11].
2015-04-18 09:48:23 +03:00
* [Chipmunk2D][74] - A fast and lightweight 2D game physics library. Implemented in C. [Expat][11].
2015-04-16 14:09:01 +03:00
* [ChipmunkSharp][73] - Advanced physics engine library based on Chipmunk. Implemented in C#. [Expat][11].
2015-04-18 03:51:42 +03:00
* [Cinder][113] - A community-developed library for creative coding. Implemented in C++. [FreeBSD][17].
2015-04-19 08:56:41 +03:00
* [ClanLib][131] - A cross-platform toolkit with a primary focus on game creation. Implemented in C++. [ClanLib license][132].
2015-04-16 14:09:01 +03:00
* [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].
2015-04-16 14:09:01 +03:00
* [EndGate][78] - A framework for building HTML5 games. Implemented in TypeScript. [Expat][11].
* [HaxeFlixel][79] - A cross-platform development framework, supporting many targets. Implemented in Haxe. [Expat][11].
* [Kivy][80] - Rapid-development library for multi-touch and visual apps on many platforms. Implemented in Python. [Expat][11].
* [libGDX][86] - Cross-platform game development framework. Implemented in Java. [Apache 2.0][71].
* [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].
2015-04-17 12:18:29 +03:00
* [p2.js][110] - 2D physics library. Implemented in ECMAScript. [Expat][11].
2015-04-18 03:51:42 +03:00
* [Polycode][120] - Framework for games and interactive applications. Implemented in C++. Has Lua bindings. [Expat][11].
2015-04-16 14:09:01 +03:00
* [PyDark][95] - Game framework on top of PyGame; designed to be easy to pick up. Implemented in Python. [Expat][11].
2015-04-17 12:18:29 +03:00
* [PyGame][106] - A set of modules designed for writing games. Implemented in Python. [GNU LGPLv2][102].
* [SDL][46] - Another cross-platform library for low-level tasks, like creating windows, accepting user input, and so forth. Implemented in C. [zlib][45].
2015-04-17 12:18:29 +03:00
* [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].
* [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.
2015-04-17 12:18:29 +03:00
* [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].
* [libnoise][101] - A portable coherent noise-generation library. Implemented in C++. [GNU LGPLv2][102].
2015-04-16 14:09:01 +03:00
* [Monkey][94] - A next-generation games programming language. Implemented in C++. [zlib][45].
2015-04-17 12:18:29 +03:00
* [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].
2015-04-19 08:56:41 +03:00
* [WorldForge][135] - Provides everything needed to create your own free software MMORPG. [GNU GPLv3][23] (or a compatible license).
2015-04-14 02:05:48 +03:00
[1]: https://www.fsf.org/about/what-is-free-software
[2]: http://freedomdefined.org/Definition
[3]: http://7soul1.deviantart.com/gallery/44815788/Free-Stuff
[4]: http://game-icons.net/
[5]: https://creativecommons.org/licenses/by/3.0/
[6]: https://openclipart.org/
[7]: http://opengameart.org/
[8]: http://www.widgetworx.com/spritelib/
[9]: https://directory.fsf.org/wiki/License:CPLv1.0
[10]: http://arnaud.ile.nc/cantree/generator.php
[11]: https://directory.fsf.org/wiki/License:Expat
[12]: http://www.vecteezy.com/
[13]: http://www.aseprite.org/
[14]: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
[15]: http://www.piskelapp.com/
[16]: http://pngquant.org/
[17]: https://directory.fsf.org/wiki?title=License:FreeBSD
[18]: https://github.com/Kilian/Trimage
[19]: http://overlap2d.com/
[20]: https://directory.fsf.org/wiki/License:Apache2.0
[21]: http://www.mapeditor.org/
[22]: http://www.gimp.org/
[23]: https://www.gnu.org/licenses/gpl.html
[24]: https://inkscape.org/en/
[25]: https://www.blender.org/
[26]: http://www.makehuman.org/
[27]: https://www.gnu.org/licenses/agpl.html
[28]: http://sproxel.blogspot.com.br/p/about-sproxel.html
[29]: https://directory.fsf.org/wiki/License:BSD_3Clause
[30]: http://www.freesound.org/
[31]: https://musopen.org/
[32]: http://soundbible.com/royalty-free-sounds-1.html
[33]: http://audacity.sourceforge.net/
[34]: http://milkytracker.org/?about
[35]: http://www.drpetter.se/project_musagi.html
[36]: http://alleg.sourceforge.net/readme.html
[37]: http://neotextureedit.sourceforge.net/
[38]: https://www.gnu.org/licenses/lgpl.html
[39]: https://cpetry.github.io/TextureGenerator-Online/
[40]: https://cpetry.github.io/NormalMap-Online/
[41]: http://www.ogre3d.org/
[42]: https://en.wikipedia.org/wiki/OGRE#OGRE_ports_and_wrappers
[43]: http://irrlicht.sourceforge.net/
[44]: https://en.wikipedia.org/wiki/Irrlicht_Engine
[45]: https://directory.fsf.org/wiki/License:Zlib
[46]: https://www.libsdl.org/
[47]: https://www.gnu.org/software/freedink/
[48]: http://box2d.org/about/
[49]: http://www.scummvm.org/
[50]: http://www.gritengine.com/
[51]: http://www.godotengine.org/
[52]: https://en.wikipedia.org/wiki/Godot_%28game_engine%29#Scripting
[53]: http://scummvm.org/
[54]: https://github.com/clintbellanger/flare-engine/
[55]: http://fifengine.net/
[56]: https://opensludge.github.io/
[57]: https://github.com/adventuregamestudio/ags
[58]: https://directory.fsf.org/wiki/License:ArtisticLicense2.0
[59]: http://bulletphysics.org/wordpress/
[60]: http://www.compilgames.net/
[61]: https://www.garagegames.com/products/torque-3d
[62]: https://www.garagegames.com/products/torque-3d/overview/programming
[63]: https://www.garagegames.com/products/torque-2d
[64]: http://phaser.io/
[65]: https://playcanvas.com/
[66]: http://enchantjs.com/
[67]: http://voxeljs.com/
[68]: http://craftyjs.com/
[69]: http://threejs.org/
2015-04-16 14:09:01 +03:00
[70]: http://www.andengine.org/
[71]: https://directory.fsf.org/wiki/License:Apache2.0
[72]: http://bacon2d.com/
[73]: https://github.com/netonjm/ChipmunkSharp
[74]: https://chipmunk-physics.net/
[75]: http://python.cocos2d.org/
[76]: http://cutjs.org/
[77]: http://duality.adamslair.net/
[78]: http://endgate.net/
[79]: http://haxeflixel.com/
[80]: http://kivy.org/#home
[81]: http://mypaint.intilinux.com/
[82]: https://github.com/egonSchiele/actionkid
[83]: http://helm-engine.org/
[84]: https://github.com/LambdaHack/LambdaHack
[85]: https://bandcamp.com/tag/creative-commons
[86]: http://libgdx.badlogicgames.com/
[87]: http://www.limejs.com/
[88]: http://loomsdk.com/
[89]: http://lycheejs.org/index.html
[90]: https://love2d.org/
[91]: http://brm.io/matter-js/
[92]: http://libminx.org/
[93]: http://melonjs.org/
[94]: http://www.monkey-x.com/
[95]: http://www.pydark.com/
[96]: https://libre.fm/
[97]: https://commons.wikimedia.org/wiki/Main_Page
[98]: https://soundcloud.com/groups/creative-commons
2015-04-17 12:18:29 +03:00
[99]: https://icculus.org/physfs/
[100]: http://assimp.sourceforge.net/
[101]: http://libnoise.sourceforge.net/
[102]: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
[103]: http://meshlab.sourceforge.net/
[104]: http://www.synfig.org/cms/
[105]: http://ngplant.org/
[106]: http://pygame.org/wiki/about
[107]: http://www.renpy.org/
[108]: http://rpgboss.com/
[109]: http://www.sfml-dev.org/index.php
[110]: http://www.sfml-dev.org/download/bindings.php
[111]: https://schteppe.github.io/p2.js/
[112]: http://azul3d.org/
2015-04-18 03:51:42 +03:00
[113]: http://libcinder.org/
[114]: http://dash.circularstudios.com/
[115]: http://www.horde3d.org/
[116]: https://directory.fsf.org/wiki/License:EPLv1.0
[117]: http://www.ode.org/
[118]: https://directory.fsf.org/wiki/License:BSD_4Clause
[119]: https://www.panda3d.org/
[120]: http://polycode.org/
[121]: https://springrts.com/
[122]: https://urho3d.github.io/
2015-04-18 03:53:35 +03:00
[123]: https://notabug.org/SylvieLorxu/HERITAGE
2015-04-19 03:26:09 +03:00
[124]: http://libremusicproduction.com/
[125]: https://creativecommons.org/licenses/by-sa/4.0/
[126]: https://en.wikibooks.org/wiki/Lua_Programming
[127]: https://creativecommons.org/licenses/by-sa/3.0/
[128]: https://wiki.haskell.org/Haskell
[129]: https://joeyh.name/blog/about/
2015-04-19 08:56:41 +03:00
[130]: https://ardour.org/
[131]: http://www.clanlib.org/index.html
[132]: http://www.clanlib.org/license.html
[133]: https://testbit.eu/wiki/Beast_Home
[134]: http://www.dengine.net/engine
[135]: http://www.worldforge.org/
[136]: https://creativecommons.org/licenses/by/4.0/