Individual Project — Julie

Julie Huang
creating immersive worlds
7 min readNov 7, 2018

Panda Eats — a continuation of my one button game

Description of Game:

Based off my original one button game, I wanted to try and pursue my previous vision of a infinite side scrolling video game. My original design was to have a couple differently styled levels of industrialization (ie. forest, construction site, city) with different kinds of obstacles en route to finish the level. Within each level, you aka. the panda would have to collect “bamboo” and “mantou” to unlock special features and new characters.Chasing behind you, would be an added characteristic of excitement of being chased by a tractor. Each time the tractor caught up to you, your speed would be stunted for a duration of 5 seconds. Within these 5 seconds, if you were to be caught up to again, the level would end, but you could restart the same level in exchange for a certain amount of bamboo. As the levels go on, the style of the levels become more difficult and special features are more enticing to unlock. Ideally, the game design would be difficult enough to prompt the user to want to continue playing and unlock special features.

Process:

Considering the feasibility and time constraint of creating this video game, I decided to simplify the game down to a basic side scrolling game, resembling something like Super Mario Brothers rather than Temple Run. Due to the time constraint, I was unable to create the chasing tractor aspect and instead focused on basic player controls and mechanics and a few fun design aspects.

Prototyping on Unreal:

I began prototyping with the 2D-side scroller format, without the starter package. The program already had jumping and side to side movement prototyped, but I wanted to make some additional adjustments and aspects. Using W as jump and AD as left and right movement, I was able to begin moving the player on the field.

Overall, I ended up with 5 folders: Blueprints, Levels, Materials, Pickups, and Sprites.

Blueprints

Within the blueprint folder, I created a BP_pplayer which I set as the default player aka. you the panda. Within here holds the blueprint for the start, sprite animation, movement, jumping, and bamboo level.

Start Game
Animation (ie stance animation when resting, run animation when moving)
Movement (A & D)
Updating Animation
Jump Movement (W)
Keeping Track/Updating bamboo level

To have an interactive user interface, I created a Widget_HUD that would show on the game and display and track the bamboo scores to resemble some sort of a “scoring system”. Initially the widget wouldn’t display on the UI because I originally had the “Creates HUD” code within the Widget_HUD blueprint, but once I realized the code needed to go into the BP_PlayerController, since that was now where the player was, it worked!

Displays designed HUD
Updates bamboo score within HUD

Along with both these, I also created a BP_PlayerState and BP_PlayerController to have the game mode in my own system, rather than the default Unreal. While creating these typically are for multiplayer platforms, I decided to include it in this video game in the possible case where this game could go on and have multiplayer races!

Actors

Within my game, I created 2 main actors: bamboo and mantou. While I didn’t quite get to incorporating the mantou aspect into my game, I was able to get the mechanics of bamboo down. I added a destroy actor so the bamboo would disappear after the player collided with it. I also added a rotation factor to the bamboo so it looked like something the player would have wanted to touch. I created a cylinder like object to resemble bamboo and created a green material to coat it.

Bamboo Viewport
Green Material

Once I had my actor, I placed it into my level and began to work on the scoring system, which can be found above in the Widget_HUD blueprinting. I had some troubles linking the count of the bamboo. First, in Game Mode of World Settings, I had the Player controller set as the default Unreal Player Controller as well as the Player State. Once I corrected that, I was able to have the level and game in my created game mode. In addition, I had the count Bamboo score in the wrong location, instead of the Widget, which is why it made sense why the count didn’t even show.

Sneaky Unreal Game Mode Classifications

Once these issues were corrected, I still had the problem of displaying the bamboo score and making it increase by 1 once it collided with a bamboo. I had to revisit the prototyping of bamboo score in the Widget, and correct how the bamboo was being scored, and add the int+1. Now, the bamboo count finally works!

Sprites

I think this was the aspect of creating the game that I had the most fun with. I found the package of sprites from a free online Unreal Sprites website from Dazz, and extracted the sprites I wanted to use.

Free Online Panda Sprites Courtesy of Dazz

Here is the Website I got my sprite package off of: https://www.spriters-resource.com/ds_dsi/pururun1/sheet/45391/

Extracted Sprites and Flipbooks

From the extracted sprites, I created flipbooks and set them as the stance and run animations. When the player was not moving, the stance animation would play and when the player was moving, the run animation would play.

What I have so far

For the Future

Ideally, if I had more time, I would have wanted to go a step further and make it an infinite side scroller with the added aspect of the tractor following behind. I feel like that would have made the game even better and attractive (maybe something I can just work on in the future!). But considering the format it is in right now, in the future, I would have LOVED to build the world/levels more by adding more specific details (ie background, mantou, obstacles). I would have also loved to create more characters using sprites and design them myself instead of pulling from free work. And to further emphasize details, I would have wanted to include a rewarding audio sound aspect when the user collides or “collects” the bamboo and mantou and a spooky sound when they hypothetically hit an object and the tractor gets closer.

Lessons Learned

Throughout this individual project, I learned that I really enjoy the design aspects of Unreal. A lot of the stress I generated from Unreal was how impossible blueprinting looked, but once I was able to get the basic mechanics of the game down (movement of panda, colliding with the actors, increasing the count on the UI, animation, game mode, etc.), I was able to start focusing more on the design “fun” aspects of the video game. A lot of the time, I would get stuck with the workings of the game mechanics and be frustrated throughout the rest of the design process, even if I would print strings and it would print “fail” 100x, but I learned that the internet is a good friend (but also a bad one at times as well). Since I was able to set the pace for myself, I felt that it was easier to get discouraged and give up. However, since I really enjoyed the design aspect, I was able to continue moving forward and create something I am very proud of! When had originally designed my one-button game, I thought it was something completely out of my reach. But now looking back, seeing that I was able to individually design and prototype a good majority of it, I realize that even if something initially looks impossible to do, it doesn’t mean that it is impossible.

--

--