Showing posts with label Opinion. Show all posts
Showing posts with label Opinion. Show all posts

Sunday, January 17, 2010

Why I switched from Game Maker to XNA

As you might have noticed by reading this blog, a little hobby of mine is to play around with software, with a specific interest in casual game development. For quite a long time, I used a free tool called "Game Maker" for this purpose. It's a free (the lite version anyway) tool to make games for windows. It's really simple to use; Most of the work can be done by clicking and dragging - there's absolutely no low-level programming required. But recently, I moved on and started focussing on XNA game studio instead. Read on to find out why.

1) Scalability

As with many drag and drop type tools, development speed and quality are very closely related to project size. For smaller games, Game Maker might be the top of the bill. You click "new game", and your rendering system, collision detection, level editor and whatnot are all in place. What better start could you wish for?

But then, after creating some smaller games, you move on to the real work. You want to create a game with multiplayer capabilities, a physics engine and a custom level editor. And you want to work cooperatively with a team of say 5 persons. *Dang*. The streamlined tool starts getting in the way. It's perfectly understandable; you can not logically expect a large game to sit comfortabely in the simple architecture of a tool that's designed to appeal to beginners. Whether you want to do one tiny thing that the built in level-editor does not support or you want to use complex inheritance trees or do advanced AI debugging... You'll collide with the boundaries sometime. And if you do, there's not really a way back (see point 3 below).

I know very well that creating advanced games is possible with tools like GM - Perhaps a thousand times cooler than anything I'll ever manage to put together. But from a coding/architecture point of view, I still say no. Full-scale projects require a different approach. Although you CAN make them with a tool like game maker, you're better off using something more custom. Because at one point, development will slow down, and you'll pay the price.

With XNA, I'm using C# and all possible tools to make coding easier, faster and more robust. I can architect the game code the way I want it. And if it turns into a mess, it's my own responsibility.

2) Gap between GML and professional experience

In my day job, I develop business applications in C#, using Visual Studio and Resharper. For game development, I use exactly the same toolset. I already had many moments at work where I could use something I learned during game development, and vice versa. I really like this interaction; it's nothing I'd easily give up. And if I'd choose to work with game maker and its scripting language (GML), that's exactly what'd happen.

You might say "It's better to know many different languages/environments". In another context, I might agree. But the gain of learning a specific scripting language that is used nowhere else is rather small. It's like learning a new language that you can speak only to one person.

3) No way back

Additionally, I find it hard to accept the fact that once you choose to use game maker, you're bound to keep using it. Once you start dragging and dropping and scripting, there's no possible way you can say: "Let's extract the code and move to [some completely other platform]". You have a bunch of scripts that are not meaningful in another environment. Most likely, they're not really clean and well tested either. You'll just throw them away and start from scratch, instead of converting them. While I'm quite confident that I can do exactly that last thing with XNA. Converting C# code to Java for example, is not that hard...

Conclusion

So let's wrap this up. In it's own way, game maker is a brilliant piece of software. Brilliant in the way it allows people with little experience to create games, have a lot of fun and learn many things about game development. Really, there's not one tool I'd rather recommend to people who are new to programming but want to create their own little game from scratch. But as any other tool, game maker needs to be used in the right perspective.

I used the learning perspective, but now I'm ready to move on. For actual development, that is. Because recently, I discovered another perspective to use GM... I still use it to create prototypes for my games. This requires some more explanation - I'll talk about this practice in a later post.

Sunday, June 28, 2009

What I hate about RTS games

I like Real Time Strategy games. You know, the kind of games in which the player has to build an empire, manage resources and order units into battle. Some games I have played in this genre include Age Of Empires, the Anno series, Warzone 2100 and Transport Tycoon (OpenTTD). All of which are great games in my opinion. But there's something I really hate about all of those games.

In the beginning, everything is nice and easy. But after playing for some time, things are going downward. Shortage of resources, army units going in the wrong direction; chaos. As the amount of clicks per minute increases, I get more agitated and frustrated.
Am I the only player that totally forgets about resource management when I start attacking? The only player that forgets to research that very important new technology because I got my head al up in defending my main base? Or, referring to Transport Tycoon, the only player who can't manage 200 busses/trucks, 100 trains and 150 planes? Is that just me being a really bad strategist?

No, it isn't!
In real life, I would have an army commander, a city architect, a financial advisor and the like at my disposal. But no such luck in most RTS games. In a matter of seconds, I have to switch from building a 1x1 square of cobblestone road to directing an army of thousands into battle, and back. In the meantime, I have to monitor my resources and respond to all kinds of in-game messages.

It's all just too much! It means getting the ultimate fun out of an RTS game is only possible for folks who get a kick out of extreme multitasking and micromanagement. And that's just not me. Bringing in another player to assist me won't help either: most RTS games have no option for full cooperative play with resource sharing, which dramatically cuts the possibility of players sharing the workload (OpenTTD being the exception) .


Chaos!

Time for a solution. RTS games need new ways of task distribution and delegation. Where's the eagle eye view? A tycoon leading a business empire worth billions, or a general leading an army of thousands, should at least have an option to delegate the building of 1x1 road squares and similar tasks.
It would be a delight to see some RTS games that do better. Any recommendations?