Monday, December 22, 2008

And some other stuff

I didn't really want to put this in the other post, because it's not related to my game. Much.

Since the last post, I've played some new football games, and I figure I ought to give some impressions. So, let's get down to it.

Euro 2008 and FIFA 09
EA really pulled something out of the bag with these ones. I've actually enjoyed the FIFA series since 2005, but it wasn't until 08 that I saw it get better than Konami's efforts. The game now is an excellent tactical football game, tremendous multiplayer fodder, and with a solid single player experience to help it along.

Euro 2008's major draw was the international minnows, so it's a huge shame to yet again see EA ditch the work that's already been done and go back to having about 40 national sides from around the world. Every year I cry for more to be done with the FIFA license, especially following games that back up major tournaments, and every year they fail to deliver.

Still, Euro 2008 had another trick up its sleeve with the Captain Your Country mode. A fleshed out version of 08's Be A Pro, it gave you a new way to play the game and a 20-odd match campaign in which to do it. It had its problems and oddities - player stats decreasing over the two year period like they've just been shot in the legs, and the bizarre need to select three other players whether you've got that many friends or not, but it took over my football gaming time. Sod the team game, I wanted to be me.

FIFA 09 topped it. A better game all round, but the Be A Pro Seasons mode is terrific. It's an arcadey bent in terms of presentation, and as such suffers from some of the same flaws that beset the Career mode in the game, but has a tremendous sense of playing through four years of a player's on-pitch life. Scoring a goal in FIFA has been satisfying for some time. Scoring it thanks to your off the ball movements and link up play is even better.

However, FIFA fell by the wayside when something else arrived...

New Star Soccer 4
Hooray, it arrived!

Now, I'm not suggesting NSS4 is better than FIFA. It's an unfair comparison for a start, like comparing Mario Kart to Gran Turismo, as both have different takes on how football should be played. FIFA is a pure simulation, whilst NSS4 harks back to the arcadey football games of old, where your skill as a player is all that really matters.

No, what made me drop FIFA for NSS4 (in addition to not having to wait for the telly to be free) was the prospect of playing an entire career, across a host of real life leagues. The game lets you start as a 15 year old in any position on the pitch, and play out over 20 or more years as you try to take the world by storm, which provides an interesting comparison - FIFA's the football simulation that takes an arcade approach to playing a career, and NSS4 is almost a polar opposite. It does have arcade-like systems for relationship management and skill improvement through mini-game training sessions, but basing it in a world of real competitions gives it a strong appeal.

I loved NSS3, so was always looking forward to this. Then one day it was revealed that NSS4 would be in 3D, and I think I probably bit my tongue hard. The previous game's 2D mode had only just been introduced and made for an excellent game, and I was skeptical that the same gameplay could be carried over to an extra dimension.

It managed it. In fact, it more than managed it, as I rate the new game even higher than its predecessor. The fully analogue controls certainly help matters, and everything here feels right. Players have a very satisfying weight, which is very evident in-game with stronger players pushing others off the ball and using their bodies to hold possession. After sufficient training, I was able to dribble between gaps in the defence and rely on my player being able to hold off the jostles.

Graphically, it's an interesting one. Up close, the angular players look robotic and blank, and you pine for the pixel art of NSS3. Yet at a playable distance, the bold colours and minimal textures give the game an almost stylised look.

It's not without its faults. Although you can play as a goalkeeper, it's a virtual afterthought with the CPU taking control of everything bar your own positioning, and no training challenges are available. Thankfully, this is already being looked at for a future update. If the controls are as simple and effective as the outfield play, this could be a tremendous feature.

Regardless, it has me hooked, with the same addictive feel that saw me pump so many hours into the last game. And, I guess, it's nice to see FryGUI holding up well in an actual release!
Yes, I'm still alive.

And so is the game.

The refactoring kept on going through that delicious blogging hiatus. As I had said before, everything is so much smoother with the competitions and although there are still things to go, I'm pretty confident that it was worth all the effort. I was setting myself up for major headaches further down the line with the old system, so the streamlined one is a great improvement.

I've been thinking recently about what the game consists of, and I think I've got it broken down into five key areas.

Competition Engine
If football games were a car (and oh, how people seem to love treating them as as metaphorical automobiles), the competition engine would actually be the network of roads on which they drive. Except, er, inside the car. So a satnav perhaps. Oh, I dunno.

Anyway, the competition engine's job is naturally to manage the competitions in the game. It has the structures, generates the fixtures, deals with the results, and so on. This is the area of the game that's most complete at the moment, with only a little bit more tidying really required. It could have been so much easier, but I wanted competitions to be accurate, so the complexity ramped up.

The steering wheel, I guess. And maybe your pedals, handbrake and gear knob. Heh, knob.

Off the pitch, this is your interface with the game. You need to be able to view competitions, clubs, players, and a host of other information in a clean and accessible way. It's underdeveloped at the moment, as it's just a testing area for the competitions. Thus, it's pig ugly, has a host of bugs, and doesn't actually allow for anything other than viewing competitions one stage at a time. Luckily, FryGUI's decent enough in my view to allow all this to be fixed.

Game Engine
This is your engine. Your car engine, that is. It drives the game forward, progressing through time. Actually, this is more like an entire car - electricals and all - than just the engine, because the game engine is split into myriad different parts that all do something important. It controls the game clock, generates news events, deals with off-pitch AI concerns, picks teams, selects squads, and anything else. If you click on a button that does more than just move you to another screen, the game engine is beavering away and carrying that out.

