470 Project: Frogs of Rage


Sprint 6

We’re coming down to the end of things now, only one half sprint left for this project! As was the case with my previous sprint, we’re working on a lot of polish things for the game, audio, VFX, tweaks to the level design, etc. For my work personally I worked on finishing the VFX and logic for our vent exit, finished taking out gray boxes and unfinished assets from the level, and added some objective markers to secondary objectives so players have an easier time locating them in the scene.



Finishing out the room with assets I wouldn’t say was hard work as it was a bit tedious. I was finding that although we had 5 different kinds of books and 3 different kinds of jars to kinda fill in spaces in the room, it still felt very limited to avoid monotony in the spaces. I filled things out as they needed to be in order to fit the current geometry but I wonder if I’m just not being creative enough with these assets to keep them fresh or if it’s simply too few varieties to fill such a large space. Something else to think about though is that I’ve been staring at this space for hours filling things out and making jumps work and trying to make things feel fresh in every corner, so it’s also possible that I’ve spent way too much time staring at this and that it doesn’t actually look very repetitive at all. Guess that’s what playtesting is for!


Next thing I tackled was getting secondary quest objectives set up on objects. Luckily, we already had the primary objective markers that display correctly to the player wherever they are in the room, so I was able to use that as a copy to make these so that they have the same billboard effect. I then also had to make sure that they didn’t display when the player’s had picked them up, because that’d be both confusing and obnoxious, so I made sure to turn them off once the player had picked them up. One thing that was of note from the playtesting though was that this still wasn’t quite enough to get the players to see these icons. I threw out the idea of making them grow and shrink continuously, bringing some movement to the icon to help draw the eye to it in all the clutter of the room and we may do that before the final build of the game.



The last thing I worked on was the bottle rocket. The goal of this was the player needed to have the lighter on their back, come close to the rocket to “light” the rocket, and it would shoot off and blow open a hole in the vent that Tubby would use to escape. I was in charge of not just the logic side implementation but also creating the VFX for it to give it some pizzazz. So to do this, I split it up into the logic of opening the new exit, animating the rocket, and creating the VFX.


I first worked on the scripting end. As I thought through the problem I decided it would be easier to trigger the opening exit from the rocket hitting the vent. This made things easier as I also had to switch out the model of the intact vent for the broken one as well, and masking it with the explosion would help hide the transition. I also gave a delay on the rocket leaving because I knew there would be a fuse being lit and who doesn’t like some good ol’ anticipation?


For the animation I used Unity’s animation system to set up a static animation. Because the rocket would always be coming from and going to the same place, it made sense to do it this way even if it was a very rigid way, meaning it would have to be redone if we changed the location. But we’re in finalization now so I doubt that will be happening at this point.


For the VFX I had two parts to this. First was the fuse for the rocket which I would need to look like little sparks going everywhere, and the second was the explosion which I wanted to be 4th of July themed as that’s what the bottle rockets were themed after. This was interesting because I haven’t had to deal with random colors in a VFX before, and I wanted the different explosions to be blue and red. So instead of having it spawn both blue and red at the same time, I had it randomly pick one of the colors, which was a lot harder than it sounds as the VFX graph does not have a switch statement or enums that I could lean on for it. I really wanted the explosion to be one of those where there’s the initial explosion and then little crackly, colored explosions at those little sparks, but I wasn’t getting the secondary explosions to spawn at the correct locations, so that’s something I’m going to have to tinker with to see how to get it to work.

Sprint 5

The game is coming along nicely! I’m really surprised how much the level is coming together and how much it’s starting to feel like a real game! My work this sprint went into finalizing our tutorial area, setting up some new hazard zones, putting our new hats into the game, and personally finishing one of our game paths with a new sub-objective!



