Giter Club home page Giter Club logo

final-stand's People

Contributors

aidan-mcgovern avatar co-go avatar just32 avatar

Watchers

 avatar  avatar  avatar

Forkers

xxbayxx69

final-stand's Issues

Character Movement v2.0

Objectives:
Make movement feel better to the user and balance the 'sprint'.

The current implementation of sprinting allows the user to sprint without any consequences. This is just a direct bonus, so we should not allow the user to do some actions while sprinting.

  • We could block reloads while sprinting?
  • We could introduce a stamina bar that is depleted with sprinting/jumping?

We should address the mid-air sprinting here as well lol.

Health Regeneration

Objective:
Implement health regeneration feature.

Details:
After a certain amount of time without being hit, player health should start to regenerate.

Enemy Path Finding

Objective:
Make enemies smarter.

Enemies need to be able to navigate the given map in order to avoid obstacles and find their way to the player. This could possibly be done using a NavMesh.

Weapon/Enemy Balancing

Objective:
Balance weapon damages and enemy health-per-wave to make the game fair and enjoyable to the player.

Responsive Health Bar

Objective:
Make the player health bar reflect the amount of health remaining.

Right now only the text changed on the health bar.

Weapon Ammo Cap

Objective:
Set a cap for the amount of reserve ammo each weapon can have in player inventory.

  • Set ammo number

  • make sure walls don't let you buy too much ammo

Zombie Death

Objective:
Add animation for zombies on death.

As of now, enemies simply disappear when health reaches 0. They should not disappear until after their death animations.

More/less damage to limbs

Goal:
When a user fires a bullet and it impacts the different body parts (legs, arms, chest, head) to be able to keep track of these and deal the appropriate amount of damage.

Possible Solutions:
Start with just the head, splitting the existing capsule collider into an additional spherical collider for the head and integrate it with the EnemyController and WeaponController (deal more damage when hit.gameObject.CompareTag("head") or something)

Basic Enemy Behavior

Objective:
Get basic enemy movement and animation working.

  • Enemy should turn to face player

  • Enemy should move towards player until it reaches them

  • Appropriate animations should be used

Weapon effects

Objective:
In order to make it more clear to the player what their inputs are doing, we should look at some animations and effects for the weapons.

  • Bullet impacts: these aren't necessary, but they are fun and can make the environment/enemies feel more "shootable"
  • Muzzle flash: I personally think this one is important, makes the gun feel like it has some hitting power
  • Reload, Firing, Swap Animations: These can be hit or miss, I don't entirely know how impactful they will be, but they certainly won't hurt to have.

These should be included as modularly as we can, as most weapons will have to import these assets.

Weapon ammunition system

Objective:
We can't have infinite bullets!

Weapons should have

  • Bullets in a magazine
  • Magazine size
  • Reserve ammunition

Reloading should return the leftover ammo to the reserves, then take out Math.min(MAG_SIZE, RESERVE_AMMO) from the reserve ammo and place it into the current magazine.

Ideally, this system could also be integrated with a UI to show the player how many shots they have left.

  • Show a reloading animation by the crosshair
  • Show (GUN_NAME CURR_MAG | RESERVE) ... i.e. (Pistol 8 | 60)

Player Stats

Objective:
Add player stats to pause screen.

  • Kills
  • Score
  • Anything else interesting

Swapping Weapons While Reloading

Bug:
If the player switches weapons while reloading, the weapon that is swapped out breaks. If ammo was at 0, you can no longer reload. Also, the reload animation becomes stuck mid-animation. It is more obvious on the P90 than the pistol.

Objective:
Allow player to switch weapons while reloading without breaking the guns.

Zombie moving while attacking

Bug:
When attacking, zombies continue to move toward the player, as if still walking.

Fix:
Zombies should stand still while attacking in order to give the player a chance to escape damage. Implement something to stop zombie motion while attacking.

More Guns

Objective:
Add more gun types to the game and animate them.

Interactable weapon pickups

Objectives:

  • Interacting with the environment (Raycast while pressing 'E' ?)
  • Make prefabs for each weapon so it can be interacted with (purchased)
    • This also will mean weapons will need a "value" to go with them

