Sprint 4 - Roll Out the Dough (Feb 23 - Mar 1)
This was our team's first sprint in the Alpha phase of development and we started it off strong with lots of new content and updates being made. In this week alone we were able to update the lighting in our first 4 levels, texture and UV a lot of new exterior art assets, further develop our cat mechanic, update the tutorial notes, implement a functioning prototype of the Journal with both the Plants and Notes sections, create some new UI icons to match our current style, rig and begin animating our player character, create one character outfit, and a few smaller tasks.
My tasks this sprint included:
Meeting with Simon and Jason about the new pickup system
Updating the tutorial notes in-engine
Brainstorming more cat behaviors
Pickup System
For a while now in the development process of Overgrown we have been getting feedback from QA testers that sometimes it can be difficult to select the item or plant you want to interact with if they are too close together due to the selection radius' overlapping with each other. In this sprint we finally began tackling this known issue. I met with Simon and Jason about our options for how we could resolve this issue in a way that is intuitive for the player, is easy to use, and wouldn't be too difficult for the programmers to implement. During our discussion, we came up with a couple different ideas for how to handle this and ultimately decided that our favorite option out of the ideas we came up with was to do a cycling system. The way this system will work is if the player is standing in a position where multiple different items' interaction radius' are overlapping then the game would detect this, put each overlapping item into an array, and then allow the player to cycle through this array either with a button press or by scrolling the mouse wheel. This will allow the player to easily switch between the items and select which one they want without taking too much time to do so, considering that our game is very time-sensitive. During this meeting we also discussed the fact that we should try to space out the plant spots in each level further away from each other so that this will not be a common issue for the player. It would be much easier for the player if they did not need this cycling system in the first place, however, there are instances where the level is simply designed in a way where plants are forced to be close together. In the future while designing levels we will keep this in mind and try to minimize the number of plants that are very close together, but for the instances when this does happen we will have a system in place to deal with it.
Updating Tutorial Notes
After rewriting the tutorial dialogue in sprint 2 I was finally able to implement those changes in-engine so that we can begin getting QA feedback on the new style and progression of the notes. To begin this process I first had to meet with Simon so he could walk me through how the tutorial system works and how to edit it, as I had never touched the tutorial system myself up until this point. After learning how the system works I was able to remove some of the notes which I decided to cut, update all the notes with the newly rewritten text, move them around to their proper locations in various different levels, and connect each note to a specific player action. After these changes, I am much happier with the tutorial notes as a whole and I feel that they do a much better job of teaching the player the basics of the game, at the exact points when they need to learn them, and without being too wordy or excessive. Also, now that I understand the system I will be able to implement all new notes in the future as we introduce our new mechanics in future levels.
More Cat Behaviors
Although we were happy with the way the cat currently behaved in our prototype, we wanted to play around with the idea of adding more unique cat behaviors to the game so that we could expand on this mechanic even further and add even more challenge and learning for the player to experience. I was tasked with brainstorming a list of more potential cat behaviors which we could add on top of our existing behavior. These additional cats could be placed into the different levels within world 2, or potentially for an added challenge, we could have multiple cats in the same level. Below are the notes I came up with for some more cat behavior ideas:
Cat lays down in plant drop zones close to windows and player can’t place their plant there
The player can’t do anything to move the cat and just has to wait for it to move? It won’t stay there for too long so the spot will become available again
Or the player can move the cat in which case it goes to look for a different spot close to the sun
The player has to approach the cat without anything in their hands to move it. This means if the player is trying to move a plant to a spot and then realizes the cat is there they will have to go place the plant down somewhere else, move the cat, then get the plant again to put it in that spot
Cat tries to get into a catnip jar and the player has to stop it from doing so
If the cat successfully gets into the catnip then it will be crazy energetic for a few seconds and go on a plant knocking over rampage. It will knock over multiple plants very quickly and run around the house like a madman. Knocks over 3 or 4 plants? Only lasts for 5-10 seconds?
Combine cat laying in plant spots with catnip? In order to get the cat to move out of the spot you have to place a catnip jar somewhere nearby and the cat will go over to that so you can use that space
Cat closely follows the player and gets in their way when they’re trying to walk, which stops the player from walking sometimes. Like how cats rub against your legs and it makes you trip over them
After writing up this list of ideas I later met with Ryan and Ian to discuss them and choose which idea(s) we would be interested in implementing. We decided to actually combine our current cat behavior with the idea of the cat laying in plant spots close to windows. Now instead of the cat choosing the closest plant to where they were napping to knock over for no reason, the cat will only knock over plants that are in plant spots next to windows. When it knocks over the plant the cat will also lay down in that spot and essentially take the spot, preventing the player from placing any plants there until the cat gets up and moves. We decided to make this change because we felt it gave the cat more of a purpose for knocking over plants. Previously it did so for no real reason, but now it does so in order to lay down in front of the sun where it is warm, which is something most cats enjoy doing in real life. This also allows the player to know which plants are going to be a potential target for the cat and any plants which are not in a sunny spot right next to a window will be safe from harm.
The second idea we decided we wanted to move forward with was the cat which interacts with a jar of catnip. For this cat behavior, there will be a jar of catnip in the level and the cat will sometimes walk over to the jar and try to open it for a few seconds. If the player walks over and picks up the jar to stop the cat from opening it, it will continue in its usual cycle. However, if the player does not stop the cat in time and it gets the jar open it will become very energetic for a short period of time and will run around the level very quickly knocking over any and all plants in its path. We felt that this would be a fun interaction for the player because it will not happen too frequently to the point where it becomes annoying or unfair, and also the player has the ability to completely stop it from happening as long as they are paying attention to what the cat is doing. This ensures the interaction feels fair, but it also is punishing if the player is not paying attention to the cat or forgets about it.
Sprint 4 Reflection
Overall this sprint was productive for us as a team and we got a lot of new content implemented into the game. We have been steadily receiving QA feedback each sprint and have been able to make balance changes and other small updates based on our testers' responses and comments. For me personally, I feel like this week has been very helpful for my understanding of Unreal Engine, as this project is the first time I have ever worked with it. Previously I had no idea how Unreal worked or how to use blueprints, but after learning about the tutorial system and working with it I feel that I have a much better understanding and comfortability with using the engine. I am excited to get to work more in the engine in the future as up until this point I have not touched the project itself very much other than building levels.
Sprint 5 - Cut and Shape the Dough (Mar 2 - 8)
During this sprint we prepared and sent our new application to Nintendo to try and gain access to a Switch dev kit so we can also port our game onto the Switch console this semester. We previously had applied and were rejected but we felt that now we have made some significant progress and updates to the game so it was worth trying to apply again. If our application gets rejected a second time then we will have to scrap the Switch plan as we simply will not have enough time to port our game over.
My tasks this sprint included:
Recording and editing gameplay footage into a trailer to use in our Nintendo application
Implementing our new resource bars
Gameplay Trailer
The first large task I had this sprint was recording gameplay footage of our game in its current state and editing it into a short gameplay trailer to include in our new application to Nintendo. For this task I only had a 2-day time span to get the trailer done as Ian wanted to send our new application by Wednesday so that we could get a response as soon as possible. I started by looking into ways of recording some high-quality in-engine footage outside of the normal gameplay camera angles in order to show off more of the game up-close and get some nice shots of our plants and other assets. However, after looking into this for a while I decided ultimately it wasn't worth the time it would take to set up camera rigs and rails as I was on a tight schedule and the game still looked nice from the normal camera angle.
Ian provided me with a brief storyboard for what he wanted the trailer to show off and I used that as a reference for which specific shots and actions I wanted to capture. To record the footage I simply launched the game in full-screen from the editor, because we had new updates which weren't yet in a build file, and then recorded it using OBS. I essentially played through the game as normal, sometimes redoing shots if I messed something up or my character movement wasn't smooth enough for the shot. After getting all the footage needed I brought all my video clips into Premiere Pro, along with a license-free song, and edited it all together including text at the top of the screen to narrate what was going on.
During our last semester working on Overgrown I also created a gameplay trailer on our current progress then, as well as doing multiple other trailers and video projects for other things. Because of this I already had a pretty good understanding of how to create a nice trailer and I felt comfortable putting this together in a short time-span, especially considering that the video is so short. I made sure to line up my transitions and cuts with the beat of the background music as well so that it all fits together nicely and the video meshes with the music well. After this trailer was complete Ian was able to add it to our new Nintendo Switch application and send it off to be reviewed for the second time.
New Resource Bars
By far my largest task this sprint, and the one which took up most of my time, was implementing our new resource bars. Like I mentioned previously, this is the first time I have worked with the Unreal Engine and so I was not very comfortable with blueprints or how to set up more complicated functionality. I ended up watching multiple different tutorial videos on how to set this system up and in the end I got it working with only a slight issue still present which I will be addressing next sprint. Our previous resource bars were straight horizontal bars that simply filled up and down from the left to right. These were simple to implement as we were able to just use Unreal's built-in Progress Bar widget to get it working fairly quickly. However, with our new design as you can see above, our bars are now not only vertical but are also slightly curved, which made using the Progress Bar widget impossible. Instead, I had to create a custom dynamic material using a gradient from black to white in order for the bar to properly follow that curve. This process was necessary because our bars are no longer one solid color, but instead are separated into three sections showing the "sweet spot" of that resource. The green section is healthy and is where you want to keep the level within, the red section is too little of that resource, and the yellow section is too much. It is because of these colored sections that I had to do so much work with the dynamic material so that the game could simply take in the minimum and maximum resource values of the plant and automatically adjust the yellow and red sections accordingly to be at the correct size and placement.
As you can see in the above image it was quite complicated to set up these new resource bars but it was a fun learning experience for me to get more comfortable with using Unreal in-depth and building something completely from scratch. I was completely out of my element and had no idea what I was doing going into this process, but now that I've finished it I am proud of what I got done in one sprint and I'm excited that I was able to get the bars working properly (for the most part).
The only issue right now with these resource bars is that sometimes the red and yellow sections do not line up quite perfectly where they should. In this image above you can see that the red section for the sunlight resource lines up perfectly with the small dark-blue line which separates the two colors. However, in the water resource bar you can see that the red section is actually extending further up than it should be, past the dark-blue line and into the green section. I am currently unsure of how to fix this issue or why it is happening in the first place so I am going to be meeting with Simon next sprint so he can look at my work and see if he knows how to fix this problem.
Sprint 5 Reflection
While I had very few tasks this sprint compared to others, the amount of time I had to spend on each task was much higher and so I ended up, surprisingly, spending a lot more time than usual on the project this sprint than in the past. The biggest and most challenging task by far was the implementation of the new resource bars. I ended up spending a total of 8+ hours on this one task alone as it took me so long to research how to implement it, watch video tutorials, set up all the functionality in blueprints, and mess around repeatedly with the dynamic material in order to get them working properly. Even though this was my most challenging and also frustrating sprint so far in this semester, it also taught me the most and gave me some new skills within Unreal which I previously did not have. Thanks to these resource bars I now have a deeper understanding of how to create new functionality from scratch and work with blueprints and materials. Although I am a bit sick of working on these resource bars due to how much work time I spent and they still aren't functioning exactly right, I am hopeful that Simon will be able to help me figure out what the current issue is and I will be able to get them fully functional by the end of our next sprint.
Comments