PixelKnight: A 2-D Python Platformer by Jonathan Wang and Lac-Phong Nguyen

Project and Demo Explanation: To demonstrate the capabilities of the game library PyGame, we decided to develop a 2-D platformer video game. We had initially planned the features to include a main menu, escape shortcut, game over screen, score system, and gameplay screen. Given the time of our development process, we were able to complete the gameplay screen, score system, scrolling background, healthbars, and a game over screen. A hitbox feature was implemented to track how sprites would inflict damage to one another. This feature was essential for the gameplay mechanic to allow the player to attack enemies with a sword. To do this, the hitbox for the player would be extended forwards to the direction they were facing, temporarily preventing the player from taking damage and granting the ability for damage to be given to any enemies in range. We also added in a scrolling background to improve how the player would move in the game. The player would be free to navigate around the lefthand half of the screen but would basically be locked at the middle if it attempted to cross over to the righthand side of the screen. Two background images were loaded into the game that would consecutively scroll leftwards and reset to the very right, creating an "infinite" world if the player was to travel to the right side of the screen. The score, displayed on the top left corner of the screen, would display values earned by eliminating enemies. The highest value possibly gained by the player for killing a goblin is 50, but damage taken by goblins reduces their score as well. This score system works hand-in-hand with the healthbars which regulate the amount of healthpoints for player and goblins until they are "killed". We chose to use the PyCharm IDE based on its capabilities with Python and the PyCharm library. PyCharm contains the feature of directly searching for libraries and modules online without installing them through consoles with pip, but Python must first be installed. it also contains all of the useful additions that bring ease to the development process such as the ability to autocomplete code, highlight errors, and notify users of syntax issues. The popularity that PyCharm has with the Python community was also another factor that convinced us to use this environment for the development of our game.

Dependencies: In the current state of our prototype, the IDE PyCharm is a necessary dependency to successfully run the sourcecode and display the application. Python is also another necessity that must be preinstalled so that PyCharm may recognize it as an interpreter for the sourcecode.