The first task I completed was the tutorial zone. This was already sketched out previously and my modelers did a wonderful job giving me the tools I needed to make the level a reality. One thing I noticed that was much different from my sketch however, was the scale. The pacing for what I sketched out was much larger than what ended up being true. Part of this was on how things were modeled, part was how I ended up balancing the player controller, and another part was just me not understanding Tubby’s (The frog) scale in comparison to real world objects. Not intentional on anyone’s part, but it did mean that the level didn’t flow quite as I envisioned it. Nevertheless, the core, needed elements were there of teaching the player looking around, running, jumping, etc, through a number of skill gates in the zone. It’s possible that this abbreviated tutorial area will actually work in favor of the game, as this is where the players always begin before going into the actual room. Something I did to combat the smallness though was to make the tutorial terrarium bigger than the actual terrarium and place it in a dummy room. This gave space to keep the skill gates intact without having to adjust all the level geo I had already created. I also made sure to put a collectible in the terrarium that faced opposite the player’s general vision to help encourage the exploration that is found throughout the game.



Second thing I did was set up our new hazard, the hot sauce! This kind of hazard was the original plan for the dresser top so it was good to get it in so that I could redo that area a bit. Before I needed the player to be able to get high enough to be out of the stinky sock range, but now that this hazard was by contact, I was able to lower things to be a bit more manageable. The hazard was a little annoying trying to get the damage to actually inflict to the player, but after talking with our programmer I was able to nail down what I was doing wrong. This hazard is nice because it’s not based on a 3D space, so it doesn’t need VFX to show where the player gets hurt, it’s understood as soon as you stand on it and get damaged and jump out of it. The hope though is that once the player steps in it they’ll be lit on fire as a fun, cartoony interpretation of the hot sauce hazard.



Next was setting up the new exit sub-objective. The lead designer wanted to encourage players to explore more of the room and not have the game be so A to B, so he introduced these sub objectives to each exit. The player would have to a different area on the map first to grab an item or trigger an event to open the final exit. I was tasked with the vent exit. The new goals were that the player had to grab a lighter, bring it over to a bottle rocket, and launch the rocket into the vent, blowing it up and making your escape route. Simple enough to do.


First I tackled the lighter. For that I made a general script where the player could collide with an object and then that object would be placed onto Tubby’s back with a given rotational and positional offset. Then I just had to dial in what offsets the lighter needed to look more natural and we were in business. 

Taking that, I made a bool check for the player for “secondary objective completed” that would check to true once the lighter was picked up. The bottle rocket could check that bool instead of checking for the specific name of the lighter, so it didn’t have to be specific to picking up the lighter. This also allows for the bool to be used in other paths, like one where Tubby needs to grab a battery instead of a lighter and still function.

Lastly, I simply made the rocket wait a few seconds (to fill in with the fuse lighting VFX later), then shoot off to the vent and cause the vent to change to its destroyed version on collision and turn on the exit collider as well. With a little bit of bug testing throughout it now worked! Tubby’s pyromaniac dreams made into a reality!



Lastly was placing collectible hats around the level! Now I couldn’t place them just anywhere, I needed to make them a challenge for the player to different degrees. As well, my design lead wanted to force the player to collect the upgrade coins around the map to get some hats, which I totally agreed with! We only had three hats available so I started getting to work placing those around. I realized all too quickly though, that any hats that were placed low on the map were almost a gimme for the player. Without fall damage, dying from falling too far, or some similar mechanic, the player could travel downward as much as they wanted without being punished for it. This meant that any collectible that was below a place the player could traverse automatically made it a candidate for cheesing, I couldn’t lock the player out of it. So, I decided to focus on putting the hats up high. The top hat can be collected by a base player, but they have to notice it first. The football helmet can also be collected by a base player, but it’d require precision, and is made much easier with upgrades. The army helmet I made only accessible if you’ve gotten enough jump upgrades. I felt that this gave a nice variety of approaches to getting the helmets. Also making the football helmet far out of reach where you have to push yourself to get to it, and the army helmet up where you had to do the footwork of collecting tokens to get to it, I think where nice thematic touches.


Sprint 4

Another sprint in the bag and this one was a bit of a struggle. As it turns out, designing a level around a player controller that’s not been finalized, is just as impossible as you think. That being said, it just made me have to prioritize my tasks a bit to make sure I didn’t end up doing work over again adjusting level geometry and such. I also got into little things like lighting the level more appropriately and making changes to a previous zone that I felt was lacking, let’s get into it.


