skip to main |
skip to sidebar
Ok, a little later than I had hoped but today I started working on match engine elements. More specifically, the problem of devising the basic formations, and with that the positions a player will take up depending on the situation.
I built this editor today. The basic system is the same as that of Sensible Soccer, Championship Manager, New Star Soccer 3, Football Manager, and probably countless other management games out there. The pitch is split into twelve segments in a 3x4 grid, and players are given rough positions on the pitch for when the ball is in each grid. This is duplicated for possession (the Wibble in the combo box above referring to "With Ball", which any CM players might be familiar with).
It's a starting point, and nothing more. The first big hurdle of football AI is getting a player to have an idea of where he's supposed to be, and you've basically got two choices. You can build a hugely complex module which factors in every known factor, from the number of players on either team to the length of every blade of grass, and results in a perfect position for the given situation at the cost of several billion clock cycles... or you can just use your intuition and do it manually, once. (Don't take the screenshot as an example of my intuition.... those are woeful positions for a left wing ball)
Then you tweak. You tweak for all the little things - where's the ball, exactly? Is it safe to move? Will I have an advantage if I go over here? Why can't I get enough alcohol home from the shop in one trip?
Tweaking, when we're worried about clock cycles because you want to process as many matches as possible, is cheap. Stick a bag of grass in front of a sniffer dog and he's going to find it much quicker than when you shove it up your... chimney. Mainly because a dog isn't a burrowing animal. No, not burrowing.... chimney sweep. Yes... that will do.
I've decided upon 38 unique positions a player could possibly have, and they're on the right. The guys who play in the centre each have five different values because there are always differences depending on how many are playing at the back. A flat back four doesn't want to have any of its players assuming the same role as a the middle guy in a back five, so I've tweaked accordingly. I've also thrown in three sweeper positions just so you can too.
What I haven't done is take into account how positions change depending on the other guys on the pitch - having a central defender might well change where the "ideal" positions are for your centre backs. But to throw that into the mix would mean my list of positions would be a lot greater, and worse it would be more complex to actually devise the individual formations.
The theory, at present, is that these are created simply by using the defaults. Two strikers in a 4-4-2 will always begin their position-finding routine at the same place as two strikers in a 4-2-4, where the other guys are the "advanced wingers" as I've put it. The routine ought to change those positions accordingly to best use the space available.
If this theory falls down, then I'll run with the ability to change the positions for all the formations, but these defaults created will serve as a simple method for giving me a base from which to build each formation.
Elsewhere, I've been working on player generation, which I'm mostly happy with but clearly there are a few things that need ironed out.
The first, most obvious one if you check that screenshot is that player names are a little on the poor side. These guys were all randomly generated (and I've added a flag to them so I can remove them with ease), but the existence of chaps like Sabatino Greenwood means I need to work on a much better method for creating player names. At the minute, all the English names are kept together, which is lovely when you get William Carr, but not so nice when Ciaran El-Salahi rears his ugly head (he's not there on the screen before you look for him, but he did come up once).
The flaws don't end there - the physical characteristics haven't panned out too well yet either but then I knew they would be borked from day one. It's entirely random at the moment so when you get several seven-footers with light blue dreadlocks and bum-fluff moustaches roaming the midfield, you can't really say you're surprised. I'll work in a normal distribution there to the generator to ensure more normal people.
What are working well are the routines that deal with player attributes. Positions are linked, so if the game sees fit to throw up a centre back, there's a chance he could work well in a defensive midfield role, or even as a full back. Attributes are then linked to positions, depending on competence in that role - a natural striker is throwing up strong finishing and movement, whilst a reasonable defender might not be a great tackler, but he won't be shit at it either.
This early random generation means I can knock up a number of teams for use during the development for the match engine, which should hopefully prove invaluable. Better still (can something be better than invaluable?), when the match engine has reached a solid, playable point, I can swiftly create and populate enough teams to turn a collection of reasonable looking screens with no real purpose into an actual working game. At this point I will stroke my beard and proclaim victory over the elements, chiefly boron. I have issues with boron. Don't ask.
Finally in a lengthy blog post, work continues on FryGUI and I'm hoping to get the latest release out this weekend. A lot has been added since the last version, the most spiffing of which being the inclusion of a canvas gadget, but there's also a few image buttons (of the rectangular and circular kind, too) and some other smaller stuff. Oh, and I wrote a new data editor for the game (that'll be it there in the second screenshot), which started off annoying because I think it's the fifteenth so far, but it works cross platform and is significantly more attractive than the drab, grey look. One problem with it is that I can't cut and paste, and more annoyingly I don't think I will be able to on anything other than Windows, but I'll see if I can build a character map or some other form of adding the rarer characters into FryGUI.
I can't say that this week has any better than the last in terms of hauling my arse out of bed at a reasonable time, but at least things are still going smoothly with the game. I've just managed to complete the basic competition engine, which will give me some room now to go off and work on other aspects of the game knowing I've got a bare bones machine to work with.
I haven't bothered to speed up any of the fixture-checking routines as yet, there's not much point when the database only has one or two competitions in place at any one time. I'll wait until I've populated the game world enough to actually see any major slowdown during the checking process, and by extension any speed gains from new routines.
Hopefully by the end of the month I'll have implemented a decent front end to the system, and a module to manage all the human players in the game, a save and load system, the basic shell of the game. That'll leave things nicely poised for February so I can start fleshing out the world, building little people and commanding them to their doom.
I've got some mixed feelings. It's very clear that I work a hell of a lot better now, and get more done, but somehow I feel I haven't really achieved enough to give me an entirely positive outlook on the whole "never wanting to have another job again, ever" plan.
Then again, a string of 11.30am starts and one day that waited until after noon to begin probably played as much of a part in that as anything. Today was a bit of a lazy day, accomplishing much less than the others, which I'd put down to being Friday except weekends are a meaningless concept now.
So, what did I do? Well, I've been spending the time working on testing the storage and updating of league and knockout data, and they're working well. Knockouts still need work, I've cheated a bit thus far, but I'll focus on that later. On top of those I've then implemented a main engine which "controls" the game time, so to speak - it takes care of the in-game clock, advancing it forward in real time or faster, better speed settings, and carrying out necessary tasks. One such task is to collect all the fixtures that are played on this game day, for which it has to get out of bed at 2am. It does it by brute force at the moment, running through every fixture in every competition in the game (i.e. none at this point), so that'll need hugely optimised in order to keep the game running at high speed.
I don't really want to spend any time sitting about waiting, and if there are to be competitions in over 250 nations I'll need a nicer routine.
Hopefully next week I can drag myself out of bed at 9am, and with the extra time I might be able to make huge strides on bringing all the competitions together and interacting properly.
It's been a month, for various reasons. I'd like to blame Christmas, Half Life 2, Far Cry Instincts Evolution and even alcohol, but that would all be lies. The real truth is I ended up taking a mini-holiday for the hell of it.
I did so because as of Monday, I'm going to be working on the game full time. Obviously this means I'll run out of money eventually and you will be able to find me and a dodgy laptop coding away in an overflowing gutter whilst I fend off tramps using a bit of an old bone, but such sacrifices need to be made for the hell of it.
This is possibly a good thing. Also, potential goodness stems from the fact that the blog is an entire year old. That warm, fuzzy feeling then gets smattered (it's a real verb!) into oblivion as I tell you that it's been a bit of a shit year, in fairness. Aw, fuck. Have I really not done much? Well, apart from the nice interface.
Poo.
What's happened since the arse end of November?
Ok, first of all the name of the page has changed, to Mostly Fictional. I now own www.mostlyfictional.com and www.mostlyfictional.co.uk and if you click on those, you'll see they point here. That's so shocking I nearly fell off my chair.
Mostly Fictional may or may not be a name I use permanently, but at the time it seemed good. I'm much too lazy now to spell out why so you'll have to take my word for it.
Other things that have been done... well, I've been creating a competition editor because doing it through the editor I coded earlier is a fucking nightmare, thanks to BlitzMax's inability to use multiple columns in its lists. Plus, I'd rather have a half decent graphical representation to guide me through the process instead of just keying in numbers.
Lastly, there's that thing which passes for some sort of evidence that I've been working on things. Granted, I've only got three federations in the game so far, but they're easy to put in. The NF-Board held their first proper tournament last month, the VIVA World Cup, though the name's a bit of a misnomer as it had only four teams, and only one of which came from outside Europe, the Southern Cameroons, a side I question the validity of in my ignorance. Oh, and they never showed up either, leaving the Sámi people (or Laplanders, if you prefer and they do not) to walk the tournament with a 7-0 win over Occitania, 14-0 against Monaco (the principality, not the Ligue 1 side) and, er, 21-1 over Monaco again in the final.
Rather impressive, but then Sápmi is a huge area and the players involved were drawn from the Norwegian, Swedish and Finnish leagues, some in the top flight. By comparison, Monaco's players are all pretty much restricted to Monaco itself.
Still, go Sápmi! Better than fucking Ireland, anyway.
Ooh, look at that. No, not Celtic's bizarre lead over everyone else in the Scottish Premier League. Look closer.
It's a screenshot.
It's a screenshot of what the GUI engine is capable of. It's green, which is always nice and relaxing, and it's got some football related info on it, organised in a nice way that people can instantly recognise, and that's not just because the top two are the Old Firm.
That league table is a custom gadget in the GUI. The release on Sunday night went fairly well as module releases to a programming language community go, and so on Monday I went to work on more gadgets that I needed. The first was a simple generic table which could take any number of columns and produce output not dissimilar to that screen there. It's a rather good gadget for working with lists of things, but for a league table I needed something more specific, and more powerful.
Hence the customisation. At the minute, it's largely the same except the column headers are predefined, and it's a lot easier to add the data because of it. Underneath the hood, as I might say if I was American and cared about cars, each team has a name, a position in the league, a home record, and an away record. Those last two get combined to show you what's shown here, while the league position is used in case you throw things out by sorting it.
Which you can't do yet because I haven't coded in the column sorting. Or the viewing of home/away records. In good time, I'm sure.
So, work is going quite well at the moment. From now on I'm going to resolve to post a screenshot with every blog post, so if I forget one, use the comments feature to send me abuse. I crave it.
The GUI is finished.
Well, that's not strictly true. It exists, it works, and it has all the basic features I need but basic isn't good enough for the game. Nonetheless, I'll be releasing it tomorrow if I can get off my arse and write some example code, build a few executables and find somewhere decent to host it. None of that should be a problem but I'd like to find a web host now and migrate this blog over, rather than rely on a third party host.
It'll feel great to finally have something out there, even if it isn't a game, is entirely free, and won't keep me in Yazoo. It'll just be nice to have something to offer, get some feedback and hopefully see people using it and liking it.
Following the release, I'll be implementing some things that are specific to my own game. Which is always a lot more fun. It brings me closer to finishing (although "close" really isn't a great adjective to be using at this point) and I get to try things out. First up, a standard list - we all need those and that'll get slapped into the release version of the interface. Then a league table gadget, which I guess people don't need much, and some fixture lists.
Essentially, everything you see on the screen is a gadget. As it should be.
The fun met an abrupt pause last week. I had to go to the dentist to fulfill the latest part of my bi-decennial checkup. Unlike the more mundane fillings, this one was a root canal. My first. I was entirely oblivious to the horror stories that surround this process, and as such the entire thing passed without me even noticing the dentist had done it. I was just about to utter a mild "excuse me, is it done" when the very answer came forth.
Off I went about my business. As the anaesthetic wore off, I felt a tinge of pain but nothing to get in the way of the work I had planned - implementing a simple panel as one of the basic building blocks for my new GUI system, and the others to go along with it.
That night, I worked. I had some successes, but was tired and unusually cold. The next day was not so lovely. The pain had built up, and I sat through work, swirling freezing water around my gums in an attempt to numb things. That never worked, and I came home that night with no plans other than to curl up under a blanket and watch some football. I never slept, the pain was too much. I resolved to burst into the dentists office the following morning, which I did, and thankfully got myself some antibiotics. Antibiotics which wouldn't work for three days.
I couldn't stay in work, so I went home, going through a repetitive pattern of sleep, toilet, pain, sleep, toilet, pain. First in the bed (not the toilet part, mind you) and then on the sofa after I resolved to finally play Bully. That never happened. The house was biting cold, but there was no way that heating was going on after last winter's bill. More jumpers.
Finally, my girlfriend arrived with stacks of pills and all manner of drugs which I'm pretty sure I would have injected straight into the offending gum if I only had a needle. Miraculously, they worked anyway. I could sit up, watch TV, talk! Thank fuck for all that.
Still though I wasn't fit to work. It wasn't until Sunday that I finally loaded up BlitzMax to see if I could knock something more out, managing to do half that button I had wanted to get done during the week. Instead of having most of the GUI work done by Sunday, I had barely started.
Which means that's what I've been doing this week. That button has been completed and I've added some labels, images and a nice combo box that surprisingly works exactly as I wanted it to. This is a breakthrough for me, as I hate coding those fucking things. It's even pretty extensible and the same code can be used for those lovely right-click shortcut menu jobs.
I also learned some more about BlitzMax's 2D system, which isn't the best, but rather than mope as I would have done in the not-too-distant past, I've taken it on board as a challenge. If I have to get stuck into the guts of OpenGL, I'll do it.
There's a solution in there somewhere...
I wasn't in Madrid that long, was I?
I think I'm going to have to bite the bullet (or chew any other type of ammunition, though that may lead to the swallowing of poison darts) and write my own GUI system.
I've done one before. It didn't work very well, the code was a hideous mess and on some computers it slowed to a crawl. But none of that bothers me this time. First, things are object oriented now - this is good for GUI systems. Secondly, I've picked up a few tricks which I'm interested in trying out along the way.
And thirdly, fuck it. Every time I try a third party solution, it causes me as much hassle as it would be to write my own. There's nothing essentially wrong with these off the shelf GUI engines. For what they're designed to do, they do very well indeed - and they've been excellent to learn from. It's just that what I want to do, and the way I'd like to do it, is not really compatible. I wanted to build a system that would surround a GUI, providing me all the gadgets I need but without the headache inducing method of creating each and every screen through mind-numbing statements littered throughout the code. It needs to be skinnable - incredibly so. It's not enough to change colours, I want a modder to be able to redesign every screen in the game.
The last GUI I've been using was pretty good and I had a working system, but the fourth problem reared its head. Lack of transparency. Things were happening using this GUI that I didn't understand, and they were eating my frame rate - before I'd even so much as started processing any of the game stuff. At this point, that's the last thing I need. I need control, and I'm going to get it.
And the fifth thing? Well, that's the whole reason I started coding in the first place when I was about 10 years old. It's fun. It's fun to achieve things, it's fun to hack things, it's fun to just throw stuff at your computer and learn from the results. Back then I got a buzz from properly generating a random number and recreating Grandstand's Saturday afternoon vidiprinter. Over the last few months I've lost that buzz, and it's making me lose a lot more.
I'm going to have fun again. There will be a game at the end of all this. But if it was just a game I wanted, I'd be playing Football Manager.
Despite the fact that I seem to never update anyway, I thought it wouldn't be a bad idea to let you six (or however many visit these days) know that there'll be no work done over the next four days, because some people who should really know better are sending me off to another country for reasons best known to themselves.
Still, I've almost completed an xml wrapper for the GUI system, and it's working well. It needs a good method of accessing the individual gadgets, and some way of getting the scrollbars to actually do something other than move up and down in a mesmerising but ultimately useless way. I'd kinda like certain things to scroll.
Oh, and properly skinned. I don't really want my game to look like Windows XP. Nobody does.
Owing to those recent problems that were doing my head in, I've spent the weekend doing my best (my lovely, lazy best) to come up with a viable solution.
Tonight I re-read a reply on the BlitzMax forums regarding the frame rate troubles I've been happen. At first, I had dismissed it as technical details that I wasn't willing to get into, especially when I simply don't have enough knowledge of how BlitzMax is actually working to dare get stuck into its guts and start changing variables.
Nevertheless, at a loss for a solution, I decided to give it a go.
The result was better than I could honestly have hoped.
Remember how the problem was this unwanted delay whilst trying to find out if a key or mouse button is being pressed? Well, tracing the path through the code from that simple KeyDown() function led me into the entrails that make up BlitzMax's innards, where I found the function PollSystem.
The offending function PollSystem.
What does it do? Well, allow me to put my whole heart into this biological analogy I've got going here.
Eating food is pretty simple, yeah? You chew, swallow, and it goes into your stomach, where your body does the rest. Your conscious job, unless you've just had a dodgy chip from the local eatery and are thus doomed to spend the next four hours renacting scenes from Platoon on the ceramic, is over.
Imagine, though, if that wasn't it. Imagine that every time your stomach wanted to do something with that disgustingly fatty yet absolutely deliciously greasy burger, it sent it back to your mouth. Asked you to chew again. And again. And again. Heck, never mind the burger, eating a fucking chip would take forever.
That is how PollSystem works. Or at least that's how it works to my admittedly incomplete knowledge. Every time I ask BlitzMax "is L being pressed?", it goes off and tries to read every single key again. This is just how it works.
On Windows, this is very, very fast. Negligible, in fact, unless you really wanted to make the absolute most of your time. We're talking... (I need a calculator for this) ..... one twenty-five-millionth. Is that a real number? 0.00000004 seconds. It's fucking fast.
On OS X, it's slower. I don't know if it's a bug with BlitzMax, a "quirk" (read fucking stupid flaw) of OS X, or anything, but it's one forty-thousandth in silly named numbers, or 0.0002496 if you want accuracy. That's 624 times slower.
So, what did I do? Well, I made BlitzMax chew its damn food before swallowing, that's what I did. By tweaking a single line, I stop it from calling PollSystem every time I check a key. The proviso is that I must do it myself, once per frame, to ensure that everything works. The result? OS X runs very fast indeed. My test came back telling me it ran six times faster than an untweaked Windows, but that's not a fair comparison for various technical reasons.
The thing eating away at the back of my mind, unfortunately, is that I'm no expert on BlitzMax and I'm not sure what the repercussions are of my tweaking. It does seem strange that the system would automatically be slower than is theoretically possible - however BlitzMax, being middleware, has been built with ease of use in mind every bit as much as power.
I'm hoping that this was simply a feature to keep the system more user friendly for new users. Hopefully someone in the know will clue me in. I'm feeling kind of lucky though, after seeing Watford throw away a 2-0 lead, but still steal an equaliser in the dying minutes to seal a 3-3 draw and win me £50.
Ok, it's been two weeks. What's happened?
Well, the laptop's breathing again but it's not too reliable for doing any work on, so I've gone ahead and got that Mac. And now that's where my current focus lies. See, the system I'm using to create the game, BlitzMax, allows you to compile the same code on a Mac, a PC and on Linux with minimal changes.
In theory.
Unfortunately, things haven't gone smoothly. For a start, my editor won't work at all on the Mac thanks to a painfully slow implementation of listboxes, so any further work on that will have to stick to the PC for the time being.
Elsewhere, the GUI system I've planned on using has been throwing up dodgy frame rates on the Mac as well, the bottleneck being reading from the keyboard. While I can get by fine knowing that my editor will only work on Windows, the game must run as smoothly as possible on every platform.
I got a Mac because if I can release games for both platforms, I'll theoretically improve sales. I'd only need to sell 80 or so Mac copies to have it pay for itself. So it's very important that I get everything running smoothly.
Thankfully, it's entirely possible to code without having to test every 5 minutes. The Mac's in the spare room, a quiet haven where I can work without being distracted. As a result I can still churn out code and then give it a few tests on the PC just to make it perfect.
Also, seeing as I need to learn more about Macs and all that, I'm going to have to write a little something extra, specially for OS X. I'll worry about a PC version when its finished.
Or as good as.
Not the game. My laptop. The hard drive is effectively fucked, quite possibly thanks to the overheating I had earlier. A new hard drive would cost about £50 but for a four year old laptop that's having more problems than I am (and that's a lot of problems), I'm not convinced it's a good idea to keep hacking at it.
Instead, I'm going to buy myself a Mac. Plenty of advantages to be had with that.
What it does mean is that I can't get much work done over the next few days, though weekends are still pretty clear. I'll use this time to finish some of those games other people made.
Damn right it nearly did. I had just sat down to work on how seeding systems are set up in the database, when I started to lose confidence in how I had previously done it and was all set to rework that.
Fuck it. Rework it? Nah. I took an hour or two out and came to the conclusion that it does the job and is very simple, so I'll keep it like that. If I want to rework it at any point, I'll wait until I actually have a game and can then fritter away time on such unproductive tasks.
Elsewhere, with the spare room in the flat having been tidied up in the last week, I've decided to get myself a desk and stop working in the living room so much, distracted by the internet, the telly, the fridge full of food and so on. I'll try to instill a proper work ethic rather than the current slapdash approach. Anything to make progress.
I'm well aware that it's been a week and a half, and there's a very good explanation around here somewhere. I'm going to need three parakeets and a small African vole to find them though.
Are there any voles in Africa?
Anyway, I'm really pissed off these days because I'm still stuck on the editor, which of course I had already finished. But the end is in sight, I guess.
In the meantime I've been biding my time with games of Football Manager 2006, and actually enjoying it again. Makes a change.
I'm having a bit of a block at the moment. I've had a cold all week which hasn't helped matters, and when I sit in front of the computer I can't do any fucking work. It's rather irritating.
Still, I did get all the nations entered. The final count is 274, which is rather large. 207 FIFA nations, and then a bunch of oddballs. Should be fun managing the likes of Catalonia.
Saturday. The greatest day of the week. The lie in, the free time and thankfully now the football yet again. Sure, the English season has already kicked off for all those Football League clubs, and even the local clubs here have started their League Cup (Newry won, whooo!). But today marks the return of the full six hour Soccer Saturday, and start of AFC Telford United's league season. And Match of the Day, of course.
It's marvellous, really. So I'm off to enjoy it. And maybe do some work too.
Ah, competitions. Let's hope they all work.
With a bank holiday weekend coming up in a little over ten days, I'm going to work hard to make sure that I can get the data editor working regarding competitions. Already I'm able to create the damn things and tweak various simple values - the number of entrants, when the competition should be reset, that sort of thing.
The actual structure of each competition is like playing with Lego, except without the cool ability to make a large sword and smash it over your friend's skull, showering both of you in sharp plastic blocks. Lego is ace.
Getting a basic competition built is simple, and after that I've to redo all that horribly complex qualification stuff that bled my mind dry earlier in the year. If I can get it all done for that Friday though, I've got a "fun" saturday coming up.
In that one day, I plan to go from having a bunch of raw data to having working competition structures. One day, a huge boost.
But not this Saturday. This Saturday, the season kicks off for those teams at the top, and loads of teams at the very bottom. While the likes of Chelsea and Liverpool battle it out for early leadership of the Premiership, exotic sounding sides like Deeping Rangers and Ramsbottom United will try to make it through the Extra Preliminary Round of the FA Cup.
My tip to go the furthest, based on nothing more than the name of the club alone? The mighty Diss Town, away at Tring Athletic. If the former isn't an entire team full of Ali G lookalikes, I may retract the tip.
In football, clubs aren't standalone entities. In addition to many clubs having close ties with companies (such as Philips Sport Vereniging, better known as PSV Eindhoven, or lowly Airbus UK in the League of Wales), there are plenty of clubs that have links with other clubs. Manchester United, as many know, have a relationship with Royal Antwerp, while elsewhere both the Metrostars and Austria Salzburg have been purchased by Red Bull, controversially changing team colours and renaming the sides to Red Bull New York and Red Bull Salzburg respectively.
So what do those relationships mean? Well, Antwerp's case is clear - United regularly send out youngsters on loan to aid their development. For the Red Bull sides, things have yet to fully materialise. It is possible that players could move between the sides, and with a common ownership I wouldn't be too surprised to see that their financial status mirror each other. Regardless, it's a tricky situation.
This becomes pertinent when regarding the game. No simulation of world football would be complete without organising relationships between the clubs, and while each individual case is often complex, there are general factors that I can use.
The first relationships I have in the game are the obvious. Rivalries exist between clubs, of differing strengths and reasons, be they sporting, political or simply based on location alone (a number of rivalries encompass all three, of course). Clubs can be Successors, in that they were formed out of an existing or collapsing club. FC United and AFC Wimbledon are two famous "successor" clubs formed by fans who feel the original side have mistreated them for too long. AFC Telford United or 1.FC Lokomotiv Leipzig are sides borne out of the ashes of clubs who have fallen under financial strain. In these situations there is often great debate as regards the ownership of the history of the original club - AFC Wimbledon and Milton Keynes Dons both claim the history of the old Wimbledon. Personally, I side with AFC Wimbledon (with a little foot in the "Wimbledon are dead and there are two new clubs" camp) but if the game's to be encyclopaedic, I need to find an official answer.
And of course, there are mergers. These "successor" clubs are formed out of a merger of existing clubs, or perhaps just absorbing a single club into the existing powerhouse. Kinda like Loco Roco. Rushden & Diamonds are a merger club, formed from the non-league sides Rushden Town and Irthlingborough Diamonds.
The game will not feature any mergers, splits or new clubs itself during the course of play. The technicalities of such features are pretty simple, but club names are hugely complex around the world. What applies in England will not stand in Germany, and is utterly useless in Brazil.
You can, however, form your own clubs in the game, at any point (provided you have the cash).
Feeder Clubs will be in the game, in a greatly simplified format at first. As described above, a feeder club link will allow for the parent side to send their players out on loan to the feeder, adhering to all the transfer rules of the governing bodies involved. The parent side can also have first option on any player in the feeder club. As the intricacies of feeder clubs become more apparent, I'll be expanding on the situation, but a basic implementation is a must. Feeder sides such as Real Madrid Castilla, which are essentially part of the whole Real Madrid club, will be implemented as second or third sides of the main side.
And lastly, clubs can be linked Financially, enabling potential situations like the Red Bull Empire.
And remember from Star Wars - empires are the bad guys.
Derry City just beat Gretna 5-1, away from home. A lot of people are very happy in Ireland right now. A fair few people in Scotland are probably in shock. And some people in Northern Ireland are a little scared because if Irish league clubs continue to improve, the Northerners are screwed in the Setanta Cup.
Elsewhere, Drogheda United, also of the League of Ireland, slipped to a narrow defeat at Norwegian side IK Start, whilst Welsh side Llanelli were defeated by the same scoreline by Odense BK of Denmark.
Now, this blog isn't a football news website so why am I telling you this? Well, it's because the only game that was actually available to watch on the television tonight was Newcastle United's dour affair with Lithuanian side Ventspils.
TV hates the little guys. The media just don't care. And as a result the average football fan in England's streets remains eternally blinkered about anything that's ever occurred outside the scope of the Premiership or Champions League. When unfashionable clubs finally do get on the box, they're constantly patronised to great lengths by commentators who put in a half arsed research attempt. When Liverpool faced Total Network Solutions in the Champions League first qualifying round - for many people the first time they even knew there was more than one - the folk in the studio just about managed to get the name of the club right. When a part time non-league side faces Premiership opposition, it doesn't matter how much the lowly representatives eulogise about their club's strengths and the appeal of the non-league game. All the papers want to know about is which one's the plumber.
It's about ratings, it's about drawing in the viewers for advertising revenue, and in that respect you can forgive the likes of ITV and five for not going to great lengths to snatch at the opportunity to cover Gretna's charge through Europe (that the game was picked up by Irish channel Setanta Sports is only some consolation, as I don't have it). The BBC, unhindered by commercial restrictions, could well have picked up Llanelli's game against Odense - an away game, it's not exactly going to stop the hordes from flocking to the stadium to catch the action. The travellers will always go.
So what about the game? Well, it's an area I want to pay attention to. Not only do I want to give plenty of exposure to the teams people rarely hear about, I want to bring forth the full experience. Playing a football game, as I've said in the past, can often be a sterile affair. Games rarely seem to note the difference in quality between the competing sides, so when I score a late equaliser with Yeovil against Liverpool in FIFA 2005, I get the same celebration as if the roles were reversed.
There's a lack of emotion. Derry City right now are over the moon. It's their third European win on the trot (the other two coming in the first qualifying round against IFK Goteborg, no mean feat) and only their fourth ever. The travelling fans were ecstatic throughout the second half, there's a party atmosphere throughout.
A game needs this. Football such as this is all about the passion. If it's missing, you've missed the point.