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
Sprint 2
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.
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.
Comments
Post a Comment