Featured image of post Dissneland Game - A Top-Down Action Adventure

Dissneland Game - A Top-Down Action Adventure

Dissneland Game is a top-down action game where players control a swordsman to defeat enemies and progress through levels.

Github Repository: DISSNELAND GAME

Final Project for Course INT2215

  • Student Name: Nguyễn Việt Cường
  • University: University of Engineering and Technology - VNU Hanoi

General Description of the Game

  • A top-down third-person game where the player controls a swordsman to eliminate all enemies to advance to the next level.

  • Controls:

    • Move: W A S D
    • Attack: J
    • Dodge: K
  • Three types of enemies:

    • Flying Eye: Moves within a fixed area and can shoot projectiles.
    • Skeleton: Uses a sword for melee attacks, has a wide movement range, can hunt the player and avoid obstacles.
    • Boss: Wields an axe, has a teleportation skill to chase the player, moves across the entire map, and is immortal.

Screenshot 1 Screenshot 2 Screenshot 3

  • Items dropped when an enemy is defeated:
    • Diamond Potion: Restores 100% health.
    • Royal Potion: Doubles attack damage for 10 seconds (not stackable).

Screenshot 4

  • The player loses when their health reaches zero.
  • On the second map, if health drops below 40%, pressing E initiates a truce, resulting in a game win.

Implemented Features

Game Menu

  • The main menu appears when the game starts with the following options:
    • Start: Begin the game.
    • Tutorial: View game instructions.
    • Sound ON/OFF: Toggle sound.
    • Quit: Exit the game.

Main Menu

  • Pause menu, accessed by pressing P:
    • Continue: Resume the game.
    • Menu: Return to the main menu.
    • Quit: Exit the game.

Pause Menu

  • Game Over menu, appears when the player loses:
    • Menu: Return to the main menu.
    • Quit: Exit the game.

Game Over Menu

  • Game Win menu, appears when a successful truce is made:
    • Menu: Return to the main menu.
    • Quit: Exit the game.

Game Win Menu

  • The player can exit the game at any time by pressing Esc or clicking the close button on the game window.

Knowledge Applied

  • Pointers
  • Static arrays, vectors, bitsets, maps, algorithms from the standard library
  • Classes and templates
  • Algorithms:
    • Collision detection.
    • Camera tracking the player.
    • Linear interpolation for smoother movement and hit reactions.
    • Implementing attack, dodge, and hit mechanics.
    • Using BFS pathfinding to allow enemies to navigate around obstacles and efficiently reach the player while staying within their designated range.
  • SDL2 Libraries Used:
    • SDL
    • SDL_image
    • SDL_ttf
    • SDL_mixer

Installation and How to Play

  • Open main.exe to play.
  • Alternatively, open the terminal, navigate to the game folder, and run makefile.

Future Development

  • Expand the storyline, add new maps, enemies, and mechanics.
  • Introduce Endless Mode and Two-Player Mode.

References

  • Learned and referenced basics from the YouTube channel Let’s Make Games.
  • Audio and visual assets were sourced freely from the internet.
  • Everything else was self-developed.

Lessons Learned from the Project

  • Gained an overview of project structure.
  • Improved understanding of classes and library usage.
  • Applied algorithms to enhance game mechanics.
  • Developed problem-solving skills.
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy