Bubba's Adventure


Bubba's adventure is a personal project I have started developing for my son. It is being built on Unreal Engine 5 for Xbox One and Pc. The design goal of the project is to make a game that is educational and entertaining for kids but also simple to learn and play. My child is young, and so I wanted to practice building a game that he could learn to play quickly. I also wanted a game that could teach my kid simple math and other elementary topics during gameplay. The mechanics and systems that I have worked on and plan to design for this game have that goal in mind.

The gameplay loop for Bubba's adventure will revolve around adventuring through a small fantasy world along with some dungeons, solving puzzles, and attacking enemies to gain levels and items.

The first core mechanic I worked on is the weapon equipping mechanic (as you can see in the first gif) I found a tutorial that I used for this mechanic that suited the need of simplicity that I was looking for. I plan to develop further so that players can quickly understand if one weapon is better than the other by adding a VFX aura around each weapon. Similar to how games like PUBG do with their weapons by having a colors that range from white to purple and so on.



The second mechanic that I designed and developed is the healing mechanic. Similar to how Diablo implements its health potions, I wanted the player to have them visible on screen, with an easy-to-understand design that will explain to the player how many are left and what it is for. In the gif, you can see that I ensured there is plenty of user feedback for the player. On top of the visual effects, there is also audio that plays at the start of each use. The gif also slightly demonstrates what happens when the player loses all health. There is a fainting animation, and the player is then reset. However, I do intend to further develop this, and I want to add a save system and checkpoint system to the game. This way, the player does not have to start back at level 1 or lose all their equipment and so on. I plan to have the player respawn at the nearest checkpoint after each death with all their experience still intact, along with the weapon that is equipped and the player's level, and so on.



For combat, I wanted to ensure that the basic melee attacks had more than one simple attack animation. However, as of right now, each weapon uses the same attack combo regardless if you are using an axe, sword, or even a wand. I plan to develop this further and add different combos for different weapon types and also add in magic attack abilities. For that, I am thinking of limiting the magic to a single type of spell per weapon, with the weapon having its own combo. An example would be a red staff that would cast fire magic. The player could use one gamepad input for a fireball, another for a fire attack, and so on. If the player no longer wanted to use fire magic and instead wanted to use ice magic instead, they would have to switch to an ice wand that they found in the level.



This next gif shows a few different features. First, we have the enemies AI which, at the moment, is relatively simple. They have a behavior tree that starts with them wandering around and then switching to a chasing behavior upon seeing the player. This is still an early form of the enemy AI, and I plan to further develop the system to create more intelligent enemies that don't just bunch up together around the player. I want to have them move more naturally when chasing and to switch from attacking to dodging and so on. For their combat, I would like them to have a few different moves that they alternate from and then run away when damaged or when health reaches less than 25 percent.

The player's combat has a slight chance to miss while the weapon deals damage during an animation notification placed on the length of the weapon.

The next feature we see is the experience and leveling system. Here the lower-level enemy gives the player some XP on death, while defeating the stronger enemy has the player level up twice. This is shown by the level in the top left changing from 1 to 3 and a text prompt appearing on the screen.

Lastly, we see the loot system. For now, it only drops a single health potion after the enemy de-spawns. I plan to use a data table to hold all the types of items that can fall for different enemies and their levels. With a random generator that decides if a item falls or group of items and how many of them are spawned.




Using an interface, the player can interact with items in the world, like the swords or these health potions, and will be able to open doors or other puzzle mechanics later in the development. Here we see that when the player interacts with the potions, they are automatically added to the health potion UI, increasing the player's max potion amount.




Here are some of the mechanic ideas I jotted down. The first shows a gap that the player needs to lower a bridge in place to cross. There will be a pressure plate that requires a specific weighted value. In the example, we can see the number 5 is needed. The player will be given a few blocks with numbers carved into their faces. The numbers would indicate the weight value, and the player will have to combine the correct numbers together on the pressure plate to lower the bridge to the right spot. Too much weight and the bridge will go too far down, and not enough, and the bridge will not move down to the right height. This mechanic will help teach the player simple math and will use the IPM (introduction, practice, master) method to teach them how the mechanic works.

The second mechanic uses spinning pillars with a single letter on each face. There will be a clue in the room (image of the fox or other object). The player will have to spell the name of the clue with the pillars.

The last mechanic in the picture is a mechanic that teaches what colors are needed to make a different color. Using this mechanic, the player can possibly create a potion or unlock an area, and so on.

Lastly, there is an idea for a companion that follows the player and gives hints. I felt like this feature would be helpful for kids that can not fully read and would help them understand objectives without having them need to read texts on the screen.

Demo video

This is still a work in progress. I have only done a month's amount of work on this and plan to do more once I have the spare time. This video has no commentary. I showcase some of the core mechanics; there are some debug inputs for losing health and gaining levels. I am playing the game with an Xbox controller, but it can be played with the keyboard too. I also showcase some of the code I implemented along with a demo level from a pack I had added.