Game Development Community

dev|Pro Game Development Curriculum

Darkwind Rolls out with Torque!

by Donald "Yadot" Harris · 10/22/2010 (11:40 pm) · 13 comments

Passion and dedication are the core traits to help anyone get through developing a game. Let's take a look at how this group made it through their development process with an interview from Sam Redfern of Psychic Software.

Please describe Darkwind: War on Wheels in your own words.

Darkwind is a multiplayer online, turn-based, squad-level tactical car combat game set in a persistent-world post-apocalyptic near future. It’s not easy to define its genre because it’s such a unique game: perhaps it’s an MMOTBS (Massively Multiplayer Turn-Based Strategy) game.
Gameplay is split between a web interface (for strategic management of your gang, the setting of travel orders, forming of multiplayer squads, building and fixing cars, etc.), and a TGE-based client (for the playing of actual combats and races, which are run as “instanced” missions).

The actual live events take anything from 15 minutes to several hours depending on how many players and cars are involved. These include (1) ‘in town’ events – races, deathraces, and arena combats – which form a number of leagues running every 12 weeks (which is one year in-game); and (2) wilderness combats between player-squads and computer-controlled NPC gangs in either PvP or PvE style.

Darkwind is really a labour of love as much as a hard-nosed business venture, which is both its strength and its weakness.

What was your role on Darkwind: War on Wheels?

My role was/is game designer and programmer. I’m not an artist but I pitch in with occasional texturing and the rigging of 3DS models for use in TGE where required.

What makes your game unique?

Darkwind really is a unique game overall, there are no other games very similar to it. This is because of a combination of rare and unique factors:
• It is the only turn-based car game that uses realistic physics. The concept may sound strange (and an abomination to some people) but having time to plan your moves actually makes for a more intense and controlled racing/combat experience (and allows for a much more detailed wargame-like combat system);
• It has ‘perma-death’ as well as long-term and permanent character injuries and ageing. This is very unusual in the MMO model and it is a strong part of the game’s flavour since it leads to a gritty, dangerous world where death has real consequences. It also leads to a game where the stakes are very high and where bugs and client network outages need to be very carefully dealt with;
• Persistent-world turn-based strategy games are rare, especially in an MMO model;
• Many aspects of the game (travel, vehicle repair, healing, the economic simulations, character training) run to a real-world time scale. This makes strategic decisions about travel and trading important. You don’t just magically appear at a town you’re travelling to, you actually have to wait 18 hours in transit.

What was your inspiration to create Darkwind?

There were a number of important inspirations, and in ways I designed DW as my own “ideal” game, having spent many years observing what I like and what I don’t like about other games. In terms of gameplay content, the main influences would be the Car Wars boardgame (as the core gameplay), football manager games (which provide an excellent model for character-driven development, far better than RPGs in my opinion), and MMOs such as Ultima Online and Eve Online, which have various flaws and strengths pertinent to the MMO approach.
The single greatest influence would be Car Wars, which is a car combat boardgame from the 1980s that I used to play. Many of our long-term players are Car Wars enthusiasts; it’s very satisfying to have produced a game which these people see as their “dream” game that they have literally been waiting for since they were kids. The big problem with boardgames (especially those that aspire to realistic movement and combat systems) is the time and effort it takes to play them. The fact that Car Wars games took more than an hour to play out 15 simulated seconds of time was its major problem. Computers are perfect for running this sort of game, removing all of the effort and none of the fun.

The thematic and atmospheric influences would most strongly be the Mad Max films and the 2000 AD Judge Dredd ‘Cursed Earth’ series.

What was your development process like?

From the outset, I knew this was going to be a big commitment and one which would only be successful if it remained a positive experience to me. From various business ventures I have learned that personalities are absolutely critical to the success of any collaborative project, and that its very silly to get into a legal ownership agreement with other people unless you’re absolutely sure that they are going to pull their weight. So I took on Darkwind, initially, as a solo developer.

Working alone really simplifies the development process. I have always worked from a big, somewhat disorganised, document filled with ideas and suggestions. I have kept some order on this by periodically taking stock and refocusing on short-term and long-term goals from this list. The players have always had a big input into the game’s development, which is one of the things they really enjoy. People have a need to be creative and to feel that they’re contributing something good to the world. I do this through Darkwind, and so do those players who create content and make suggestions for it.

How many people worked on the dev team? How did you work together?

Apart from me, there have been quite a lot of minor contributors (contracted and voluntary) to Darkwind over the years. All have worked on small, focused components of the overall game according to their skills: level design, GUI design, texturing, community management, creative writing, music and voice, and so on. They haven’t needed much direction or coordination due to the focused nature of their tasks.

