Skip to content

samjwu/YetAnotherDungeonCrawler

Repository files navigation

YetAnotherDungeonCrawler (YADC)

By: Sam Wu and Ishaat Chowdhury

Instructions:
Run the code in the terminal with the command "python3 YADC.py".
Use the arrow keys to move the player character and attack by pressing spacebar when close to the enemies.

Description:
The project is a real-time, dungeon-crawler game similar to roguelikes such as Pixel Dungeon.
The game is built entirely in Python, primarily using pygame.
The game uses procedural generation that creates different dungeons or levels using the Binary Space Paritioning algorithm.
The final version of the project is a playable game that includes the procedural map generation, enemies, and a player as well as other game mechanics such as attacks.
The dungeons generated by the algorithm are composed of rooms and corridors with dead ends.
New levels or dungeons are accessed using a single ladder placed in one room in each dungeon.
Enemies will approach the player and attack him or her using various search algorithms mentioned in the featured algorithms section.

Featured Algorithms (file):
Binary Space Partitioning (level.py)
Depth-First Search (gameplay.py)
Breadth-First Search (gameplay.py)
Dijkstra's Algorithm (gameplay.py)
Best-First Search [Heuristic - Manhattan Distances] (gameplay.py)
A* Search [Heuristic - Manhattan Distances] (gameplay.py)

Important Files:
YADC.py - the main code that runs the game
level.py - contains classes and functions for dungeon generation
level_constants.py - contains constants for dungeon generation
gameplay.py - contains classes and functions for player and enemies
gameplay_constants.py - contains constants for player and enemies

Notes:
Speed up the game by increasing the FPS and enemyframes constants defined in the gameplay_constants.py file.
The level.py and gameplay.py files have global variables named DEBUG that can be disabled or enabled to toggle print statements for diagnostics and tests.

About

A Dungeon Crawler RPG made in PyGame

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages