Any way to learn game programming

Why learn C #? Option 1 - game development with game frameworks

Especially when you start with software development you will ask yourself what can I do with my new knowledge. One way is to develop games. I don't have a lot of experience with game development in C # myself. For me, the focus has so far been on technical applications.

However, Tobias Vetter, one of my graduates of the online course “Getting Started with C #”, has a clear goal in mind. Not only does he want to learn C #, he also wants to deal with game development.

In the following guest article he introduces you to 3 of the major game frameworks for C #. Such an analysis of existing frameworks or libraries is an important step in professional software development and is carried out in every development project during the rough design. This often involves the so-called “make or buy” decision. It is analyzed whether the whole solution to be developed or parts of it can be bought, or whether everything has to be developed from scratch. But now to Tobias and his results.

C # frameworks in game programming

Guest article by Tobias Vetter; M.A.

As a rule, C ++ is the programming language that is thought of when it comes to programming games. In fact, however, another member of the C language family, C #, has gained significantly in importance in recent years. This can not only be explained by the fact that C # is in many ways more accessible and modern than C ++. This would apply to Java, which is very successful in business, as well as to Python, which is widely used in the education sector. However, both play only a marginal role in the development of games. One possible explanation is, of course, the proximity to C ++. Much more explanatory is the existence of many strong frameworks for the development of games that use C #.

First to be mentioned here is Unity from the company of the same name. This represents both its own development environment and runtime (engine) for games. It is partly written in C # and C # (in addition to its own scripting language, which is very similar to Java Script) is also used in development. Unity has now garnered quite a bit of attention from developers and gamers alike. The basic version of Unity is free, which attracts a lot of hobbyists and beginners. But large-scale productions (even if not an AAA) are realized in Unity. Among other things, titles such as Might & Magic X, Wasteland 2, Cities: Skylines, Kerbal Space Program, Pillars of Eternity, Sunless Sea, Fallout Shelter and Firewatch were created with Unity. Anyone who is familiar with the industry will certainly benefit from at least already heard of one of these titles. So this is definitely not a "toy" for hobbyists.

The XNA, which was once provided by Microsoft itself, should also be mentioned. This combines various interfaces that are important for the development of games and could be used together with every version of Visual Studio. With XNA, well-known titles such as Bastion, Magicka, Terraria, Dust: An Elysian Tail, Fez and Stardew Valley were created. Here, too, there is a professional interface, which Microsoft has expanded to include a powerful tool with the XNA Game Studio. Unfortunately, the project has not been updated since 2010 and then announced in 2013 that the project would no longer be developed. This means that the technical innovations of the last six years can only be accessed to a limited extent, which makes this platform only interesting for smaller productions. That doesn't prevent Stardew Valley from storming the charts on the well-known digital game distribution platform Steam.

However, the free MonoGame project not only set itself the task of creating a free version of XNA that is available on multiple platforms, but also of maintaining the project after the end of development by Microsoft. In fact, the above-mentioned titles Fez and Bastion were probably realized in MonoGame. After the end of XNA, titles such as TowerFall, Transistor and Axiom Verge continued to be realized with MonoGame. So it's fair to say that XNA lives on in MonoGame.

On the other hand, Microsoft has not let the developers down for their current gaming platforms (XBOX One and Windows 10 for desktop, RT and mobile). However, the UWP (Universal Windows Platform) is now being used in conjunction with Direct X 11 & 12 as a new paradigm (see Microsoft Game Developer). Here, too, C # is used in addition to C ++, XAML and HTML. Interestingly, Microsoft also advertises Unity (and, to a lesser extent, Cocos) as an environment.

Then it should be mentioned that all the interfaces and tools presented here offer a form of integration into the latest version of Visual Studio as well as the support of various platforms, albeit a different one. This is a pretty good sign for developers as it means that different tools can be better integrated with each other and the same code - or at least large chunks of it - can be used for different platforms.

In this regard, the Xamarin platform (i.e. the company that also provides the open-source and cross-platform implementation of C # with Mono), which allows C # applications to be ported to OS X, iOS and Android and thus straight, should be pointed out at the end is essential for the development of mobile games in C #.

Many thanks to Tobias for this guest article and have fun thinking about what you want to use C # for


PS: If you want an even more detailed introduction to this and other game frameworks (also in C ++ and JavaScript), I can recommend this video on Channel9. However, it is only available in English.