Software Design and Engineering

Text Based Python Game Enhancement

From a Python text-based game to a 2D Angular and Phaser 3 game.

Before Image
Original Text-based Python Game
After Image
Enhanced 2D Angular and Phaser 3 Game

About This Project

The vampire hunter game is an interactive 2D game where players explore a small village to collect eight specific items needed to defeat a vampire living in a mansion. The game incorporates various gameplay elements, including item collection, combat with the vampire, and a dynamic user interface with an inventory system, location descriptions, and player stats. This artifact originates from course IT 140 where I created the text-based version, and it represents a comprehensive showcase of my software development abilities. It required not only coding skills but also a good understanding of user interaction, game mechanics, and backend integration.

Performed Enhancements

  1. Transformed the original text-based game in Python into a fully interactive 2D web-based game using Angular for the frontend and Phaser 3 for game development.
  2. Modularized the backend by separating the Python code into smaller, manageable modules.
  3. Improved code readability by adding inline and multiline comments to explain key parts of the code, making it easier to maintain and extend.
  4. Implemented player movement, object collision detection using Phaser 3.
  5. Enhanced the item collection system, where players can pick up and track the eight special items needed to defeat the vampire.
  6. Managed game state with an Angular service (GameStateService) to ensure smooth communication between Angular and Phaser.
  7. Created game completion logic, allowing players to fight the vampire after collecting all items, with the option to return to gather more items.
  8. Designed and integrated a village map for player navigation and exploration.
  9. Developed custom pop-ups for key events, including “item collected” and “item details,” using HTML, CSS, and Angular.
  10. 10. Added a custom pop-up dialog prompting players whether to continue fighting the vampire or return to collect more items.
  11. Created a status bar that displays real-time information such as player's current location, health status, playing time and more.
  12. Created an inventory system to display collected items in a responsive grid layout.
  13. Added accessible buttons to allow users pause, resume and stop the game at any time.
  14. Created visual effects during significant game actions, such as collecting items, adding to the game’s dynamism.
  15. Added real-time effects and animations for actions like player movement, and battle scenes.
  16. Designed custom visuals for in-game items and locations.
  17. Added an interactive map of the village that shows key locations to help users navigate the game easily.
  18. Added sound effects to the front-end game to enhance the player experience, providing audio feedback during key moments such as item collection, entering new areas, and battling the vampire.
  19. Created a scene to display location details for every in-game location, improving player immersion and understanding.
  20. Built a Flask-based backend API for managing game logic and player progress, ensuring the game state persists between sessions.
  21. Handled CORS (Cross-Origin Resource Sharing) to secure and facilitate communication between the Angular frontend and Flask backend.
  22. Implemented secure API communication between the frontend and backend for data consistency and player progress management.
  23. Created a comprehensive README file with clear instructions on how to install, test, and run the game, making it more accessible to users and developers.

Demonstration of Skills and Achievements

The development and enhancement of the Vampire Hunter game demonstrate the following skills: