YAHAHA and the Amazing Maze Part 1: Terrains, Objects, and Dialogs

YAHAHA and the Amazing Maze Part 1: Terrains, Objects, and Dialogs

I have always been captivated by adventure games, and it’s no mystery to me as to why. They combine two of my favorite things — storytelling and puzzle solving. Some of my favorite games in this genre are?The Hitchhiker’s Guide to the Galaxy, Grim Fandango, and?Myst.

It was my love of storytelling that sent me on my career in game development. While I was taking an introductory programming class in college and waiting in the computer lab to use the shared printer to print out a copy of my homework, I started coding a?Star Trek?game. As I was deciding what actions the player should be able to do in the game, it struck me that players were the protagonists of an story that they were telling by the choices they make.

No alt text provided for this image

The idea of interactive storytelling was so exciting to me that I changed my major to computer science. The following year one of my instructors hired me as a clerk in the computer store he owned, and it was there that I met the founder of a software company called Edu-Ware Services, which I joined as a game designer and programmer after I graduated. One of the first games I made at Edu-Ware was an adventure game that went on to become sort of a cult classic,?The Prisoner.

My fascination in puzzles predates even the first video game consoles. As a child I was constantly filling out puzzle books and crossword puzzles, solving physical puzzles like sliding puzzles and the Soma cube, and collected puzzle boxes that contained secret components discovered by sliding sections of the box in the correct order. It was my love of puzzle solving that made game design so interesting as a medium for storytelling.

What I am now going to do is take you on a journey through the process of designing video games. So that we can focus on the creative aspects of game design without getting distracted by technical challenges, I am going to use a powerful new no-code 3D game development platform called YAHAHA Studio for creating game examples. You can download a free copy of YAHAHA Studio at?this link?so that you can follow along with me.

Movement is unquesitonably the most common action performed in games, so I will start our game designer journey with a puzzle based on movement. Specifically, I’m going to create a navigation puzzle known as a maze. Now, it shouldn’t surprise you that I’ve always been fascinated by mazes, too, and I used mazes as the heart of my first adventure game,?The Prisoner, as well as another adventure game I developed afterwards,?Empire I: World Builders. I used an AI regression algorthim to randomly generate mazes in those games, but in this first step on our journey, I’m going to go old school and create a maze by hand, albeit a virtual hand.

No alt text provided for this image

I’ll begin by selecting the Base Template in YAHAHA Studio and call my new project “Amazing Maze, Part 1” (spoiler: there’s going to be a Part 2). The first thing I will do is create a grass terrain, because this maze is going to be a hedge maze located on the grounds of a hoity-toity estate. I will keep the terrain defaults at 500×500 with an origin of 0, 0, 0.

No alt text provided for this image

Next, I’ll place my Respawner (which determines where my avatar will enter the level), right in the middle of the terrain, where I’m going to build my hedge maze.

No alt text provided for this image

Of course, to build a hedge maze, I’m going to need a hedge. Fortunately, YAHAHA Studio has lots of assets to choose from in its Asset Library, and I quickly found a nice little hedge to add to my Resource Box. However, it’s a little bit too little. I don’t want my player to see over the top of the maze too easily, so I scaled it upwards along its Y axis by a magnitude of 5 using the Scale tool, so that it will be just above my avatar’s head.

No alt text provided for this image

As I begin laying out my maze’s rows and hedges, I want to make sure that I place them so that I end up with a maze that has a proportional length and width. Instead of placing the face of the row hedges against the side of the column hedges, I will center the row hedges on the sides of the column hedges. This will leave my maze with jaggy corners, but I can fix that later by scaling up the length of individual hedges later so that they cover the gaps.

No alt text provided for this image

After I place the first of the hedges for each of the maze’s rows and columns, filling in the rest of the maze is easy thanks to Array Duplicate. This feature allows me to select on hedge and then drag it along the direction in which I want duplicate hedges to be placed. In no time at all, I have a grid of hedges.

