Adventure Game Studio

Community => General Discussion => Topic started by: olafmoriarty on Sat 02/08/2008 14:51:18

Title: Perfection, but to which degree?
Post by: olafmoriarty on Sat 02/08/2008 14:51:18
I'm sure I'm not the only one here who wants everything in my games and other works to be as perfect as possible. I want all my facts to be correct, I want my characters to follow the laws of physics, and so on, and so on. But can we fix EVERYTHING in our games? Given tons of betatesting and lots of new releases after the game is actually released, many errors can be fixed when found, of course.

But then, there are those errors it would simply be too much work to fix, or they are impossible to fix without seriously damaging the gameplay. I'm dealing with one of these right now, and I'm surprised to notice that I don't WANT to fix it. I probably could, but I don't see how I can do that without at the same time wrecking much of what I want to do with this game.

The thing is: I let my game use the system clock to figure out what day it is, so that the date in the game is always the same as the date in real life.

Now, in the game, one of the characters is said to have her 24th birthday "tomorrow". Yes, I'm aware that won't make sense if the player chooses to play the game over several days, but I choose to ignore that -- that's not very important.

The problem, however, which occured to me when I tried to calculate this person's date of birth (which is mentioned at a point in the game), lies in the Gregorian calendar.

Now, in 99,997947 % of the cases (yes, I did the math), this is not a problem. Today is August 2nd 2008, so the date of birth is August 3rd 1984. If I play the game December 31st 1996, the date of birth is January 1st 1973. If I play the game February 28th 2008, then my character was born February 29th 1984.

