Title Text

Amir Vaknin

What is my project?

Text

The game draws elements from the Dungeon Crawler and Roguelike genres, with features such as randomly generated level layouts, monsters and items that the player can interact with.

 

 

 

 

Aesthetically, the game is inspired by classic 2D top-down ARPGs such as the Zelda series.

How does it work?

The content of each level is randomly generated:

the types of monsters and items you'd find,

the location of the next chest and exit,

and other obstacles and scenery objects.

While a general difficulty curve is maintained, each game session is unique and exciting.

 

The contents are generated in order of their z-index, from the lowest level (objects on the floor like holes, gravel, etc.) and going up to the highest level (obstacles like high pillars).

Why did you choose it?

because I'm a nerd :)

 

...and Zelda is great and has inspired a lot of games

Technical challenges

Collision - different objects, different image sizes, collision differs based on movement direction

Spawning - how to not overstack the map? how to space everything properly so the player is never stuck?

Z-indexes - how to make sure everything is layered correctly regardless of when it spawns during the game?

<- me half the time while coding

How did I overcome them?

Break down the code to small pieces, isolate the complicated calculations and checks to simplify the game logic

Use class inheretence to make code more reusable

Trial and error

Playtesting

 

and...

Biggest mistake I made

having an object remove itself from an array without checking that it exists in the array first

 

 

 

 

 

 

I learned that splice() will remove the last element of the array if you pass -1 as the index argument

Demo

Thank you!

Endless Dungeon

By Amir Vaknin

Endless Dungeon

  • 36