Wednesday, August 22, 2012

New Title Screens

The past few days, I spent a lot of work redoing and re-redoing the title screens. I admit, I don't have any artistic talent but I have spent a fair amount of time toying around with Photoshop and I've picked up on a few tips and tricks to make something decent looking.

First I started out with a simple orange background with transparent gray and a font change.
Old title screen, a little borring.

New title screen with moving background.
I decided to redo this by keeping the buttons but changing the simple background with a moving one of  a blurred image of one of the maps. The map moves slowly back and forth with a animation component.

I also improved the method in which the loading was displayed. Previously, I had a complicated system where a black background and loading texts were activated as GUITextures and then the scene with the map was loaded with the camera from the title screen not being destroyed. A few seconds later the Loading GUITexture would turn off and a Touch to Start GUITexture would be loaded and the player could touch it to start the game.

New select player buttons, instead of the 3D models.
This system created a lot of gaps and was mostly unreliable. Instead the new system in use now is the scene is loaded with the HUD camera of the map scene looking directly at a few planes that have the black background and loading text. A few seconds later, when the level is loaded, the player will be able to touch the text to start the game. This is a much more solid approach as there is no discontinuity between the items the player needs to start the game and the scenes being loaded.

Also, this morning, I created a few loading screens so the player doesn't have to stare at a black screen while waiting. The corresponding loading screen is shown depending on what character the player has selected.

Wednesday, August 15, 2012

How I Doubled the FPS of my Game

The past few days, I've been working on getting the frame rate of my game up since when there are lots of zombies spawned, the frames per second dropped so low on mobile devices that it was unplayable.

So I set out to create some dramatic changes in my game. First thing, I created a backup of my game in case anything went wrong. Then I did what I should have done from the very start but I did not because I was fairly unexperienced in how to edit UV meshes. Previously for all my FBX files imported from 3DS max, I applied a different texture, each with a different material, to the planes. This results in one draw call for each material. This means there is at least 4 draw calls for each zombie (arms, legs, body, and head) and many more for each floor tile type.

I solved this by recreating all the FBX files and redoing all the UVW maps. I did this three times over for the three groups of FBX files I had: scene prop meshes, zombie and player meshes, and ground meshes. Each of the objects from the groups had to be organized into their own little area from the UVW map: The bottom-left 1/8th is given to one type of ground, the middle-bottom 1/8th is given to another type of ground, and so on and so on. Each UVW template is rendered out and then using Photoshop, the templates are combined into one large 1024 x 1024 and then I can add my textures into each place. This was the hardest part for me to understand when I was learning.

Then the new meshes from 3DS Max now have to be reexported with their new UVW mapping information. So yes, this means there will be more meshes in your project folder but there will be only one material that is shared between the meshes and so the objects will be batched, significantly improving FPS and decreasing draw calls.

As you can see from the first image, I compared the FPS and draw calls from the very first backup that I performed before redoing all the UVW mapping on most of my meshes and I was able to cut the draw calls in half and double the FPS, not bad for a few days of work.

Now I still have to redo the meshes for the houses, I'm thinking about repainting the texture for the brick building, not sure yet though.

Sunday, August 12, 2012

Hand Painting Textures

Today I picked up my first drawing tablet, it's the Wacom Bamboo Create. I got it for $175 but if you should around you can get it for even less.

Using a drawing tablet is really weird at first but after an hour of playing around with it and tweaking the settings, I  think I've got it down. Here is my very first texture I created following this tutorial:

Not too shabby, if I do say so myself -- at least for a first time using a drawing tablet.

If you need the texture for any of your own projects, private or commercial, feel free to use it.

Saturday, August 11, 2012

New Dramatic Trailer

Created a new dramatic trailer for the game yesterday, now live on YouTube.

Monday, August 6, 2012

Big Weight off my Shoulders

Yesterday and today morning I finished the last big part of the game before final completion and testing: I finished the game controller scripts that controlled three of the five game modes. The Rain and Search and Rescue game modes required two game controller scripts. These control how the enemies are spawned as well as the humans in the Search and Rescue modes. The game controller scripts turn themselves on or off depending on what mode the player selects in the start menu scene.

So the final pieces are getting finished and the game is turning out very nicely. This afternoon I also implemented an incredible tool for collecting analytics for your game. The tool is called Lumos ( )and allows you to get detailed information about your game or app users within minutes of setting it up. It works seamlessly with Unity, just import a .unityasset file and enter in your secret code. The best part is it is completely free. The analytics allows you to see the OS your players are using, their RAM, CPU, total players, new players, and so much more.

Saturday, August 4, 2012

Level Up!

This afternoon, I knocked out a new idea I got last night. Originally, the weapons were going to be purchased at any time durring the game, when ever the player had enough money to buy the gun and enough bullets. Now there is a simple leveling system. A lower level player is barred from purchasing higher level guns until they level up.

Leveling up is achieved simply by killing more zombies, the more you kill, the more levels you gain, and the more weapons are unlocked by the weapons dealer. When you level up, the notification center will pop out as well as a particle system around the player will start (below).

Friday, August 3, 2012

New Super-human Character

Today, I completed creation of a fourth player that will give the player super-human abilities. The new character, dubbed QZ-199, after unlocked by reaching a certain Day in Classic mode, will give the player full stamina and speed.

Thursday, August 2, 2012

New Start Screen and Screenshots

Not much work done today, I've got the beginnings of a new start background, I'm not sure what I want to do with it yet but I'm sure I'll figure out something.

So here are some screenshots of Blade blasting zombies with the PA-12 doubled-barreled shotgun.

Wednesday, August 1, 2012

Fixed Shooting, now with Double Barrel Shotgun

Today morning, I fixed the shooting element of the players bullets and coincidentally I was also able to solve why the police officer shoot was not working, two birds with one stone. Perviously, the bullets would instantiate themselves in the correct place, but then in the next frame would move to a completely different place this would happen more frequently when the player was rotating. I solved this problem fairly simply after lots of debugging, turns out I had to place change the velocity of the bullets in FixedUpdate() instead of Update().

Double-barreled shotgun

I also coded in the double barrled shot gun which looks awesome now. Now I'll be fixing the rotating gun viewer in the Pause menu, the animation for it seems to be acting up.