First and foremost was the player controller. During our first build the controller had running and jumping that it could do. Flash forward to now where the player can now wall run and wall jump all over the place and the physics on the character had to be changed so that it could accommodate these designs. This unfortunately threw the whole feeling of the character controller out of whack. The jumping went back to feeling floating, the wall jumping was really sensitive, and the player generally felt a lot more unruly. I wish I could say I knew exactly what needed to be changed so that the player felt perfect and I went on my merry way, but in reality this was a back and forth that ended up between me and the programmer to the make the controller feel as smooth as it did before and ended up with us exposing another parameter or two for me to experiment with. After a long bit of trial and error, we worked out the bugs and we got a player that controlled a whole lot better and now was enhanced with new abilities! Hazah! Now onto the new section of the level and getting that built out.




This second leg of the room I had the challenge of making yet another very vertical layout. Getting the player from the terrarium level up to the top of the room in an interesting and yet believable way. I already did the first section of getting the player from the terrarium, to the TV, to the dresser, but then I had to go straight up to the shelves, and for that I decided to have something hanging off of the shelf. After talking with the design lead, we decided that it could be a vine from some plant that is up there and Tubby jumps up the leaves to get up there. I’m not sure how much a green, growing plant makes sense in a teenage pyro’s room but I’m not in charge of that and it gets the player where they need to go so I’m for it in that sense. Once up on the shelf I knew I wanted the player to weave through the books, but also didn’t want it to be the same as the bookshelf across the way, so I added a lookout point where the player can get a cheeky look at all the collectables on the other side of the room while also giving a cool vantage point to see most of the room. I then decided to have a catwalk-like section that leaves the player completely suspended between the two shelves to make them feel exposed for longer than most of the bookshelf section. To get the player on top of the shelf I decided to use their wall-jump ability to jump between two books and eventually up on top. It made for one of the books looking abnormally shaped, but I’m sure there is something we all can come up with to put there if the weird book doesn’t fit. The top of the shelves I’ll admit were not as inspired as I’d like them to be. It amounts to basically ducking and weaving until you get to the end. I vary it up from platforming to navigation to avoiding hazards but I’m sure it could still be better.



The top of the dresser I redid as I was not making good use of the space with the previous design and just felt very clunky and off. I decided it could make for a much better high-rise hazard course. This allowed me to fill out the space better, give the player some intrigue by giving them something new to traverse, and give more of a path that leads the player upwards toward the light and the finishing of that level leg. I’m much happier with this version of the dresser top. The socks will be replaced in the next build with a hot sauce spill that will fill up the grounds under those posts which I think will look so much better as well.



Lighting the level was the last thing I was doing which ended up being trickier than I expected. The skybox we were using was actually adding a ton of light to the scene but in a color and intensity that didn’t feel natural to me. I had to turn down its exposure so that I could be more manual about placing my lighting. I used two directional lights, one for lighting the general room and giving some believable shadows from the overhanging light, and one for the bounce light that would be brought in from the window. I couldn’t localize the light because I think that would’ve been a lot of individual lights to get that lighting feeling right, so I took this more general, more cartoony feeling light as it was enough to be believable without being too bland and equally lit everywhere.


Sprint 3

Very similar to last sprint, I was again placing colliders on objects and blocking out a new pathway in the room. That being said, this sprint went a lot differently when it came to how I had to do those things. Different props mean different collider problems, and a newly redesigned player controller meant I spent a lot of time tweaking it's values to try and match the previous player controller and thus, not have to completely change the portion of the level I had already finished. First things first, lets start with the new big props!


The desk fan was one of the new big props and it proved to be a little trickier than previous models. I knew that from all the very specific geometry and the multitude of curves that I wanted to use a reduced mesh model of the fan as a mesh collider. However, reducing the whole mesh in Maya gave a lot of weird geometry errors, specifically with the metal bars of the fan cage. As it turns out, I had to go to each part of the fan individually and reduce them to make sure that each part retained its same general shape. This included reducing each of the buttons separately, as reducing them together would result in an uneven reduction so one button was reduced to a triangle while the others were made into neat squares.