Physics-based games are a good choice for a programmer to develop alone, since their animation comes from physics calculations rather than manual effort by an artist. Our 3D assets come mostly from Turbo Squid and GG content packs.

How long did it take to create?

5 years and counting.. ;-)
We consistently maintain over 250 subscribers, so that keeps me motivated.

The game has been under active development since summer 2005, went into open alpha in early 2006, and opened officially to subscribers in May 2007. We’re continuing to add new features all the time. Currently we have implemented 8 in-game towns, 50+ unique types of chassis, 60+ maps (i.e. Torque .mis files), and 50+ different types of weapons.

How did you accomplish QA and beta testing?

We spent about 14 months in alpha and beta, so much of this work was done directly by the players at that time. Darkwind is under continuous development, so it’s never ‘finished’ as such, and is never 100% free of bugs. We use Mantis and old-fashioned forum discussions for bugtracking.

I also have a variety of daemons running on the main server, which give me feedback about game balance, warn me of gameserver crashes and other problems, etc.

What software/tools did you use to create the game? Why did you use those particular tools?

TGE (initially 1.3 but patched later up to 1.4) is used for the game client. I originally selected TGE in 2004 having researched the various options: Torque came out as the strongest candidate due to its track-record of actual finished games plus its lively community. I’m convinced it was the right choice; it’s an amazing piece of work and is in most ways very soundly written and robust. It also compiles onto both Windows and OSX, which is great.

The master server, webserver and gameservers all run as LAMP installations (Linux, Apache, MySql, PHP). Linux is amazingly robust (never seems to need rebooting) and is obviously a good price ;-) MySql and PHP are also very powerful. I use PHP (in command-line rather than web mode) as the language for the Master/Lobby Server and the various Daemons which control miscellaneous daily/weekly/12-weekly housekeeping tasks such as character training, trade simulation, creation of deathrace leagues, update of NPC ‘pirate gangs’ strengths based on their fortunes in combat, etc.

I also wrote a light-weight lobby-client/asset-patcher in Java. The choice here was due to its cross-platform nature.

The client-side web interactivity is in Javascript using various SDKs and custom-written code.

My IDEs are: Visual Studio and XCode (for C++), TorqueDev (for Torque Script), Notepad++ (for PHP, Javascript and HTML), and Eclipse (for Java). Additional tools would include Photoshop and 3DS.

Describe 2-3 of your biggest technical hurtles and how you overcame them. Give as much detail as possible, to the point of getting uber-technical. ^_^

Probably the biggest single technical challenge is the AI control of enemy cars. While the ‘racing AI’ was quite challenging in itself, incorporating waypoint-based driving and dynamic obstacle avoidance using extrapolated movement of bounding boxes and momentum-informed raycasts, it was never in the same league as the ‘combat AI’ which has to deal with a dynamic and complex tactical environment.

Unlike the ‘pedestrian’ combats that we see in First Person Shooters, vehicular combat involves momentum. More than anything, this makes the AI difficult to achieve. Acceleration and deceleration, turning, sliding, spinning, and crashing (which can easily destroy a car at high speeds) all have to be taken into account. On top of this, AI tactics have to assess the status of the battlefield and the actions of the players (are they forming a sniper trap to lure us into? Can we outflank them? Are we getting demoralised and do we need to regroup?).

Unlike aerial combat games (which also have momentum, of course), the terrain and the buildings etc. on it are a complex and dangerous factor, which must be navigated and negotiated.

The combat AI in Darkwind operates according to a multi-layer set of strategic and tactical goals. NPC squads try to stay together and cover each other (unless they’re taking ballistic damage in which case they need to scatter), they search for positions to outflank the opponent, and they assess individual opponents according to their relative tactical importance. These decisions are all informed by current vehicle momentums and shape of the terrain, and are ultimately controlled by either astar pathing, or (where appropriate) direct route driving or (sometimes) mimicking of the path taken by the enemy.