No alt text provided for this image

Now to actually make my maze. A puzzle is a problem that has only one solution, while a maze is a naviation puzzle that has only one path from the entrance to the exit, making it different from a labyrinth, which is a complex network of paths that may have many ways to go from the entrance to the exit. For this maze, I will have the entrance be at the bottom center and the exit at the top center, and I will create a path leading from the entrance to the exit, being careful not to cross over my path at any point and inadvertantly creating multiple paths.

No alt text provided for this image

Of course, we now need some alternate paths so that the player does not know which path is the correct one. At various points along the solution path, I make a new path that does not cross into any existing path, until I can’t make that new path go any further.

No alt text provided for this image

I continue adding paths until I can add no more, and then my maze is done! Well, not quite. I scaled some of the hedges lengthwise to fill in the gaps I had at corners.

Now, I know what you are thinking. Why didn’t I just make a maze on graph paper and then lay down only the hedges I needed for wall? I guess I find this way to be a little more fun and perhaps easier to make sure that all of my hedge walls are aligned properly. Also, if you’re like me and are a bit rusty at using a 3D editor, this is great practice at placing objects in a 3D space. But hey, if you would rather design your maze on paper first, you do you.

No alt text provided for this image

I may have a maze, yet for this to be the start of an adventure game, it needs some storytelling and that means character interactions. I looked through the Asset Library and found a “Rich Boy” character who is just perfect for this fancy estate setting. I then gave him a Character component so that he would become an NPC (non-player character) with a default set of animations. (Don’t worry, he will look more lifelike during actual gameplay, when the animations kick in).

No alt text provided for this image

I also gave him a Dialogue component so that it would give him a non-repeating welcome message that I had written for when the Avatar touches him. Dialogues are written in the Dialogue section of the Gameplay pop-up window as a series of sentences spoken by the NPC or the Player. Once you write a dialogue, it can be accessed by any NPC and triggered by a varity of game events.

No alt text provided for this image

For this short bit of dialogue to be meaningful, I need to have something happen as a result of it. Another check of the Asset Library gave me a gate that I use to block the maze’s entrance. I then gave it a Move component that would move the gate to the right, allowing the player to enter the maze, when triggered by completion of the Rich Boy’s “Welcome to the Maze”. I even have it play a metal squeak audio effect when it opens.

No alt text provided for this image

The maze’s exit also needs something special for the player to feel a sense of accomplishment after successfully navagating the maze. I made a duplicate copy of Rich Boy but gave him some congratulatory dialogue with which to greet the player at the maze’s exit. I also placed a couple of rich-looking well-wishers behind him, as well as a fancy fountain to visually anchor the game’s ending scene.

No alt text provided for this image

We are not yet done. Even a simple maze game can benefit from soe bells and whistles. I added trees, houses, hedge walls, and other objects to the environment. Also, because one should never underestimate the immersive value of audio, I added background music and ambient sound effects to a couple of objects. To provide some tension to navigating the maze, I set a three-minute time limit in the Gameplay section. Finally, as a reward to players who solved the maze, I put in a little surprise at the end, but you’ll have to play the game to fine out what it is.

Here is what the final overall exprience looks like:

No alt text provided for this image
Hedge Maze Start
No alt text provided for this image
Hedge Maze Middle
No alt text provided for this image
Hedge Maze End

Did I say final experience? That’s a lot more to add to the maze using YAHAHA Studio components — hidden doors, rotating hedges, moving platforms, collectable items — but I’ll save all that for YAHAHA and the Amazing Maze, Part 2. In the meantime, I invite you to take a stroll through the?Hedge Maze.

Craig Allen ?? GDC

CEO @ Snackshop | Investor & Advisor I Media & Video Games & Visual Storytelling

2 年

Fun and dare I say aMAZingly easier to create than in back in the day ??????

要查看或添加评论,请登录

David Mullich ?? GDC的更多文章

社区洞察

其他会员也浏览了