A Bus And An Elevator Walk Into A Bar...
Jun 15, 2015
Every graphic adventure I've worked on has at least one puzzle or interaction that seemed really simple when we designed it, but ended up becoming enormously complex and the source of countless bugs. This inevitably resulted in countless fixes, patches, and smiling sadistic playtesters eager to report yet another issue.
We call these Whack-a-Mole bugs. Fix one and another pops up right next to it. They usually happen when you don't think through all the possible side effects of your design choice, and from needlessly complicating what could be a simple interaction.
In Zak McKracken and the Alien Mindbenders, the "WaM" puzzle involved getting on the bus in San Francisco. Sounds simple, right? You just give the bus driver your CashCard™ and he lets you on. But I wanted to make this interaction flexible... more like real life. What if there were two characters (Zak and Annie) waiting for the bus? What if one didn't have enough money on their CashCard™? Could one pay for the other? What if one was at the bus stop but didn't board the bus before it left? What if the bus driver went back to sleep after you already boarded the bus and paid? What if the bus just left with Zak and Annie walks up—should another bus be there, or should we wait a suitable period? Because of countless weird permutations, the image of our lead playtester evilly smiling at my office door is burned into my memory.
After I'd spent days, nah, weeks, fixing these WaM bugs, I wondered about the overall coding and debugging time investment vs. gameplay payoff ratio. Was I really making the game more fun or would my time have been better spent on a game interaction with a higher Funitivity Quotient™? For example, if the boarding-the-bus bit had been a cut-scene, it wouldn't have made much difference to the overall playability of the game. (So what if the driver was rude and left Annie standing at the bus stop?!) You could have just walked up to the bus and automatically ended up at the airport, CashCard™ appropriately debited.
It's been over 25 years since Zak, but the bus puzzle still keeps me up at night. No, not really... it's the stewardess-bathroom-egg-in-microwave puzzle! Anyway, because I've got all these extra waking hours I am always on the lookout for similar interaction problems where we could put in way too much time for the payoff. In Thimbleweed Park, one potential candidate is... The Elevator.
There's a single elevator in Thimbleweed Park's Edmond Hotel. You can board it, select your floor, and ride up or down, just like in a real elevator. What I haven't addressed yet are all the complexities. What if Agent Ray is riding the elevator and you switch to Agent Reyes who pushes the call button from a different floor? Must we make the elevator behave like a real one and stop at the floor to let the other character on? What if two characters both press the elevator button at about the same time? What happens if both characters board and press buttons for different floors? (That's what we expect on a real elevator, but do we need to implement this on our virtual one?)
See how things can get real complicated real fast? But on the other extreme, if the implementation is too simple, it could frustrate the player who expects Thimbleweed Park Hotel's elevator to interact like real ones. "Hey! What's wrong with this game? Why can't I press every button and stop at each floor?! And where's the emergency STOP button?"
For a first pass, I programmed the elevator so we can move around the hotel. I'm still looking for that balance between time invested in modeling reality and fun for the player.
Similar potential craziness involves what to do when you can see from one room into the next. For example, if Ray walks down the street and stands at the doorway to the bank, and then you switch to Reyes inside the bank. If Reyes opens the door to leave, should we see Ray standing there (on the other side of the door,) even though that's really a different room? Should we design all our rooms so you can never see through to another room? In our old adventure games we never worried about this. Probably won't now. Sometimes reality is just not worth programming.
- David
Eg.
Click on the elevator panel
(Character switching off)
Zoom in on buttons
Press any button
Elevator gets to floor
(Character switching on)
Also if actor doesn't select any floor the visual zooms out from the buttons and (Character switching on)
Maybe that trick could be applied anywhere that you want a non interruptable sequence of actions.
I guess, most adventures do it that way, since it let you use it with two mouse clicks, and making it more realistic wouldn't do anything to the story anyway. I played Cognition recently. There are several elevators in that game, which work just like that. On some occasions, there isn't even a floor selector when there is only one option anyway.
Of course, if the puzzle requires the elevator to be completely interactive, like the one in Monkey Island 2, it shouldn't be too complicated to do realistic behavior, I guess. Elevators did it 100 years ago, and they didn't even have a micro controller back then.
If you think a certain feature would be great - even if eccentric - feel free to waste your time!
But as you stated, you cant put details everywhere if you want to ship in time.
As for the elevator, i think its only worth to put much effort in it if
a) it is a central location where you stop by often
b) a puzzle is planned which requires the extra functionality
c) every floor can be chosen and may have a purpose (you may block some with a funny explanation eg pidgeon feces problem)
Please add an odd floor which is totally different to the rest of the TP-world (Floor 13 :)
So maybe add a cellar floor (why? For the SECRET (of Thimbleweed Park™!))
Maybe the obvious lock and key.
Maybe something else.
God how I'd love to see our head poke out of that damn tree stump in Monkey Island once again! ;D
Lots to think about!
As for the elevator. Make it behave realistic. It may be fun in it's own right. You can toy around with it while thinking about puzzles. It makes you believe in the world.
When Monty Python did the Holy Grail doing the smoke was a real burden on the production crew. It was put into question, "How many loughs does the smoke get?". They did it anyway, and it really helped the whole atmosphere.
1. "Use" elevator
2. Screen: Shows a floor dial
3. "Click" on a floor
4. Animation: the actor presses down or up button
5. Next scene: Elevator door opens and actor walks to chosen floor.
Only if the elevator stops functioning in a puzzle it would be necessary to show innards of the elevator, and make the floor dial unusable.
It wouldn't bother me for example if character switching is disabled whilst the elevator is working.
Though an obvious bug would bother me of course.
For the Elevator, since we don't yet know exactly how players are going to want to use it, and haven't coded puzzles that make use of the elevator, I didn't want to put in time over-engineering it before we needed to... especially because of my Zak experience. Stay tooned!
Suggestion: Do an elevator-race (either 2 elevators or 1 and stairs) with a npc. And/Or combination puzzle/key/.. to reach a hidden floor. Dont know why, im in desperate need for a secret. (of Thimbleweed Park™!)
You could also wake up the driver in different ways, which was a nice touch.
I too have fond memories of those scenes and I appreciate the work which was put into the quite complex behavior with the bus driver! And the puzzle(s) with the stewardess are actually my favorite!
One character somehow got stuck in the bus (can't remember if it was Zak or Annie) with the bus driver asleep, and could not pay or drive to the airport or wake the driver (which was kind of weird because he/she was standing right next to him).
If I remember correctly it involved a cut-scene to the aliens somehow.
Yay - the fun of programming ;-)
Will have to test that again :-)
Tobi
Although in this specific instance GOG just put the FM Towns version into ScummVM (with the EGA version also available, which was a nice touch), so it was a lot simpler then the extents to which they often have to go. I can only imagine Disney haven't had the time to put together such a package for Steam, and Steam won't do it themselves.
Initially, LEC tried to get ScummVM to stop development.
They wouldn't have used it on their dead bodies. Some SCUMM game(DotT and maybe others) were ported to Windows, and, IIRC they hired back Aaron Giles to port the original engine rather than using ScummVM, which was technically superior to what they released (scalers, sound options...).
The Disney management has more discernment on that point :-)
http://www.zak-site.com/zak2a.htm
My congratulations go to all the team, of course, they did it a great job for fun and that is praiseworthy... but there are some points quite boring, and not so clear.
Maybe it's me, I'll try to replay it during summer vacations.
I couldn't click reply on your comments. I think
there's a reply limit.
So if you wanted to play the game the way it looked, if you'd have bought it in Europe or the US, you'd have to look elsewhere, still.
Don't get me wrong, the games is great in all versions, and this one looks the same, but I'm a purist. I don't really particularly fancy how they mashed it and packaged something that was never sold like that before.
- Actually, that's not true. As I said above, GOG give you both the FM TOWNS and DOSV2 EGA versions. It even loads two shortcut icons.
It's an interesting problem. For me, good gamepley mechanis do matter and make a game feel more immersive. BUT: Since you are obviously on a budget and have lots of other stuff to wire up why not just start with the easiest functional approach first and should you have time at the end of the project revisit these sections to see if you can make them feeld more realistic and elaborated?
That being said, as a code-wh*re I have to demand screenshots of script code! Without that, how can I be sure these aren't just pretty pictures to make me THINK you would wire up these gameplay mechanics, but instead you scheme your next moves on you way to world domination?!
"This algorithm is named after the behavior of a building elevator, where the elevator continues to travel in its current direction (up or down) until empty, stopping only to let individuals off or to pick up new individuals heading in the same direction."
It's best to implement the elevator mechanics as a finite state machine. It basically comes down to modelling the states in which the elevator can be, and the transitions between them. In fact, the elevator control is a standard text-book example used to introduce finite state machines. It's quite easy that way; every other way of implementing it is far more complicated.
Zak McKracken And The Alien Mindbenders™ is my favourite game of all time because of these kind of situations.
The "bus to the airport"m for example, made me happy because I wanted to wake up the driver with anything I could (even with the stale bread!!).
The important thing, here, is the logic.
If Zak goes on the bus to the Airport, then Annie leaves her home, it's logic that the bus could not be in the 13th Avenue.
If Zak goes on the bus and Annie is near here, the logic depends on the driver feelings (rude? OK, who cares of Annie. Maniac? Annie, go abroad!)
Less situations leads to monotony.
I imagine the use of the elevator very similar to the bus in Zak McKracken.
For example:
- Characters "A" and "B" are in the elevator.
- "A" presses a floor button
- the elevator doors are closing [time needed to shut: 4 seconds]
- during those 4 seconds, "B" presses another floor button
I expect that the elevator will open at the floor of "A", the doors remain open for a few seconds, then they shut and the elevator goes to the floor of "B".
The behaviour is more like Weird Ed in Maniac Mansion: when someone pushed the doorbell, he walks from a floor to another. Every ding-dong causes Weird Ed to show where he is at that moment.
Right now, if two characters board the elevator, and one selects a floor, I've made the button panel "untouchable" so that no one else can make a selection until the elevator arrives at its destiantion. I've also programmed the elevator panel button selection as kind of a toggle so when you select one floor, and then immediately select a different one, then the light for the first floor turns off (so only one floor can be selected at a time). Both of these removed a lot of possible complexity by not allowing the character to change floors, and not having multiple floor destinations.
If this seems too restrictive while we're actually testing the game, I may have to "bite the bullet" and add more functionality. But right now, it doesn't seem like an issue. This is a very fast elevator, so having to ride up to a floor you actually don't want to go to isn't really a big drawback.
It could also have a secret floor like in the movie "Being John Malkovich", which can only be entered with a crowbar.
With that I'm not saying you to make a smart elevator. You only know how much works need to implement it and how many times we'll use it.
My point is just that I can accept a "down-to-date" graphics and look if you give me back interactions. And possibly loads of animations too. That's what I'm missing more from the modern game: better graphics needs more time to be made and less budgets leave to poor/restricted interactions and hardly few animations.
My 2 cents
Light is important! Let us play with light, and have the light play with us! :)
While I did not pay much attention to all the possibilites, the bus being gone created a sense of a real world in Zak McKracken (just like the changing headlines at the airport, when you kill the squirrel). And in MM it is probably Ed looking for his package, walking through rooms who gave me that sense of the collection of rooms being an actual mansion with inhabitants. It would have been forgivable to let him just pop up in the kitchen or at the post box,, but the idea that he can get you when you were somewhere in his way just let him appear so much more real and made that world so much richer.
I remember while playing it on C64, I was always looking at the cursor' shape: if it changed to a snail, then Weird Ed was in his room again!
In Monkey Island and the subsequent adventure games, all of this was lost and players didn't really care. Characters standing in one spot, never moving or acting on their own, and not really reacting to your actions, obviously are enough for most people, and are much easier to develop (just like linear corridor 3D games are easier to make than a 3D game with a more intricate, complex interconnected levels, that give you some choice and options to explore).
I understand the need to make things simple and scope them down, but your way of doing things, mr. Fox, is very beautiful. Please don't hold back too much. I wish more designers approached things like this.
A hindrance of some Lucas games was that sometimes they felt restrictive - not because two objects couldn't be used together, but because a particular verb was missing, leaving you unable to do things like look at items or talk to people. Or to hit things.
That said, I don't think there is any Lucas adventure that would have let you actually knock on the bus door - "Use" and similar verb items feel a bit too vague, and would be more intuitively used to try to open the door. (Full Throttle had a "kick" verb icon though..)
If this is the only WaM (or the big one) in Thimbleweed then I say go for something pretty realistic. I would love to see (and play around with) Agent Reyes getting on at one floor and being in the elevator when Agent Ray is waiting on the exit floor - whether or not the call button was pushed. You could even design a puzzle around this perhaps (maybe both needing to get to the same place at the same time or one leaving an object in the elevator for the other one to use).
If you want to get crazy, let us open the control panel and hack the controls to make the elevator go to the penthouse when you press the Basement button.
https://en.wikipedia.org/wiki/Paternoster
It's the 80s, after all!
https://www.ndr.de/nachrichten/schleswig-holstein/Machtwort-in-Posse-um-Paternoster-in-Kiel,paternoster132.html (German only, sorry).
...OK, maybe that's not such a great idea!
- Mitch Hedberg
Ron, Gary, and I are talking about your feedback and will reconsider what level of detailed interactions we'll program into the game... of course, assuming we have the time. Maybe we'll take the layered route, adding more detail as we can within the time/budget constraints.
I believe every baker here would agree with me.
Detailed and awesome game with release beyond June 2016
vs.
normal game within June 2016
Please choose one (...in strict sense!)
If there isn't anything needed in the elevator I would probably go for the suspension of disbelief and add a panel on the outside of the elevator (with the doors closed) specifying what floor to go to and simply move people to the new floor. The doors will never need to be open.
Anyway... I'm curious about the stewardess puzzle, I hope you will make a post about this one in the future. Zak was one of the first adventure games I played (using walkthrough as I was a kid and barely speaking English) and this situation blew my mind. I remember this as one of the most insane, funny, creative and naughty things in a game ever. I tip my hat to you Dave.
http://play.elevatorsaga.com/
Of course you'd be able to stay in the elevator, and even move around in the elevator. It's only when you use a button on the elevator, it will enter "cutscene" mode.
Unless you need it for a puzzle, I see no reason why you should be able to move around or change character while the elevator is in motion.
Then again, I try to find the simplest solution to these types of things.
https://en.wikipedia.org/wiki/Five_Guys_Walk_into_a_Bar...
The main thing for immersing me in the game world is the combination of the art and the ability to look-at, pick-up, and generally interact-with a good number of things in each room, regardless of whether it is realistic or not. The other key thing is the characters and dialog and how fleshed out they all seem.
With an elevator, I'd much rather there be interesting things in the elevator like a button that does something unexpected or a loose panel to remove or a funny elevator-operator character in there or a fire extinguisher to pick up or whatever. Or at least some fun descriptions of things when you look at each thing in the elevator. If it acts like a real-life elevator, cool, but I wouldn't really notice to be honest.
On the other hand I would find it quite funny if there would be a chase scene for example and you would have to do some creative trick with the elevator, perhaps requiring more complexity to elevator features (or not). Also, when I was a kid we used to do some pranks with elevators, like getting 'em stuck to the highest floor or blocking some friends inside (don't worry, it was all fun and up to the safety standards - in a way). I wouldn't mind doing some pranks again...in TP! Mwahahaa!
Alternatively it would be a piece of cake to undo the "B" button.
Both pressing a call button or a floor button inside the elevator won't have any effect until the elevator stops at the original destination. And I guess having people in several floors abusing the buttons so they 'win' the next round is something you don't need to worry about in the game.
Yes, I'm bored but it's not my fault! :P
Caspar: „If Agent Ray is calling the elevator and Agnet Reyes is in the elevator, the elevator stops to let the other character in. „
David Fox: „What if two characters both press the elevator button at about the same time?“
Caspar: „The door is open and the elevator stops at a specific floor, without moving on. Then it depends who is first with pushing, otherwhise the elevator will stop and not going on at exactly this position.“
David Fox: „What happens if both characters board and press buttons for different floors? (That's what we expect on a real elevator, but do we need to implement this on our virtual one?)“
Caspar: „It depends: If the elevator is going from down to up it starts with 1 → 12. The smaller number has the possibility to leave the elevator first. If the elevator is going from up to down it starts with 12 → 1. The bigger number has the possibility to leave the elevator first.“
David Fox: „See how things can get real complicated real fast? But on the other extreme, if the implementation is too simple, it could frustrate the player who expects Thimbleweed Park Hotel's elevator to interact like real ones. "Hey! What's wrong with this game? Why can't I press every button and stop at each floor?! And where's the emergency STOP button?"
For a first pass, I programmed the elevator so we can move around the hotel. I'm still looking for that balance between time invested in modeling reality and fun for the player.“
Caspar: „You have also to calculate the case that the elevator is broken and somebody wants to call the elevator company with his mobile phone. Than you have to take care, that there is some kind of help button or elevator telephone inside the elevator. In some cases elevators have Music.“
David Fox: „Similar potential craziness involves what to do when you can see from one room into the next. For example, if Ray walks down the street and stands at the doorway to the bank, and then you switch to Reyes inside the bank. If Reyes opens the door to leave, should we see Ray standing there (on the other side of the door,) even though that's really a different room?“
Caspar: „It depends what kind of shop it is. If you take for example a bank, then I would guess that they are useing glass without the possibility to look in from outside to inside, but it's eventually possible to look from inside to outside. Normally, I would guess that shops are useing Shutters or curtains. If it is night, it is only possible to see the Streetlights and the city skyline. During Daytime it is possible to see people, but very tiny and sometimes only the shadows of people walking around the place. General answer: not exactly designing the people”
David Fox: „Should we design all our rooms so you can never see through to another room? In our old adventure games we never worried about this. Probably won't now. Sometimes reality is just not worth programming.“
Caspar: „I would take the beautiful landscapes from Mark Ferrari, when you look out of a window. If a building is very high it is impossible to see the streets, but a nice Skyline (like the Backdrop of a Late Night Show) is always beautiful. I would take something, that is similar to the Backdrop of the Letterman Show.”
Years later I visited the USA (I am a german guy) and paid in a bus. Even then I was astonished that it felt like I had done that a hundred times before. What was exactly true.
So was all that programming worth the time? You could also ask ME if playtesting a virtual bus was worth a whole day of my lifetime... And I would say yes! Cause details like that made me the nerd I am today. And it made "that great game" to one of the best remembered things in my childhood.
This elevator is in a hotel, thus there have to be people wandering around, just like in Mêlée Town.
So, the elevator could make a lot of sense, the way it works may actually inspire a good puzzle.
> If Reyes opens the door to leave, should we see Ray standing there (on the other side of the door,) even though that's really a different room?
Yes, I think that we should be able to see the other actors thru' open/transparent doors/window/whatever. Although in different rooms, it will make the game world more realistic.
( perhaps this will be a pain in the neck to code, depending on Ron's room-actors architeture, but... )
In fact, not many games do that "see characters in the next area even if it's not loaded". Half-Life did it back in 1998 because they cared enough for NPC behaviour and overall realism. That's why I liked that game even if I don't like the genre itself. Such decisions impact scope, but they also add that nice touch of developers and players really caring about that other world.
As a minor digression on the subject, I still remember the first time I played the "Half Life" campaign. The long introduction, with you (Gordon) descending into the Black Mesa facility with the train did impressed me a lot. Today it would be considered a common feature in games and such, but having the NPC around you (engineers, machines and all the rest) moving and doing their own business with such a detail was really amazing.
In the end, I didn't like the game itself (mostly not the plot) but the game mechanics were solid and the multiplayer game was really fun.
End of digression.
Thumbs up for a more realistic world. ;)
https://youtu.be/afSMFXxNdnE?t=1992
https://youtu.be/gKlZzAWIlJc?t=1524
https://youtu.be/wEkPsfanmo8?t=602
https://youtu.be/cMkmGb1W-9s?t=32
You can simplify the situation by avoiding the modern elevator. Use an old fashioned elevator from early 1900s instead, that has a door and a gate. It would even add some style to the hotel.
When the elevator is in operation, it is in a "busy" state. No one else can call it from another floor. When a person gets in the elevator and pushes a button, the elevator gets into the "busy" state. No one can change the elevator's course until it reaches the destination floor, including the person who pushed the button and is inside the elevator. There is a "busy" light on every floor near the elevator door. When it is lit, that means the call button inoperational. The person has to wait.
People will appreciate it. I certainly will!