Learning, modding, languages and teamwork

I haven’t been so regular lately, because of exams (a belated round of vivas), a visit from family, tax declarations and various other things to sort out as I prepare to leave the country.

I’ve also recently been offered some free webspace by “PruHosting.org”, so a special thanks to Patrick Ruitenberg. I’m likely going to migrate the blog over there when I’ve had some time to sit down and learn a how to install and run a WordPress server.

I’ve always made games, just not on computer: when I was young I used to make them using coloured pencils, but somehow it never occurred to me that I should try to do some actual programming. Then I was making maps for “Starcraft” and “Warcraft 3″ (Blizzard have always provided great mod tools), none of which were very much good and none of which I have any more: I kept them for a while by I ended up deleting them because I didn’t have the actual games any more.

That’s trouble with modding: if you want to show somebody else your work then they need to own the game too. This restricts your audience greatly. You’re also very restrained, because no matter how good the mod tools are they were made to make the original game, not yours. And of course if you lose your licence details your work may be forever locked away in a game file you can’t access.

I used “Gamemaker” for a number of years: it really is a great tool, and unlike the mod tools I used before, it creates an executable at the end that can be run by anyone who uses Windows. This means that unlike “Unity” or Flash, Java or Python (“Pygame”), the user doesn’t need any software installed to play your game, because it’s compiled, rather interpreted (or compiled and interpreted like Java). This makes it a lot easier to share. The trouble is of course that it only runs on Windows, and as I’ve explained in great length, I’m not a huge fan.


In addition, this ease-of-use comes at a price, and that price is efficiency: when I started building rigid-body, particle and constraint-based physics systems I ran up against a number of problems related to the way the program worked on a very base level. So Gamemaker is brilliant for doing little mock-ups really quickly, but you’re not going to be able to build something like “World of Goo” or “Braid” unless you start from scratch.

Last time I talked about the “Spring” RTS engine: I actually worked with it for some time, and had a lot of fun learning to make 3D models using “Wings 3D” and how to texture them in “GIMP”. I also messed around with “Lua” a bit, in order to script animations. By the time an exam period came round to take the wind out of my sails, I had a couple of units working in the game, which was very satisfying.


But even though Spring is open-source and cross-platform, there’s still a sense that it was made specifically for “Total Annihilation”: for example, the fact that animations have to be scripted limits their complexity, and it’s not possible to deform meshes in any way, which is fine for tanks and robots but a serious problem if you’re trying to make something organic (remember how strangely units moved in “Total Annihilation: Kingdoms”?). Okay, so technically I could go in and rewrite the engine myself, but if I’m going to do that, why not try doing it myself?

Also, although I learnt a lot about 3D modelling and texturing, most of what I had to learn was how that specific game engine had been designed, something that’s not really much use for anything else.

The reason this is a bad thing is that I consider myself to be very much in a learning period: I’m not good enough at programming, 2D animation or 3D modelling to make any of my wild ideas come to life, so everything that I work on needs to teach me something new. Hence the little games in C with SDL”. First a Sokoban clone to learn the basic of drawing sprites on a screen with a simple graphics library, dealing with input, loading and saving. Then there was a Snake clone to practice regulating frame-rates and drawing text on the screen (a short while ago updated the graphics and released it). The results are not nearly as important as the lessons learnt.


Recently I’ve been working using C++/OpenGL with Striker, of “TheGameHippo.com” fame. Striker built the basic engine architecture and I’ve been doing the higher logic code (we haven’t actually done any work for a while, because of my exams and family visits and his new job).


Working with somebody else has taught me an important lesson: that although it’s nice to do everything yourself and from scratch, and occasionally frustrating to work within someone else’s framework, it is simply impossible to do be everywhere at once, and making a reasonable game from the ground up is not feasible for one person. Unless, of course, that person’s name is “David Rosen”.

Alas, for us mortals, stubbornness can only get one so far. If anyone else has insight to share with regard to getting into game development, teamwork, modding and choice of languages, please speak up!

Good games for Linux: part 1 – RTS

It’s a commonly held belief that there are no games available for Linux. After all, go to any game store and I guarantee you’ll find only one or two with an Apple on the box, let alone a Penguin. To most commercial developers “cross-platform” means Xbox360, PS3 and Windows, so Linux games are unheard of, right?

All this is true: Linux games are unheard of.

But that doesn’t mean that they don’t exist.

As it happens there are a good number of truly Cross-Platform games out there, you just need to know where to look. Yes, that’s right: you’ll have to actually look for them, not because they aren’t good enough games to get press, but because they have no marketing budget: the games featured on sites like “Gamespot” and “IGN” are generally those who can pay for the privilege, not those who necessarily deserve it.

Below is a list of what I, personally, consider to be the best free games for Linux at the time of writing. I’m limiting myself to free games because I really want to talk about the home-grown. Most of these will work on Windows and Mac too, and since they’re free you can also go and check them out immediately. This is not to say that commercial developers avoid these platforms though: for example, ID software is very good about porting their games, and the current Humble Indie Bundle features five six independent games that will run on Windows, Linux and Mac (the deal has been extended till tomorrow to celebrate the games releasing their source-code).

Anyway, let’s get cracking – good games for Linux, coming right up! The list is far too long to cover in any depth in one post, so I’m going to go through this genre by genre, starting with my favourite…

Real-time Strategy (RTS)

Globulation 2

I wanted to start with “Globulation 2″ because it’s a game so obscure that even Linux gaming sites rarely feature it, despite it being, well, a really good game. This RTS was made in reaction to games like Starcraft, where memorising build-orders and clicking really quickly are more important than actual strategic thinking:

In other words, Globulation 2 hates micro-management, replacing it with AI and a very intuitive control interface, and in so doing frees the player to think about how they’ll overcome their opponent. Another feature I really like is the way the maps wrap around, meaning that nobody can hide in the corners.

Spring Engine

“Spring”, as the title suggests, isn’t a game so much as an engine. Originally built as a way of playing “Total Annihilation” in full 3D, it has evolved over the years into an Open-source “Supreme Commander” clone, and framework for all kinds of different games/mods (they’re never quite sure what to call themselves). Most of these are TA-based, as it is assumed that the game is abandon-ware, and so using the resources is kosher – in theory.

There are some exceptions though, and these are, in my book, a lot more fun to play than the rule: this community has existed for a very long time, and the TA-based mods feature hundreds of units, making them very tricky to get the hang of. My personal favourites would be the computer-themed spam-fest “Kernel Panic”, the futuristic cyber-daemon-themed “The Cursed” and the epic-scale Company-Of-Heroes-like “Spring 1942″.

“Supreme Commander 2″ has gone the way of “Command and Conquer”: dumbed down for consoles with experience bars and achievements, so Chris Taylor’s plans to put the “strategy” back into “real-time strategy” seem to have been abandoned. This makes Spring the last bastion of the “old-school”, TA-style RTS. I heartily recommend it!

Glest

“Glest” is a fantasy Warcaft-like that really deserves mention because of its professional quality, despite the fact that it is, well, a bit of a click-fest (or maybe I just suck). Either way the game is really very good-looking, with two distinct sides, interesting and well-animated units and challenging AI:

I’d also mention “0 AD”, but then that’s not out yet so doesn’t count. Anyway, those few should keep you going for the time being. Till next time at any rate…