The chair was the next object and while I wanted to make the chair out of box colliders and call it a day, the model itself was deceptively curved. The seat I could've lived with being a flat model, but all the back boards of the chair were curved and the back supports of the chair were also angled backwards. So, instead of creating 2-3 empty objects to put colliders on I made a reduced mesh collider for it and that matched the geometry of the chair much better. With all of the objects being both enormous and also being entirely singular, I think the impact on performance of using reduced mesh colliders should be minimal.

The door was incredibly simple, at least the door and the frame where. I didn't end up making separate colliders for the hole in the door, but that's because if that's going to be an exit, the player will be moved to the win screen upon contact. However, the door handle was much more interesting. I used another reduced mesh collider on this to make the edges well, but the bulk of the handle that goes into the door didn't want to stay rounded, so I had to use my empty collider trick to use a capsule collider to make that work. Now the player should be able to jump onto the handle and have it feel true to the handle.

 

 


As for the second blockout that I worked on, this was a path that worked around the other side of the room. For this section I was much less inspired as to how I wanted to tackle it, especially the TV portion right after the terrarium. After some research and trying to find inspiration for the room by looking up some messy rooms, I came up with a container of NES cartridges. The idea is that it was on top of the TV and then got pushed back and is wedged up against the wall. This gave me my way to get the player up on top of the TV where they could make their way over to the dresser.

We won't talk about how long it took me to come up with a backpack on a hook to bridge the gap between the TV and the dresser but the point is I'm very happy to have figured out what to put in the room to bridge that gap.

On the dresser I was much less inspired and at this point I was having to experiment with the new player controller to see what settings we were going to need to make the player feel good. That experimenting took a whole lot longer and was much more involved than I was hoping, but ultimately it was to get wall running and jumping into the game so I understand its necessity but it does make for a lot of changes.

Overall this sprint had a lot of the same work just in different flavors, but overall, the room is coming together much more now and I'm excited to not only see my team fill it with awesome props but also to see the players navigate the space and enjoying themselves!


Sprint 2

This sprint I was able to get a lot more hands on in the project. A lot of it ended up being finicky things like adding colliders and adjusting a grey box three inches to the right and then three inches to the left but it was at least things I understood and didn't need to think over heavily.


One of the first major tasks I had was adding colliders to all the objects. While in a regularly scaled game this might be as simple as adding a few box colliders, with how big our game was it was an important point that I knew I needed to get right. The player was going to be interacting with these large objects in a very intimate way. Every pocket and doorknob could be big enough to hold the player and so I needed to make sure to account for that. For the more angular objects I used a series of box colliders to make things fit. 

This was pretty annoying in Unity as there is no triangle/pyramid colliders, nor is there a way to angle a collider that's on an object, only the object itself. So, in order to get the props like the Tony TV situated correctly, I had to used childed empty objects with colliders on them that I could angle to fit the dimensions snuggly. Another technique that I learned during this process though was the making of an extremely low-poly version of an object to act as a mesh collider. The screenshot above shows a beanbag we have in the game that I reduced 95% of the faces on that would've taken eons to fill out with box colliders due to its organic shape. With this super low poly though, it took less than an hour to get everything imported and fitted to the high poly Unity model, and now the player can climb all over it smoothly.





The second overall task I was given this sprint was to block out the level for our first build. I had a lot of ideas of how this section would go, but we ended up pivoting a bit. Because we didn't have a lot of props made and there was a big open gap in our level plan, we decided to take a more interesting route. What originally would've been a path from the terrarium, to the bed, to the outlet on the back wall; became terrarium, to bed, to bookcase, to high shelves, to vent. The bookshelf and high shelf spaces I could easily fill out with "books" (Nice grey blocks) to sell an idea without having the actual props there and the geometry of the level was much more interesting to navigate, no big open spaces of the player simply running from the vacuum.