But what if the system time is set to the year 1924, 2124, 2224 or anything like that (not 2024, that's fortunately a safe one), and it's February 28th? If today is 02/28/1924, that means tomorrow is 02/29/1924, and that means the character must have been born on 02/29/1900. And that date doesn't exist, as years dividable by 100 and not by 400 aren't leap years.

The way I see it, there are three ways to fix this problem:

- I can drop the whole system time idea and set the game time to be a given date instead. But I don't want to do that. I think using real time in the game adds a level of realism, and at the same time it makes one of my puzzles somewhat harder, and I don't want to get rid of that.

- I can add a script so that IF it is 02/28/2124 or another tricky date, the character's birthday is said to be "today" or "in two days" instead of "tomorrow". But it being "tomorrow" really suits the story, and I don't really want to give it up.

- Or: I can add a script so that IF it is 02/28/2124 or another tricky date, the character's AGE is not 24, but 20 or 28. I'm leaning towards that one, but it just feels... wrong, somehow.

So I'm seriously thinking of leaving this "bug" in the game. It's not like it's a fatal error -- it will be problematic only three seperate days in the next four hundred years, the closest being more than 115 years into the future, and even WHEN it occurs, it doesn't make your game crash or anything, it just displays a date that doesn't exist. And of course, my little MAGS game will be long forgotten in 115 years, so this will only be a problem if a player actively changes the system time to FIND this error.

Knowing that it's in there drives me crazy, perfectionist as I am, but I don't really want to fix it in any of the possible ways. So... I'm making a flawed game, and I'm fully aware of it.

Anyone here with similar experiences you want to share? How small and unimportant must an error be for you to just ignore it?
Title: Re: Perfection, but to which degree?
Post by: on Sat 02/08/2008 15:18:40
Heh, sounds familiar indeed. Perfectionism is okay, really, it's a great character feat. But it also kill a game. I remember, when I started with AGS, I wanted to make this GUI, and has the impression that it would only be perfect if I had all sprites of the interface in a perfect order, starting at 1, ending at x. And since I hardly knew how to script an interface, this was a source of many restarts and delay.

But these days I'm a bit wiser and relaxed. I consider story holes/loops and trivial stuff like a missing "faceCharacter" a nuiseance, and will surely try to fix that, but sometimes you just see that something doesn't work as perfect as you'd like to have it, and leave a small flaw in. A typo is annoying of course, but dismantling a whole game just for one, no.
Often enough, your players won't notice that your animation is lacking that one annoying pixel, and sometimes they will. After all, you can always make another version.

As for your birthday problem, I might be wrong, but wouldn't the Doomsday Method work?
Title: Re: Perfection, but to which degree?
Post by: OneDollar on Sat 02/08/2008 15:39:05
Personally I'd go for the method of refining. Start with a rough idea, add puzzles as you go along, take out those that don't work and generally tackle the most important areas first. A problem that is (more or less) never going to occur is not really a priority.

I suggest you open up a text document and make a list of this and any other non-game-breaking bugs you have then, when your game is 99% finished, go down the list and decide which ones you're going to fix, whether you run the risk of breaking other bits of the game doing so, and whether its important. If you spend all your time on details before you've got the overall picture you'll never finish the game.

All that said I'd lean towards the second option. Changing a character's birth date is no big deal, changing their age by four years seems somewhat... major.
Title: Re: Perfection, but to which degree?
Post by: Makeout Patrol on Sat 02/08/2008 18:21:17
Having the game display a strange date three days in the next 400 years is akin to the stormtrooper bumping his head on the doorframe in Star Wars or the bowl of soup in the 1951 Alistair Sim version of A Christmas Carol; sure, it's a mistake, but if anybody notices - and in this case, they almost certainly will not - it's not a game-breaking experience, it's a point of interest. I say leave it in; if you absolutely have to fix it, do the changing the age thing so that it doesn't affect the rest of the game.
Title: Re: Perfection, but to which degree?
Post by: EldKatt on Sat 02/08/2008 23:28:53
Sometimes (well, actually very often!) you have to let go of an idea that in itself is really awesome, because it doesn't fit in the context of a particular larger work. Learning when to do that, and how to do it without feeling bad, is a very important skill in any creative craft.

(And, if you haven't guessed, I think your "current date" idea might be such an idea, but that's my opinion, and I don't want to diminish the effect of the perfectly good general advice above by saying something you may not want to hear...)
Title: Re: Perfection, but to which degree?
Post by: Sektor 13 on Sun 03/08/2008 11:10:36
I would use birthday "in two days" method. And adjust story accordingly ! It seems the best way. Or just add extra day if player starts in that date.
Title: Re: Perfection, but to which degree?
Post by: Snarky on Sun 03/08/2008 18:09:03
Do you think the rest of your game would really make total sense whether it is set in 1924 or 2124? Is there absolutely nothing else (fashion, technology, social mores, slang?) that serves to date it to within two hundred years?

I guess what I'm saying is that this whole issue is silly. If the system time is set to 1924, it's wrong, and if it's set to 2124, it's either wrong or you're long dead (and people are still playing your game, so yay!).

If you absolutely have to do anything about it, do what CJ used to do, and disallow people from playing your game on problematic dates  (i.e. 1 single day in the next 200 years). If somehow someone wants to play your game on Feb. 28, 2124, they'll just have to change their system time.
Title: Re: Perfection, but to which degree?
Post by: olafmoriarty on Sun 03/08/2008 18:26:07
Wow, thanks for all the responses!

As I said, I won't fix this error because it lies outside the borders of what I find reasonable to fix. Yeah, the game will make a silly date on one day 115 years, but nobody will remember my little MAGS game by then anyway, and if they do, that's so small a group that I won't alter my gameplay or story for them.

I just needed to... ramble... when I discovered that I was actually at a point treating this as a realistic dilemma.
Title: Re: Perfection, but to which degree?
Post by: Oliwerko on Sun 03/08/2008 19:11:56
Call it an "easter egg".
Error ceases to be an error when it's intentional  ;)
It's all about how you can sell it.
Title: Re: Perfection, but to which degree?
Post by: paolo on Tue 05/08/2008 12:58:29
One method that creative people use to plug plot holes that require too much effort to fix properly is to draw attention to them. That's right - make it blatantly obvious that there is a flaw. The trick is to move the flaw out of your scripting and into the plot.

Here's what I would do as an Easter egg: your character has a calendar with February 29 on it, even though it is one of those pesky years that is divisible by 100 but not by 400 (such as 2100). She looks at it and says "What? February 29? But this year's not a leap year! I knew I should never have bought that cheap calendar.*"

Ta-da! Instant bug fix. The player thinks that there being a February 29 in a non-leap year is deliberate. No more sleepless nights striving for perfection and irritating messages from players pointing out your "bug".

Alternatively, you could even keep it as a computer bug by having her use the date application on a computer and say, "It's February 29 tomorrow? That can't be right! Bloody <insert name of faulty operating system here>!" That might make a nice little in-joke.

By the way, does the system time really think that 2100 is a leap year? Isn't this a bug in your operating system? Isn't there a fairly good chance that it will have been fixed by then anyway?

And no, it's never possible to fix everything. All computer software has bugs in it - it's just a question of whether they are significant or not. Like OneDollar says, just worry about the important stuff. I look back at Trance-Pacific and see loads that I would like to change, but Ben and I only had three weeks to write it, so we just did the best that we could in the time available. (Having a deadline is a good way of concentrating on the most important bugs, by the way.)

*This is not as strange as it might sound. My colleague has a Dilbert calendar that duplicated about three weeks of dates in one month and missed out a big chunk of another.