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.
Monday, October 09, 2006
Tuesday, October 03, 2006
To simplify, treat middleware as your intestinal tract...
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.
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.
Thursday, September 28, 2006
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.
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.
Thursday, September 14, 2006
It's dead
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.
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.
Sunday, September 10, 2006
It nearly happened again
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.
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.
Tuesday, September 05, 2006
An African or a European Vole?
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.
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.
Friday, August 25, 2006
Tony's Mate's a Nonce
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.
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, August 19, 2006
It Begins
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.
It's marvellous, really. So I'm off to enjoy it. And maybe do some work too.
Tuesday, August 15, 2006
FA Cup Is Here Again!
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.
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.
Saturday, August 12, 2006
Related Clubs
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.
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.
Thursday, August 10, 2006
Outside the mainstream
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.
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.
Wednesday, August 09, 2006
Overheating Fun
Being a geek, I have two computers at home, a laptop and a desktop. This gives me the ability to work regardless of what my girlfriend wants to do - and as she quite likes Rollercoaster Tycoon 3 at the moment (which she's happily modding and displaying a much greater understanding of 3D modelling than I ever have, though she still refuses to accept a geek label), I'm stuck with the laptop.
Pesky integrated graphics.
The laptop is four years old. It's still quite powerful as far as laptops go, although the memory is a bit of a bottleneck, and as such I can happily make my game on it. Or at least, I used to. For now, my damn laptop overheats far too much and shuts off. A laptop cooler is sitting in the local post office. I have to go out of my way at lunch tomorrow to pick it up. It had better bloody work.
It's irritating because it means I can't work using the laptop without fear of either breaking it or losing my work. And the fecking thing proved far too difficult to open for my puny little hands. That'll have to be fixed.
Still, in other news the editor is mostly working now, and I'm going to spend plenty of time over the next month getting competitions in order. Quite looking forward to that, as it's becoming very boring stuff recently which has led to posts telling you to all bugger off, and overheating laptops.
Pesky integrated graphics.
The laptop is four years old. It's still quite powerful as far as laptops go, although the memory is a bit of a bottleneck, and as such I can happily make my game on it. Or at least, I used to. For now, my damn laptop overheats far too much and shuts off. A laptop cooler is sitting in the local post office. I have to go out of my way at lunch tomorrow to pick it up. It had better bloody work.
It's irritating because it means I can't work using the laptop without fear of either breaking it or losing my work. And the fecking thing proved far too difficult to open for my puny little hands. That'll have to be fixed.
Still, in other news the editor is mostly working now, and I'm going to spend plenty of time over the next month getting competitions in order. Quite looking forward to that, as it's becoming very boring stuff recently which has led to posts telling you to all bugger off, and overheating laptops.
Saturday, August 05, 2006
Dullness
As ever, I've got nothing to report on the basis that it's all incredibly boring stuff. Things get fixed, things get broken, things get changed, dropped, and poo-pooed on.
So there really isn't much to say these weeks, which is perhaps a bad thing. Maybe I could be like other bloggers and start reviewing other games for the hell of it, except that I don't have the inclination to go cramming shite into my schedule, what with shit games being infinitely more fun to read about.
So essentially you'll probably have to wait until I'm doing something more interesting before the blog actually becomes worth your time.
So there really isn't much to say these weeks, which is perhaps a bad thing. Maybe I could be like other bloggers and start reviewing other games for the hell of it, except that I don't have the inclination to go cramming shite into my schedule, what with shit games being infinitely more fun to read about.
So essentially you'll probably have to wait until I'm doing something more interesting before the blog actually becomes worth your time.
Monday, July 31, 2006
Morose what now?
Ok. Been a bit long. I blame.... cabbage.
I've been doing plenty of work on the data editor, and now it's almost refurbished. Well, it looks identical to the old one but uses the new database code, and as such it's infinitely better and using it is like breathing a whole new type of air, with 55% less fart.
I've also fixed a fairly major bug in the database code, so that's equally excellent.
But apart from that lot, I'm getting a bit annoyed that I'm retreading old ground. I expected this to happen, of course, and I'm still not doing too badly with regards to my targets. However, it does sap the energy to spend each night in front of the computer doing repetitive tasks.
So in addition, I'll also fiddle about a bit with random graphical jiggery-pokery (the best kind of pokery) to keep that little spark alive that says "have a bit of fun, you morose fuck!"
Although if it's going to be rude...
I've been doing plenty of work on the data editor, and now it's almost refurbished. Well, it looks identical to the old one but uses the new database code, and as such it's infinitely better and using it is like breathing a whole new type of air, with 55% less fart.
I've also fixed a fairly major bug in the database code, so that's equally excellent.
But apart from that lot, I'm getting a bit annoyed that I'm retreading old ground. I expected this to happen, of course, and I'm still not doing too badly with regards to my targets. However, it does sap the energy to spend each night in front of the computer doing repetitive tasks.
So in addition, I'll also fiddle about a bit with random graphical jiggery-pokery (the best kind of pokery) to keep that little spark alive that says "have a bit of fun, you morose fuck!"
Although if it's going to be rude...
Sunday, July 23, 2006
Wahey for Backups
So, there I was, about 90% of the way towards changing the way the system stores the group sizes. I had updated the database structure and found that I made a wonderful saving of 8MB.
Then it hit me - the major memory hits come from any tables that have a lot of records. The biggest table is the People table - 575,000 records. The next biggest weighs in at a mere 16,000, which is section data (each competition being split up into sections, such as a group phase or knockout stage).
Other than the People table, I wasn't losing much memory. And although on an individual basis the speed hit wasn't that big, there's no point in sacrificing speed for 8MB of RAM. Speed lets me do more.
So the backup was useful, to stop me having to spend time changing everything back. I've got to do that more often.
In other areas, I started playing Brothers in Arms: Earned in Blood. The series is easily the best WWII shooter out there. It's atmospheric, looks great, and best of all doesn't treat your character as John Matrix. Invincible supermen don't work for me in a historic setting, so to see myself get ripped apart when in the open is joyous indeed.
Or not, as I'd rather kill them.
The sequel looks ace.
Then it hit me - the major memory hits come from any tables that have a lot of records. The biggest table is the People table - 575,000 records. The next biggest weighs in at a mere 16,000, which is section data (each competition being split up into sections, such as a group phase or knockout stage).
Other than the People table, I wasn't losing much memory. And although on an individual basis the speed hit wasn't that big, there's no point in sacrificing speed for 8MB of RAM. Speed lets me do more.
So the backup was useful, to stop me having to spend time changing everything back. I've got to do that more often.
In other areas, I started playing Brothers in Arms: Earned in Blood. The series is easily the best WWII shooter out there. It's atmospheric, looks great, and best of all doesn't treat your character as John Matrix. Invincible supermen don't work for me in a historic setting, so to see myself get ripped apart when in the open is joyous indeed.
Or not, as I'd rather kill them.
The sequel looks ace.
Wednesday, July 19, 2006
Insight into My World
I can use the database code to solve a problem with the database code. Now that's just genius on a par with folk like the guy who invented marmalade, and stuff.
Actually, I hate marmalade. Tangy bunch of crap.
See, my problem is that I'm often forced into using too much memory to store small numbers. I wrote the database code as a means of allowing me to store small numbers in just the right amount of memory. So what I've decided to do is have the system automatically create fields for every "group" in a table, telling you how many entries are in that group.
I had held off this idea in the past because I thought it would be too slow. That's a load of poo, it's perfect. The player table alone shaves nearly 10MB from the file size. Ten arse megabytes that weren't being used at all.
In other news, I purchased a copy of Kudos, obviously on the basis that my own life's down the pan so I may as well lead an alternate one. That went well. Within a year I had lost all my friends, been robbed three times and learned the ancient art of Kung Fu in retaliation. One of the chaps that burgled my home decided that instead of taking the cable telly, he'd swipe my self help book. Such a blow to my confidence, but at least I could still watch the Comedy Channel. Alone.
Hey, it beats staring at the walls with the lights off.
That's an option in the game, by the way. Where I live, I have no walls.
Actually, I hate marmalade. Tangy bunch of crap.
See, my problem is that I'm often forced into using too much memory to store small numbers. I wrote the database code as a means of allowing me to store small numbers in just the right amount of memory. So what I've decided to do is have the system automatically create fields for every "group" in a table, telling you how many entries are in that group.
I had held off this idea in the past because I thought it would be too slow. That's a load of poo, it's perfect. The player table alone shaves nearly 10MB from the file size. Ten arse megabytes that weren't being used at all.
In other news, I purchased a copy of Kudos, obviously on the basis that my own life's down the pan so I may as well lead an alternate one. That went well. Within a year I had lost all my friends, been robbed three times and learned the ancient art of Kung Fu in retaliation. One of the chaps that burgled my home decided that instead of taking the cable telly, he'd swipe my self help book. Such a blow to my confidence, but at least I could still watch the Comedy Channel. Alone.
Hey, it beats staring at the walls with the lights off.
That's an option in the game, by the way. Where I live, I have no walls.
It's getting big
I've slowly been building the database structure. It's all much easier now, as I had hoped. However, it's a little shocking to find the entire database weighs in at 100MB at the moment and has the potential to grow further.
I'm not entirely pleased with that, so I need to get it down. I know where the problem is, and it's best illustrated with a lovely example. The game has room for five World Organisations, such as FIFA or the Island Games Association. You know them well, of course. Now, each organisation has a list of affiliate nations, and it takes two bytes to store how many are in this list.
Which is a tad ridiculous and ought to be avoided if possible. I'd use one byte, except certain lists of this kind use up more than that. Now, if I could get it so that the game used the appropriate storage, I'd save an awful lot of memory.
Six organisations aren't using much. But consider that the same applies to a player's history, and there are 570,000 people in the game. That's over one megabyte, and I'm using two bytes to store a number between 0 and 20. That's just not right. And there are about 15 such lists for each person. 7.5MB at least is just wasted space.
As it is, these values are using up 40% of the total size. Arse.
Of course, if you're running a good computer this is never an issue. And the database has been designed to hold more data than is really necessary so the size will get reduced over time. Yet even so...
I'm not entirely pleased with that, so I need to get it down. I know where the problem is, and it's best illustrated with a lovely example. The game has room for five World Organisations, such as FIFA or the Island Games Association. You know them well, of course. Now, each organisation has a list of affiliate nations, and it takes two bytes to store how many are in this list.
Which is a tad ridiculous and ought to be avoided if possible. I'd use one byte, except certain lists of this kind use up more than that. Now, if I could get it so that the game used the appropriate storage, I'd save an awful lot of memory.
Six organisations aren't using much. But consider that the same applies to a player's history, and there are 570,000 people in the game. That's over one megabyte, and I'm using two bytes to store a number between 0 and 20. That's just not right. And there are about 15 such lists for each person. 7.5MB at least is just wasted space.
As it is, these values are using up 40% of the total size. Arse.
Of course, if you're running a good computer this is never an issue. And the database has been designed to hold more data than is really necessary so the size will get reduced over time. Yet even so...
Sunday, July 16, 2006
Ahhh!
I sat down yesterday to start creating the database structure (a delightfully easy task now). I perched my laptop on my lap, which no doubt made the guy who invented it let out a sigh of satisfaction at another accomplishment, and got to work. A few tables later, black.
The screen went black. The laptop had shut off. It had overheated.
No worries, I thought. This has been known to happen - the fan's a bit clogged with dirt and dust and so if the laptop isn't on a cool surface, it'll overheat. I sat the machine on the little table in front of me and got back to work. A while later, black.
In fury, I leapt up and unleashed a stream of urine towards the toilet. I must point out that I actually went into the bathroom first, as I'm not blessed with such fantastic aim. I let my anger subside, picked up my small plastic guitar and thrashed out a few Guitar Hero tracks, failing miserably at No One Knows and Crossroads yet again. I had decided to let the laptop cool and also let any capacitors (which there probably is inside these things) discharge properly.
Then I would open it up, clean the fan, and everything would be good. Alas, I couldn't open the fucker. Every screw known to man was removed but the thing wouldn't open. Instead, I fixed a room fan and set it beside the machine. Success! The fan's cold air kept the laptop cool, and I worked away. As the day turned into night and other cliches, I turned the fan down a little to keep myself from freezing, and continued working.
Black.
Oh for fuck sake. Four times in one day is not fucking good. I unleashed my fury upon Crossroads but once again failed miserably at Queens of the Stone Age's efforts.
If this laptop's buggered I'll be most upset.
The screen went black. The laptop had shut off. It had overheated.
No worries, I thought. This has been known to happen - the fan's a bit clogged with dirt and dust and so if the laptop isn't on a cool surface, it'll overheat. I sat the machine on the little table in front of me and got back to work. A while later, black.
In fury, I leapt up and unleashed a stream of urine towards the toilet. I must point out that I actually went into the bathroom first, as I'm not blessed with such fantastic aim. I let my anger subside, picked up my small plastic guitar and thrashed out a few Guitar Hero tracks, failing miserably at No One Knows and Crossroads yet again. I had decided to let the laptop cool and also let any capacitors (which there probably is inside these things) discharge properly.
Then I would open it up, clean the fan, and everything would be good. Alas, I couldn't open the fucker. Every screw known to man was removed but the thing wouldn't open. Instead, I fixed a room fan and set it beside the machine. Success! The fan's cold air kept the laptop cool, and I worked away. As the day turned into night and other cliches, I turned the fan down a little to keep myself from freezing, and continued working.
Black.
Oh for fuck sake. Four times in one day is not fucking good. I unleashed my fury upon Crossroads but once again failed miserably at Queens of the Stone Age's efforts.
If this laptop's buggered I'll be most upset.
Sunday, July 09, 2006
Swift? Ha ha!
In my last post, I mentioned the links system and how it would swiftly clean things up to avoid horrible crashes.
Swift is not the word. Slow is.
Actually, it's reasonably quick but it can't be used in the game at all because it all adds up - delete one player and it might take a second to ensure all traces are removed. Delete the 20,000 people who might retire at the end of the season and I suspect that nobody's going to be happy waiting for five and a half hours while the game makes sure everything's ok.
Instead of automating it, it'll have to be cleaned up in code. It's not a major problem - it had to be done anyhow in places - and still doesn't necessitate too many code changes if I rearrange the tables. I've still got some headaches related to the whole speed thing but not as much as before.
And of course, I don't have to worry about the imminent destruction of the universe.
Swift is not the word. Slow is.
Actually, it's reasonably quick but it can't be used in the game at all because it all adds up - delete one player and it might take a second to ensure all traces are removed. Delete the 20,000 people who might retire at the end of the season and I suspect that nobody's going to be happy waiting for five and a half hours while the game makes sure everything's ok.
Instead of automating it, it'll have to be cleaned up in code. It's not a major problem - it had to be done anyhow in places - and still doesn't necessitate too many code changes if I rearrange the tables. I've still got some headaches related to the whole speed thing but not as much as before.
And of course, I don't have to worry about the imminent destruction of the universe.
Friday, July 07, 2006
A whoo-hoo. Yes.
The database has been recoded. And works great, it's clean, and it'll be much easier to use. I've still got to tackle the rather large and annoying problem that is rewriting the data editor in order to use the new code, but it won't take as long as it did to write it in the first place.
At the moment, I'm still adding a system of relationship links to the database. Essentially, these will allow you to link the field of one record to another table or group, the purpose of this being to get the database code to automatically clean things up when you make a big stink. For example, if I delete a player from the database, it will swiftly search through all the teams in the game to make sure that the player is removed from his club, through all the competitions to tell his disciplinary record to sod off and so on, thus avoiding horrible crashes that might have plagued the original system.
It's a wonderful theory, but it also threatens to undo the very universe with its irritating recursiveness. Remove a player and you remove his entry in a club. Remove that... and you might end up deleting something else, like an existing loan arrangement. Delete that, and it might go and mess up something else, which will screw up the upstairs landing and result in a cacophony of squirrels attempting to assault a banjo with creme de menthe. I've confused you, I know, but that's basically how I'm suffering just trying to sort out this ridiculous yet entirely necessary system.
It could, in theory, end up trying to delete the very thing you've deleted in the first place, setting off the entire chain reaction. If that's a record, that's no problem - the system doesn't shift records around when you delete one, so deleting record two won't move record three down. However it does shift entries in a dynamic group. If I remove Player 13 from a club, Player 14 will shift down to save memory. I don't particular want to delete that and end up destroying the universe, particularly as I've yet to visit some nice places in that universe.
It'll be done tomorrow if I don't gibber.
At the moment, I'm still adding a system of relationship links to the database. Essentially, these will allow you to link the field of one record to another table or group, the purpose of this being to get the database code to automatically clean things up when you make a big stink. For example, if I delete a player from the database, it will swiftly search through all the teams in the game to make sure that the player is removed from his club, through all the competitions to tell his disciplinary record to sod off and so on, thus avoiding horrible crashes that might have plagued the original system.
It's a wonderful theory, but it also threatens to undo the very universe with its irritating recursiveness. Remove a player and you remove his entry in a club. Remove that... and you might end up deleting something else, like an existing loan arrangement. Delete that, and it might go and mess up something else, which will screw up the upstairs landing and result in a cacophony of squirrels attempting to assault a banjo with creme de menthe. I've confused you, I know, but that's basically how I'm suffering just trying to sort out this ridiculous yet entirely necessary system.
It could, in theory, end up trying to delete the very thing you've deleted in the first place, setting off the entire chain reaction. If that's a record, that's no problem - the system doesn't shift records around when you delete one, so deleting record two won't move record three down. However it does shift entries in a dynamic group. If I remove Player 13 from a club, Player 14 will shift down to save memory. I don't particular want to delete that and end up destroying the universe, particularly as I've yet to visit some nice places in that universe.
It'll be done tomorrow if I don't gibber.
Subscribe to:
Posts (Atom)