The development of the astar data was a nice achievement: it is copied from player actions. So Darkwind’s players actually teach the AI about the most effective routes around each map. The positions of the player vehicles are cached for 5 seconds before being committed to the astar data, so that they can be thrown away in the case of a big collision (we really don’t want to copy a player if they’re doing something dumb like driving off a cliff). I am continuing to improve this AI; currently, this involves not only storing all possible routes as copied from the players, but actually recording how many times these routes were used, and then using their popularity to determine node-to-node ‘cost’ when assessing astar routes. It’s essentially the AI ‘pheromone’ approach copied from ants.
Other than the AI, I would find it harder to identify the other ‘major hurdles’ since there were many of approximately equal size. But very briefly, here’s two of them:
• Dealing with disagreement between the client and server about the physics calculations and therefore vehicle positions, which leads to vehicles juddering or jumping between positions (this is a continuing problem with TGE – take a look in the discussion forums). Initially I found that a major cause of this was that the process-list which runs through the moving objects in the simulation and advances their time in ‘ticks’ is not always ordered the same on client and server. By re-sorting these to be identical, most of the problems went away. However, the big breakthrough came when I decided to remove all physics calculations from the client – I could do this due to the turn-based nature of Darkwind. Everything has been rock-solid since this breakthrough (the server packs all 32 ticks of positional data on every dynamic object to the client on each simulated one-second.. but this is only done once per move so the game is much lighter than a realtime game on network activity). The graphical frame-rate on the client also benefited greatly since it was no longer performing physics calculations.
• Darkwind is turn-based – the game freezes while everyone sets their moves (within a 30-second timelimit, typically) and then one second of time is simulated before the game freezes again. However, not every object in the simulation should freeze – cameras, the sky and sun, and certain emitters are realtime. Some objects are actually a mix – emitters being a good example: weapons-fire happens during the ‘pause’, and when a projectile hits, its explosion emitters are simulated for about one-third of a second as ‘realtime emitters’ before becoming ‘turn based’ – otherwise you wouldn’t see the explosion at the time of impact. Decals are another interesting one – they had to be turn-based, otherwise they would fade and disappear according to real-world time.

If you had to do it all again, what would you change about creating this game?

I would create a game that wasn’t quite so niche as turn-based tactical car combat. A simpler deathracing game or a real-time car combat MMO would probably have been better decisions from a business point of view.

Any advice you would give aspiring game developers out there?

Don’t be afraid to innovate! The world really doesn’t need Yet Another First Person Shooter, especially one that’s made on a tiny budget. It’s not possible to compete with the big hitters if you’re trying to copy them. Large game companies however are not able to innovate in the way that indies can, since there are not willing or not allowed to take risks with ‘unproven products’. So make something unique! Maybe not something as crazy as a turn-based car game, but still unique ;-)

My other piece of advice would be to let your game-playing community contribute. (This is only appropriate in certain types of games, of course – MMO-type games are perfect since they continually evolve after their initial release). My players have contributed hugely with level design, 3D modelling, texturing, creative writing, music, community support, and general gameplay ideas. There’s lots of talented people out there who want to make something creative, and it’s really a win-win to let them do so.

More info can be found here:

10/23/2010 (12:32 am)
Nice interview, and a great example for us to look up to! It's always great to see someone making their dream game, no matter how niche it is ;).
10/23/2010 (2:29 am)
The idea of permanant injuries and player aging sounds really unique.

Car Wars - crikey, there's a blast from the past.
10/23/2010 (12:30 pm)
I remember seeing this aaaaages ago! Congratulations on getting Darkwind out Donald, it looks great, is incredibly original and as always I have the upmost respect for anyone who gets to release, it's a monumental acheivement. Best of look with sales, I hope it is fruitful 8)

Respect !!
10/23/2010 (1:15 pm)
@Harvey who wait its not my hard work and sweat :) The guys behind it can be found here That's 5 years of hard work I cant take credit for that. Like
10/23/2010 (9:21 pm)
I remember beta testing Darkwind years ago. It was fun, but I just wasn't any good :P

Great interview
10/23/2010 (10:37 pm)
Nicely done! Long Live TGE!
10/24/2010 (11:30 am)
Kudos to Sam!
Thanks for interviewing him Donald. :-)

Darkwind rules! ;-)
10/24/2010 (12:29 pm)
oooh, aaaah,.... DOH !! Yeah, sorry it's been a long week 8) ...Cheers for clearing that up Donald...I'll get my coat...

Congrats to everyone involved though. It's great to see this on the cusp of being finished / released etc. I too remember it from years ago. Great stuff for sure....I love seeing people getting their projects completed, it's what this place is all about eh?
10/24/2010 (1:53 pm)
great interview, cool project, going to try it out now, thanks
10/24/2010 (8:30 pm)
Thanks all :-)

@ Harvey - actually we have been 'live' since May 2007, but your nice comments are appreciated anyway :-)
10/25/2010 (8:40 am)
Oooo Car Wars :-)

funnily enough I just found my old Car Wars rules books the other day.

Car Wars is a pencil & paper car combat game, Imagin this only 20+ years in the past!

Looks great
12/15/2010 (12:18 pm)
one thing were do u download it from
06/21/2012 (2:59 pm)
Amazing graphics and gameplay, awesome job, keep up the great work!