Game Design, Programming and running a one-man games business…

Starting on the challenge stuff…

GTB is such a huge game that I seem to veer into certain areas of it for weeks at a time, then veer back into other bits of it and think “did I write all this code?”

One of the features from Gratuitous Space Battles that I was very happy with, was the online challenge system. It was very popular. About 226 trillion billion zillion challenge games have been played (roughly). Obviously I want a similar system incorporated into GTB, and naturally I want to fix the things that were not perfect, which I identify as:

  • The challenge browser was not as good as it could be. You couldn’t filter out played/downloaded challenges.
  • Any challenge that had content, be it DLC or a mod that you did not have, could crash the game, and not be pre-filtered
  • The emotional connection between you and the challenger was limited. (Rarely used messaging, and rating, but not leaving comments etc).

I plan to fix all of this, but the middle one is the current one of interest.

GSB had a binary .gsb format for a challenge, which basically packed in binary data for the fleets designs, deployments and orders, and a little bit of data about the challenge (custom settings etc) and that was it.

GTB will use a new .pak format I’ve written that will behave a lot like a zip file. (no compression yet, sadly). It will be a folder full of stuff for each battle, all the enemies unit designs, the deployment timings for their attacking units (or initial deployments of defending units), and all of the data from the scenario file, down to the location of every tree, crate, barrel, barbed wire etc…

That makes a GTB challenge file slightly larger than before, but I can live with that. They are under 100k. How many custom maps in games are under 100k now? It also means you could move a few trees or change the texture of a single tile, and upload an existing scenario trivially without any inconvenience.

Anyway…. The upshot of this new file format is that theoretically, if I write the code for it, the format could include custom sounds, graphics etc. That means you could do a mod for GTB which included different textures for the terrain, and custom units, issue it as a challenge, and EVERYONE could play it, because the required content gets downloaded with it.

Sadly, there is no way to prevent dupes there, so if you have a custom tank texture, and upload 10 challenges, someone downloading all 10 gets the texture 10 times, but I think that’s not so bad. Only a minority of players are likely to issue or play modded challenges anyway.

The main thing is, my pak file format pakker and unpakker all works fine, so it’s another step along the path to having online play working. Now I need to replicate a lot of the GSB functionality (and improve on it).

Edit: I swapped out my code to use some zip code instead , after finding a zip wrapper that was extremely lightweight.

More is not better. (Why I’m frustrated by hearts of Iron 3)

Having been kicked from a game of red orchestra, for no explicable reason (I presume another of many bugs), I fired up Hearts Of Iron 3, to give it another go. I lasted less than 1 hour of game time (5 minutes of real time), and quit in frustration. The game is, in my humble opinion, a design train-wreck of epic proportions, despite being a game production miracle of awe inspiring proportions.

The older and more experienced I get, the more I understand Peter Molyneux. That probably amuses some people…

I remember people giving him a lot of stick about wanting to simplify combat to just one button. I agree, that’s a bit extreme, but the direction is possibly the right one. game designers, especially very insular ones with no hobbies or interests outside games, tend to go way too far in the direction of over-complexity and over features. The result is a game like HOI 3, a game which absolutely bludgeons you with exceptional levels of micro-management and geekery. In my view, Men of War does the same thing. If I can control what ammo is used, what target engaged, what stance is adopted, and what hat is worn by my troops, and even take direct control of them, do NOT give me 150 of them in one mission. That just INSISTS that I will spend most of the battle frustrated, panicked and annoyed. The same is true with HOI3. If you must add diplomacy to the game, please ignore Costa Rica, Guatemala, Andorra, and other countries whose impact on world War 2 was at best marginal. Do you really want to spend world war 2 micromanaging the rate at which you sell electricity to Nicaragua? Really?

Buying production rights from Bhutan, is not something spielberg will make a movie about any time soon.

The usual game-designers excuse for this behavior, to people who complain (like me) is that there are ‘AI-managers’ that you can switch on to handle the tedious stuff. That is a horrible sticking plaster over a gaping wound. Do not tell me that people who enjoy complex turn-based strategy games are happy to turn over some decisions to an AI manager. We are not. We are tyrants and megalomaniacs who want TOTAL control over our universe. We don’t want to admit to anyone, even ourselves, that we are overwhelmed and giving control over something to someone else. I would rather not play HOI3 at all, than play with most of the game being played by the AI. I don’t boot up my PC so the AI can enjoy itself. Ship me a simpler game, that uses less than 800MB of RAM before the menu screen, please…

This, in essence, is part of the rationale behind GSB. GSB does not pretend you can control 300 starships in a complex battle. it admits you can’t, and thus doesn’t make it an option. Some people hate it. Over 100,000 enjoyed it enough to buy it, so I can’t be the only person with this point of view.

Controlling all the lasers would be frustrating and hard work, so GSB doesn't make it an option

A company that really *gets* this, is popcap. In game design terms, their products are absolutely awesome. I may not like the styling, or the subject matter, but they know how to boil things down to the bare minimum required to capture a particular feeling. I *want* to feel like I am Winston Churchill, leading the British empire to ultimate victory over the Nazis. The key is, I want to FEEL like I am doing it, not actually do it. I don’t want to give over my life to worrying about the diplomatic situation in pakistan and whether or not the armor plating on the decks of the 23rd oil-transport flotilla that goes from Cuba to Portsmouth is sufficient. Churchill did that because it was his full time job, a matter of life or death, and a neccesity ( and he farmed stuff like that out to underlings, anyway). This isn’t the case when you sit down to play a PC game. You don’t have to find a quiet spot in combat during call of duty to go take a crap. Sometimes, it’s a good idea to leave out the boring stuff.

