Thursday, November 22, 2012

Hand Painted Low Poly Rocks

Today, I tried my hand at modeling and texturing some hand painted rocks.

I used this video as an overview to model.

Here is the download if you would like to use these rocks in your own project. The file contains a compressed file of 3 different rock models and one texture to be used with all of them.

Improved Title Screen

After a while of not working on the game for awhile, I started up again yesterday with a new start menu.

Also, I've upgraded the project to Unity 4.0.0, looking forward to seeing all the new features!

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.

Tuesday, July 31, 2012

Progress of It's Raining Zombies

I have been working on It's Raining Zombies for over a year now and since it is nearing completion, I have posted a video showing how it has changed over the months. The concept I started with is still the same, a top down shooter but the story and game dynamics have completely changed.

Saturday, July 28, 2012

Meet Your Enemies

The enemies, one of the most critical parts of the game. The user will be seeing these guys everywhere so it's best to make these as solid as possible. It's Raining Zombies has 5 different enemy zombies, each one with their own special attributes, each one with a reason to be feared. The enemies are driven by Unity's Nav Mesh Agent. This allows them to efficiently navigate towards the player without getting stuck behind a wall as a normal follow might do.

Let's go in depth with these guys:

Enemy 1: 

This friendly face is the first enemy you will encounter, not too fast, not too hard too kill. Easy, right? That's until they decide to bring all their friends. This enemy is a master at being able to swarm around a player until there is nothing to do but fire your last bullets and die.

Enemy 2:

This business man is dressed for the job at hand, to get your brain. Slightly faster and twice as  strong compared to his cousin, Enemy 1, he will lead to your downfall.

Enemy 3:

He may be slow but this zombie uses his size to his advantage. Able to simply absorb many bullets without flinching, you better be armed with more than a started pistol if you don't want to be crushed.

Enemy 4:

What happens when the police become zombies? Let's just say that you should be near the health shop when this guy decides to show up. Fully equipped with a tracking system and an unlimited supply of ammo, this is truly the police officer from death.

Enemy 5:

This orange beast is incredibly quick, you'll need to be a pretty sharp shooter because a few missed bullets could be lethal.

The Idea and Story

So first thing is first, It's Raining Zombies is a twin stick shooter created in Unity 3D that will be initially released on the Android Operating System. I have been solely developing this game for more than a year now.The game was inspired by mobile games like Minigore and Guerilla Bob as well as Minecraft.

Preparing for battle.
The story is set in a modern day zombie apocalypse: after a horrific car crash the driver is stuck by lightning and zombies of all kinds rain from the sky leading to mass pandemonium. You and your friends have set up temporary shelter in one corner of the town but you are the only one brave enough defend the town. Set out to defend your home town. With the support of some of your neighbors, who have decided to capitalize on the sudden outbreak, destroy all the moaning monsters!

IRZ started out as a simple idea in my head: 1 character, 1 map, a few guns, and lots of zombies. But a year later, it has grown to be much more than that. The game now features 3 characters each with their own strengths, 2 completely different maps with 6 game modes total, 6 guns including a mini gun, and 5 zombies.

Townees capitalizing on the situation.

A Little Late...

Well, it's a little late to start a development blog since the game is almost finished (I think). But none-the-less, I will update this blog with new developments in It's Raining Zombies.

Here's a little teaser from the editor:


The enemies and their dead counter parts:

The main menu:

Infection City map:

Start scene: