Sunday, January 29, 2006

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.

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.

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.

Tuesday, January 17, 2006

Prince of Persia: The Two Thrones is very good indeed. A shame it doesn't quite match up to the brilliant Sands of Time, but it's a fine game in its own right.

Back to TCFG though. I managed to do a bit of wrangling in work to get some hours changed, allowing me to get home earlier in the day, two days a week. That'll prove useful... in theory. I've got to sort out something with all these distractions - internet, football on telly...

I guess that's a product of boredom, essentially. I can't progress with the game proper until the database system is finalised, and the data editor completed. Most of the work is done (competitions are the only outstanding item) but I've to tidy up the editor sufficiently or it all falls apart. There's very little satisfaction here, but I guess it's a gradual progress.

Earlier today I sorted out a few plans. I do have a preliminary target date for my first milestone, which is to have a playable but pretty featureless game running. That means that the game will happily run along as it should, fixtures will be created and played out, and I'll be able to actually partake in a little football myself, but without transfers, contracts, scouting, media, training or pretty much any of the stuff that's desirable for a good game.

The point? It'll be the first instance of the game actually being playable. Actually being a game, rather than a collection of seemingly unrelated code and data. Football being played. I'll be ensuring the code thinks all the important stuff is there, so adding it later won't be a hassle. After the editor is finished, a lot of the code for this target has been done, so it's a new GUI (rather than a standard Windows one) and clean code that's the order of the day. Oh, and the small matter of some football.

The date? April 30th. That's for me, not you. If I make it, all the better. But for now, the boring editor stuff remains.

Friday, January 13, 2006

A fair amount of work done last night, creating the necessary tables in the database to fill out game details and defunct stuff.

The main game details stored in the database include the currencies used in the game. I plan to initially feature the most useful (so, British Pounds, Euros and US Dollars) but it's easily expandable to cover the entire world. Although if anyone knows of a currency more worthless (compared to the Pound) than Indonesian Rupiahs I'll be happy to hear it.

The other details I catered for last night are the spoken languages that are applied to each nationality, and the injuries that players can sustain. Nothing too complex.

The Defunct details allow for things like old nations that no longer exist - The USSR won a European Championship and so will need mentioning in that competition's history, but the nation doesn't exist today. Similarly, I have a table for Defunct Clubs, and Defunct Players (which is a nice name for them) who may have won an award at some point in their life. Finally there are Defunct Competitions which allow for old comps like the Cup Winners Cup.

None of this has any data yet, but the editor is almost finished. Next week I'll be looking at the competition modelling, which is mostly done but completely untested. And then work can begin on throwing together a proper game! Yay!

Thursday, January 12, 2006

PC it is then. The simple reasoning being I can pick up a nice, functional and fairly cheap PC for a reasonale sum of money... and then get a nice expensive Mac when I'm rich beyond my wildest dreams. Or a student loan comes in. Either way...

I finished Far Cry Instincts last night. Great game that lost its way in the end. They really should have kept the focus on guerilla warfare, and the feral abilities are just tailor made for hunting prey instead of rushing in guns blazing.

Monday, January 09, 2006

I'm in need of a new computer. Not that there's much wrong with my laptop - it does a good job for what I want it to do. Nope, I need a new computer because two people clamouring for one net access point just isn't going to work.

The question is, Mac or PC? I'm ignoring all the bump regarding tech specs and crashes and usability that usually defines such a question. This one comes down to simpler, purer aspects. Which is more useful?

A PC is good because there are far more games available. My girlfriend, claimer of computer usage rights, likes to play a fair few strategy and simulation titles. She has a fairly sizable PC collection. I like to work in a room alone, that way I can do a delicious pacing thing, so I'm going to want to use the laptop (with the desktop always remaining in the living room) off to the spare, soon to be games room. So a PC makes a lot of sense - she can play games or surf the net and watch TV, and I can work in peace and jig. Gotta love the jigging.

But the Mac... the Mac opens up possibilities. I can port TCFG to the Mac with relative ease thanks to the cross compatibility of BlitzMax, so I'm going to want to actually own one and open up that possibility. There's no sense in releasing a game for a platform without being able to support it technically neither, so I'll need a fair few months of Mac usage behind me. Finally, a Mac essentially pays for itself - if the game does well then Mac sales pay for the machine. The downside is that if she wants to play her games, I'm stuck in the living room to work. And on top of that, there's a few games on the horizon which the laptop doesn't quite have the spec to run.

