![open_source_and_videogames](https://user-images.githubusercontent.com/5766837/138726877-896ded22-4404-4ef9-a6a9-7dcddde2be36.png) ## Open Source and Videogames - Resources This git include a list of programs, tools, engines and libraries free and open source intended to make videogames. _NOTE: This gist is a support material for the talk "Open Source and Videogames" given by me, Ramon Santamaria, on [October 26th 2021 in Canòdrom, Barcelona](https://comunitat.canodrom.barcelona/assemblies/comunitat/f/1651/meetings/2258). All the materials listed here **were explained in detail** in a +2 hours talk._ ### Contents 1. Free and open-source **licenses** 2. Free and open-source **software** to make videogames 3. Free and open-source **engines** to make videogames 4. Free and open-source **libraries** to make videogames 5. Free and open-source **videogames**? 6. Free and open-source in **consoles**? 7. _References_ ## 1. Free and open-source licenses We can assign a license to multiple types of content, in videogames there are three possible categories depending on the type of content created: ### 1.1 Product Represents the final product, the one including the executables packaged of our program/game. Types of licenses: - *Private (EULA)* - [Crippleware](https://en.wikipedia.org/wiki/Crippleware) - [Shareware](https://en.wikipedia.org/wiki/Shareware) - [Adware](https://en.wikipedia.org/wiki/Adware) - [Donationware](https://en.wikipedia.org/wiki/Donationware) - [Postcardware](https://en.wikipedia.org/wiki/Shareware#Postcardware) - [Beerware](https://en.wikipedia.org/wiki/Beerware) - [Abandonware](https://en.wikipedia.org/wiki/Abandonware) - [Freeware](https://en.wikipedia.org/wiki/Freeware) - ... ### 1.2 Assets Represents the assets created for our product, it could be images, icons, fonts, audio, text files... any kind of content created other than code. Types of licenses: - *Private* - [Creative Commons](https://creativecommons.org/) - CC-BY-NC-ND - CC-BY-SA 4.0 - CC-BY 4.0 - CC-0 1.0 - ... ### 1.3 Source Code Those are the code sources for our project, all the material that will be compiled to generate the final binaries of the product/game. Types of licenses: - *Private* - [Open Source](https://opensource.org/) - GPL / LGPL - Apache / Eclipse - MIT / BSD / zlib - Unlicense - ... ## 2. Free and open-source software to make videogames Here it is a curated collection of software useful to make games, it includes the links to product web as well as the links to sources and license. ### 2.1 Art and Graphics - FOSS | Product | Source Code | OSS License | | :------ | :----------: | :----------: | | [Blender](https://www.blender.org) | [Own Git](https://github.com/blender/blender) | [GNU GPL](https://github.com/blender/blender/tree/master/doc/license) | | [GIMP](https://www.gimp.org) | [tarball](https://download.gimp.org/mirror/pub/gimp/v2.10/) | [GNU GPL](https://www.gimp.org/about/selling.html#is-it-legal-to-sell-copies-of-gimp) | | [Krita](https://krita.org/en/) | [KDE](https://invent.kde.org/graphics/krita) | [GPU GPL v3](https://invent.kde.org/graphics/krita/-/blob/master/COPYING) | | [Inkscape](https://inkscape.org) | [GitLab](https://gitlab.com/inkscape/inkscape) | [GPU GPL](https://gitlab.com/inkscape/inkscape/-/blob/master/COPYING) | | [Aseprite](https://www.aseprite.org) | [GitHub](https://github.com/aseprite/aseprite) | [NO OSS!](https://github.com/aseprite/aseprite#license) | | [ImageMagick](https://www.imagemagick.org) (CLI) | [GitHub](https://github.com/ImageMagick/ImageMagick) | [Custom OSS](https://github.com/ImageMagick/ImageMagick/blob/main/LICENSE) | | [GraphicsMagick](http://www.graphicsmagick.org) (CLI) | [Mercurial](http://hg.code.sf.net/p/graphicsmagick/code/) | [Custom OSS](http://hg.code.sf.net/p/graphicsmagick/code/file/369dff45baed/Copyright.txt) | | [Effekseer](http://effekseer.github.io/en/index.html) | [GitHub](https://github.com/effekseer/Effekseer) | [MIT](https://github.com/effekseer/Effekseer/blob/master/LICENSE) | | [Materialize](https://boundingboxsoftware.com/materialize) | [GitHub](https://github.com/BoundingBoxSoftware/Materialize) | [GPL-3.0](https://github.com/BoundingBoxSoftware/Materialize/blob/master/LICENSE) | | [Material Maker](https://www.materialmaker.org/) | [GitHub](https://github.com/RodZill4/material-maker) | [MIT](https://github.com/RodZill4/material-maker/blob/master/LICENSE.md) | ![materialize](https://user-images.githubusercontent.com/5766837/138862239-25ca775d-7b7c-4699-ac91-93e33e060e63.jpg) _Materialize. Developed by Bounding Box Software using Unity_ ### 2.2 Art and Graphics - Free | Product | Free License | | :------ | :----------: | | [Paint.NET](https://www.getpaint.net) | [Custom Free](https://www.getpaint.net/license.html) | | [Photopea](https://www.photopea.com) | [not specified](https://github.com/photopea/photopea/issues/45) | | [MagikaVoxel](https://ephtracy.github.io) | not specified | | [DragonBones](http://dragonbones.com) | ??? | | [ShoeBox](http://renderhjs.net/shoebox) | free | | [PVRTexTools](https://developer.imaginationtech.com/pvrtextool) | Free EULA | | [rTexViewer](https://raylibtech.itch.io/rtexviewer) | free/donation | | [rTexPacker](https://raylibtech.itch.io/rtexpacker) | free/donation | ![rtexviewer03](https://user-images.githubusercontent.com/5766837/138862973-e69a23d3-ba71-423e-ac64-0169f2afbe0c.png) _rTexViewer. Developed by [raylib technologies](https://raylibtech.itch.io/), aka @raysan5_ ### 2.3 Audio and Video Production - FOSS | Product | Source Code | OSS License | | :------ | :----------: | :----------: | | [Audacity](https://www.audacityteam.org) | [GitHub](https://github.com/audacity/audacity) | [GNU GLP v2](https://github.com/audacity/audacity/blob/master/LICENSE.txt) | | [AudioMass](https://audiomass.co) | [GitHub](https://github.com/pkalogiros/AudioMass) | [not specified](https://github.com/pkalogiros/AudioMass) | | [ZRythm](https://www.zrythm.org/en) | [GitHub](https://github.com/zrythm/zrythm) | [GNU AGPL](https://github.com/zrythm/zrythm/blob/master/COPYING) | | [LMMS](https://lmms.io) | [GitHub](https://github.com/LMMS/lmms) | [GPL-2.0](https://github.com/LMMS/lmms/blob/master/LICENSE.txt) | | [rFXGen](https://raylibtech.itch.io/rfxgen) | [GitHub](https://github.com/raysan5/rfxgen) | [Zlib](https://github.com/raysan5/rfxgen/blob/master/LICENSE) | | [Shotcut](https://shotcut.com) | [GitHub](https://github.com/mltframework/shotcut) | [GPL-3.0](https://github.com/mltframework/shotcut/blob/master/COPYING) | | [OpenShot](https://www.openshot.org) | [GitHub](https://github.com/OpenShot/openshot-qt) | [GPL v3](https://github.com/OpenShot/openshot-qt/blob/develop/COPYING) | | [OBS](https://obsproject.com) | [GitHub](https://github.com/obsproject/obs-studio) | [GPL-2.0](https://github.com/obsproject/obs-studio/blob/master/COPYING) | | [VLC](https://www.videolan.org) | [GitHub](https://github.com/videolan/vlc) | [GPL-2.0](https://github.com/videolan/vlc/blob/master/COPYING) | | [FFmpeg](https://www.ffmpeg.org) | [GitHub](https://github.com/FFmpeg/FFmpeg) | [multi](https://github.com/FFmpeg/FFmpeg/blob/master/LICENSE.md) | | [ScreenToGif](https://www.screentogif.com) | [GitHub](https://github.com/NickeManarin/ScreenToGif) | [MS-PL](https://github.com/NickeManarin/ScreenToGif/blob/master/LICENSE.txt) | ![zrythm](https://user-images.githubusercontent.com/5766837/138863283-12b29f17-e92d-4700-9ff3-a2c52383ee26.png) _zRythm. Developed by Alexandros Theodotou (@alex-tee) and contributors_ ### 2.4 Code Editors and Profiling Tools - Free/FOSS | Product | Source Code? | OSS License? | | :------ | :----------: | :----------: | | [Atom](https://atom.io) | [GitHub](https://github.com/atom/atom) | [MIT](https://github.com/atom/atom/blob/master/LICENSE.md) | | [Notepad++](https://notepad-plus-plus.org) | [GitHub](https://github.com/notepad-plus-plus/notepad-plus-plus) | [GNU GPL v3](https://github.com/notepad-plus-plus/notepad-plus-plus/blob/master/LICENSE) | | [Visual Studio Code](https://code.visualstudio.com) | [GitHub](https://github.com/microsoft/vscode) | [MIT](https://github.com/microsoft/vscode/blob/main/LICENSE.txt) | | [Neovim](https://neovim.io) | [GitHub](https://github.com/neovim/neovim) | [Apache v2](https://github.com/neovim/neovim/blob/master/LICENSE) | | [Lite XL](https://lite-xl.github.io) | [GitHub](https://github.com/lite-xl/lite-xl) | [MIT](https://github.com/lite-xl/lite-xl/blob/master/LICENSE) | | [RenderDoc](https://renderdoc.org) | [GitHub](https://github.com/baldurk/renderdoc) | [MIT](https://github.com/baldurk/renderdoc/blob/v1.x/LICENSE.md) | | [SHADERed](https://shadered.org) | [GitHub](https://github.com/dfranx/SHADERed) | [MIT](https://github.com/dfranx/SHADERed/blob/master/LICENSE) | | [Visual Studio Community](https://visualstudio.microsoft.com/vs/community) | no | [EULA](https://visualstudio.microsoft.com/license-terms/mlt031819/) | | [ShaderToy](https://www.shadertoy.com) | no | [terms](https://www.shadertoy.com/terms) | ![renderdoc](https://user-images.githubusercontent.com/5766837/138863743-e050bf83-6a0e-44b6-a511-cfb332054dd3.PNG) _RenderDoc. Developerd by Baldur Karlsson, aka @baldurk._ ### 2.5 Tile/Level Editor Tools - FOSS | Product | Source Code | OSS License | | :------ | :----------: | :----------: | | [Tiled](https://www.mapeditor.org) | [GitHub](https://github.com/mapeditor/tiled) | [misc](https://github.com/mapeditor/tiled/blob/master/COPYING) | | [LDtk](https://ldtk.io) | [GitHub](https://github.com/deepnight/ldtk) | [MIT](https://github.com/deepnight/ldtk/blob/master/LICENSE) | | [OGMO Editor](https://ogmo-editor-3.github.io) | [GitHub](https://github.com/Ogmo-Editor-3/OgmoEditor3-CE) | [MIT](https://github.com/Ogmo-Editor-3/OgmoEditor3-CE/blob/master/LICENSE) | | [MFCG](https://watabou.itch.io/medieval-fantasy-city-generator) | [GitHub](https://github.com/watabou/TownGeneratorOS) | [GPL-3.0](https://github.com/watabou/TownGeneratorOS/blob/master/LICENSE) | | [GB Studio](https://www.gbstudio.dev) | [GitHub](https://github.com/chrismaltby/gb-studio) | [MIT](https://github.com/chrismaltby/gb-studio/blob/develop/LICENSE) | | [Pixel Vision 8](https://pixelvision8.github.io/Website) | [GitHub](https://github.com/PixelVision8/PixelVision8) | [MS-PL](https://github.com/PixelVision8/PixelVision8/blob/master/LICENSE.txt) | ![ldtk_screenshot](https://user-images.githubusercontent.com/5766837/138864551-f8ef86b4-ac1e-463b-be53-aee9e211c75f.png) _LDtk. Developed by Sébastien Bénard, aka @deepnight._ ### 2.6 Misc Useful Tools - Free/FOSS | Product | Source Code? | OSS License? | | :------ | :----------: | :----------: | | [7-zip](https://www.7-zip.org) | [SourceForge](https://sourceforge.net/projects/sevenzip/) | [multi](https://www.7-zip.org/license.txt) | | [Agent Ransack](https://www.mythicsoft.com/agentransack) | no | _Lite/Pro_ | | [Everything](https://www.voidtools.com) | no | [multi](https://www.voidtools.com/License.txt) | | [XVI32](http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm) | no | [Freeware](http://www.chmaas.handshake.de/delphi/freeware/license.htm) | | [ImHex](https://imhex.werwolv.net/) | [GitHub](https://github.com/WerWolv/ImHex) | [GPL v2](https://github.com/WerWolv/ImHex/blob/master/LICENSE) | | [Inno Setup](http://www.jrsoftware.org/isinfo.php) | [GitHub](https://github.com/jrsoftware/issrc) | [Custom OSS](https://github.com/jrsoftware/issrc/blob/main/license.txt) | | scc (CLI) | [GitHub](https://github.com/boyter/scc) | [MIT](https://github.com/boyter/scc/blob/master/LICENSE) | ![imhex](https://user-images.githubusercontent.com/5766837/138864869-958d0755-58ba-4fa1-ae24-4277a28cee5e.png) _ImHex. Developed by Nik, aka @WerWolv_ ### 2.7 Vendor Tools for Gamedev - Free All hardware vendors provide free tools to work with their hardware, the following vendors provide specific tools for videogames development. Sometimes those tools only work with the vendor hardware while other times tools are generic enough to work with any hardware. Most of those free tools a subject to an EULA license, required to be accepted at software installation. Some vendors also require free registering to download their tools. - [NVIDIA Tools](https://developer.nvidia.com) - [AMD Tools](https://developer.amd.com) - [ARM Tools](https://developer.arm.com) - [Intel Tools](https://www.intel.com/content/www/us/en/developer/overview.html) - [Imagination Technologies](https://developer.imaginationtech.com) ## 3. Free and open-source engines to make videogames Lists of engines to make games, note the licenses of every engine and its third-party dependencies! ### 3.1 Free and open source engines (with Editor/Tools) | Engine/Lib | Coding Language | Source Code | OSS License | Third-party? | :------ | :----------: | :----------: | :----------: | :-------------: | | [Godot Engine](https://godotengine.org) | [GDScript, C#, C/C++](https://docs.godotengine.org/en/latest/getting_started/step_by_step/scripting_languages.html#available-scripting-languages) | [GitHub](https://github.com/godotengine/godot) | [MIT](https://github.com/godotengine/godot/blob/master/LICENSE.txt) | [details](https://github.com/godotengine/godot/tree/master/thirdparty) | | [Stride](https://www.stride3d.net) | C# | [GitHub](https://github.com/stride3d/stride) | [MIT](https://github.com/stride3d/stride/blob/master/LICENSE.md) | [details](https://github.com/stride3d/stride/blob/master/THIRD%20PARTY.md) | | [O3DE](https://o3de.org) | C++ | [GitHub](https://github.com/o3de/o3de) | [Apache v2](https://github.com/o3de/o3de/blob/development/LICENSE.txt)/MIT | [**no details**](https://github.com/o3de/o3de/blob/development/LICENSE.txt#L7) | | [Defold](https://defold.com) (King) | Lua | [GitHub](https://github.com/defold/defold) | [**Defold**](https://github.com/defold/defold/blob/dev/LICENSE.txt) | [details](https://github.com/defold/defold/blob/dev/COMPLYING_WITH_LICENSES.md) | | [WebGLStudio](https://webglstudio.org) | JS | [GitHub](https://github.com/jagenjo/webglstudio.js/) | [MIT](https://github.com/jagenjo/webglstudio.js/blob/master/LICENSE) | none? | | Lumix Engine | C++ | [GitHub](https://github.com/nem0/LumixEngine) | [MIT](https://github.com/nem0/LumixEngine/blob/master/LICENSE) | [details](https://github.com/nem0/LumixEngine/tree/master/external) | ![godot_engine](https://user-images.githubusercontent.com/5766837/138865806-25847c86-ee7e-4b34-9811-b39282a59b8e.jpg) _Godot Engine. Developed by Godot Engine contributors. Main developer: Juan Linietsky (@reduz)._ ### 3.2 Free and open-source engines (without Editor/Tools) | Engine/Lib | Coding Language | Source Code | OSS License | Third-party? | :------ | :----------: | :----------: | :----------: | :---------------: | | [MonoGame](https://www.monogame.net) | C# | [GitHub](https://github.com/MonoGame/MonoGame) | [MS-PL](https://github.com/MonoGame/MonoGame/blob/develop/LICENSE.txt) | [details](https://github.com/MonoGame/MonoGame/tree/develop/ThirdParty) | | [Filament](https://google.github.io/filament) (Google) | C++ | [GitHub](https://github.com/google/filament) | [Apache 2.0](https://github.com/google/filament/blob/main/LICENSE) | [details](https://github.com/google/filament/tree/main/third_party) | | [Magnum](https://magnum.graphics/) | C++ | [GitHub](https://github.com/mosra/magnum) | [MIT](https://github.com/mosra/magnum/blob/master/COPYING) | [**details**](https://doc.magnum.graphics/magnum/credits-third-party.html) | | [Wicked Engine](https://wickedengine.net) | C++ | [GitHub](https://github.com/turanszkij/WickedEngine) | [MIT](https://github.com/turanszkij/WickedEngine/blob/master/LICENSE.txt) | [details](https://github.com/turanszkij/WickedEngine/blob/master/third_party_software.txt) | | [Solar2D (Corona)](https://solar2d.com) | Lua | [GitHub](https://github.com/coronalabs/corona) | [MIT](https://github.com/coronalabs/corona/blob/master/LICENSE.md) | [details](https://github.com/coronalabs/corona/blob/master/sdk/dmg/Corona3rdPartyLicenses.txt) | | [Three.js](https://threejs.org) | JS | [GitHub](https://github.com/mrdoob/three.js/) | [MIT](https://github.com/mrdoob/three.js/blob/dev/LICENSE) | none? | | [Phaser](https://phaser.io) | JS | [GitHub](https://github.com/photonstorm/phaser) | [MIT](https://github.com/photonstorm/phaser/blob/master/LICENSE.md) | none? | | [openFrameworks](https://openframeworks.cc/) | C++ | [GitHub](https://github.com/openframeworks/openFrameworks) | [MIT/misc](https://github.com/openframeworks/openFrameworks/blob/master/LICENSE.md) | [details](https://github.com/openframeworks/openFrameworks/blob/master/docs/libraries.md) | | [Ebiten](https://ebiten.org/) | Go | [GitHub](https://github.com/hajimehoshi/ebiten) | [Apache v2](https://github.com/hajimehoshi/ebiten/blob/main/LICENSE) | [packages?](https://github.com/hajimehoshi/ebiten#packages) | | [libGDX](https://libgdx.com) | Java | [GitHub](https://github.com/libgdx/libgdx) | [Apache v2](https://github.com/libgdx/libgdx/blob/master/LICENSE) | [extensions?](https://github.com/libgdx/libgdx/tree/master/extensions) | | [LÖVE](https://love2d.org) | Lua | [GitHub](https://github.com/love2d/love) | [Zlib](https://github.com/love2d/love/blob/main/license.txt) | [details](https://github.com/love2d/love/blob/main/license.txt) | | [pygame](https://www.pygame.org) | Python | [GitHub](https://github.com/pygame/pygame) | [GNU LGPL v2.1](https://github.com/pygame/pygame#license) | [details](https://github.com/pygame/pygame#dependencies) | | [raylib](https://www.raylib.com) | C | [GitHub](https://github.com/raysan5/raylib) | [Zlib](https://github.com/raysan5/raylib/blob/master/LICENSE) | [details](https://github.com/raysan5/raylib/wiki/raylib-dependencies) | ## 4. Free and open-source libraries to make videogames Some popular libraries used by several engines, note that most libraries are usually low-level and coded in C/C++. | Library | Language | Source Code | OSS License | | :------ | :----------: | :----------: | :----------: | | [SDL2](https://libsdl.org/) | C | [GitHub](https://github.com/libsdl-org/SDL) | [Zlib](https://github.com/libsdl-org/SDL/blob/main/LICENSE.txt) | | [libpng](http://www.libpng.org/pub/png/libpng.html) | C | [GitHub](https://github.com/glennrp/libpng) | [Zlib](https://github.com/glennrp/libpng/blob/libpng16/LICENSE) | | [libxml2](http://xmlsoft.org) | C | [GitLab](https://gitlab.gnome.org/GNOME/libxml2) | [MIT](https://gitlab.gnome.org/GNOME/libxml2/-/blob/master/Copyright) | | [curl](https://curl.se/) | C | [GitHub](https://github.com/curl/curl) | [**curl**](https://github.com/curl/curl/blob/master/COPYING) | | [Lua](https://www.lua.org) | C | [GitHub](https://github.com/lua/lua) | [MIT](https://www.lua.org/license.html) | | [FreeType](https://www.freetype.org) | C | [GitLab](https://gitlab.freedesktop.org/freetype/freetype) | [**FreeType**](https://gitlab.freedesktop.org/freetype/freetype/-/blob/master/LICENSE.TXT) | | Dear ImGui | C/C++ | [GitHub](https://github.com/ocornut/imgui) | [MIT](https://github.com/ocornut/imgui/blob/master/LICENSE.txt) | | [sqlite](https://www.sqlite.org) | C | [**Fossil**](https://sqlite.org/src/dir?ci=trunk) | [Public Domain](https://www.sqlite.org/copyright.html) | | Basis Universal | C/C++ | [GitHub](https://github.com/BinomialLLC/basis_universal) | [Apache v2](https://github.com/BinomialLLC/basis_universal/blob/master/LICENSE) | | [libtheora](https://www.theora.org) | C | [GitHub](https://github.com/xiph/theora) | [BSD 3-clause](https://github.com/xiph/theora/blob/master/LICENSE) | | ANGLE (Google) | C/C++ | [Git](https://chromium.googlesource.com/angle/angle) | [BSD 3-clause](https://github.com/google/angle/blob/master/LICENSE) | | [Mono](https://www.mono-project.com/) | C | [GitHub](https://github.com/mono/mono) | [multi](https://github.com/mono/mono/blob/main/LICENSE) | ## 4.1 Commercial engines and open-source? Popular commercial engines like Unity/Unreal also use **many** open source libraries internally, the licenses for those libraries can be found here: - Unity third-party libraries - Unity/Editor/Data/Resources/legal.txt - Unreal third-party libraries - UnrealEngine/Engine/Source/ThirdParty/Licenses WARNING: It's not always easy as an user to [manage licenses correctly](https://answers.unrealengine.com/questions/582448/third-party-ue-components-in-our-final-product.html) for the final product! ## 5. Free and open-source videogames? Is there any open-source commercial videogame? Actually there are some... many big companies have GitHub accounts where they open source some of their contents. - [Prince of Persia (Apple II)](https://github.com/jmechner/Prince-of-Persia-Apple-II) - [id Software](https://github.com/id-Software) - [Valve](https://github.com/valvesoftware) - [Electronic Arts](https://github.com/electronicarts) - [Ubisoft](https://github.com/ubisoft) - [Blizzard](https://github.com/blizzard) - [Crytek](https://github.com/CRYTEK) - [Epic Games](https://github.com/epicgames) - [Unity Technologies](https://github.com/Unity-Technologies) - [Microsoft](https://github.com/microsoft) - [Sony Computer Entertainment](https://github.com/SonyWWS) ## 6. Free and open-source in consoles? Consoles OS software is very complex and we can also find open source being used there. - [PS4 third-party libraries](https://doc.dl.playstation.net/doc/ps4-oss/index.html) - [Xbox third-party libraries](https://www.microsoft.com/en-us/legal/third-party-notices) - [Nintendo OSS](https://www.nintendo.co.jp/support/oss) ([OSS](https://www.nintendo.es/Atencion-al-cliente/Nintendo-Switch/Utilizacion/Software-Open-Source/Software-Open-Source-1212476.html)) ## _7. References_ Some additional references for open-source contents: - [Magi Tools, an awesome game development list](https://github.com/ellisonleao/magictools) - [Games on GitHub](https://gist.github.com/roachhd/d579b58148d7e36a6b72) - [Awesome-Games](https://github.com/pauliver/Awesome-Games) - [Games on GitHub](https://github.com/leereilly/games) _This document is licensed as [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/), which is one of the licenses in the [Creative Commons](https://creativecommons.org/) family._