Sprint 8 - Make the Sauce With Our Tomates (Mar 23 - 29)
Going into sprint 8 our team had planned on creating our Alpha presentation to present during our next class, however, as the week went by we started to realize that we weren't quite ready to progress into Beta yet. Our producer Ian had already planned out roughly how long we would be in each stage of development for the entire semester, however, we felt that our game didn't quite meet the Alpha requirements we set for ourselves. Other than this slight change of plans this sprint went smoothly, we even began doing some bug/polish changes which we hadn't gotten a chance to do before because we've been so focused on just producing content.
My tasks this sprint included:
Connecting the character customization system to the Greenhouse
Fixing a small UI bug
Adding assets and organizing the level preview widget
Updating/implementing new UI and text font
Updating the Journal with new plant images
Character Customization System
The biggest task I tackled this sprint was implementing the character customization system into the Greenhouse. Up until this point, the character customization feature was only accessible through a test map the programmers had set up to create and test the system. However, it was finally time to connect this system to our Greenhouse level so it would be playable in the build and could be tested at QA for feedback. I started by having a meeting with Adam C, the programmer who created the system, to discuss how the system functions and how I would go about implementing it into the Greenhouse map. We actually ended up implementing it together during this meeting so Adam could ensure that I did it correctly and help me with any issues I was having. After this meeting was over however there was still a bit of work left for me to do to get the system working more smoothly.
To start, we knew we wanted the camera to smoothly pan over to show the character in an up-close view and then return to the normal camera view after the customization window was closed. To do this I used the camera system which Ryan, our level designer, had already created for use in our levels. I simply had to add in a second camera to the Greenhouse map which has the desired camera view and then use this existing camera system to smoothly transition back and forth between the two.
Adam and I were also having an issue with figuring out how to close the character customization window after it had been opened. Because of the way the system was implemented, at first we did not know how to make the "Close" button correctly communicate with the blueprints it needed to in order to close the window. After our meeting, I did some online research into different ways of communicating information across different blueprints in Unreal and I came across Event Dispatchers which were able to do exactly what I needed. After this there were only a couple of other small polish changes I needed to make, mainly updating the button text to be more clear (for example changing "CS0" to "Clothing Style 0") and making sure the player character would completely freeze in the correct place when the character customization system was triggered.
After going through this process of implementing the character customization system I was able to learn about Event Dispatchers which I did not even know existed, but they appear to be very useful and could definitely be used in a great variety of situations when something needs to be triggered. I'm very happy I was able to learn about these and how to use them and I'm confident it will be helpful to know about them in the future if I need to do something similar in another situation.
UI Bug Fix
As far as bug fixes go, I was only tasked with one small bug to fix during this sprint. When the player opens the pause menu during gameplay we wanted all other on-screen UI to become completely hidden, as it was not just distracting to the player when trying to view the menu or the journal, but some UI elements were actually interfering with the use of the journal because they would appear over top of it. This task was pretty straightforward, I already knew how to accomplish this task and I simply had to find where the pause menu was being triggered for open and close, and then add in some extra functions to hide/show the UI accordingly.
While this task was very simple and straightforward, it is really exciting to me that we are beginning to do some bug fixing and polish changes. Up until now we had just been producing and implementing content without doing much fixing, but now that most of our main systems and mechanics are implemented we have the time to do this work. From here on out we will likely have a story for bug and polish changes every single sprint so that we can constantly be fixing things that don't work properly or just polishing things up to work more smoothly.
Level Preview Widget
During this sprint our level preview system was created by Simon, our lead programmer. It is a UI element that appears after the player interacts with one of the level plants and shows them some basic information about the level before they start it. My task this sprint was to take the basic system Simon created and add in the correct art assets and information, as he only created the functionality for the system. This task was pretty straightforward and was nothing new to me, I just added in some new art assets Hannah created to the project and correctly laid everything out the way it should look. When I originally designed how this UI element would look I intended for new plants the player hasn't seen yet to appear as a black silhouette as to not spoil what they are before the player gets to play the level. However, we did not end up moving forward with this idea, and instead, all of the plant images for each level preview UI will be fully shown to the player. This decision was made in part because we did not want to spend the extra time to implement that functionality, and also because we felt it wouldn't make much of a difference anyway whether the player sees these new plant images or not.
New UI and Font
This task was very similar to the last where I updated the level preview UI. Hannah had finished creating more UI assets, including a new pause menu, and I simply had to add these new assets to the project and replace our old temporary ones. During this process I also did some very quick research into how to add new fonts to Unreal and I updated all of the text in the entire project to use this new font we had picked out previously. While this task was pretty short I decided to still talk about it here in order to showcase some of the new polish changes we are beginning to make to our game and how things are really starting to come together and look cohesive.
New Journal Images
Once again, this task involved me simply adding in some new art assets to the project, however, there was one extra thing I needed to do for this task specifically. In the player journal there is a Plants section that shows both a drawing of the plant and also a polaroid image of the plant model in-game with some text underneath giving the player information on that plant. For these polaroid images we needed some visually appealing and consistent renders of each of our plant models.
To do this I went into our art test map and set up a very basic scene with just a table against a blank wall and a light brightly illuminating the space. Then I was able to place each plant one at a time in this scene and take nice renders of each one. From there I had to bring these renders into Photoshop, along with the polaroid art asset created by Hannah, and overlay the renders onto the polaroid to look like it was the actual picture on the polaroid itself. Then I was able to add all these edited polaroid images into the project and place each one onto its corresponding plant page. This task was very easy to do but it was a bit time-consuming, considering the large number of plants we have in our game and also the time it takes to render and then edit each plant photo.
Sprint 8 Reflection
This sprint was really fun for me personally, as I was able to work in-engine for all of my tasks and begin to make the game look a lot nicer visually due to our newly finished UI assets. It appears that from here on out I will be working a lot more in-engine than I had been previously and I'm very excited about that. I deeply enjoy working directly in the engine, be that fixing bugs, adding new art assets, or even working directly with the blueprints and code of the game. While I do still enjoy doing other design work, I feel that working in-engine is really where I shine best and I'm excited to continue doing a lot more engine work in the future. Because the majority of the design work is finished, in the form of designing mechanics and systems, I now get to act more like a designer/programmer hybrid, as my skill and knowledge of programming allows me to really get my hands dirty in the engine.
Sprint 9 - Cook the Ravioli (Mar 30 - Apr 5)
During this sprint our team was able to meet our own personally-set requirements for completing the Alpha stage of development and we created a presentation to show off this progress to our class. As discussed above this presentation was pushed back by a week, however, I believe it was a smart decision as we would have been forced to rush our work in order to try and meet the requirements by the end of last week. Instead, we were able to take our time and really flesh out our game in preparation for the end of Alpha and to get our presentation ready. For me personally, I once again did a lot of in-engine work this sprint, most of which included adding new content to the game with a few small bug/polish tasks.
My tasks this sprint included:
Writing/implementing tutorial notes for the bug swarm/carnivorous plant
Adding tutorial notes to the player journal
Updating the plant drop zone assets and functionality
Creating and implementing new VFX for plants that have the correct amount of sun
General bug fixing/polish/adding new assets
Creating my slides for the Alpha presentation
Tutorial Notes for Bugs and Carnivorous Plant
Just like with the new cat mechanic, the new bug swarms and carnivorous plant also needed tutorial notes to introduce and explain them to the player. Since I have already written and implemented many of the other tutorial notes this was a very straightforward task. Below are the four notes which I wrote to introduce these new mechanics:
“This house has a bug problem! The swarm will travel around the house stopping at various spots”
“If the bugs swarm around a plant they will begin eating its leaves and damaging it!”
“Try to keep your plants away from these bugs to prevent them taking damage”
“Luckily the Venus Fly Trap likes to snack on these pests. Place it in the bugs’ path so it can eat them!”
Journal Tutorial Note Tab
For this task I needed to add all of our current tutorial notes into the Notes tab in the player journal. This system had already been somewhat created, however it was not functioning in the way it should be and needed to be updated. To start this process I first met with Adam C, our programmer who originally made the system for unlocking notes in the journal. I discussed with him the changes I wanted to be made to the system and he also explained to me how to properly add in new notes and connect them to the system which will automatically show/hide the notes according to which ones the player has encountered.
After this discussion with Adam and after he updated the system, I was able to go into the journal and begin adding in all of our notes. This simply involved dragging in our note page art asset, creating a text box on top of it, and typing in the tutorial text onto each note. Along with just putting the notes into the journal I also made sure to make it look visually appealing by slightly rotating each note, making sure they aren't all placed in the exact same positions, and also adding in our tape art asset. All of this is to ensure that the journal looks more organic and like the player character actually wrote and taped these notes into their journal themselves, thus they wouldn't all be placed perfectly. In addition to adding the notes to the journal pages, I also had to make sure each note was properly connected to the background system which would show/hide them. Because Adam already explained how to do this during our initial meeting, this process was quick and easy.
Updated Plant Drop Zones
Up until this point in development we had been using the same temporary drop zone circles to indicate where the player can place their plants in the level. During this sprint we finally were able to update these drop zones to use a new circle asset, in addition to making some changes to the way they function. Previously the player could only see the available drop zone places after they had picked up a plant. To help the player better plan out where to put their plants, and just generally make the game a bit easier, we decided we instead wanted the player to be able to see every drop zone in the level at all times.
For the new drop zone art asset, Hannah created a very simple light yellow circle which is slightly transparent. I then imported this asset into the project and replaced the old asset with this new one. The more tricky part of this task was updating the drop zone system to always display these circles whether the player is holding a plant or not. This turned out to be a fairly simple process and I was able to get the drop zones working as intended, as seen in the above gif.
Sun Spot VFX
One of my more fun tasks this sprint was creating a new particle system that will appear on a plant when it is placed in a drop zone that has the correct amount of sunlight for that plant. I tweaked this particle system a bit after team feedback, but for the most part I was able to create something that looked really nice on my first go. It is a slight yellow glow with small yellow circular particles which slowly float upward. This glow effect appears around the base of the plant when activated and deactivates as soon as the plant is moved to a spot without the correct amount of sunlight, or if the plant dies.
After creating and tweaking the particle system based on feedback from the team, I then had to implement its functionality so it would appear in-game. The way I did this was I added new booleans onto the drop zone blueprint, one for each plant type, and if a plant is placed in a drop zone in which that plant type is checked as true the sun glow effect will trigger. This way a designer or programmer can select each drop zone in the level and check or uncheck these booleans for each plant type that the drop zone has the right amount of sunlight for. While it will take a bit of time to manually go through each level and update the drop zones, Ryan has been naming each drop zone with the plants it is suited for, so this process should be fairly straightforward.
Bugs/Polish
I had a couple of small polish changes I made to the game this sprint which don't need their own separate sections. First I made a small tweak to the journal arrow buttons which allow the player to flip between the pages. Previously when you were on the first page of the journal you could press the left arrow and it would wrap back around to the very last page of the journal, and vice versa on the last page. We wanted to change this so that the player could not wrap back around to the beginning/end of the journal as it seemed a bit weird considering our journal appears as an actual book and this somewhat breaks immersion. For this tweak I simply added functionality to the journal which checks to see whether the first or last page is currently being displayed, and if it is then the left/right arrow button respectively will be hidden and un-interactable. Secondly, Hannah finished four more plant drawing images, the Blushing Bromeliad, Chinese Evergreen, Cast Iron Plant, and Dragon Tree. I simply had to import these new images into the project and place them both into the journal on their correct pages and also onto the level preview UI for each level that contains those plants.
Alpha Presentation
During this sprint, each team member had certain talking points assigned to them to discuss during our Alpha presentation at the end of the week. I personally only had two talking points: the off-screen indicators and the player journal. In preparation for our presentation I had to create my own slides, complete with a title, image(s) for the viewer of what I'm talking about, and speaker notes for myself to reference while speaking. For these two talking points I simply explained how the mechanic works and why it is useful to the player.
Sprint 9 Reflection
By the end of this sprint Overgrown has officially moved on from its Alpha stage and we are now into Beta. This is very exciting and it means we are one step closer to our finished product and also the end of the semester. I am very proud of how far we have already come with the game, and looking back at the project just a few months ago there have been drastic updates and additions, all of which positive. The game is really starting to come together at this point and it makes me super proud and happy to see it live up to the potential I knew it had when we first brainstormed the initial idea. From this point on all of our main mechanics and systems are finished and implemented into the game. Moving forward we will mostly be focused on producing new content (such as new art assets and levels), adding small new systems, fixing bugs, and polishing the whole game.
Comments