Bloody decisions. I know which one I want the most but I do need to work alone, and getting an iBook doesn't fully solve the issue.

Sunday, January 08, 2006

Like I said, it's boring stuff. So boring that sometimes you wonder if you ought to post it. Still, this blog is as much for my benefit as it is for anyone else, so here goes.

Today was about sorting out the fiddly little things here and there in the editor. Stuff like assigning a chairman to a club (and ignoring anyone who's not a chairman), or making sure each of the three teams in a club (for example, first team, reserves and youth) store their stadium correctly.

Told you it was boring.

In other news, a mate informed me that Half Life 2 for the Xbox has silly controls. I've been playing FPSs on the consoles for ages, and always with the same configuration - Left Stick for moving and turning, Right Stick for looking and strafing. It's second nature to me, and Halo calls it "Legacy", as it's from a time when pads had no sticks and used a d-pad to move and turn. You'd think all games in this day in age, particularly major ones like Half Life 2, would allow for it.

But no. They give you strafing on the left stick and turning on the right, which is a more recent development (the idea being that you can aim your gun with only one stick) but counter intuitive for myself. I guess I'm going to have to learn how to play it.

On the plus side, I finally understand why PC gamers usually despise FPSs on pads.

Saturday, January 07, 2006

So... another day ends. Searches are working now, which is brilliant. That same code will be used in the game proper, albeit refined.

The focus for tomorrow ought to be tying up loose ends in the existing parts of the editor before I allow the creation of defunct items (old teams and people), as well as the game objects like currencies. Exciting stuff.

It's all very repetitive, this stuff. Not entirely a lot of fun. But that comes in March, so I can't complain.

And one day soon I'll finish Far Cry Instincts. Only two levels to go... another game cleared off the backlog.

Saturdays are pretty great. Not only do I get a potential full day to get plenty of work done, but there's also football on. Although that football can sometimes be distracting.

Work-wise, I've been fiddling a lot with the game's Data Editor. It now successfully carries out searches for items in the database, which is pretty much invaluable. Then I just squashed a few bugs which weren't exactly easy to find. They weren't even particularly bad bugs, but best not to leave them. By the end of the weekend I need to have a lot of editing functions done, so things are pretty much on course.

Football wise, things are mixed. It's FA Cup weekend, so I placed a few bets. At half time, eight of the 13 teams I need to win are doing as such (or in Arsenal's case, have done), four are drawing and silly Man City are getting beat. Still time, though. Personally, I support my home club Newry City (who are at 0-0) and AFC Telford United (who are getting beat 1-0). Oh well.

And Robbie Fowler's just scored for Manchester City, so that's nice.

Back to work, I guess. I don't always get the luxury of a full day's work, so best to get some done.

Friday, January 06, 2006

Fried Chips. Yes. No. I don't know. Every company needs a name but that doesn't mean it has to be shit. "Fried Chips" is... cheesy. But I like chips. Cheesy chips, in fact. Coated wiith curry sauce. . Curry Coated Cheesy Chips. C4? No... that's plastic explosive. Bad image.

Well, I'll get there eventually.

This blog forms part of a New Years kick in the ear. I've been dilly dallying with things for years now, never really making enough progress on what I'm supposed to be doing. But with a blog - with real, actual, living and breathing and generally abusive people knowing exactly what I had done yesterday, and knowing that my lazy arse has revealed nothing today - that's just the scary incentive I need.

My name's Liam McGuigan, and for quite some time I've been working on The Complete Football Game, proving it's not only my company that has a working title. It's a football game that will eventually encompass the entire footballing world. Which is bloody huge, so I hope you understand if I end up live on Animal Hospital holding a rodent hostage in a fit of despair. This blog will be a record of my achievements, hiccups and general laziness, interspersed with randomness (which you just can't get enough of) and whatnot.

About

The Complete Football Game, or TCFG for short (doesn't it just roll off the tongue like an armadillo on a slope?) is a far too ambitious attempt to create a massive football game featuring every professional league in the world, and then some. It's been ages in the making and has plenty of work left to do, but at least some of it is working.

This blog is supposed to chronicle it, whenever it gets updated. Mostly Fictional might be the name of the studio making the game, although said studio is currently a bedroom and the game's just a tech demo of some pretty rusty tech. Nice colours, though. Oh my, yes.