Uses:

  • These prefabs will be on walls and/or in our version of "The Box"
  • User can hold (2?) guns, so they need to be able to purchase and swap out weapons

PowerUps

Objective:
Zombies should have a chance to drop effects like Max Ammo or Speed Bonus that will give the player benefits.

  • Modify the PlayerController to manage these effects
  • Add in a new PowerUpController that can be attached to powerup objects to manage them
    • It should manage the lifetime (maybe blinking?)
    • Interact with the player's methods via a trigger

ADS System

Not sure if this is possible with the current models that we have, but being able to be more precise would tie in really well with #12.

  • Zoom FOV
  • Center gun under the camera
  • Lower movement speed (block sprinting? #6)

Weapon projectiles collides with character model

This happens mostly when jumping around, facing downwards. I believe it hits the own players' capsule collider. See the video below for more information

Suggested Fix:
Look at where the raytracing originates from (change to be the barrel of current weapon)?

GunSelfCollision

Player Death

Objective:
Disable all player actions on death

As of now, player can still shoot, reload, look around, etc. while dead.

Weapon Impact Forces

Weapon impact on the enemies is broken due to the way enemies move around using CharacterControllers. If we still want this mechanic in the game, we need to find another way to implement the impact force, or another way to implement enemy motion.

Player Standing on Enemies

Bug:
Currently, players can jump onto the heads of zombies and stay there, making them invulnerable to attack.

Fix:

  • Players should not be able to jump from the ground onto the zombie's head. Possibly lower the jump height.
  • If a player manages to find their way onto a zombie head, they should not be able to stay there. Push them off or make them fall through somehow.

Purchasable Doors

Objective:
Implement doors that can be opened by spending a set number of points.

Spawn Pad

Objective:
Create an object that allows zombies to spawn at its location.

  • Should be invisible
  • Should be made into a prefab

Find Enemy Animatons

Objective:
Find and import animations that will work with our current enemies. We need animations for:

  • Idle

  • Walking

  • Running

  • Attacking

  • Dying

These are the bare minimum animations needed for proper enemy behavior.

Weapon Swap Animation

Objective:
Give weapons an animation when they are swapped in and out.

Weapons currently disappear/reappear when being swapped. Needs to look like the character is putting away one weapon and pulling out another.

Wave System

Objective:
Add a zombie wave system that effects spawned zombie stats.

  • Add UI element to display current wave
  • Specify and keep track of number of enemies per wave
  • Ensure wave number effects zombie health/speed
    -Should be a short delay between waves

Weapon Fire Sound

Objective:
Figure out how to add sound when a weapon is fired.

Having sound would be nice. A silent game is lame.

Points System

Objective:
Set up a scaffolding point system.

  • Basic UI for points
  • Gain points from killing zombies
  • Spend points on buying weapons

Zombie Attack

Objective:
Implement zombie attack sequence when enemy is in range of player. This includes:

  • An attack animation for the zombie character
  • The player taking damage when hit by the zombie

Character Movement v1.0

Objective:
The character should be able to move fluidly

  • Allow user to jump anywhere (previous bug with not being able to do so when against a wall)
  • Control movement mid-air with less mobility
  • Sprinting

Most of the above can be assisted by transitioning to a CharacterController.

Weapon inventory system

Objectives:
We will need some sort of basic weapon management system for when players will swap out their weapons.

  • Starting with (2?) weapon slots for now
  • Migrate from currently only having one weapon hardcoded
    • Add a second weapon
  • Split the existing WeaponController into InventoryController and WeaponController.
    • InventoryController will have references to every possible weapon, with more information specifying which weapons are currently equipped
    • InventoryController will manage which weapon is equipped and forcefully cancel reload/fire animations on swapping (if needed).
    • WeaponController will be a general use class on every weapon that allows adjustment of things like damage, impact force, ammo capacity, etc.
    • WeaponController will also manage the shooting and reloading of the weapons

This should also be integrated with the UI to show the user which weapon is equipped or available to equip.

UI scaling on different sized screens.

Not sure how this works in Unity, but let's see if we can set up constraints or scaling properly before we develop the UI too much more. See the below image for more information.

Screen Shot 2020-05-08 at 3 43 00 PM

(Note the paused "BG" should be full-width, full-height and the other items should be closer to the bottom-left corner).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.