For tutorials and more info, visit The Proton SDK wiki
License: BSD style with attribution required
Seth's GL/GLES messy multi-platform C++ game SDK. Can output to Windows, Linux (including the Raspberry Pi), HTML5, OS X, iOS, Android
A component based toolbox of useful things built up over the last ten years. Instead of a giant .lib you link only the .cpp files used when possible to simplify multiplatform support as well as keep code size down.
It's kind of an SDL-like on steroids (while also being able to target SDL2 for setup/input/audio itself when needed) but generally gets the best results with its own native implementations of things. For example, it can target the following audio subsystems: SDL2_mixer, Audiere, FMOD, FMODStudio, Native iOS, Native Android, Denshion, Native Flash
It's designed with a "Write stuff in Windows with Visual Studio 2017, then compile/export to other platforms as needed" mentality.
Deprecated platforms no longer actively supported: Flash, BBX, WebOS
Some things written with Proton:
- Growtopia - 2D MMO, a good example of using Proton's GUI for many screen sizes.
- Dungeon Scroll - A word game. (HTML5 version)
- Dink Smallwood - Good example of porting old code to Proton to add touch controls and multiplatform support. Open source. HTML5 version
- Mind Wall - 3D puzzle game
- Tanked - 3D multiplayer tank combat game including four player split screen support as well as internet match making.
- Arduboy Simulator - Allows you to write and debug Arduboy apps with MSVC as well as output HTML5 playable versions (included with Proton SDK) HTML5 Example game
Credits and links
- Proton SDK wiki/tutorial site
- Seth A. Robinson (seth@rtsoft.com) (Wrote most of Proton SDK) (Codedojo, Seth's blog)
- Aki Koskinen (Contibutions to Linux support, SpriteAnim, documentation)
- Clanlib team (Some math functions were taken from Clanlib)
- Dan Walma (contributions to SoftSurface)
- Fatalfeel's Proton SDK forks for GLES 2 support and Cocos2D integration
- Vita platform support by @NabsiYa
Feel free to submit a pull request! At this point the goal is that all changes be non-breaking to existing projects.