'The Door Problem' of Game Design
An anonymous reader writes "Game design is one of those jobs everybody thinks they can do. After all, they've played a few games, and they know what they liked and disliked, right? How hard could it be? Well, professional game designer Liz England has summed up the difficulty of the job and the breadth of knowledge needed to do it in what she calls 'the door problem.' Quoting: 'Premise: You are making a game. Are there doors in your game? Can the player open them? Can the player open every door in the game? What tells a player a door is locked and will open, as opposed to a door that they will never open? What happens if there are two players? Does it only lock after both players pass through the door? What if the level is REALLY BIG and can't all exist at the same time?' This is just a few of the questions that need answering. She then goes through how other employees in the company respond to the issue, often complicating it. 'Network Programmer: "Do all the players need to see the door open at the same time?" Release Engineer: "You need to get your doors in by 3pm if you want them on the disk." Producer: "Do we need to give everyone those doors or can we save them for a pre-order bonus?"'"
I'd like little windows so people can see into the next room. These are always missing in games.
ALSO, I want to shoot something through the doors and blow them up with things.
#FeatureCreep
The article doesn't really say anything. For starters, it took me a while to realize she's talking only about computer games, and then even more specifically only about first person adventures / RPGs. From what I understood from the list of problems, I got that you decide on game mechanics and then generally boss people around.
PlusFive Slashdot reader for Android. Can post comments.
Most RPG Games I played have large number of fake doors.
Those issues sound like any feature in any other software project I've worked on...
Are there "Save" buttons in your application?
Can the user click them?
Can the user click every button in the application?
What tells a user a button is click-able?
What happens if there are two user?
Does it become read only after both users click it?
What if the UI is REALLY BIG and controls can't all exist at the same time?'
'Network Programmer: "Do all the users need to see the record save at the same time?
Release Engineer: "You need to get your buttons in by 3pm if you want them on the disk.
Producer: "Do we need to give everyone those buttons or can we save them for phase 2?
I'm not convinced by TFS. The answers are, roughly:
Am I the only one who finds arbitrary restrictions in games, either because the technology couldn't cope, or because the game designer knows how you want to play better than you do, or just because, really annoying? If there's a door there, it should open. If it won't open, there shouldn't be a door there. How hard is this? Putting a door there that's never going to open just frustrates the player and destroys the suspension of disbelief. It reminds them that they're not really in this world they can see, they're in some arbitrarily limited construct devised by a "product manager" at some company to try to screw a few bob out of them. Of course there need to be some limits on the world, because the technology isn't infinite; good game design should make those limits look natural so that the player never even notices that the limit is there.
Tomb Raider games are amazingly annoying - some things you can jump and grab, some things you can't. The only way to tell is to jump and try grabbing it. If it doesn't work, maybe you can't jump and grab that thing, or maybe you just didn't quite get it right. I know, I know, this is not the point of Tomb Raider games, Lara is, but still...
Slashdot - News for Nerds, Stuff that Matters, in ISO-8859-1 Has just realised that beta makes this signature redundant
Compare that to "we need to store patient data..."
Do you know what HIPAA is?
Is this going to be accessible over networks/internet?
How are you planning for archive/restoration?
How will we handle auditing?
Should it be over web services or custom server?
How are we going to manage permissions?
How do we securely persist on the client side?
Seriously? The door exercise is strenuous mentally? Anybody with actual software engineering experience will tell you that ALL software features result in design complexities, and a door in a game is pretty simplistic one - whether networked or otherwise.
Loading...
Well, thanks for demonstrating the point.
We'd call 'em overlays.
One project I did, a series of mods c.1981 to bring real POS invoicing to an early version of Peachtree Accounting, was a BEAR. It was written in MBASIC running under CP/M -- Interpreted tokenized BASIC running on a machine that started with a 64k transient program area. No extended memory then!
Minus OS call kernel, COMMAND.COM, minus BASIC interpreter, your program was born with ~32k to use in its lifetime. So 32k minus the size of the program itself left you with a memory heap for variables. The heap grew downward with every string assignment and when it bumped into the code there would be this pause for "garbage collection" while the heap was de-fragged and re-written to the top of memory again.
No comments, too much room! No long var names! You'd use CHAIN to jump to another program leaving vars in memory. But if you your were clever you'd carve out line number ranges and place temporary functions into 'overlays' that loaded over existing portions. When you did a MERGE no p-code optimization or block was going on here, any load command did its work line by line, it was like a really fast monkey typing in the program code.
So in place of Peachtree's default invoice which was clunky and required lots of input steps (mostly useless for cash sales) to implement a streamlined invoice was difficult. They use lots of strings. My first attempt worked great --- but every couple of line items the heap would touch and trigger global garbage collection -- ~3 to 5 seconds where the machine would be unresponsive. In those THREADLESS 8-bit days when garbage collection began your keyboard controller would save ONE keystroke but the rest would be LOST. This is a total wash. Clearly it needed a whole re-write.
The only way I could make the entry portion useable was to throw out the programming concepts that made things 'easy' (yet caused heap movement). Don't assemble a string of spaces, use a loop to emit them one CHR$() at a time. Don't assign to strings, pre-allocate a number of strings of reasonable length and use MID$() to replace its contents, keep a separate string length var so you can only emit the portion of the string that was being used.
It was sorta like coding in C, in BASIC. That was kind of a 'door' problem. But it worked. Then the world went CBASIC and all our problems magically vanished.
<blink>down the rabbit hole</blink>
Clint Hocking (of Far Cry 2) wrote a similar article last month, using the design of reload systems as an example:
http://www.edge-online.com/fea...
No kidding!!! What do you say at this point?
Not the case for every game ever. Maybe not even a majority
Do we even want access to every single room? We may want to illustrate that we're in a corridor. It would make no sense to be able to open all the doors and it would requitre a lot of level design time and memory space to have something on the other side of each door.
If no doors are locked then why do we need to remove this this expectation?
This is one solution. Should we have a message saying the door is locked? If so, what message? Should all doors make the same thud? Does that make sense for a metal door? If we go for different thuds, is the inconsistency too jarring? How much space do the thus assets take up? Is a keypad the correct design given the setting of the current level?
So which events will cause the door to unlock or lock for both players and which will cause the door to lock or unlock for only one?
Yes. Now, how do you propose we deal with the memory issue created here?
What if the door is only usable by players with a certain key or character type?
It's not a question.
Sucks for those who didn't pre-order. We're now the subject of an internet hate capaign because our game is broken. Or, we don't get as many pre-orders as we otherwise would have.
Every one of these questions is a decision that has to be made. The decision depends on the type of game, the resoucrces avalable (both in terms of hardware and developers), and all the decisions you'e made already.
And the point is, this is just doors. You have a similar lot of questions for any other item in your game.
The point is, most people don't realise just how much minutae you have to deal with in game design, and the job isn't as easy as a lot of people who want to work in games seem to think.
Most people think "Hey, wouldn't it be awesome if we ha could blow holes in all the walls and just kick down every door and we have an entire hotel toplay in with hundreds of rooms.
Yes, it would. But there are other things to consider that people don't think about.
If you're the game designer, you're the one deciding what the document says.
In games industry it's more like this: "I don't like the main character, change it to something more contemporary, a special-ops operative maybe? I don't care it doesn't fit with your theme of magic unicorn land, make the other magical creatures into taliban and we're sorted, right? Well then make it an FPS, no one plays plaforming games any more anyway. Oh, and throw in some realistic explosions, fancy mo-cap and destructible environment. No, you can't have more money. Just make sure the story is coherent and up-to-date. I don't know, look at the last 3 CoD titles' storylines and mix it up a bit. Heck, I DON'T NEED TO TELL YOU WHAT TO DO - YOU'RE THE DESIGNER HERE! NOW MAKE IT HAPPEN! And fix me up with a Gantt chart so that I have something to fiddle with while I'm talking to you next time..."
in your game? Will the stalls have doors? Can the user open the stall doors? Can the user close the stall doors for privacy? Will users be able to leave the restroom without first washing their hands?
The USA is only 4X older than me...perspective
Woosh.
The point of the article is that these are questions a designer has to consider for every single object and system in the game, interactable or not. There are no obvious answers because the answers will be different depending on the nature of the game one is trying to design. Some of the questions aren't even relevant to most games (which is intentional on the part of the author). The point is that designing video games is not just coming up with fun gameplay, but handling a lot of tedious and mundane details for a complex interactive system, and coming up with answers and solutions for things that most players will never even think about (until it breaks).
Also the second set of lines are demonstrations of how a person from that area of production might influence or interact with the design of a game system or object, not questions to be answered.
To visually represent a scenario that typically has lots of doors (a hotel, for example), or as an entrypoint to the location you've just left.
Yes, it's a wall as far as level design and internal game logic is conerned. It's a door as far as visual cues are concerned.
How did they forget the most important question? "If the door opens towards you, does it crush you into the wall?"
I don't think she does a very good job of explaining why good game design is difficult.
It's not that game design itself is difficult, it is that GOOD (ie, fun) game design is difficult. She's basically addressing the wrong problem set. What she is describing is simply software design and engineering issues, which boils down to 3 real categories:
1. Functional / feature design: the rules which govern whether they exist and how they can function. AKA "business rules" in normal software development.
2. User Interface design: how the user (player) interacts with it.
3. Engineering/Implementation issues: how do you make 1 & 2 real and work, while reducing undesired side-effects.
1 & 2 generally form a specification for the feature's design, and 3 is the specification for how to implement it.
This is not unlike many common design and implementation processes for standard software design and engineering of complex systems. The real difference is that, while a software system designed and implemented correctly may fulfill all the intended design objectives, there is an additional objective which games add to the mix that is not generally present in normal business applications: fun. Unfortunately, it is not an objective criteria, and requires "play-testing" to discern whether a particular design is fun or not. It is very difficult to design-in "fun" from the very start of a project.
That said, with the advent of Serious Games, adding the "is it fun?" criteria to real-world business applications is happening more often.
Lastly, as a game developer, the single greatest challenge I have encountered is simply to keep going through the "hard times". Like any difficult software development project, there are times when things get dark and depressing for whatever reason, and there is difficulty keeping motivated to continue, but you have to bear down and power through the hard parts. The reason most game development projects fail that I have seen is that people don't really understand how hard it can be at times, and give up when the going gets tough. To me, this is a more difficult hurdle than in typical business application development, because many people get into the development of games with an incorrect level of expectation about said difficulty.
-SS "Teach the ignorant, care for the dumb, and punish the stupid."