“Who needs sports stardom when you can shoot fireballs from your fingertips?”
― Ethan Gilsdorf
MonoGame is a C# framework that allows developers to target desktop, handhelds, mobile,and consoles using a single
codebase. The framework is written on top of Mono, an open source implementation of the .NET framework. The framework was originally designed to implement Microsoft's XNA 4.0 API, but Microsoft's decision to abandon XNA has meant that the MonoGame project has started to grow beyond the stagnated XNA implementation. Developers can choose to use MonoDevelop or Visual Studio as their IDE (integrated development environment), though to build content to the xnb format you will also need install Windows Phone SDK 7.1.1 (installing XNA 4.0 doesn't work anymore), which means you will need a Windows machine to build the content. Once you've built it though, you can continue
using whatever OS you were working in. You can read more about the specifics of these issues on Gamasutra or on the MonoGame
wiki. Although there are some issues present, the MonoGame
Team is working on solutions. To date the framework has been used in multiple successful titles such as Bastion, FEZ, Mercenary Kings, TowerFall Ascension, and Transistor. You should also be aware that Ethan Lee, the developer behind the ports of games such as Escape Goat 2, FEZ, Rogue Legacy, and TowerFall Ascension, has been working on a fork of the project know as FNA, which aims to reimplement MonoGame
using SDL2 (see below), and can be found here:
Simple DirectMedia Layer (SDL) libsdl.org
SDL is a cross-platform library written in C, designed to act as a
wrapper around operating system specific functionality. Some of this functionality includes audio, input devices, graphics hardware, file access, timing, and threading. SDL allows developers to write more generalized code, rather than worrying as much about the underlining specifics of the system they're targeting.Beyond this, any extra functionality can been added through libraries that sit on top of SDL. Some of these libraries include support for multiple image formats,audio mixing, networking, TrueType font, Rich Text Format support and many more, via third party libraries.SDL provides bindings for several languages such as C#, Lua, Python, Lisp, Haskell, and others. It's also commonly used as the base code for other game libraries such as LÖVE, PyGame, ScummVM, and even the CryEngine,as well emulators such as MAME and ZSNES. SDL is probably the most commonly used games library I know of - you'll see it in games such as Amnesia: The Dark Descent, FTL, Portal, Psychonauts, Team Fortress 2, The Cave, The Walking Dead and many, many more.
Unity is a game engine developed by Unity Technologies that allows developers to target desktop,web, mobile, handhelds, and consoles using a single codebase. It comes with a fully-fledged
Python-like language called Boo. While some new developers to Unity start off using UnityScript or Boo due to its perceived lower
barrier of entry the majority of developers use or eventually switch to C#.Unity comes with full support for 3D and 2D games, and generally anything that you feel is lacking can usually be found through their online Asset Store or somewhere else online. Games like Kentucky Route Zero, Night in the Woods, Superhot, Shadowrun Returns, and Gone Home have all been made in Unity, showing that as an engine it's versatile enough to be adapted to any number of genres.While the free version should allow a lot of developers to write their entire game without the need for Pro features, they should be aware that there are restrictions, which you can read about here:
A developer can use the free version provided their annual gross revenues does not exceed US$100,000, otherwise they will have
to purchase a license for Unity Pro, which will cost $1,500 or
$75/month. Check out unitypatterns. com for some useful tips and tutorials, as well as the tutorial in this issue.
Top 5 Alternatives Libraries/Frameworks
If none of the above suggestions appeal to you then maybe check
out one of the following.
Cocos2d is a 2D framework designed for mobile and desktop, but the majority of games made with it are for mobile. It's divided into multiple branches, the most popular being cocos2d-x,cocos2d-swift, and cocos2d-html5. Each branch is written in a different language, though they do try to keep some consistency. Cocos2d also comes with an editor called CocosBuilder, which can be used for designing UI, and setting up scenes and events without code.
LÖVE is an *awesome* framework written in Lua design for making 2D games. The nice thing about LÖVE is that it's well documented,there are loads of tutorials, there's an active community, and a lot of cool libraries built on top of LÖVE to help you add features you feel are missing. The fact that LÖVE is written in Lua is also a big plus to me since it's an extremely
popular scripting language in the game industry. So even if you later decide LÖVE isn't for you, you can still apply that Lua
knowledge somewhere else.
OpenFL is a Flash API-compatible library designed for desktop, mobile and web. OpenFL is built on top of a library called Haxe, so if feel like you want lower level access then check that out. One of the cool things about OpenFL is that because it's compatible with Flash you can also use popular Flash libraries such as Flixel and FlashPunk if you feel more comfortable using those
libraries. OpenFL has been used in such titles as rymdkapsel and the IGF winner Papers, Please.
Phaser is a HTML5 framework designed for desktop and mobile, built on top of Pixi.js. Although Phaser is relatively new, it
supports a lot of features such preloading, animations, tilemaps,
SFML is a C++ library similar to SDL, but with additional features
such as networking within the core library. Like SDL, SFML comes with additional third party libraries, and also supports bindings to multiple other programming languages.
Courtesy : Game Career Guide