take a seat
Hello and welcome. This blog will be primarily used to show my exploits into the world of game development, with perhaps some delving into related technologies in the software and hardware world. While I am not catering my content purely to other developers, I will be using some unexplained domain specific language. For anyone interested in games but not the development thereof, I hope to provide enough pretty pictures to counter the small amounts of technobabble. But fear not, this will not be a technical post.
a drink for two
My current shared endeavour is a turn-based strategy game, co-designed and co-written by a good friend of mine. In proper unfinished fashion, it has an unfinished name; we call it “Tactics”. I will be talking about the game/its design in the future, but today is about the technology behind it. To give you an idea of what’s going on, it looks like a little like this:
Well, a lot like that. Entirely, in fact.
That is about to change. We will be taking our current code and be moving it away from our current platform (XNA) and into something we have a bit more faith and professional experience in (Unity). So, our mostly working game will become a mostly not-working game.
Why bother at all? Well, while I call the following bit an “unfortunate twist of fate”, it would be more commonly known as an “inevitable and expected conclusion that you should have seen coming miles away”. Well, I kind of did, but let me explain.
meat and potatoes
XNA is nice. That’s why we chose it to begin with. It’s quick to get something on screen and playable, which is great for prototyping. It’s free to use, which is excellent for indie development as all of your tools are paid for out of your own pocket. It also allows you to write and deploy your games for the XBox 360 (for a small fee), what’s not to like about that?
Well, we decided on XNA a few years back and by now things have changed, or rather, things haven’t changed. XNA is not dead, nor is it really going anywhere — but therein lies the problem: XNA is not really going anywhere. Microsoft has not been actively doing much for XNA for a while now, and new platforms with better stage presence have stolen the show.
Crucially, when we started work on Tactics, Unity was not a free product nor did the UDK exist. However both now have a free license and are excellent alternatives, in fact whereas XNA is a set of libraries wherein you piece together your own functionality, Unity and UDK are both fully featured engines.
That’s a whole different kind of nice. Though some hate to adapt to anothers design, I’m more than glad to put away my engine development time and instead focus on just making a game.
cake to split
UDK would be a solid choice, I’m sure. However as both of our professional jobs involve working with Unity, it became the natural choice for the future. It also has built up a good community behind it, as it seems many have fallen for its . As such, I’ve been working on excising the XNA bits of our code (mostly in the rendering and input handling), and moving it into Unity. This is relatively easy as our XNA code is in C#, which just happens to work in Unity as well.
Aside from simply porting what we have, It’s also a good time to reimagine what we can do with the game considering the new technology available to us. The first thing to go was the terrain system, for which I’ve already begun working on one of a few new terrain themes. All of our maps are procedurally generated, so the most important aspect is to produce terrains that allow interesting gameplay. That is a pretty general statement and I’ll be covering the goals of the terrain generation in a later post.
The first theme is a sort of highlands:
It’s a bit barren, but it is just the beginning. There are a handful of regional terrains planned, mostly in the fashion of quiet European countrysides. Some other themes planned are an Italian coast, Scandinavian forest, Russian tundra and Germanic river-valleys.
In this blog series I will be writing of my progress in the port and continue to do so until this game is out there for everyone to play. I will first begin by explaining the games design and mechanics, then eventually move into a discussion of the code behind the games systems. At a later date I may also expound upon on why Unity was a good technical choice for us and why I feel it’s a good fit for many others.
I will also focus on being more succinct in the future, I apologize if the post has not been of appropriate brevity.