Documentation + User Guide


Cat With Guns 
Controls: 

WASD - Movement
Mouse 1 - Fire
E - Interact

"You are a genetically altered cat made by the government. Life was fine until they fed you 5 minutes too late...  NOW you must take revenge    on those filthy humans! Use their own firearms against them! 
  In Cat With Guns, you'll run and gun your way through a base swarming with enemies. Using a hand gun and you own movement and skill,    defeat your enemies and get a high score.  Don't get shot or let those filthy humans get too close!"

Final build compared to concept:

In the concept devlog I propose the ideas of various power-ups, extra weapon types, traps and currency in the form of points. While points do exist in the final build, they serve little more than just being the player's score. Pretty much all of those ideas fell through. The end result produced a the points system and a playable character that could shoot at enemies with a single weapon. 
As I state in my concept devlog, "Art could change throughout development." This did happen. A great example being the player sprite.

Original Cat sprite:

Current Cat sprite:

The graphical change came about from moving from Illustrator to PixelArt. I wanted a more retro sprite feel opposed to a flat coloured flash animation feel. 

The two standard enemy types I wanted to add were implemented in the final build.  At some point during the earlier stages of development I was considering a boss fight to the game though. The design of the potential boss I think comes from an the "Panzer Soldat" from COD: zombies with a cartoon-ish skull on the face.  

The boss enemy type never made it into the final game. I put this down more to trying to get the other features in first and ultimately having it be a extra if I had the time. Given this unit being my first attempt at game development, it wasn't likely to happen. 

By my first proper update devlog/non-concept build I stated that the next upload was gonna have the enemies and UI implemented. Half correct, enemies were implemented, although only one of them was. UI didn't get implemented until technically the 3rd build. Level blocking got implemented on time and quickly got a graphical update so I was able to for fill on that promise. 
Initial Door level blocking:
 

Far superior and graphically better version:

The changes here were done as a result of moving from placeholder to updated/final sprites. 

When implementing enemies, I considered drawing inspiration from "Enter the Gungeon" by adding special spawn in animations to the enemies. As it turns out, animation takes time, especially when trying to make it for a game and then needing to animate to occur at specific events. 

Other features that weren't added in the final build:

Sound and Music - I had some issue while trying to find royalty free sound effects that fitted the game. Music had the same category. In a worst case scenario I did attempt to try creating my own music for the game in FL Studio 20 but that idea was quickly scrapped due to time.

Decorations - Making various sprites for decor was very time consuming and I ultimately should've used a royalty free pack. 

Particle effects - This I could've added to give the damage or gun fire have a greater feel to it. 

Feedback summary:

To start off the feedback, I got good feedback saying that the games frame rate was smooth and there was no lag. I had asked the testers for feedback regarding enemy health stats as I wasn't sure if they were too high or too small. I was informed that their health was fine. I did however, slightly decrease the melee enemy health from 6 to 5 hits as that was the only one that a tester said could be made better. The Chase and fleeing behaviors of the ranged enemies got some great feedback from testers. 

Criticisms and suggestions I got regarding enemies attacks. Testers found that the ranged enemies bullets traveled too quickly and were too small. They found that it made the game unintentionally harder and that they were taking damage without even being able to see what hit them. I went and altered the bullets travelling speed and size while testing was still happening so I could get enough good feedback on the whether we had achieved a better spot for the bullets settings. Times 4 in size and half speed was where it fit best. 
Previous enemy shooting:

Current enemy shooting:

Asset List:

Programs used:
Unity Engine 2019 4.3f1 - Developing the game from nothing to something. 
Adobe Illustrator CC 2019 - creating the UI and the placeholder sprites. 
PixelArt (https://www.pixilart.com/draw) - web browser app that was used to create the later sprites you see in the final build. 

Cinema Machine/ main camera - to follow the player and display the game. 
Event system - control the various events in the game.
Canvas - contain all the UI elements and some of their functionality. 
Tilemap/grid: used to create the map the player traverses. 

Player scripts:
Aim and Move - used for the player to move the cat around the map and "aim' by looking at the position of the players mouse. 
Basic shoot - allowed for the player to press "mouse 1" and have the cat fire off a gun shot to fight off the enemies. 
Door interaction - as the name suggests, this allowed the player to interact with doors around the map. 
Player UI - used for controlling the players health bar. Really it should have been called "player health" or some sort of variation of that but it was originally intended to also control the scoring. Calls the "Game Manager" when health is 0 or less to restart the level. 
Bullet - a script that adds the functionality to the players bullets. 

Enemy scripts:
Nme health - this was used to set and edit the health of an enemy. Setting its max and current health. 
Nme chase - used only for the "Melee NME" variety of enemy. The script would make the enemy chase down the player. The script contains a movement speed value to can be edited. 
Shoot and flee - Used on the "Ranged NME" enemy type, the script would make this enemy chase the player but stop at a certain distance from the player and flee when the player got too close. The enemy would also fire bullets at the player. The script requires a projectile prefab to attached to it. A movement speed field ("zoom") is able to be edited to control how fast the "Ranged NME" can move. "Stop distance" and "Retreat Distance" control where the enemy will stop from the player and then retreat from when the player gets too close. The last field, "Shot time," is how often the enemy shoots its projectile. 
NME shots - Adds the functionality to the "Ranged NME's"  bullets. Has an editable field for the speed of the bullets.  

World function scripts:
Health Bar - controls the visual display of the players health. Decreases the percentage of the bar when the player takes damage. 
Player Score - controls the score text and adds to it when the player earns points. Funny enough, this script is on the score text on the UI canvas instead of the player. 
Spawn Enemies - used to spawn in the enemies the player fights. The scripts takes in an enemy prefab and then spawns them at the nodes attached to the script. An array can be edited for more or less enemies per room. 
Game Manager - restarts the level when the player dies. 
SceneSwitcher - taken from the practical sessions of the unit, I used this to transition from the title to the main game. 

All sprites used and not used in the game were created by me. Originally created in Adobe Illustrator before moving to Pixilart when upgrading from placeholder sprites. 

Sprites in use:
Cat_default (2)
Handgun
Melee NME
Ranged NME
HP bar 
Hp Border
wall
The floor
NME shot
Bullet
Cat With Guns Logo

sprites not used/from older builds:
Cat_Default (1)
Cat_rayRay 
Cat_dual_shottys
Cat_RPG
Door Placeholder
Floor placeholder
Wall placeholder 
Handgun_fire

References:

SceneSwitcher script - KIT109 Games Fundamentals, Lindsay Wells 2020. 


 

Files

Cat With Guns_Final.zip Play in browser
Oct 13, 2020