I added a few sounds this week to give some things more feedback. A splash is played when the player falls in the water and a sound for the pressure pads has been added. Cogs also make a sound as they turn. The checkpoint sound has been edited so that the sound plays exactly as the flag animation plays so it feels more impactful. I spent lots of time doing prop work this week, some in Jungle Level 2 and most in Jungle Level 3, now named Pulley Problems. In Pulley Problems, I added a small platforming challenge to acquire the Arcade Token, a bunch of floppies, Junkbots and a few torches and other assorted props. The glider section in Jungle Level 4 needed some attention to make it look comparable in quality to the Wild West sequence. I made new materials for the grass and stony river bed using flat albedos and normal maps. I was careful to ensure that texture stretching was not obvious on the terrain grass. Many rocks were added along the terrain’s cliffs to make the terrain look more interesting. I also took care of a few miscellaneous things throughout the week. I edited the mega plate texture in Photoshop to show 2 weights instead of 1 and removed ‘RB to run’ from the controls screen UI. The torches have also been modified to have an offset so they do not flicker in sync.
I am happy with the progress made this week and I feel we are in a good place for submission.
0 Comments
I made good progress with the PS4 version of the game this week. The performance is stable now, except for one part of the level I need to improve. I also fixed the menus not working on PS4. Just a few more tweaks and that will be fine. I spent a lot of time this week populating Zac’s level with props, continued from last week. The theme of this level is rotating platforms so I incorporated cogs into many parts of the level. I also had to make sure that rooms that structurally looked similar were easy to tell apart. This meant I would make one look very green with an abundance of vines and ferns, and the other would be filled with other props such as vases. Additionally, instead of an endless pit, this temple is filled with water which will kill the player upon contact. I added the Arcade Token in the level atop some fires. It is not immediately obvious how to access this coin. The player must glide from a higher platform to a rock then climb a series of bricks to reach the token.
Much of the work I completed this week was spent developing the level I created and populating one of Zac’s jungle levels. I spent time lighting my scene to improve the feeling of being inside a dark temple. Some blueish light cascades down from openings on the roofs of the temple. I made sure to only place ferns and trees in areas touched by light. Darker rooms could use vases and statues more. One problem I had was that the large stone walls didn’t look good due to the repeating grid texture. I decided to add bricks to the walls to break up the grid and make the walls look more interesting. I also wanted to create the illusion that when the player looks down, it looks like the temple walls extend into an endless pit. To achieve this, I extended all temple walls downwards and used a black fog to fade it out. I began work on Zac’s scene by closing in some walls where necessary and adjusting the structure of the rooms to more closely resemble the rooms in the previous level. This meant adding the opening in the ceiling for the light to shine through. I also began adding some props to this scene but there is much more that needs to be done.
On Wednesday night, I headed out to PAX with other team members to show the game. We received some very positive and constructive feedback. With Armageddon this week and Pax the following week, we needed to make a push for polish this week. Again, I made a number of improvements regarding Klepto’s arm and grappling. I fixed an issue which occasionally prevented people from grappling with the Right Trigger on the Xbox controller. The indicator now scales and fades in when the grapple point comes in-view or in-range. Additionally, the arm has become more stable, thanks to getting some assistance from the people that developed the rope physics plugin we are using. When the player drops a crate, if they are near a pressure plate, the crate will automatically snap to the pressure plate.
I also edited a couple trailers. One was for Armageddon and one was for our accelerator application and is now on our Itch.io page. The reception for Armageddon was generally positive and served as a good stress test as a number of crashes and bugs revealed themselves as the crowds came to play. Throughout the week, I spent a lot of time working on the PS4 port of the game. After many issues with getting a build working, I was finally able to get one with a simple scene. There were issues with shaders that I had to fix and unfortunately, the physics arm won’t work on PS4. After the success with the simple scene, I attempted to port Level 3 to the PS4. The performance was terrible. I am working through a guide online to improve the performance but so far, the improvements have been fairly minimal. I think I will need to add more walls to box in each section of the level so that occlusion culling can work better in this level as it is currently quite open. Using the Unity profiler, I noticed that the massive frame spikes we were experiencing seemed to be caused by garbage collection. I researched how I could reduce the amount of garbage our code was generating. We were already caching much of our data so most of the garbage was generated by creating new strings, concatenating strings and using yield return 1 instead of yield return null in coroutines. After spending time in many of the game’s scripts I was able to minimize the frame spikes caused by garbage generation.
Another performance boost came from using Unity’s occlusion culling. I set up my level to support occlusion culling by using mountains and other assets to break up the level. The resulted in a not insignificant performance boost. A variety of fixes were made to the grappling this week. The grapple indicator was improved with new assets to make it easier to read. The indicator handles onscreen in-range, onscreen out-of-range, off-screen in-range, and off-screen out-of-range. The way that pushing and pulling when the player is too close or too far from the grapple point works has been changed. This improves the smoothness of the motion while preventing players from getting pushed through walls. Additionally, Klepto’s mechanical arm has been improved to be more stable. The tutorial signs got more character by giving the sign the ability to face Klepto when he is in range. I also attempted to make the text feel more like it is coming from the sign by making it the same colour and making it move in the same way. Finally, I also improved Dylan’s respawn loading screen by using a UI mask and portal image. This week I designed and built a new level. Because I love the grappling mechanic so much, I wanted to explore this more, with a new twist. I implemented two small expansions to grappling; moving grapple points and grapple pulleys. Moving grapple points test player’s reactions, as they are required to jump between multiple moving grapple points and avoid electric fences. When connected to a grapple pulley, the grapple pulley will be pulled down and the objects attached to the grapple pulley will be pulled up. For example, an electric barrier might be lifted up by the pulley to allow the player to pass under it. These new twists on existing mechanics allowed me to create an interesting level. In world 2, guards exist to chase the player after being absent in world 1. A few small changes to the guards were made to ready them for the current version of the game as they had not been used since vertical slice.
Improvements have been made to the game’s feel and player feedback. Crates and buttons now have input icons appearing above them, just like the grapple points. The camera now rotates downwards automatically when the player is falling. The grapple points now have an offscreen indicator when the player is close to a grapple point, but not quite in range and the smoothness of player movement while grappling has been improved. This week Klepto underwent a slew of minor changes to improve the game’s quality of life. Improvements this week include:
The camera autorotation was challenging to get right but arguably yielded the biggest improvement to the game’s quality. The need for auto rotation arose from observing the people playing with controller during playtests. Unlike while using the mouse, many players found it hard to move the camera while performing actions such as jumping. I had some code from when I attempted autorotation before but I improved it to make it smoother. I revisited Jak 3, Ratchet and Clank 2 & Sly 2 to analyse the nuances of their camera systems. They all behaved similarly, the auto rotation was almost always occurring but it was slow to give the player enough time to counter its effects on the movement direction. Additionally, if the player ran directly towards the camera, the camera would not autorotate. This prevents the player from running in circles as the camera attempts to move behind the player. I replicated these features into my camera system. The autorotation while grappling required more thought. The closest example was Ratchet and Clank but that game does not have grappling sequences as expansive as ours. Additionally, there is only one way you need to go while grappling, there's no need to choose your swing direction. The auto camera rotation in those games appears to work by pointing the camera towards the next grapple point when you connect to a grapple point. I implemented a system whereby a child transform of the grapple point can be aimed at the next grapple in the sequence. When the player attaches to the first grapple, their camera will automatically be rotated towards the next grapple point. Of course, if the player moves the camera manually, autorotation will temporarily be ignored. In certain sections of our levels, the player needs to chose where they want to grapple to. To accommodate for this, that child transform described before can simply be set inactive and auto rotation for that particular grapple will be disabled. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2017
Categories
All
|