The bookcase I was especially proud of how it came out as the level there gets very narrow and could easily become something boring to navigate. I was able to make the player wind in and out of the books, make daring jumps, and all the while make the books feel like they're all natural in how they sit on the shelf. I even got a could of fun hidey-holes for collectables to sit in if the player chooses to explore more.

One other thing I had to keep in mind while designing this was that the only player movement we have implemented up to this point is player run and player jump. This meant that in order to allow players to complete the level, I had to change things up to be only single jump gaps. Later on I'll have to come back to these sections and adjust some jumps so include things like wall running and wall jumping so that the player is using all the mechanics at their disposal and really helping to make the level even more fun to navigate.


Sprint 1


 New semester, new project, and a whole lot of new things to figure out. I won't lie, I felt a lot more confident in my level design ability before starting as the level designer on this project. I felt like I had all the right concepts running through my head, that I was considering all the right angles and pathways of a player, and the player perspective. However, none of that seemed to come smoothly to me starting on this project so I had to do some really quick growing to start nailing this.

The first step I took was reading the GDD to try and get a better grasp of the vision of the game. Normally when I'm designing, I can see how the gameplay moves moment to moment in my head, but I didn't have that going into this project so I was trying my best to get that going. I was reading the premise, the gameplay abilities, the hazards, none of it was giving me that solid vision of what the game was going to be in the long run.

I decided I needed to talk it out more with the Lead to see what he had in mind for the first area of the game, the bedroom. What the level was supposed to allow the player to do, and how we wanted the player to navigate the space. After having that chat, I realized that I had to start bigger and work my way down.

I started first with getting an overall layout of the bedroom laying out all the major furniture pieces and the general paths the player would take across those pieces. This gave me a jumping off point for starting mapping out the rest of the room. From here, I can break up the room into different sections of the level and start mapping them out to start getting a good feel of the space. Unfortunately, I did run into my second problem that I hadn't run into before, which was getting blocked trying to figure out what I would have available to make the levels out of! Unlike other games that may not be a tightly themed, this being in a bedroom gave a certain expectation for what you would and wouldn't find. Furthermore, you can't just place down a bunch of walls and floors wherever you want because it has to somewhat make sense with the room. I got hung up a number of times working on my first two maps trying to figure out what props I could use to make the level geometry I needed to make an interesting parkour level. I got hung up on that actually longer than I'd care to admit, but in the end, I talked with the leads and they agreed that it'd be better for me to make the level layout that made sense as a level first and then figure out props that would fit in that space later on.

This was my first crack at making a tutorial area for the player to traverse. I had a number of mechanics that I needed to cover and make sure the player new before letting them essentially free roam the rest of the room and get into trouble. I tried to pace the level to start with basics like looking around and jumping, then onto sprint jumping and hazard avoidance, and then ending with wall jumping, wall running, and collectables. Thinking that wall jumping up a wall might be the most complicated mechanic, I decided to make two paths to the upper right area of the terrarium. One is simple jumps up and the other was a wall jump. I thought this gave less confident players a route up that made sense and more comfortable players a chance to run through the tutorial a bit more quickly. I also set up a collectable to be viewable before the player has been taught to wall run, but after they've passed it, to offer a bit of exploration curiosity, and to give the player the option to test their skills or not to see if they can get the upgrade. One thing I will probably change about this map in the blockout/further iterations, is having a grappling point at the very end of the tutorial the player must use to get out, teaching them about that as well.
This is first section outside of the tutorial that I've started mapping out. This is a section of the bedroom that will have multiple levels (here it's one level on top of the bed and one below the bed). I'm thinking that I'd like to build in some less obvious paths to get below the bed here as well as a more complicated path to allow the player to get onto the widow sill (top rectangle) to help promote that fluid movement playstyle. I'm still outlining how the player will move through the bed, as I'm not sure how much stuff I can actually put on the bed to get in the player's way before it seems completely unrealistic, but I'm hoping to give some sort of interesting, round-about puzzles where the player makes a circle or tow around the pile of clothes before they're able to move beyond to the shelf and the end of the bed.

Comments