Some things are supposed to be easy.
Things like leagues. Leagues are easy, right? Teams go up, teams go down, some simple rules and bongio - you've done it. If only. Leagues in TCFG are fairly complex beasties.
As in real life, an entire league system is split into levels, and each level is further split into a number of divisions. At the top, there's one division. At the bottom, there could be as many as 30. It all depends on the nation. These levels all reorganise themselves each season to maintain some sort of regional distribution of teams, and all is good.
The hard bits come in when you start to think about forced relegations or promoted teams not making the criteria. Then you end up with some levels having too many teams, and others being relatively empty, and then you have to start messing about with relegations and promotions in order to get them in order again. And that's not easy, especially as you can't forcibly relegate a team just to make up the numbers. That's a bit unfair.
And just when you think you've got all that done, a giant monster comes along and stamps on it all, screaming "What about when leagues split into two very separate halves?"
Some league systems are really made up of two or more leagues, that converge as you get higher. If you're in one of these smaller leagues, you can't be moved to the other just to make up the numbers. Oh no, you're stuck there. You know where you are, and you know where promotions and relegations go. It's not too bad until the same problems as before jump in through the window. What if it's not even? It just gets messy.
Meh. It'll work out, I tell myself whilst crying into a pot of soup. And if it doesn't, at least it might generate some spectacular fractal displays on the screen.
Smashed screens are fractal, right?
Sunday, April 30, 2006
Thursday, April 27, 2006
Fucked Over
I'm sure in many industries, you'd expect competitors would do whatever they could to get one over on a direct rival. If Cadbury are making a killing marketing Fruit & Nut at mental hospitals, Mars might well start tipping off news reporters about the lack of consideration being shown, knocking Cadbury down a peg whilst they introduce their new Spacer bar.
The games industry is surely no different. However, I am quite utterly baffled that a company who deal mainly in music games have decided they need to get one over me, hindering my progress in a subtle yet horrid way.
I'm talking about those bastards at Harmonix, who have cruelly decided to release Guitar Hero in the last few weeks, sapping any time I actually have had to work. Since getting the game I've done nothing but badly play my way through a selection of riffs and feeling like a true golden god.
Curse you Harmonix, and your evil, Satanic ways. Clearly a collusion with the Dark Lord.
Of WRAWK. The more W the better.
The games industry is surely no different. However, I am quite utterly baffled that a company who deal mainly in music games have decided they need to get one over me, hindering my progress in a subtle yet horrid way.
I'm talking about those bastards at Harmonix, who have cruelly decided to release Guitar Hero in the last few weeks, sapping any time I actually have had to work. Since getting the game I've done nothing but badly play my way through a selection of riffs and feeling like a true golden god.
Curse you Harmonix, and your evil, Satanic ways. Clearly a collusion with the Dark Lord.
Of WRAWK. The more W the better.
Thursday, April 20, 2006
Kudos on your Gibbage
There are other blogs out there. Blogs with news about kittens dying horrible deaths, blogs with news about kittens being horribly born; I have witnessed this, it's not a pretty sight and it only means that the books I read as a kid have lied to me. Even blogs with news about kittens being raised from the dead for sacrifice. They're out there.
There are also other blogs by games developers looking to chronicle their efforts for historical purposes. Armies of bearded net archaeologists drinking lots of tea might want to know why The Mysterious Sofa Man never got a worldwide release, and how to beat level four where the fat man attempts to sit on you.
One such blog is Dan Marshall's effort, Gibbage. I implore you to read it for a multitude of reasons. It's funny, for a start, and it's actually well written. Presumably because Dan knows how to do that sort of thing without tripping over his own convoluted metaphors. Another reason is the game itself, er, Gibbage.
Gibbage. I was a bit frightened when I first heard about the game. I don't know what Gibbage means so I looked it up in a dictionary. Imagine the horror when I found out that a "gib" is a castrated male cat. I had had enough of blogs about kittens that are sexually active, the last thing I needed was one where Tiddles is without his winky.
Thankfully, it also appears to mean something else, along the lines of horrible desmemberment of spikey haired, cartoon people, which was much more pleasing to my ear after having to put up with a Pokemon obsessed little sister.
Gibbage is, at its heart, a two player single screen action game, the aim of which is almost certain death. You bound around the level, chase your opponent and attempt to produce a kaleidoscopic image of limbs, blood, eyballs and tattered clothing. Also, there's something about collecting power cubes and returning them to base in order to win, like a platform capture-the-flag, but I was too busy dying horribly because I thought that was fun.
If I was playing with a friend, I'd possibly have tried to kill him instead. Six quid to kill as many friends as you like, even top professionals cannot match that price. If you like Worms, you'd like Gibbage.
Another such blog is Cliffski's. Cliff's actually got loads of games under his belt, like Democracy, in which you become the elected head of state of a real-world nation and attempt to please everyone at the same time (and fail), and Starship Tycoon 2 where you run a fleet of interstellar transport spaceships. Which is clearly better than a theme park, yet people keep buying theme park games. I believe the two games should really be merged into Capitalist Space Pig-Dog-Monkey 3 With Added Elections, but perhaps its good that Cliff doesn't listen to me. Also, there should be talking quaggas.
His latest game, which isn't finished yet but actually exists (unlike... um... moving on) is Kudos, which he cleverly attempts to describe as "a life sim that's not like The Sims but more like Animal Crossing which I have not played".
I'm sold, at any rate, because Animal Crossing is excellent and The Sims was just boring. In Kudos, you live life - go out drinking with your buddies, make more friends, get a job, realise you hate the people you work with, get a girlfriend, find out that the girlfriend hates all your friends but loves your work colleagues... and so on until an anthropomorphic duck tells you he's a hammer whilst looking whistfully at a phallic constellation in the sky.
Ideally. That's easily the best bit about Animal Crossing.
What I like about both Kudos and Gibbage is that they are indicative of the independent developer's range, variety and imagination, with which the major publishing houses can rarely compete. It reminds me of the early 8-bit days when the hobbyists were at the forefront, when every new game that wasn't a direct clone of an arcade hit was delivering something new.
That's how I see the indie scene, that's where the passion can be. Guys like Dan Marshall and Cliff Harris making games they believe in, and the quality can often shine through into the finished product. It doesn't stop with those two. There's Si Read, creator of New Star Soccer 3, pretty much the only game out there where you get to live the life of a footballer since the days of Gremlin's Footballer of the Year. There's Introversion making games like Darwinia, or the forthcoming Defcon which allows you to attempt a bit of Global Thermonuclear War without the help of WOPR, and has the genius touch of "office mode" so you can finally nuke the guy from accounts and the boss will be none the wiser. Games built by guys and girls who've thought, "You know what I'd love to play?" and then gone and fucking built it.
You can only be urged to support them if you like their games. Help them make more.
And help me as well, my blog needs traffic.
There are also other blogs by games developers looking to chronicle their efforts for historical purposes. Armies of bearded net archaeologists drinking lots of tea might want to know why The Mysterious Sofa Man never got a worldwide release, and how to beat level four where the fat man attempts to sit on you.
One such blog is Dan Marshall's effort, Gibbage. I implore you to read it for a multitude of reasons. It's funny, for a start, and it's actually well written. Presumably because Dan knows how to do that sort of thing without tripping over his own convoluted metaphors. Another reason is the game itself, er, Gibbage.
Gibbage. I was a bit frightened when I first heard about the game. I don't know what Gibbage means so I looked it up in a dictionary. Imagine the horror when I found out that a "gib" is a castrated male cat. I had had enough of blogs about kittens that are sexually active, the last thing I needed was one where Tiddles is without his winky.
Thankfully, it also appears to mean something else, along the lines of horrible desmemberment of spikey haired, cartoon people, which was much more pleasing to my ear after having to put up with a Pokemon obsessed little sister.
Gibbage is, at its heart, a two player single screen action game, the aim of which is almost certain death. You bound around the level, chase your opponent and attempt to produce a kaleidoscopic image of limbs, blood, eyballs and tattered clothing. Also, there's something about collecting power cubes and returning them to base in order to win, like a platform capture-the-flag, but I was too busy dying horribly because I thought that was fun.
If I was playing with a friend, I'd possibly have tried to kill him instead. Six quid to kill as many friends as you like, even top professionals cannot match that price. If you like Worms, you'd like Gibbage.
Another such blog is Cliffski's. Cliff's actually got loads of games under his belt, like Democracy, in which you become the elected head of state of a real-world nation and attempt to please everyone at the same time (and fail), and Starship Tycoon 2 where you run a fleet of interstellar transport spaceships. Which is clearly better than a theme park, yet people keep buying theme park games. I believe the two games should really be merged into Capitalist Space Pig-Dog-Monkey 3 With Added Elections, but perhaps its good that Cliff doesn't listen to me. Also, there should be talking quaggas.
His latest game, which isn't finished yet but actually exists (unlike... um... moving on) is Kudos, which he cleverly attempts to describe as "a life sim that's not like The Sims but more like Animal Crossing which I have not played".
I'm sold, at any rate, because Animal Crossing is excellent and The Sims was just boring. In Kudos, you live life - go out drinking with your buddies, make more friends, get a job, realise you hate the people you work with, get a girlfriend, find out that the girlfriend hates all your friends but loves your work colleagues... and so on until an anthropomorphic duck tells you he's a hammer whilst looking whistfully at a phallic constellation in the sky.
Ideally. That's easily the best bit about Animal Crossing.
What I like about both Kudos and Gibbage is that they are indicative of the independent developer's range, variety and imagination, with which the major publishing houses can rarely compete. It reminds me of the early 8-bit days when the hobbyists were at the forefront, when every new game that wasn't a direct clone of an arcade hit was delivering something new.
That's how I see the indie scene, that's where the passion can be. Guys like Dan Marshall and Cliff Harris making games they believe in, and the quality can often shine through into the finished product. It doesn't stop with those two. There's Si Read, creator of New Star Soccer 3, pretty much the only game out there where you get to live the life of a footballer since the days of Gremlin's Footballer of the Year. There's Introversion making games like Darwinia, or the forthcoming Defcon which allows you to attempt a bit of Global Thermonuclear War without the help of WOPR, and has the genius touch of "office mode" so you can finally nuke the guy from accounts and the boss will be none the wiser. Games built by guys and girls who've thought, "You know what I'd love to play?" and then gone and fucking built it.
You can only be urged to support them if you like their games. Help them make more.
And help me as well, my blog needs traffic.
Wednesday, April 19, 2006
Tons of Lovely Data

