Crab Meat: Assets, Post Effects and Mobile Optimisation

Tiger Collins
Jul 27, 2017 · 5 min read

Over the past 7 days, I’ve been working with my team to try and have something presentable for the game’s prototype. I’ve had time to finish my assigned assets, improve lighting and try improving the game for mobile play.

Assets
I’ve created every placeholder asset that is needed for the prototype before next weeks developer diary. I’ve been using Magicavoxel during the development of Crab Meat and I have iterated on previously created assets.

3 Assets I’ve modified this week

The asset on the far left of the picture is the portal to the next level. I decided to make the portal colour blue as the idea is that the player is underwater and although it cannot be seen in the picture above, there are particle effects instantiating from the asset to help the player identify where the end of the level is.

The asset in the middle is an ordinary ground block that I created last week. However, when my peers saw the project at a lecture on Wednesday, they stated that it’s hard to tell that each tile is actually a grid tile. I realised that I had to make it clear on the ground where the tiles are, so players can move around easily and idenitify where objects are. To remedy this, I used the colour picker tool in MagicaVoxel to get the colours that I used to create the asset originally and then I chose the colour next to it to give the asset an outline. Doing this made it clear where tiles are in the world without being too eye grabbing or annoying to a player.

The last 3D asset that I have modified this week is the boulder. In Unity, the box collider for the object was 1x1x1 which made it difficult for the asset with rigidbody to fall into the holes. To fix this, I changed the asset from being 15x15x15 in MagicaVoxel down to 13x13x13 in MagicaVoxel so that I can make the box collider smaller so that it can fall into the holes around the world.

I’ve also created a blue to transparent gradient using the gradient tool in Adobe Photoshop to use as a filter. I felt the filter was needed because the player cannot perceive depth with an orthographic camera, so the gradient was needed to show that the water/atmosphere was thicker at the top of the screen.

Post Effects

Post Effects for Crab Meat

These are the post effects I’m using for Crab Meat — Ambient Occlusion and Depth of Field. My team member, Sean wanted shadows to not cast because he believed that it made the game look bad. I do think that shadows are needed for most game projects, especially a game such as Crab Meat but I did have to admit because we were using one camera angle and with an orthographic view, the lighting wasn’t too great. So I imported the Unity 2017 post effects package and added Screen Space Ambient Occlusion and Depth of Field Deprecated then added it to the Main Camera. With the Ambient Occlusion, crevices and short gaps are darkened with shadows which is the exact thing needed to improve Crab Meats lighting.

No post effects versus post effects.

Depth of Field was an odd one because I knew that it would blur particular distances planes for a more cinematic look to a project. However, that really wasn’t needed for Crab Meat, so I opted to use the Deprecated Depth of Field which is the version introduced in Unity 3.14 and is missing features that the new Depth of Field post processing effect has. The Deprecated Depth of Field adds a shadow glow effect from the outsides of objects which is something that I couldn’t find on the recent Depth of Field Unity script.

Mobile Optimisation
Developing for an Android Tablet is hard when no one in your development team has easy access to an android device. We’ll be playtesting on Android Tablets provided by SAE, but it’s hard when you can’t develop with it.

Once I pushed the post effects commit on git to the repository for Crab Meat, one of my group members said that his project was only getting 10fps and pointed out that his laptop is most likely better than most tablets. So I removed motion blur and the newer depth of field post processing effect and that seemed to have fixed the issue. This had me testing different resolutions and growing curious to what tablet SAE is able to provide for playtesting. When the team member was receiving 10fps, we were viewing the project in 1440x2960 — as we were developing for an Samsung Galaxy S8 — which was most likely be the issue but I needed to know the resolution. As of writing this developer diary I have enquired about the tablets but have conducted my own research on the Android SDK and average Android tablets. I found that most android tablets are around about the Samsung Galaxy Tab 3 range, with a resolution of 1200x800 which is a resolution that should allow for us to make UI adjustments, camera adjustments and add most post processing effects.

I also looked into the recommendations that Unity provides for optimisation in its documentation. It essentially said that a high batch count would be intensive for a CPU — which would be the case with a mobile device — and Unity recommends that I set objects to static but that didn’t seem to help the batch count and I didn’t notice any noticeable differences with my frame count.

Before Next Week
In next weeks developer diary, I plan on receiving player feedback and talking about the feedback that we would have received by then, and being able to talk about the changes that The Stern Buoys (my team) have made because of it. I plan on finding something to script as I haven’t done too much this week besides adding and removing objects into the CSV Level Load Script as well as the Scene Controller.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade