top of page

Honey Bee Garden

Postmortem

Design Breakdown

Intro

Tile-Based movement game, Collect water in a pail to water the sprout and move on.

What went right...
  1. [ Gameplay and Story ] - [This game came together pieces by piece, fitting together like a puzzle. At first, I wanted a bug to chase the player while the player tried to water the flower sprout, however I ended up with a honey bee pollenating the flower after watering it. I was unsure of my process at first, but once I had created the character “bee” look and saw them rise perfectly to the middle of the flower, I was sold on my own project. Several viewers have said that the aesthetic is very cute and appealing. Creating a desire to play before touching the game. ]

  2. [ Simplicity ] - [There a million things you can do with this tile project, but I went a more simple route, leading to fully functional programming and a look that I can be proud of. All the player needs to do is push the water pail into the 3 droplets of water and get the full pail to the sprout. The mechanism is also very easy for the player to comprehend and utilize. The players that I have had test the game, almost refuse to give up on the final level and seem to really enjoy the concept.]

  3. [Puzzle Difficulty] - [The original concept by itself was very simple, with the only possible mistake being pushing the pot into the wall where it can no longer be manipulated. After this mechanic was successfully implemented, I added the breaking tile, which does not allow the player to step on it more than once before ending the level. I added a teleport tile, to allow the player to send the water pail further away or down a straight path. With the combination of these elements, the player has to pay attention to several features in order to win. How much water have they collected, how much energy is left to push objects, has a space been stepped on already, should they send the water pail to teleport tile, and so on.]

  4. [ Design Look and feel ] - [From seeing other finished student’s projects in the first week of class, I knew I wanted to have a completely different look for my game. At first it seemed very intimidating. I managed to make a solid mesh for the watering pail, the flower and flower win tile. At this point I really wanted to focus on the player design. The first character design choice I made was changing the original clown nose to blue- I was almost afraid to go any further that that at the time. I also really wanted to have a good image in my head of what I wanted. At first, I thought the character would be a cute little humanoid flower being. After beginning to shift the body’s parts of the character to accomplish this, I decided it wasn’t quite what I was going for. I took a night to think on it and really thought to myself… what creature would want to water a flower? I came to the conclusion that a honeybee was a great choice! I began searching images of honeybees and sketching the Bee out in basic shapes. It was time to finally tackle the player design. I took several hours of adjusting shapes and changing colors, but I was more than happy with the result.
    At this point, I really wanted the whole level to be in unison. I changed the camera angle to be directly above, created water droplets and my own version of walls as trees and bushes. I finished the effect of the flower win tile, by making a bud grow, change colors and grow petals. The bee is raised perfectly facing the center of the flower, and it looks like its collecting pollen. When I saw that for the first time, I felt like I had accomplished something great, that I didn’t evern forsee, and I really wanted to show it to others.]

  5. [ Blueprinting and Organization] - [ The Tilemap system, that is already in place is brilliant, there is a basic form of anything you might need to use. If you wanted to make your own tile, all you have to do is create a child of the original Tile blueprint, and add your own look and code for it to be usable. Same goes for the movable entities. Most of my code consisted of calling parent functions and then adding on whatever function I wanted. My blueprints were all well organized, labeled, and commented with color coded box.
    The project was very well organized. I made folders for each element I wanted to add, IE: colors/material, sounds/ images, blueprints, etc. The tiles were in the tile folder, the entities I made were in the entity folder, and so on. I submitted my content to perforce each time I opened the project and made sure that it actually showed up in the workspace before closing perforce.
    All of these choices made the project extremely easy to navigate and utilize. I was very confident that the process was saved along the way, all progress was backed-up and could be fixed of any issues were to arise. ]

What went wrong...
  1. [Attempt at creating an enemy] - [Creating a moving “enemy” proved far more difficult than I thought. I began my making an interactable entity child, just like the waterinf pail; however, I would program the enemy to be “attacked” rather than just pushed. At first I thought it would be simple, just determining where the player has moved and determining where to go based off of that. I  started off by creating an event dispatcher in the player Blueprint, attached to each of the 4 move inputs. The call  to the event, “player has moved” had an in and output to determine the direction pressed. In the begin play of the entity, I cast to player and bind events to player has moved, I checked the direction and move in that same direction. I also played around with using the grid numbers directly, I had functions set up to check the player tile and if its y or x coordinates were different the enemy would adjust location accordingly. None of these attempts were successful and due to it being a class assignment, I went with a more manageable approach.  I think I came close to solving the issue but I might have over thought it and didn’t have time to waste for class.]

  2. [ Tile Replacing] - [Several attempts were made throughout my project to replace the tile or entity in a tile and caused more issues than I solved. It looks to be extremely simple, there are variable that state exactly what you need set and they have function made to call to replace, but unless the tile blueprint itself was calling this function- for me- it would not work. I tried setting the current tile of an entity to a new variable “first tile”. And later replacing that tile with the entity. I spent much more time than I wanted to on trying to replace tile and entity. But thank goodness, with the plant win tile, it was a success.]

  3. [ Replace After Fall] - [I spent several hours trying to get the watering pail entity to respawn if pushed off. I was trying to override on fail interact, which was the incorrect thing to do. But failinteract was connected to a fall animation for the box entity, and the BP said what happens if failed to find neighbor when interacted with. So I kept trying. ]

  4. [Loading Levels] - [The original tile map function that was built by the teachers came with a “win tile” that you could click and type what you wanted the level to load to be directly in the details panel. I did not know this when I decided to have my waterpail replace the flowertile” with a win tile. This function worked perfectly, no issues; however, I know longer had an easy way to tell the “win tile” which level to load next. The reason this was such a setback is because of all the ways I tried to solve it. At first, I tried attaching a level variable to the player. At beginplay the “win tile” would cast to Player and check their level variable, this would determine the next level to load inside the tile’s blueprint. On entering the tile, it would call to a function on the player and increase the level number by one. This logic worked perfectly and proved so in Blueprints- one major problem- when loading the next map- all variable a reset as it is a fresh player. So it would be level 1, for eternity. I did the exact same logic inside the game mode, and unfortunately those are reset as well. I knew then what I had to do- I created my own Blueprint that would be visible to me and hidden in game. It contains one thing- the instance editable variable for level to load. Now my “win title” has something that is predetermined in each level to call to. And the desired levels are loaded with success. But it was a major extra step for an early choice I had made.]

  5. [Adjusting Camera angle and visuals to match ] - [ In the original design the camera is pointed at the map at an angle from the corner. You can see almost every detail without issues, except for the other side of the map if the map was too large. I knew I wanted the camera above and facing down, which was a fairly easy fix; however, adjusting everything to look the same caused some extra work, and I wish I had of change the cameras earlier. My raindrops tiles were no longer drops and just circles instead. My player bee had become grotesquely fat looking. Several changes had to be made in order to make up for the new camera angle, included the provided UI, but I think the results were well worth the work.]

Conclusion

This project was a lot of fun, and I learned/ reminded myself of a lot. The most important part of this project for me was the look and feel. I think it’s the cutest game I have made and can be enjoyed by a wide range of ages. I am extremely happy with the result of the design. It is simple and easy to look at. The colors all work well together and are pleasing to the eye. Even if you don’t like the game itself, you might be inclined to enjoy the visual and sound effects added.

bottom of page