Yup, that's a screenshot. Unfortunately for you, it's just of the editor. Remember what I said earlier about funbots (clearly in a moment of drunken madness, may I add)? The editor is currently the main focus of my work, as it's through the editor's creation that the database structure is defined. But look at the snazzy kit colours! Ooooh!
If The Complete Football Game is to successfully simulate the entire football world, it would need a lot of data. Teams, players, competitions, nations, cities, stadia, league systems, regions, ex players, defunct nations and clubs, currencies, spoken languages, injuries, rivalries and more need to be stored to keep the game ticking along, and with over 250 nations in the game you'd be forgiven for thinking it's a struggle to get them all in.
Yet TCFG's database currently weighs in at a relatively paltry 63MB, uncompressed. The structure is not yet complete - leagues still need to be catered for - and when the game's running it needs a lot of space to store all the fixtures and results that don't get stored in the database, but ultimately TCFG is surprisingly space friendly.
The above screenshot shows the main club edit screen. Now, I dunno if Newry City are that rich in real life, and the layout isn't fantastic, but the editor's more about function than style right now. Each club has two kits, three teams (each with their own stadium if necessary), a maximum of 80 players (which ought to be sufficient), and various other titbits of information. Enough for a club.
Players are even more detailed. Each player in TCFG has his date of birth, nationalities, international record, spoken languages, a rating for each of the 16 positions in the game, his career history, which foot he kicks with, how good his weaker foot is at various tasks - enabling a right footed player to have poor accuracy with his left but still be able to give it a hefty whack - forty-eight attributes and information relating to his overall ability. And on top of that, there's his height, skin colour, hair and beard styles and colour, and even an attribute to let the game know that he changes his appearance more often than Djibril Cisse.
All that - and the database is capable of storing 375,000 players.
Now, that ought to give some insight into how complex the game is, and why it's bloody taking so long.
Sunday, April 16, 2006
How many microbots?
I got up early this morning and rushed off to the post office. The reason? FM Handheld, Sports Interactive's new version of Football Manager for the PSP. Good job too, as I've done nothing all day but play this beast. It's rather good. And it got me thinking.
It got me thinking about structure, which highlights what an interesting life I lead. FM is pretty much a database with some funky bits attached. There's no getting away with it. At its core lies information, and every time you hit that continue button some little microbots get to work whipping that information inside the game to make things happen. Little microbots with different jobs like "transfer AI", "match", and "cheating AI", or so we all think. Not to mention the miniscule robots that can see into the real world to make sure you're superstitiously holding your nose with your big toe whilst singing the first three verses of Sweet Child O' Mine, and woe betide you fall below an octave because you just know that the opposition will score. Yes, those microbots are there too.
So I was thinking about all this, and not smoking anything at all, and wondering what bots are in my game. The Complete Football Game's (still that wondrous working title) main feature is the scope of its world - tons of leagues of all shapes and sizes and cliches. Other than the match engine itself, it is the most important part of the game. Teams get results, results power competitions, little compobots run around moving teams around accordingly. I never imagined it would be so fucking hard. Really, if I had known this at the start I'd have given the game six generic leagues and left it at that. But now I'm close, real close.
Close to the funbots. The competition engine, as I've named it in a bout of ingenuity, isn't too far from completion, and when it's done the game will be able to take results and shape them into something not too dissimilar to reality. At that point, I'll be able to look around the gameworld at all the lovely stuff going on. I can almost smell it, it's that close. And it's just information in the end, the problem was getting the right information.
Then the true fun comes. Well, I say fun, when I really mean stuff that produces instantly visible results. The whole competition structure doesn't produce anything until it's finished, yet it's a year long project so you can see how motivation can drop. Working on something you can't even tell will work for twelve months... man. Soon I'll get those results. It'll work, I'm sure about that. Took long enough. Then the funbots. The transfers, the media, the weather system, the tiny little animated bits on the menu. If I have any of that.
Who knows, I may just die if this damn thing doesn't work in the first place.
It got me thinking about structure, which highlights what an interesting life I lead. FM is pretty much a database with some funky bits attached. There's no getting away with it. At its core lies information, and every time you hit that continue button some little microbots get to work whipping that information inside the game to make things happen. Little microbots with different jobs like "transfer AI", "match", and "cheating AI", or so we all think. Not to mention the miniscule robots that can see into the real world to make sure you're superstitiously holding your nose with your big toe whilst singing the first three verses of Sweet Child O' Mine, and woe betide you fall below an octave because you just know that the opposition will score. Yes, those microbots are there too.
So I was thinking about all this, and not smoking anything at all, and wondering what bots are in my game. The Complete Football Game's (still that wondrous working title) main feature is the scope of its world - tons of leagues of all shapes and sizes and cliches. Other than the match engine itself, it is the most important part of the game. Teams get results, results power competitions, little compobots run around moving teams around accordingly. I never imagined it would be so fucking hard. Really, if I had known this at the start I'd have given the game six generic leagues and left it at that. But now I'm close, real close.
Close to the funbots. The competition engine, as I've named it in a bout of ingenuity, isn't too far from completion, and when it's done the game will be able to take results and shape them into something not too dissimilar to reality. At that point, I'll be able to look around the gameworld at all the lovely stuff going on. I can almost smell it, it's that close. And it's just information in the end, the problem was getting the right information.
Then the true fun comes. Well, I say fun, when I really mean stuff that produces instantly visible results. The whole competition structure doesn't produce anything until it's finished, yet it's a year long project so you can see how motivation can drop. Working on something you can't even tell will work for twelve months... man. Soon I'll get those results. It'll work, I'm sure about that. Took long enough. Then the funbots. The transfers, the media, the weather system, the tiny little animated bits on the menu. If I have any of that.
Who knows, I may just die if this damn thing doesn't work in the first place.
Saturday, April 15, 2006
Why I'm a bit of an idiot
One thing about trying to develop a very large game is that it's very, very easy to get sidetracked. I could be working away trying to get the interface working when suddenly I find myself thinking about different ways a guy might kick a ball.
This, as you might expect, leads to problems. Leaving one thing to go work on another means nothing gets finished. I had a lovely little target for this Sunday that I was well on course to meet until my little bit of bridge finally met a gaping hole. A gaping hole that I hadn't a clue how to fill.
Normally my musings are carried out anywhere I can be alone. In my bedroom, in the hallway, or in any one of the fifteen trips to the toilet I might take on a regular "working" day to help pass the time a bit quicker. I pace about the room and talk to myself. That's why I'm alone when I do it - it looks fucking stupid but it gets things done. Yet unless I write down everything I say or carry a dictaphone, things get left by the wayside. There's no way of finding out how the hole was supposed to be filled.
About a month ago I decided to take a different approach. I opened up WordPad and started typing, in a style akin to making a presentation but without any unnecessary fluff - explanatory and detailed where necessary. And lots of stupid bold writing, which always comes in useful to make things readable. As it turns out, this was great. No longer did I have to look like Sam Beckett from Quantum Leap when trying to work out the best way to transfer teams between competitions. Nope, I just rattle away. And I can do it at my work desk too. Excellent!
Better still, it meant I could organise my targets a heck of a lot better. Everything I wrote down over those few days has been finished, and works better than any of the other stuff I have. No headaches, no trying to remember what I told myself five days ago - just sitting down and getting on with it. Certainly, I'll be doing this more often as part of my design. I had to learn the hard way, eh?
So that left me today, well short of meeting that target for Sunday (especially given as I can't actually do any work Sunday, meaning I've just got tomorrow to do it) because I've got to fill holes from months ago. Never again. Sweet fuck, never again.
This, as you might expect, leads to problems. Leaving one thing to go work on another means nothing gets finished. I had a lovely little target for this Sunday that I was well on course to meet until my little bit of bridge finally met a gaping hole. A gaping hole that I hadn't a clue how to fill.
Normally my musings are carried out anywhere I can be alone. In my bedroom, in the hallway, or in any one of the fifteen trips to the toilet I might take on a regular "working" day to help pass the time a bit quicker. I pace about the room and talk to myself. That's why I'm alone when I do it - it looks fucking stupid but it gets things done. Yet unless I write down everything I say or carry a dictaphone, things get left by the wayside. There's no way of finding out how the hole was supposed to be filled.
About a month ago I decided to take a different approach. I opened up WordPad and started typing, in a style akin to making a presentation but without any unnecessary fluff - explanatory and detailed where necessary. And lots of stupid bold writing, which always comes in useful to make things readable. As it turns out, this was great. No longer did I have to look like Sam Beckett from Quantum Leap when trying to work out the best way to transfer teams between competitions. Nope, I just rattle away. And I can do it at my work desk too. Excellent!
Better still, it meant I could organise my targets a heck of a lot better. Everything I wrote down over those few days has been finished, and works better than any of the other stuff I have. No headaches, no trying to remember what I told myself five days ago - just sitting down and getting on with it. Certainly, I'll be doing this more often as part of my design. I had to learn the hard way, eh?
So that left me today, well short of meeting that target for Sunday (especially given as I can't actually do any work Sunday, meaning I've just got tomorrow to do it) because I've got to fill holes from months ago. Never again. Sweet fuck, never again.
Sunday, April 09, 2006
Back again. Time again to do some bloody work and get things back on track. I've done nothing whilst away, mainly due to a lack of time, so it'll take a short while to get back up to speed. Luckily, I've got slightly better at planning my work, so I know exactly where I am and what I'm doing.
One thing I do from time to time is think about other games I'd like to make. I've had this one idea for quite some time - essentially a puzzle platformer in the style of Flashback or Abe's Oddysee, that I'd really like to develop further. I was lying in bed then on Thursday night when I had one of those flashes of creativity, a whirling rush of things I'd like to include in the game, ideas for a story, a theme and so forth. Pity it was 3am and there was no way I was going to fire up the laptop to make notes, and wake people up fumbling around.
So I turned to Animal Crossing on the DS and sent myself a letter detailing the info. Very useful.
But first, TCFG. Then I can worry about puzzly-platformer game. And any of the other games I have in mind.
One thing I do from time to time is think about other games I'd like to make. I've had this one idea for quite some time - essentially a puzzle platformer in the style of Flashback or Abe's Oddysee, that I'd really like to develop further. I was lying in bed then on Thursday night when I had one of those flashes of creativity, a whirling rush of things I'd like to include in the game, ideas for a story, a theme and so forth. Pity it was 3am and there was no way I was going to fire up the laptop to make notes, and wake people up fumbling around.
So I turned to Animal Crossing on the DS and sent myself a letter detailing the info. Very useful.
But first, TCFG. Then I can worry about puzzly-platformer game. And any of the other games I have in mind.
Wednesday, March 29, 2006
If you look through the blog history, you'll see I once posted a target for the end of April. That target is unlikely. Hideously unlikely.
In fact, things are going scarily slowly and that needs resolved. Unfortunately, I've to go away again for a week and a half which only serves to disrupt things further, but hopefully I'll get to squeeze in a little work during that time.
So, the game's current situation isn't far on. It's hard enough anyway to think of updates for monotonous tasks. A little post saying "Well, now the editor has different screens" is just... shit. A load of crap. Pisses me off, that's what it does. But it's essential to get this working before I get to work on the fun stuff. That's what I keep telling myself. Will it work? It'd be nice.
In fact, things are going scarily slowly and that needs resolved. Unfortunately, I've to go away again for a week and a half which only serves to disrupt things further, but hopefully I'll get to squeeze in a little work during that time.
So, the game's current situation isn't far on. It's hard enough anyway to think of updates for monotonous tasks. A little post saying "Well, now the editor has different screens" is just... shit. A load of crap. Pisses me off, that's what it does. But it's essential to get this working before I get to work on the fun stuff. That's what I keep telling myself. Will it work? It'd be nice.
Thursday, March 23, 2006
I really don't update often enough.
Well, competition qualifications is almost sorted in theory. None of it's coded yet but the coding is the easy part. The design is almost finalised and it's very flexible, able to handle varying numbers of teams and making sure that qualifications don't override each other (stuff like the double winners entering the UEFA Cup instead of the Champions League would be a bit shit).
I've only got to design an exclusion system (so that teams can be excluded from playing in a competition, for example Germany from the World Cup Qualifying just finished) and then start tweaking things and entering them into the code.
Having everything data driven like this is a real godsend. It's taken me a long time but there's no way I'd be able to support 250 nations accurately without it. Once this database has finally been written, the long journey of data entry (and inevitable bug fixing) can begin.
Well, competition qualifications is almost sorted in theory. None of it's coded yet but the coding is the easy part. The design is almost finalised and it's very flexible, able to handle varying numbers of teams and making sure that qualifications don't override each other (stuff like the double winners entering the UEFA Cup instead of the Champions League would be a bit shit).
I've only got to design an exclusion system (so that teams can be excluded from playing in a competition, for example Germany from the World Cup Qualifying just finished) and then start tweaking things and entering them into the code.
Having everything data driven like this is a real godsend. It's taken me a long time but there's no way I'd be able to support 250 nations accurately without it. Once this database has finally been written, the long journey of data entry (and inevitable bug fixing) can begin.
Tuesday, March 14, 2006
Holidays are clearly a disguised evil. Not only do you miss a week of working because you're busy... um, well, in my case standing in 50cm of snow, but you then miss days either side through preparation and then general lethargy. Not good.
I've made precisely null progress on the game since I've got back. Instead I've played some Killzone (it's ok), got my new computer (it's great) and spent some time at home seeing the family.
So I've got to kick myself in the arse tonight and get back into it. And then I can update some more.
I've made precisely null progress on the game since I've got back. Instead I've played some Killzone (it's ok), got my new computer (it's great) and spent some time at home seeing the family.
So I've got to kick myself in the arse tonight and get back into it. And then I can update some more.
Wednesday, March 08, 2006
Sunday, February 26, 2006
Damn lack of updates. Where was I?
Yes. Competitions, quite the annoyance. Structurally I don't see much of a problem, I can create a lot of different competitions and have the teams progress through them as they should. The main problem left before that moment where I can sleep happily is the system for having teams enter the competitions.
I've worked out that a competition will use any number of five different methods. Four of them are straightforward and present no problems, and allow for clubs to enter competitions based on various criteria, membership of a body or league, and even explicitly stated. These get defined in the competition's read-only structure data. The problematic one is Qualification.
Qualification presents two problems. The first is that it's not always straightforward and the World Cup is a perfect example of this. Because the hosts could come from anywhere in the world, the six qualification tournaments qualify differing numbers, otherwise you may be left with something like the North American tournament providing four qualifiers - and having a fifth playoff for another spot. That's a poor representation. Then of course if there are two hosts of the competition, things change further. Effectively, qualification must be dynamic and this presents a further problem.
If qualification is dynamic, then so must competitions. Europe can provide 14 entrants to the World Cup. If they play in 8 groups (as they have just done in 2006 qualifying) then those 14 would be provided by qualifying the group winners, the best four runner up sides, and letting the remaining four playoff to produce the final two. That works. If the hosts are European (as Germany are) then you've got 13 spots, so the competition must change - 8 group winners, two runner up sides and have the other six play off for the remaining three.
Ideally, I'll have the game do this automatically, thus saving memory. The other solution is to store different formats for different numbers of qualifiers, which can use up memory.
Further problems appear when dealing with things such as continental qualification and whatnot, so that's the big headache at the moment. I have faith though.
Yes. Competitions, quite the annoyance. Structurally I don't see much of a problem, I can create a lot of different competitions and have the teams progress through them as they should. The main problem left before that moment where I can sleep happily is the system for having teams enter the competitions.
I've worked out that a competition will use any number of five different methods. Four of them are straightforward and present no problems, and allow for clubs to enter competitions based on various criteria, membership of a body or league, and even explicitly stated. These get defined in the competition's read-only structure data. The problematic one is Qualification.
Qualification presents two problems. The first is that it's not always straightforward and the World Cup is a perfect example of this. Because the hosts could come from anywhere in the world, the six qualification tournaments qualify differing numbers, otherwise you may be left with something like the North American tournament providing four qualifiers - and having a fifth playoff for another spot. That's a poor representation. Then of course if there are two hosts of the competition, things change further. Effectively, qualification must be dynamic and this presents a further problem.
If qualification is dynamic, then so must competitions. Europe can provide 14 entrants to the World Cup. If they play in 8 groups (as they have just done in 2006 qualifying) then those 14 would be provided by qualifying the group winners, the best four runner up sides, and letting the remaining four playoff to produce the final two. That works. If the hosts are European (as Germany are) then you've got 13 spots, so the competition must change - 8 group winners, two runner up sides and have the other six play off for the remaining three.
Ideally, I'll have the game do this automatically, thus saving memory. The other solution is to store different formats for different numbers of qualifiers, which can use up memory.
Further problems appear when dealing with things such as continental qualification and whatnot, so that's the big headache at the moment. I have faith though.
Wednesday, February 15, 2006
Not much in the way of updates, mainly due to the behind-the-scenes nature of the work I'm doing. There's really not much to say when you spend half your Tuesday night working on squishing an annoying database bug, and then spend Wednesday doing likewise with a different bug that's surfaced just to annoy me.
But something will crop up. Hopefully before Friday when the distraction comes in the form of Shadow of the Colossus. Can't wait for that game.
But something will crop up. Hopefully before Friday when the distraction comes in the form of Shadow of the Colossus. Can't wait for that game.
Wednesday, February 08, 2006
Tuesday night was a bit of a waste. As I said, there's a Quick Edit system for entering people quickly. However, underneath that there needs to be a good generation algorithm so that the created people are believable. This is crucial not only for the editor, but for the game as a whole - the same algorithm should be used for generating new youngsters over time.
So I had to ditch what I had, as it was neither good enough nor re-usable. Still, I learn from the experience and I can crack on with the competitions, which take priority now.
Aside from that, I'm having a bit of a bad time. A lot of things are getting me down in my general life, mainly work related. It's quite frightening, really. The game must continue!
So I had to ditch what I had, as it was neither good enough nor re-usable. Still, I learn from the experience and I can crack on with the competitions, which take priority now.
Aside from that, I'm having a bit of a bad time. A lot of things are getting me down in my general life, mainly work related. It's quite frightening, really. The game must continue!
Monday, February 06, 2006
I've been adding important features to the editor, in the form of Quick Edit modes for clubs and people.
The game can provide for 12,500 clubs. Now, I'll be damned if I'll get accurate research on all of those but I'll get what I can. The Quick Club editing mode allows me to simply input the basic information and it extrapolates the rest. So saying a club with a World Class reputation is rich ought to give them about £100m to play with, while a rich Conference level club might have £10m, maybe less. Entering the Short Name of the club as Man Utd will then go and make the B team "Man Utd Reserves" and the C team "Man Utd Youth". The "Reserve" and "Youth" suffixes are nation-dependent, so Russian sides get the suffix "-2", as in "Spartak-2 Moscow". Well, more of a middix, if such a word exists.
It's all designed to make inputting the basic data as painless as possible. I'm halfway through the same process for people, which is just perfect if you know the name and age of some obscure team's goalkeeper but nothing more than that.
It works quite well and the results are just standard records that can be edited in the normal way, for fine tuning things.
To be honest though, I can't wait til I've got these bits done and can crack on with competitions themselves. Competitions are entirely data driven which is both brilliant and terrible. It's brilliant because adding a competition is easy. It's terrible because it's an awful lot of work to get the data driven nature working properly and accomodating all the crazy styles. I may have gone over this before, though.
Still, it'll be fun to work with and when it's done, the editor is practically finished. Which means I can move on to the game interface, whilst adding in data as I go along.
The game can provide for 12,500 clubs. Now, I'll be damned if I'll get accurate research on all of those but I'll get what I can. The Quick Club editing mode allows me to simply input the basic information and it extrapolates the rest. So saying a club with a World Class reputation is rich ought to give them about £100m to play with, while a rich Conference level club might have £10m, maybe less. Entering the Short Name of the club as Man Utd will then go and make the B team "Man Utd Reserves" and the C team "Man Utd Youth". The "Reserve" and "Youth" suffixes are nation-dependent, so Russian sides get the suffix "-2", as in "Spartak-2 Moscow". Well, more of a middix, if such a word exists.
It's all designed to make inputting the basic data as painless as possible. I'm halfway through the same process for people, which is just perfect if you know the name and age of some obscure team's goalkeeper but nothing more than that.
It works quite well and the results are just standard records that can be edited in the normal way, for fine tuning things.
To be honest though, I can't wait til I've got these bits done and can crack on with competitions themselves. Competitions are entirely data driven which is both brilliant and terrible. It's brilliant because adding a competition is easy. It's terrible because it's an awful lot of work to get the data driven nature working properly and accomodating all the crazy styles. I may have gone over this before, though.
Still, it'll be fun to work with and when it's done, the editor is practically finished. Which means I can move on to the game interface, whilst adding in data as I go along.
Tuesday, January 31, 2006
Infamy!
Or regular... famy.
I've been interviewed by the lovely chaps at GetManaging, which is rather nice. I've never done an interview before. Can't possibly hurt to get a little exposure for the game and blog, can it?
Tonight, back to the grind, sorting out lovely image colour issues.
I've been interviewed by the lovely chaps at GetManaging, which is rather nice. I've never done an interview before. Can't possibly hurt to get a little exposure for the game and blog, can it?
Tonight, back to the grind, sorting out lovely image colour issues.
Sunday, January 29, 2006
A Basque Problem
I'm sure you've heard of the Basque Country, a region of both Spain and France where the people have their own nationalist pride in the area. Now, I've no intention of introducing politics into my games (unless I'm making a political game, of course) but sometimes its unavoidable. There are several clubs in the Spanish leagues - most famously Athletic Bilbao - that are located in the Basque Country. The pride they have has generally led them to shun Spanish non-Basques, or in extreme cases refuse to play any player other than a Basque national.
Such rules are easy to incorporate into the game. I do so through the use of a list of "special" circumstances for clubs, which can be official statutes of the club. The aforementioned Athletic Bilbao will have nobody but Basque people on their playing staff, and likewise Deportivo Saprissa of Costa Rica sign only Costa Rican, both do so out of pride. Other clubs such as Sinchi FC or Albirex Niigata in the Singapore S-League play only Chinese or Japanese players respectively, a league ruling for these foreign clubs.
The special circumstances may also be more general gameworld data - a club may have significant support from a nearby country and so players from that nation may be more open to representing the club - Celtic's relationship with Ireland is a fine example that is not set in stone in any way. Celtic do not have an official policy of signing a certain number of Irish players.
All in all, it's a very data driven solution that means I can keep the code simple and add the features in the data editor. But it's this that can cause a problem. Going back to the Basque people, these people are also Spanish or French nationals. Joseba Etxeberría is a Basque player for Athletic Bilbao, but he's also got many caps for Spain. Likewise, Bixente Lizerazu played for France.
The problem is obvious - if Basque Country is in the game as one of the "nations" in the game (where "nation" indicates a non-political entity, but rather a footballing one), then how do you ensure that its people are elligible for France or Spain as well? "Second Nationality" is an available field for everybody in the game but it's not mandatory. There's no mechanism for forcing it.
The Basque Country are not alone. TCFG intends to cover as much of the world as possible, not limiting itself to FIFA affiliated nations. There are active national teams for Catalonia, for the Isle of Man, Gibraltar, Sápmi, Sark, Anglesey, Åland and Monaco. Even the Vatican City have a national football team. And crucially, players representing almost all of the above are also elligible to play for Spain, for Finland, Wales, France, and so forth. Players from the Isle of Man are elligible for any of the Home Nation teams. And conversely, nobody ever has Vatican City as their sole nationality, the team being made up of those who live or work within its walls.
(In real life, a number of people do have Vatican citizenship and only that, but I presume this is because they have renounced their old one).
It's an interesting conundrum. The solution is to ensure that each nation also has optional fields to indicate the available alternate nationalities, forced or otherwise. The Basque and Sami teams are particularly interesting because the lands involved span multiple countries - Sápmi, or Lapland if you prefer, is located in Northern Scandinavia and spans Norway, Sweden, Finland and Russia. Perhaps the best solution for this is to include in the National data the demographics - the rough percentages for each country. More so, it will be essential for the newly generated players in the game to actually come from the correct country - their place of birth needs almost always to be a city in Russia as well as Sápmi, for example.
Of course, it would be considerably easier if I dropped these countries entirely, instead preferring to go with established nations where ambiguity does not exist. But these relatively obscure details are what I feel will make the game stand out.
I want it to be more than just a game.
Such rules are easy to incorporate into the game. I do so through the use of a list of "special" circumstances for clubs, which can be official statutes of the club. The aforementioned Athletic Bilbao will have nobody but Basque people on their playing staff, and likewise Deportivo Saprissa of Costa Rica sign only Costa Rican, both do so out of pride. Other clubs such as Sinchi FC or Albirex Niigata in the Singapore S-League play only Chinese or Japanese players respectively, a league ruling for these foreign clubs.
The special circumstances may also be more general gameworld data - a club may have significant support from a nearby country and so players from that nation may be more open to representing the club - Celtic's relationship with Ireland is a fine example that is not set in stone in any way. Celtic do not have an official policy of signing a certain number of Irish players.
All in all, it's a very data driven solution that means I can keep the code simple and add the features in the data editor. But it's this that can cause a problem. Going back to the Basque people, these people are also Spanish or French nationals. Joseba Etxeberría is a Basque player for Athletic Bilbao, but he's also got many caps for Spain. Likewise, Bixente Lizerazu played for France.
The problem is obvious - if Basque Country is in the game as one of the "nations" in the game (where "nation" indicates a non-political entity, but rather a footballing one), then how do you ensure that its people are elligible for France or Spain as well? "Second Nationality" is an available field for everybody in the game but it's not mandatory. There's no mechanism for forcing it.
The Basque Country are not alone. TCFG intends to cover as much of the world as possible, not limiting itself to FIFA affiliated nations. There are active national teams for Catalonia, for the Isle of Man, Gibraltar, Sápmi, Sark, Anglesey, Åland and Monaco. Even the Vatican City have a national football team. And crucially, players representing almost all of the above are also elligible to play for Spain, for Finland, Wales, France, and so forth. Players from the Isle of Man are elligible for any of the Home Nation teams. And conversely, nobody ever has Vatican City as their sole nationality, the team being made up of those who live or work within its walls.
(In real life, a number of people do have Vatican citizenship and only that, but I presume this is because they have renounced their old one).
It's an interesting conundrum. The solution is to ensure that each nation also has optional fields to indicate the available alternate nationalities, forced or otherwise. The Basque and Sami teams are particularly interesting because the lands involved span multiple countries - Sápmi, or Lapland if you prefer, is located in Northern Scandinavia and spans Norway, Sweden, Finland and Russia. Perhaps the best solution for this is to include in the National data the demographics - the rough percentages for each country. More so, it will be essential for the newly generated players in the game to actually come from the correct country - their place of birth needs almost always to be a city in Russia as well as Sápmi, for example.
Of course, it would be considerably easier if I dropped these countries entirely, instead preferring to go with established nations where ambiguity does not exist. But these relatively obscure details are what I feel will make the game stand out.
I want it to be more than just a game.
Thursday, January 26, 2006
Almost a week since my last update? Blimey.
Earlier in the week I read a very interesting essay by Paul Graham, which you can find here, entitled "How To Do What You Love". Right now, I'm not doing what I love. I'm working a rather soulless day job as a software engineer in order to pay the bills. I'm not the kind of person who can take orders very well - I need to be on my own, in control. I'm a creative type and want to make my living following creative pursuits, not mobile comms software. Imagine Michaelangelo's reaction if Pope Julius II had asked him to paint the roof of the Sistine Chapel using 200 tins of Dulux and a stipple effect roller and you'll get a good handle on how I feel about the whole job.
Except right now I don't even get the roller. Michaelangelo has just been asked to move some boxes.
Ho hum.
Still, I have a two track path and plenty of time in the afternoons and weekends to continue the real work. It's a pity that the current task is the entirely uninteresting database software that powers the game, and that's pretty much why I haven't been updating as frequency as I had hoped. Even Michaelangelo needed to put in some new plaster before he got down to the painting.
One thing I do get on with in my actual spare time is testing out other management titles, to scour for clever features or terrible mistakes. Yesterday I picked up a copy of FIFA Manager 06. Not a game I'd be entirely interested in playing, but the demo highlighted a few interesting titbits here and there so I'll be giving it a whirl.
Earlier in the week I read a very interesting essay by Paul Graham, which you can find here, entitled "How To Do What You Love". Right now, I'm not doing what I love. I'm working a rather soulless day job as a software engineer in order to pay the bills. I'm not the kind of person who can take orders very well - I need to be on my own, in control. I'm a creative type and want to make my living following creative pursuits, not mobile comms software. Imagine Michaelangelo's reaction if Pope Julius II had asked him to paint the roof of the Sistine Chapel using 200 tins of Dulux and a stipple effect roller and you'll get a good handle on how I feel about the whole job.
Except right now I don't even get the roller. Michaelangelo has just been asked to move some boxes.
Ho hum.
Still, I have a two track path and plenty of time in the afternoons and weekends to continue the real work. It's a pity that the current task is the entirely uninteresting database software that powers the game, and that's pretty much why I haven't been updating as frequency as I had hoped. Even Michaelangelo needed to put in some new plaster before he got down to the painting.
One thing I do get on with in my actual spare time is testing out other management titles, to scour for clever features or terrible mistakes. Yesterday I picked up a copy of FIFA Manager 06. Not a game I'd be entirely interested in playing, but the demo highlighted a few interesting titbits here and there so I'll be giving it a whirl.
Friday, January 20, 2006
Why do I always solve minor problems when I'm not at my computer?
A small mistake I had made earlier had been mounting up - that of a "null" value for fields that are supposed to point to something. For example, a player can have a second nationality, but not everyone does. So I use a field to point to this, and in the database this gets stored as a value between 0 and 254, to represent each of the nations in the game. That leaves 255 for "null"... except that's not very intuitive. 0 - that's what's intuitive. Or -1, but the database won't support negative numbers and I don't want to go through my code making allowances 0 being null, but 1 really pointing to record 0 and so forth.
Sigh.
And then it hits me and it's really simple. I use -1 as the "null" number, but add one to the value when storing it in the database, and subtract one when reading it. Easy to do.
I was in bed when I thought of that. And I was warm and cosy and had little desire to get up and try to implement it at 11:30pm.
Yes, this is eternally boring stuff and I do apologise. There was a more interesting dilemma though - resolution. Do I go for 800*600, or 1024*768? More space on screen also means a lot more overhead in terms of processing, but it would look cleaner and the detail useful.
I might just go for 1024*768 as the default, as I do intend to continue the game's development for many years after release - 800*600 may be on the way out by then. I'll see what can be done about including an 800*600 mode too, but with a 2D game that's not quite so easy.
Going to be knocking up some mockups though in the near future before I get stuck into that interface. That'll be fun.
A small mistake I had made earlier had been mounting up - that of a "null" value for fields that are supposed to point to something. For example, a player can have a second nationality, but not everyone does. So I use a field to point to this, and in the database this gets stored as a value between 0 and 254, to represent each of the nations in the game. That leaves 255 for "null"... except that's not very intuitive. 0 - that's what's intuitive. Or -1, but the database won't support negative numbers and I don't want to go through my code making allowances 0 being null, but 1 really pointing to record 0 and so forth.
Sigh.
And then it hits me and it's really simple. I use -1 as the "null" number, but add one to the value when storing it in the database, and subtract one when reading it. Easy to do.
I was in bed when I thought of that. And I was warm and cosy and had little desire to get up and try to implement it at 11:30pm.
Yes, this is eternally boring stuff and I do apologise. There was a more interesting dilemma though - resolution. Do I go for 800*600, or 1024*768? More space on screen also means a lot more overhead in terms of processing, but it would look cleaner and the detail useful.
I might just go for 1024*768 as the default, as I do intend to continue the game's development for many years after release - 800*600 may be on the way out by then. I'll see what can be done about including an 800*600 mode too, but with a 2D game that's not quite so easy.
Going to be knocking up some mockups though in the near future before I get stuck into that interface. That'll be fun.
Subscribe to:
Posts (Atom)