top of page

Adventure RPG

An advanced python RPG that involves fighting slimes, progressing to higher levels , buying strong equipment and more.

How to Play

Players control a character named Gideon, who can battle slimes using weapons and armor purchased from the in-game shop. As they level up, players can allocate stat points to enhance abilities, and view stats like Strength (STR) , Dexterity (DEX), Intelligence (INT)  and more. With their Gold earned from battles, they can buy stronger weapons and armor to improve their combat skills. The goal of the game is to get strong enough to defeat the Giant Slime.

How it Works

When users start the program, an action menu appears in a while-loop, offering options to add stats, view stats, enter the shop, or start a battle.

​

Add Stats allows users to increase Strength(STR), Dexterity(DEX), or Intelligence(INT), which each have their own benefits. STR boosts attack damage, DEX increases max HP and evade, and INT increases starting MP for battles.

​

View Stats shows a list of detailed statistics including level, experience(EXP), STR, DEX, INT, HP, MP, Evade, Whack damage, Slash damage, Gold, and equipped gear (weapon, body armor, head armor). It also displays the amount of HP, MP, and STR potions that Gideon owns.

​

Start Battle presents Gideon's current HP and MP, then randomly chooses between a slime or the Giant Slime to fight. Users can choose to Fight, Use Potion, or Escape.

  • Fight: The user can choose between two attacks:

    • Attack 1 (Whack): Deals low damage but costs 0 MP.

    • Attack 2 (Slash): Deals high damage but costs 5 MP.

  • Use Potion: The user can select one of three potions: (which can be purchased from the shop if needed)

    • HP Potion: Restores 15 HP. The user starts on default with 3 HP potions.

    • MP Potion: Restores 20 MP. The user starts on default with 3 MP potions.

    • STR Potion: Activates an STR Flag which temporarily increases STR by 10 points for the duration of the battle. The user starts on default with 2 STR potions.

  • Escape: The user attempts to escape based on a random number between 1 and 100. If Gideon’s evade stat is higher than the random number, the escape succeeds.  Thus, the higher the evade stat, the higher the chance of gideon escaping the battle.

 

After each action, the monster will counterattack. Some attacks that the slimes have can be stronger than others. For example, the Giant Slime’s Poke only damages Gideon’s HP, but the Giant Slime’s Bash not only damages Gideon’s HP but also activates a Bleed flag. While the Bleed flag is active, Gideon will take additional damage after each action. The Bleed effect can only be stopped by using a HP potion.

​

Defeating a slime rewards 10 gold and 30 EXP. Defeating a Giant Slime rewards 50 gold and 150 EXP. As Gideon levels up, more EXP is required to reach the next level. If Gideon loses, he will lose 10 gold but still gain 5 EXP.

​

Shop: Users can buy weapons, armor, and potions in the shop. Each item in the shop has different advantages. For example, the user could buy a katana for 70 gold, which increases Gideons STR by 75, or buy bronze armour for 40 gold, which increases Gideons HP by 50.

Learning Journey

Before making this project, I loved playing Minecraft and Roblox RPG. When I discovered that my next module in my coding lessons would involve creating a Python RPG, I was eager to complete my current module and code this exciting project. After several weeks of hard work, I successfully completed the Python RPG in my coding class. I felt incredibly proud of my project and eagerly shared it with my family and friends.

Upon receiving feedback that the game was too boring and needed more content, as well as discovering numerous bugs, I dedicated countless hours of my free time to fix these issues and add new features. I diligently worked on the escape feature, the STR and MP potions, exceptions, shop modifications, and more.

As each feature was added, it brought the game closer and closer to the fun RPG games I played in Minecraft and Roblox.

Looking ahead, I plan to introduce additional monsters and explore new realms with even stronger foes and more powerful equipment.

Mental Sums Practice

A mental sums practicing game made in python consisting of sets of 5 questions, which are randomly generated depending on what operator and difficulty the user chooses. 

How to Play

When users start the program, they are prompted to select from three different operators: Addition, Subtraction, and Multiplication. After choosing an operator, they can pick between an easy and a hard difficulty level. The program then asks 5 randomly generated math questions based on the selected operator and difficulty level, displaying them one by one as the user types their answers. Each answer is evaluated immediately. If the user answers correctly, the program will ask the next question. If the user answers incorrectly, the program will tell them that they are incorrect as well as telling them the correct answer. After all 5 questions are answered, the program will once again prompt the user to choose an operator and  difficulty level, allowing them to play the game for as long as they want until they stop the program.

