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