You might think there are not enough complex strategy games for the PC, and maybe you are right. The problem I have is that we have Popcaps games, and then Hearts Of Iron 3. There isn’t enough stuff in between. I’m trying to fill that gap.

When does the sci fi realism bubble burst?

This is prompted partly by the slight debate over whether or not mechs would have lights in their cockpit during night-time battles :D

Obviously they wouldn’t, but that’s nitpicking in comparison with everything else wrong with the situation. If World War I was being fought with mech technology, it would be fought with nukes, from thousands of miles away, and the mechs themselves would certainly not be manned. Why bother? we already have unmanned drones fighting in wars today.

Many Many years ago I remember playing a PC game, it might have been called EF2000 (edit: it was see here!) And although it was fairly accurate and technical and probably very ‘realistic’ it was dull as hell. You never *saw* an enemy plane. The onboard computer identified it, locked the target and you just said “yeah… go on then”. Realism++, fun–.

Most games these days do not take that approach, but more of a laughably shallow and innocent view of what we wish the future would be like, but secretly know it won’t be.  When the black and white flash gordon serials were filmed, they *might* have been able to say this will be the future with a straight face, but not now. Star Wars was world war 2 navy battles, inexplicably in space. Star trek was a western, inexplicably in space, but it almost made sense. There was enough stuff that *did* make sense, and come true, such as hyposprays, communicators, voice recognition and translation in real time, cloaking devices… etc.


Also, there was some stuff we haven’t cracked yet, like time travel, teleporting, blah blah. But that doesn’t mean this can’t be done one day…

Where it all goes wrong is weapons. The Star Wars / Flash Gordon / Star Trek weapons are laughable. Which would you rather have in a fight? An AK47 or a phaser? An Uzi or han solos blaster? The weapons are woeful, doing laughably poor damage, over hilariously short distances. The phantom menace battle droids are truly rubbish. Mechs make no strategic sense. Helicopters are better in every way.

We stick with this, for entertainment purposes, because we suspend our disbelief and remember being 7 years old and ‘buying in’ to the idea of the laser rifle, but for how long will this laughable fantasy work? A kid these days won’t have any innocent years where the whole world believes in laser pistols and space fighter planes dogfighting. These days sci-fi isn’t flash gordon, it’s Iain M Banks and his amazing worlds of smarter-than-us AI fighting battles between self-aware starships millions of kilometers apart using invisible weapons in battles that last fractions of a second. Awesome stuff, but shit for games.

So what do we do? will the belief-suspension bubble burst for sci fi weapons? How long can we keep re-fighting the battle of stalingrad with lasers and shiny space robots? A long time, I hope :D

The Gratuitous Editor and UI flow

I’m working on the GTB map editor.  Editing the maps won’t be just for modders, but for everyone, so this is a very important part of the game and I need to get it right. I’m going to really encourage custom maps as a big part of the game, with the singleplayer campaign maps acting purely as examples and tasters of what can be made.

Here is a Work-In-Progress screenshot with some old GSB UI still in place:

Given my plans for it’s use, it’ s important that the editor looks easy to use. I’m wary of making mistakes in terms of UI flow. Essentially, the editor works in 3 modes, which I’m currently calling ‘normal’ ‘prop’ and ‘ground’ which is a bit rubbish, but I need to split things up somehow.

Normal mode, lets you edit individual tiles, by setting up routes, toggling them as attacker or defender-deployable, and placing ‘whole-tile’ items like trench sections, emplacements, or sections of path.

Prop mode is basically where you add, move, rotate and scale decorative items like barbed wire, trees, tank traps, and other fluff that exists to make the world look interesting

Ground mode lets you edit the background tiles, which is again, purely visual.

The window on the right changes with each mode to display the relevant items (tiles / props / textures).

A right click menu, mainly for normal mode, lets you carry out actions on all the selected tiles. The editor supports zooming in and out with the mouse, WSAD movement, drag-selection and ctrl-selection.  It adjusts ( a bit) to different resolutions.

The thing that concerns me is the UI ‘flow’ of those three modes. I wonder if I can somehow squash all 3 modes together. Hmmmm.

Planning out Gratuitous Tank Battles Development

This is one of those brain-dump blog posts where I just use the blog as a public todo list…

Major Things I need to do for GTB (still remaining)

  • Support for creating new custom maps from scratch and saving them to your local disk as new singleplayer maps. (includes final work on the map editor, and support for browsing custom maps, rather than the campaign maps)
  • Support for uploading new maps as scenarios for other players to download. (system for describing a map, verifying it is valid, ensuring no content is modded, listing it in the online database, and for clients to refresh that database quickly and smoothly).
  • Code for online profiles and stats checking, player friends lists, messaging and leaderboard stuff. (Possibly including regimental banners and descriptions, and integration of that into loading screens).
  • Code to support auto-updating for direct-bought copies, with registry-enabled paths so we don’t need to tell installers wheer the game is any more.
  • Tutorial, and method to reset it in the options screen.
  • Manual
  • Re-checking the unlocking system and choosing unlocks.
  • Support for modding. Allowing new unit variations, new hulls, new ground and prop textures, new sounds.
  • Integration with steam achievements (assuming steam approves the game) and maybe other steam features.
  • Integration of final art assets for battles, and construction of the singleplayer campaign maps, enemy units.
  • Integration of final, improved menu GUI to remove all that GSB placeholder stuff from the unit design screen
  • Optimisation
  • Bug testing
  • Play Testing and Balancing

The list doesn’t see quite so terrifying when I list it like that. Maybe things aren’t as huge as they seem. I should probably start thinking about releasing some screenshots at some point.