The Legend of Zelda and the NullPointerException

24
The Legend of Zelda and the NullPointerException Procedurally Generating Game Worlds Using Critical Path Algorithms

Transcript of The Legend of Zelda and the NullPointerException

Page 1: The Legend of Zelda and the NullPointerException

The Legend of Zelda and

the NullPointerException

Procedurally Generating Game Worlds

Using Critical Path Algorithms

Page 2: The Legend of Zelda and the NullPointerException

Outline

● Examples of Randomized Games

● Introduction of our IGF Submission

● Analysis of Procedural Generation

● Breakdown of Critical Path Algorithms

Page 3: The Legend of Zelda and the NullPointerException
Page 4: The Legend of Zelda and the NullPointerException
Page 5: The Legend of Zelda and the NullPointerException
Page 6: The Legend of Zelda and the NullPointerException

Andrew McPherson

● I study at UTC.

● I work for Bellhops.

● I make videogames.

● I talk really fast when I get excited.

(that’s me!)

Page 7: The Legend of Zelda and the NullPointerException
Page 8: The Legend of Zelda and the NullPointerException

five students, eight weeks, a lot of stress

Page 9: The Legend of Zelda and the NullPointerException
Page 10: The Legend of Zelda and the NullPointerException

Random Zelda-esque Dungeons

Page 11: The Legend of Zelda and the NullPointerException

DunGEN (for generating dungeons!!)

● Dungeon Structure

● Critical Path Algorithm

● Key/Door Distribution

● Room Layout Design

● Tile Set Definition

Page 12: The Legend of Zelda and the NullPointerException
Page 13: The Legend of Zelda and the NullPointerException

DunGEN: Dungeon Structure

● Tiles had an image of 32x32 pixels.

● Rooms had an array of 11x9 tiles.

● Dungeons had a hashmap of rooms.

○ tiley vs roomy

○ r-coords vs d-coords

○ room-2-room

Page 14: The Legend of Zelda and the NullPointerException

DunGEN: Critical Path Algorithm

1. Initiate the dungeon with a room.

2. Drop the hero into that room.

Page 15: The Legend of Zelda and the NullPointerException

3. Append rooms for the critpath.

4. Put the objective in the final room.

DunGEN: Critical Path Algorithm

“critical path”The shortest path

for the players to

reach objectives.

Page 16: The Legend of Zelda and the NullPointerException

DunGEN: Critical Path Algorithm

4. Add rooms along the critpath.

major vs minorA major room is

essential. A minor

room is optional.

Page 17: The Legend of Zelda and the NullPointerException

5. For each segment, put a door on the

last major room, and a key in a

random minor room.

DunGEN: Key/Door Distribution

Page 18: The Legend of Zelda and the NullPointerException

DunGEN: Room Layout Design

Each room was “predesigned” as data.

TileD for .tmx Notepad for .xml

Page 19: The Legend of Zelda and the NullPointerException

DunGEN: Tile Set Definition

Each room (or segment

of rooms) are assigned a

tileset, which provides the

images to the tiles.

Page 20: The Legend of Zelda and the NullPointerException

To Conclude

1. Randomizing your

game can improve

your replayability.

1. Developing a game

can be a lot of fun!(and we’re not done yet!)

Page 21: The Legend of Zelda and the NullPointerException
Page 22: The Legend of Zelda and the NullPointerException
Page 23: The Legend of Zelda and the NullPointerException

Thank you!!

Craig Tanis Joey Shiraef

Page 24: The Legend of Zelda and the NullPointerException

Thank you for listening!● Github: github.com/computc/nothingness

● Trello: trello.com/b/rzCWqT18/gamedev

● Website: arcym.github.io/nothingness

● Tumblr: mocsarcade.tumblr.com

Any Questions? :D