Author Archives: David Mullich
Confessions of a Coaster Operator, Part 1: Crazanity
I have a confession to make. From November 2021 to September 2022, I worked as a ride operator at Six Flags Magic Mountain. Until now, I’ve shared this with only a few people, but now its time for me to me to write about my experiences as a sixty-something game developer and college professor who spent almost a year operating roller coasters and other theme park attractions with coworkers who were barely old enough to drive.
Don’t get me wrong. I love theme parks. When I was growing up in Los Angele’s San Fernando Valley, my family was constantly visiting Disneyland, Knotts Berry Farm, Universal Studios, Bush Gardens, Sea World, Marineland, and of course, Magic Mountain. I remember going on Disneyland’s Pirates of the Caribbean after it first opened and then buying a souvenier book on how the attraction was made. That book inspired me to want to become a Walt Disney Imagineer myself and make immersive theme park attractions when I grew up.
My career path took a slightly different turn when I focused on digital immersion by becoming a game designer. I was hired by The Walt Disney Company in 1987 to be its very first staff game producer and had the opportunity to pitch several games based on Disneyland attractions. Sadly, none of those projects were green-lit, nor was I hired when I interviewed to be a producer at Walt Disney Imagineering when I couldn’t seem to get any of my other game projects green-lit during my last year at Disney. Later, I interviewed to be a theme park producer at Landmark Entertainment and just a couple of years ago, Universal Creative asked to interview me for a producer position at Universal Florida. I didn’t get either of those positions, so working on theme park attractions continued to be an elusive dream.
It’s funny how difficulties can lead to unexepected opportunities. It was October 2021, and a client for whom I had been producing an educational game had suddenly and unexpectedly canceled the project (we think that their budget had been cut). Christmas was coming up soon, and I wouldn’t be paid for my teaching position at ArtCenter College of Design between terms from mid-December to mid-January. I was going to need extra money for the holidays, and so I looked on the internet for short-term work. And there it was: Ride Operator at Six Flags Magic Mountain. Perfect! It was a ten-minute ride from my home, the hours were flexible, and it sounded like fun.
Well, it was so much fun, and I so enjoyed working with my young teammembers that I wound up working at Magic Mountain for nearly a year. However, after a year-long lull period in contract work, I started to get so many offers to work again as a game designer and producer that I could no longer avoid returning to the real world.
Now that I’m back in the real world, I can tell you about my secret life as a ride operator. I will describe each of the attractions I worked at — Crazanity and Jammin’ Bumpers in this article, and Justice League: Battle for Metropolis, Gold Rusher, and Riddler’s Revenge in future articles. For each of these attractions, I will describe the ride attendant and operator responsibilities in one section for those of you who are interested in the details of ride operations, followed by a section about some of my more memorable experiences on that attractions — such as when a motor coupler blew out while I was doing the morning safety check on Crazanity, how a lady snuck a dog aboard under her coat at Justice League, or how a bear wandered onto the park grounds and entered the Riddler’s Revenge loading station.
I was fortunate to be assigned to Crazanity, the world’s tallest pendulum swing ride, as my first attraction. It was the ride that everyone in my area most wanted to work at. Not only was it a fun, thrilling, and relatively new ride, it had a joyous atmosphere around it. The area was colorful, speakers around the area played music, and you worked out in the fresh air. Even when the weather was harsh, there were covers to provide protection from the rain and sun. Also, the ride operator booth was air conditioned and provided a momentary respite during the summer’s heat.
Like most park attractions, Crazanity had two tiers of positions: attendent and operator. Attendant positions required only an hour or true of training, followed by a multiple choice test about the position’s responsibilities, as well as general park knowledge, policies, and safety. Once you pass the attendant test, you are said to be “attendicized”.
Operator positions, however, required many hours of training, followed by a much more extensive test that includes ride engineering, daily operation procedures, and ride evacuation procudures in the case of potential mechanical or evironmental problems. Those who pass the operator test are said to be “certified”. Cranazity’s attendendant postions are called Load and Unload, while its one operating position is called, unsurprisingly, Ride Operator.
When the ride is ready for boarding, the attendant at the Load positions opens the rntrance gate and then unhooks the queue area chain to let guests aboard. The gondola holds a maximum of forty riders, so Load has a clicker for counting the number of guests coming through into the boarding area. I liked using the clicker (somtimes saying “pew, pew” as I pointed it at guests and clicked as they came by, which usually got me a big smile or laugh from them) so much that I bought my own, because sometimes a clicker wasn’t available at the ride that day. Sometimes, the person working in the Load position would put the clicker in their pocket and forget to turn it in at the end of their shift (I did this once myself).
As guests come by, Load also discretely checks a height limit sign to make sure each guest is tall enough to ride. If someone looks too small, Load will have them stand against the sign and, if they are close to the limit, place our name tags flag on the top of their head to measure more precisely. If they are even a quarter-inch too short, Load won’t let them aboard. One mother once pleaded with me when I told her that her daughter was no tall enough to ride, “It’s her birthday? Can’t she be tall enough, just this once?” Sorry, lady, your child’s safety is more important to me than her fun. I don’t want her fallling off the ride while she is 170 feet in the air because she’s too small for the harness. Not on my watch!
In addition to the regular queue, Crazanity has a shorter waiting line for guests with Fast Passes, which is Six Flag’s paid reservation system for getting onto rides more quickly. If there is anyone waiting in the Fast Pass entrance, I would let them on first (to a maximum of about ten) before letting on the other guests. Now, Six Flags has Fast Pass workers whose only resonsibility is to use a smartphone to scan their Fast Pass QRC code or wrist band to make sure it was time for them to board, but for most of the time I worked at Crazanity, we didn’t have a Fast Pass person assinged to us, so I got to scan Fast Passes when I worked in the Load position, which gave me something to do during the three minutes the ride was running.
Another one of Load’s responsiblities is to manage the storage cabinet where guests can put their belongings during the ride. The ride gondola can generate a strong gust of air as it swings by at 75 miles-per-hour, and if their belongings are not locked in the cabinet, they could be blown away or create a hazard. Even though Load tells guests to put their belongings in the cabinet, and the Ride Operator issues reminders over the loudspeaker, I was always shocked with how often people didn’t listen and put their belongings on the ground or on top of the cabinet. We would frequently hold up starting the ride for 5 minutes or more until whoever the guest was who left their souveneir cup on top of the cabinet or their backpack on the ground would get off the ride to put it away, because park policy was that employees couldn’t move guests’ belongs without their persmission. (I wrote a suggestion for management that they put a sloping top on the cabinet so that people can’t put their belongings on it.)
But once both guests and belongs were secure, Load would close the cabinet and the entrance gate, scan the area to make sure there were not guests in restricted zones, and give the thumbs up that the ride could start.
Unload’s main responsibility was to make sure that guests were secure in their seats. We often had two people working the Unload position, but when we didn’t, Load would help out with the Unload responsibilities. As guests are boarding, Unload would try to space them out around the gondola when there were only 10 to 30 guests riding, so that there was an even distribution of weight. If it looked like there was going to be a full complement of 40 riders, then Load would try to seat guests so that there were no empty spaces between them; this was so that we wouldn’t have to split up groups of family or friends who boarded lasts. Sorry, there’s no preferred seating on this attraction.
Unload personnel would caution people not to lower their harnesses; these come down automatically before the ride starts, and if guests lower try to lower the harnesses themselves, they may damage the equipment. Once the harnesses do come down, Unload goes around and checks that their belts are buckled and harnesses are tight. Another thing that Unload checks for is that no guests has any phones out — it is forbidden to hold phones or cameras on any Six Flags attraction, for reasons you will see below — as well as to make sure they have their shoes with them, either on their feet, attached to their belt or harness, or under butts.
Why is there a need to check for shoes? Well, a lot of guests take off their shoes because they are afraid that they will fall off their feet during the ride. However, they need to have their shoes with them because someone vomits on the ride at least once a day, and we can’t have guests walk into a puddle of vomit in their socks or bare feet when they disembark. Which reminds me, another of Unload’s duties is to get out the hose and wash down vomit off the seat and platform when a guest throws up. The Ride Operator then runs the ride empty for one cycle to dry things off. For some particularly vomitous guests, we needed to do this twice. That was my least favorte part about working the ride. One time as I was working Unload, I barely dived out of the way in time as a guest projectile vomited in my direction before he could reach the trash can in the exit area. Folks, if you’re going to eat the Spicy Cheetohs, please stay off the thrill rides for at least an hour to digest!
Ride Operator Responsibilities
I became a Crazanity Ride Operator about 8 months after I was attendicized. The reason it took so long is that after I worked at Crazanity for about a month, I was mostly scheduled to work at other attractions and only occasionally worked at Crazanity. So, squeezing in the 10 hours or so of training required to be a ride operator was difficulty.
Still, the wait to becoming a Crazanity “cert” because the position had a lot of responsibility. When certs come in before the park opens, there are several responsibilities that they might share with the Ride Supervisor, who is the person in charge of that ride and manages the ride’s operators and attendents. The first task may be to stop off at the Ride Operations office and pick up “the box” — a plastic case containing the keys to the attraction, the personnel assignment schedule, and other paperwork.
Once they walk to the attraction, the supervisor or cert will do a “gate walk”, which is checking that all of the attraction’s gates are locked (Crazanity has a total of five), and that no maintanance personnel was working anywhere in the attraction area. After verifying that Electrical, Mechanical, and Staff personnel had already signed off on the ride, we would then go through an operational checklist to make sure that the ride was in good working order and that all of the safety sensors and devices were functional. This included checking that the panel controls could lock and unlock the gates, open and close the loading platfrom, and start up and shut down the ride itself. The final step in the checklist is for one of the certs to do a safety ride. Being paid to ride a theme park attraction? I didn’t have to be asked twice if I wanted to do the saftey ride that day!
Other things we would do before the park opens is check that the crew who closed the attraction the day before had cleaned up the area before they left and that the water container was full (most mornings, we sent an attendant to the one of the nearby food service locations to fill up the container with ice and water).
Once the park was opened, the real fun would begin, and working at panel was the most fun of all. There was a microphone for doing “spiels” like “Welcome to Crazanity? As you enter through the gate, please put any belongings on to the storage shelves to your right. Not on top of the cabinet and not on the ground. Then please, follow the attendant’s instructions for seating. There is no preferred seating on this ride.”
After the attendents seat everyone, I announce, “Everyone please raise your hands because your harnesses are coming down!” I push the apprpriate button on the control panel, and then as the attendents do a harness and belt check on every rider, I say “As the attendants come around to check your harness, please do not swing your feet! They have been known to kick back!”
When the attendants come back from their check and give me a thumbs up, I check the display on my panel and verify that all the harneses are locked and then give them a thumbs up back. “Saftey check complete”. The attendendants leave the ride area, and then I scan the area myself through the booth windows to make sure there are no guests or obstructions. Once I’m satisfied that the area is clear, I lock the gates and open the loading platforms. “At this time I’d like to give you a friendly reminder that photography is not permitted on this or any other Six Flags Magic Mountain attraction. If I see you with a camera or phone in your hand during the ride, I will shut the ride down early and have you do the walk of shame out of here. So don’t be that person!”
A final check that Load and Unload are giving me a thumbs up from their respective positions, and I start the ride. “Get ready for Six Flag’s craziest ride… 17 stories up and 17 stories down over a concrete slab. The crazy train is leaving Crazanity station! Is anyone scared? Me too. It’s my first time operating this ride! Have fun! Remember, the louder you scream, the higher your go!”
During the three mintures that the guests are riding, there are other things for me to do. There are two clickers on the panel — one for counting the number of cycles (rides) there have been that hour, and another for counting the number of empty seats on each ride. At the end of each hour, I use these two numbers to calculate how many riders there were in the hour, and then give all my numbers to Ride Operations when then call on the telephone.
The booth’s telephone is also used by the entire staff to clock in and out of their two 15-minutes breaks and their 45-minute lunch (assuming they are working a full shift), as well as clocking out at the end of their shift. (We clocked in at the Employee Services Office near the employee entrance at the start of our shift). It is the Ride Operator’s responsibility to write down everyone’s clock in and clock out times on the day’s paperwork, while keeping an eye out that no one on the ride has their phone out, no one in the queue is jumping the line, and there are no other problems.
As the ride begins to come to a stop, it’s time for me to get back on the microphone. “Welcome back, riders! Was that the scariest ride at Six Flags? No? To bad, I was going to let you go again. Hey, is it hot out there? I wouldn’t know. I’m inside this nice, air conditioned booth, sipping an iced tea.” I close the loading platform. “You may now unbuckle your saftey belts. Please raise your arms, because your harnesses are coming up.” I open the harnesses and unlock the gates so that the attendants can come in and help anyone who needs assistance. “Thank you for riding Crazanity, and for more sky-high thrills, be sure to check out Superman: Escape from Krypton!”
As you can tell from my spiel, I had a blast operating this ride, but unfortunately, I didn’t get to do operatie it all day long. I also had to still trade off with the other team members to work the Load and Unload positions or maybe sweep up trash if we already have a full crew working. If my shift ended at park closing, then I also had to stay to clean the attraction area, empty trashcans, and other tasks to make sure that everything was clean and ready for the next day’s guests.
Remember what I said about photography being prohibited on the ride? One sunny day I working in the Load position and then heard a loud, metallic “Thunk!” A guest hadn’t paid attention to the warnings and dropped their phone onto the roof of the queue area. Unfortunately, there’s no way to retrieve it during park hours. Luckier guests drop their phones onto the concrete. I’ve retrieved several phones with cracked screens, but at least I could return them to the guests so that they could pull their photos and data off of them..
Every so often we have to temporarily shut down a ride. It might be because we had to clean up a “protein present” left behind by a nauseous guest or maybe we had problems locking one seat and needed to have one of the maintenance staff come and inspect it. Whatever the reason, we will send a team member to the ride’s entrance to tell guests that the ride is closed at this time. When asked “What’s wrong with it?”, our standard response is “Sorry, I don’t know.” (even if we do). That’s also our response to “When do you think it will open?” because we don’t want to tell people that it should be open in ten minutes but have them get mad if it actually takes twenty.
One time a guest got mad at me for saying “I don’t know.” Crazanity was shut down for some reason, and I was at the entrance turning guests away with “Sorry, I don’t know when it will open again.” When the ride opened again, I was working the Load position, and one of the guests — a man in his forties — who I apparently had turned away five minutes before we reopened looked at me and said, “I’m mad at you! You said the ride was closed, and here it is open. You’re stupid! I’m going to talk to your supervisor!” I told him that he can do that after the ride, but apparently he didn’t, because I told my supervisor about the incident afterwards. She told me that I should have called security and had him escorted off the ride, because we can’t have guests being disrespectful to team members. That was good advice that, fortunately, I didn’t have a reason again to put into practice because I usually had great interactions with park guests.
We did occasionally have had much longer ride shutdowns. The very next day after I was certified as a Crazanity ride operator, I was doing the morning safety check and there was a loud “boom!” as I was doing a ride cycle test with an empty gondola. My supervisor immediately pressed the Ride Stop button and called maintainance. It turned out that a motor coupling blew on top of the ride. We were shut down most of the day, but our brave maintanance crew (who had to climb up 170 feet to get to the ride moters) had everything working again before the park closed.
Last February, we experienced a more widespread closure. At around noon, equipment problems had shut off power to the entire park. Fortunately, no one was riding Crazanity when it happened, although a friend of mine on Ridder’s Revenge told me that one of the chain lift motors started smoking and they had to evacuate the ride station, but everyone got off safely. The power outtage lasted for hours, and we took turns standing at the ride entrnace, making sure no guests tried to get on the ride. Even though nothing was working, guests hung around the park for a couple of hours. It was all very eerie, but also kind of wonderful in a way. Management sent everyone home at about 3pm, but things were back to normal the next day, thanks again to the maintenance staff.
Let’s Get Jammin’
Crazanity is one of the few Six Flags attractions that is paired with another ride, which in this case was Jammin’ Bumpers. That is, Crazanity’s ride supervisor also supervised Jammin Bumpers, and many Crazanity teamembers were trained to operate that bumper car ride, including me, sowe treated it as just another position on Crazanity. However, I will save my description of working on that ride, as well as working on Gold Rusher, for my next blog post. Until then, theme park fans, have a Six Flags day!
YAHAHA and the Amazing Maze, Part 2
Happy New Year, game designers! My first blog post of 2023 is the second part in a series about how to use the low-code game development platform YAHAHA Studio to create a variety of video game genres, beginning with navigational puzzles, or mazes.
In my last blog post, I described how to create a simple hedge maze, but now we going to dive into more complex game mechanics by using additional YAHAHA components such as Rotate and Revolve as well as employing object groups and triggers to begin development of an even more magical maze.
Once again, I am going to start with the Base Template.
It looks rather desolate, doesn’t it? Just a plane, a directional light, and a Respawn Point. Not too worry! I can quickly create an attractive environment by going to the Terrain tab and generating a new terrain, just as I did with the Hedge Maze. However, this time, I’m going to use a different grass texture, just to mix things up a little. Now, don’t panic if you don’t see it immediately when you create your own terrain, because it is generated at Y=10, which is just above the current point of view.
Next, I click on the Scene tab, open the Explorer, click on the Respawn Point to bring it into focus, open its Transform window, and set its X, Y, Z postion to 250, 10, 250 so that it is resting on top of the terrain’s center position. This actually sinks the Respawn Point a little bit into the terrain serface, but I can use the Move tool to raise it a bit so that the bottom of the Respawn Point’s collision box rests on top of the terrain.
As I wrote a couple of paragraphs ago, I want to mix things up a little this time. Therefore, instead of a hedge maze, I’m going to make a maze out of stone walls. After a quick search of the Asset Library, I found the perfect wall piece, called Wall6.
Maybe I was too quick to call it “perfect”, because when I bring it into my level, I can’t see it because it’s too small. No problem! I simply open its Transform window and scaled it up by 100 in all directions.
Still, it’s more of a column than a wall. I want to be about four times longer, half as wide, and 25% taller. Unfortunately, it looks too obviously stretched out at 400, 125, 50, so, I’ll leave X at 100 and put together four copies of Wall6 into a single object, that I’ll use for building my maze walls.
To make it less obvious that this wall is composed of four identical columns, I rotate every other one around its Y axis by 180 degrees. Next, I select each of the four Wall6 objects and right-click to open a menu for grouping them together into a single group. Its default name is Yahaha Group, but I right-click again to rename the group “Maze Wall”.
Unlike when I created the Hedge Maze, I planned this maze out on grid paper first, but I’m not ready to reveal everything to you yet. All I’ll say for now is that the basic structure of this maze will be a 4×4 grid of sections made out of 9×9 Maze Walls. I lay down the perimeter first and then fill in the rows and columns defining each section.
At the center, I put in a 4×4 square withing a 6×6 square. Later (much later), I’ll explain how I’m going to use this central structure.
Here’s where the fun begins. I removed a wall from the far-lower, mid-right section of the maze. This gap will be the maze’s entrance. As I did with my Hedge Maze, I place a greeter character at the maze’s entrance to give the player some initial instructions and set the mood. Now, I want this to be a more magical experience than my Hedge Maze, so I choose an object named SM_Char_Mage_01 from the Asset Library. I give this object a Character (NPC) Component and name the NPC (for non-player character) “Maze Mage”.
The NPC is supposed to be a greeter character, so he’ll need some greeting dialogue to have with the player. I click on the Gameplay tab, select Dialogue, and write a short conversation, which I name “Greetings, traveller!” Next, I give my Mage character a Dialogue component that players “Greetings, traveler” when the player’s avatar touches the NPC.
Once their conversation is over, I want a gate to open, allowing the player to enter the maze. After a few minutes searching the Asset Library, I find a fancy-looking gate named, appropriately enough, SM_Bid_Gate_Fancy_01. What I like about this object is that it revolves around its Y axis not in the center, but on the gate’s left side. This will allow me to use a component I haven’t tried before: Rotate. I will have the gate rotate clockwise 60 degrees when the “Greetings, traveler!” dialog with the Maze Mage is completed. But that’s only half of the gate. I duplicate the left gate and then rotate it 180 degrees to be the right side of my gate. However, the right gate (being a “backwards” version of the left gate) will rotate anti-clockwise 60 degrees when the dialog is completed. This will cause both gates to swing open toward the player and allow the player to enter the maze.
That takes care of the visuals, but never underestimate the importance of audio in a game. I give both Gate objects an audio file from the Asset Library called Metal Foley Creek 8. This sound effect is 3 seconds long, so I make sure that each Gate’s Rotate action is 3 seconds long as well, so that the audio matches the visuals.
With the Mage and Entrance gate now in place, I create a maze in the Far-Lower, Mid-Right Section using same technique as I did for creating the maze in Hedge Maze, but this time the exit is on the right side of the maze so that it leads to the Far-Lower-Far-Right Section. I then put in two new gates that are triggered by player touch to open 90 degrees. I set the Rotation to be “two-way” so that they will close again after being opened and not block the paths I am about to make next.
I next create another maze in the far-lower, far-right section that leads from these gates to two new gates that open up into the section above. I put these gates inside my maze because I want to train the player to follow the gates, but then I’m going to fake out the player in the next section. Also, so that my sections aren’t just simple squares, I allow the two section mazes to extend into each other by removing two walls separating them, as well as pushing another seperator wall to the left, all while being careful not to open up additional paths that cross over into existing paths.
I create a third maze in mid-lower, far-right section leading to a locked gate. This is my fake-out. Not all gates open at the player’s touch. I give this gate a Metal Foley 5 metallic clang audio effect when touched by the player so that player knows it’s locked. I also add dialogue when player touches it, saying “It’s locked! Wait ,what’s on the other side?” What does the player see? That would be telling. You’ll have to wait until my next blog post to find out. So, how does the player get out of this section? That I can tell you below.
The exit from this section of the maze will be through a hinged wall that behaves like a door. The wall, which I named “Hinged Wall (1)”, rotates anti-clockwise around its Y axis at an arc of 90 degrees, and the rotation type is two-way so that it immediately closes after opening. Now, if I leave it like that, the wall will just rotate like a turnstyle, but I want it to behave more like a door on a hinge. So I also have the wall revolve anti-clockwise at an arc of 90 degrees around a point at the wall’s right edge (when viewed from inside this section’s maze), which required me to set the X value of the rotation to -1. In addition, I have the opening wall play an audio effect called Rock Rumble 8. This sound effect is 9 seconds long, so I set both my Revolve and Rotate time to take about half that long (4 seconds for open and 4 seconds for close, with 1 second to spare for the end of the sound effect).
While I initially trigger the wall’s Revolve and Rotation to occur at game start so that I could put my Respawner Point next to it and watch the wall open in-game to make sure my settings are correct, that’s not how I want it to ultimately work. Instead, I want the Hinged Wall to open and close after the player walks past it. So I gave a Trigger component to a nearby wall to its left (which I named “Open Wall Trigger (1)”) and made the center and size of the trigger area such that the player would be able to enter the trigger area only from the passage next to the hinged wall passage.
I then set Hinged Wall (1) to revolve and rotate when the player enters the trigger area. Both actions are set to two-way, so that the wall will automatically close after it opens. I only want the player to be able to enter the trigger area from the passage next to the hinged wall passage. So, the hinged wall will open when the player opens past it. If the player hears the rumble and turns around in time, they will be able to go through the opening before the wall closes again.
Since this is early in the maze, I want to give the player a hint to listen for moving walls in case they didn’t notice the Hinged Wall opening and closing behind them when they passed by it. I decided to make the hint come from a talking statue, and I want to have the statue block the player from leaving that part of the maze section so that the player can find the Hinged Wall.
Of course, I can’t have the statue blocking the path leading toward the Hinged Wall when the player first approaches it, so I place the statue at Y=0, where it will hidden under the terrain as the player enters the maze. When the player exits Open Wall Trigger (1)’s trigger area, it will activate a Move component in the statue. The default settings of the Move component will move the statue up along the Y axis 10 units, which will place it right on top of the terrain so that the player will see it if they try to leave that section of the maze.
When the player avatar touches the statue, it will trigger a dialogue with a hint about listening (for the opening Hinged Wall). This hint should allow the player to find the moving wall more easily and then go into the next section of the maze, which will be… covered in my next Amazing Maze blog post, along with the use of teleporters, moving stairways, hidden doors, collectible items and additional elements to make this maze more magical. And don’t forget, the Minotaur awaits at the end!
Note that you already have learned more than enough to start making your own 3D games using YAHAHA Studio. In fact, you may even be ready to participate in the YAHAHA Global Game Jam taking place January 30th through February 5th, with a $15,000 prize pool. You can find out more by click on this link.