How it Works

When the user runs the program and chooses the operator and difficulty, two integer variables are randomly generated within a while-loop. In the easy difficulty, the possible values of the randomly generated numbers will be lower compared to the hard difficulty. For subtraction, the range of numbers is adjusted so that the first number is always greater than or equal to the second number. These randomly generated variables are used as the numbers in the questions.

 

After each question is answered, the program informs the user whether they have answered correctly or not. If the user answers correctly, the program says “Correct,” and the user moves on to the next question. If the user answers incorrectly, the program says “Incorrect,” and provides the correct answer by either adding, subtracting, or multiplying the two variables, and then continues on to the next question. There are also exceptions in place to prevent users from typing in strings instead of integers.

Learning Journey

As someone who loves math, I enjoy creating programs that involve mathematical concepts. At the time of developing this project, I was struggling with mental sums durings math tests, so I decided to create a Python project that would allow me to practice my mental sums skills daily. With an idea in mind on how the project would function, I eagerly started coding.

An hour later, I proudly finished my math game and had my sister test it. Within seconds of running the program, she discovered several bugs. Over the next few days, I diligently worked on the project, fixing one bug every day. After finally fixing all the bugs, I also added exceptions to enhance the program. Originally, my project only asked the user to choose an operator and presented a single question. I found it quite frustrating to choose an operator every question, and the questions themselves eventually got boring. Because of this, I introduced difficulty levels and modified the program to ask 5 questions instead of just one.

Working on this project significantly improved my mental sums skills, and the time I spent coding this project was definitely worth it. Now that I am more familiar with Python, I plan to add more features to the game, such as a timer, a scoring system, and the division operator.

Life of a Fish

A retro-style Python Turtle game that raises awareness about the impact of littering on the oceans in a fun manner

How to Play

You are Immersed into the life of a turtle, where you control a turtle using the arrow keys. Your goal is to score as many points as possible by eating fish, all while avoiding plastic bags that deplete your turtle's lives. You must be cautious as each time you eat a fish, another plastic bag will appear, making each move more challenging as you progress.

How it Works

This game is built using the Python Turtle library and involves a mix of predefined methods and custom functions to improve gameplay. The predefined functions handle aesthetic elements, such as controlling the turtle's appearance with commands like turtle.write(), turtle.color(), and turtle.shape(), as well as enabling player movement through key presses with turtle.onkey(). These functions are combined with my own custom functions that control the turtle's direction, speed, and overall movement. Other functions manage interactions like "bouncing off" the screen borders and handling collisions with fish and plastic bags. These collisions trigger different outcomes, such as increasing the player's score or decreasing the player’s lives. The game ends when the player loses all their lives.

Learning Journey

During the June holidays in 2023, my family and I traveled to Japan. One of the highlights of our trip was visiting Event Open Space, which is a massive aquarium. While exploring the aquarium, I saw a variety of marine life, including penguins, sharks, dolphins, turtles, and more. One exhibit particularly stood out, as it focused on the impact of marine conservation and the damage caused by ocean litter due to improper waste disposal. Inspired by this, I wanted to raise awareness about the issue at my school and encourage my friends to take more responsible actions toward the environment.

However, I realised that just telling them about the problem wouldn’t be enough, so I decided to create a Python game as a fun and engaging way to spread the message. When my friends first played the game, they pointed out that the turtle could exit the borders, and they weren’t sure how to control the turtle. Taking their feedback seriously, I worked on fixing the issues as soon as I got home. Although fixing the issues was challenging, I persevered and managed to resolve the problems. To fix the issue with the turtle escaping the borders, I added the "bouncing off" feature, which made the turtle change direction when it hit the screen border. For the control issue, I added clear instructions on how to play.

In the end, my friends had a great time playing the game, and I hope they learnt the importance of taking responsibility for the environment. Now that I have gained more experience in coding, I plan to add new features to the game, such as a way to win by catching a certain number of fish, and more exciting additions like sound effects.

Created by Caesar D'Angelo

bottom of page