Like the navigation, this is basic right now and serves only to test the competitions. The clock advances properly (hooray), daily fixtures are passed to the fledgling match engine, results are returned, and not much else. The core is there, but it needs a lot more to it - they will come as the features require them.

Match Engine
Every football game needs one. I dunno what part of a car it is though, so we'll just pretend it's the wipers. If you don't know what it does, you probably don't care much for the sport.

This is virtually non-existant at the moment. I've got an old formation editor, a 2D graphics engine that works but might get chucked, and a bunch of notes on how I plan to approach the AI. It's simultaneously depressing and exciting - the most important part of the game hasn't even been worked on properly, but on the other hand, I get to make a football game and experiment with a host of control options and things that might work and might not.

At the minute, fixtures are passed to this and random results are returned. It's all the competition testing needs.


Without data, you've got nothing. A football match cannot be played without players, is disorganised without teams, and has no meaning without competitions in which to play them.

What's actually great about data entry though is that it's so passive. You research, you fill in spreadsheets or data editor forms, and it requires next to no thought. As such, on one of the many days when I've sat around bored, this is what I do.

Right now, around half of the FIFA affiliated nations in the game have clubs, essential for any league to be created. Europe and South America have been created in their entirety, whilst Africa, North America, Asia and Oceania have work remaining - and this is before I get into creating the competitions and getting to work on players.

Reading that all back, it does seem like so little has been done and to a certain extent that is true, but as ever a lot is in the planning. The database structure is complete. The competition structure is complete. The game engine's core is complete. What's left is to bolt on the little segments here and there that make the game come alive, the internal details that turn a sterile world into something almost real.

And also, I guess, to get some men playing football.

Saturday, April 26, 2008

Warum hast Du nichts getan?

Well I wouldn't say that! I've done something, it just hasn't been that major in the grand scheme of things.

Ok, first up. The big three and a half month gap, what's with that? Well, various things happened in my actual life which slowed down development somewhat. I guess shit like that happens, but everyone's all the better for it. In a topsy-turvy period of potential house moves (I didn't in the end) and television purchasing (I did), it was pretty hard to find the time to sit down and really get stuck into the meat of the game. My mind, sadly, was elsewhere.

As seems to be the case, when I finally got back into the swing of things I've been refactoring. This game's been in development for longer than some national football teams have existed (I'm looking at you, Saarland) and so some parts are much older than others, coded using methods that have long since been bettered, and there comes a time when trying to extend the old code to provide new functionality becomes so tiresome that it would be more beneficial to rewrite it. I've said this before. Maybe this is why the game hasn't been finished...

So where once I had working competitions and league systems, now I have nothing but shells. Thankfully, pace has picked up a fair bit over the last few weeks and things are really thundering on, so I've made plenty more progress and I'm far happier working with the new code. Improvements have been made to a few areas and everything's so much cleaner.

I've got some targets now, targets I'd like to hit. However, I know for a fact that if I mention them here I'll never hit them, so I'll just keep them to myself. Needless to say the next one needs to be hit by Monday night or GTA is going to delay everything.

At least I still have Simon Read to keep me working on my GUI system, FryGUI. He has taken that module and done some great things with it in the latest in the New Star Soccer series, and he's been ever vigilant in finding bugs and recommending new features. NSS3 is certainly one of my favourite football games, NSS4 is coming along as a leap forward that's every bit as large as the leap from the second game, so get over there and take a look.

Monday, January 07, 2008

City 17

I've just been playing a lot of Half-Life 2 recently.

Cities, though. They're fiddly things. Ask a guy in Manchester where Arsenal are from, and he'll tell you "London". Ask a guy in London, and he'll probably tell you North London. Or, if he's really specific, Holloway.

Arsenal are a big club, known the world over, so it's fair to say they're from London, just as Everton are known to be from Liverpool, Rosenborg from Trondheim, and so on. They're big clubs in their areas, it's also fair to say that they can take their fans from across the entire city, although of course that's not always true (try finding a Cliftonville fan in Sandy Row in Belfast).

Anyhow, as you go lower in these major cities, especially in countries where the game has many levels, you can often end up with many teams in one league professing to be from one city. This came up yesterday when I was researching the Victorian Premier League in Australia - every team bar the Australian Institute of Sport come from Melbourne.

Melbourne has many parts, and each of the teams represents a particular part. Preston Lions, Oakleigh Cannons, Heidelberg United and so on all represent the areas they're named after. I could split Melbourne up into these constituent parts, but then if I searched for teams from Melbourne, I'd get Victory and Knights, and no-one else. So I figured they'd all be from Melbourne.

That's fairly good, although it does mean that the game would need extra code to stop treating every game as a derby, when they really aren't. It's also at odds with the situation in London.

The English leagues in the game are modelled down to the tenth level. As you drop down as low as level seven in the pyramid, teams from London tend to play in different regional leagues to each other, and the lower you get the more this can be apparent. Obviously, stating that they're all from London means that the clubs would be placed in the wrong divisions, not to mention creating several thousand London derbies each season.

So London is effectively split up in to its constituent areas and everyone's happy until you try to search for London clubs and none show up. Bah. I could try adding the major city to each place name, such as "Fulham, London" but it's not the cleanest of solutions.

I don't know why it took me this long, but I figured if I just add another field to each location in the game that allows me to say it's part of a larger city, it'd solve all problems. Search for teams from London, you get them all. Search for those from Holloway, and you get Arsenal, and if Arsenal turn to poo after Wenger leaves and drop down six divisions, they'll still be in the right place.

This doesn't make you as happy as it makes me, but I don't care.