DEV BLOG ENTRY 1: THE CORE
This week we will delve a little deeper into our development process. While the last blog served as an intro story about the birth of Excubitor and the creation of Tesseract Interactive here we will talk about the first, and arguably most important, choice the team needed to make, the choice of a programming language.
C#
As mentioned in the previous entry there are a few choices when it comes to the programming language, all of which offer their own set of problems and advantages.
But for us it was pretty straight forward, Ivan knew C# quite well, so we went with it.
C# is one of the most popular programming languages out there. One notable advantage it has over C++, aside from the aforementioned tidbit that our lead coder knew it much, much better, is that the syntax itself is easier. Another advantage is that there is no need for memory management.
On the flip-side though we have the issue of Garbage Collection. That is the method with which .NET manages the memory. This presents a small problem in game development because all of the objects need to be optimized in order for the memory heap to be small enough for the Garbage Collector, and that puts some constraints with the asset creation.
And last, but not least, C# is the featured programming language of Microsoft XNA, the framework we chose to develop in.
Microsoft XNA
XNA is a free set of tools that work in a run time environment that is provided by Microsoft.
It’s based on the .NET framework, so we have the Garbage Collector and the difficulties that accompany it.
Microsoft released XNA with the idea to promote indie game development on their platforms, Windows, X-Box and Windows Phone.
It is basically a .NET variant of Microsoft’s well established DirectX platform, but focused mainly on lightweight games. Though by saying “lightweight” there is the automatic implication the games are of little contact and lower production values, some developers proved this false and released some of the best indie games of the last decade. Some notable games are: Fez, Terraria, Capsized, Bastion, Magicka and the list goes on.
The framework itself provides a good basis for game development, as well as a lot of libraries (especially math related) that are of great help to the programmer. It’s easy to use and has the capability for fast prototyping. Microsoft also provides practical examples for those interested.
It’s important to note that XNA supports pretty much all features that are available to AAA game developers
HLSL
High-level shading language (HLSL) is a proprietary shading language developed by Microsoft for use with the Microsoft Direct3D API
XEN: Graphics API for XNA
A simplifies writing low level graphics code that helped us make the game rather quickly (as quick as first timers can actually make a game).
While it is no longer in development, it still has great 2D support already built in and is rich with features for easier use of XNA’s graphics pipeline.
If anyone is interested to read more about the technology we talked about you may visit these websites:
Microsoft XNA: http://msdn.microsoft.com/en-us/centrum-xna.aspx
XEN: Graphics API for XNA: http://xen.codeplex.com/
HLSL: http://msdn.microsoft.com/en-us/centrum-xna.aspx