Git Product home page Git Product logo

polyknights_clean's Introduction

polyKnights

polyknights_clean's People

Contributors

jeremykuhn avatar adrian-alberto avatar

Watchers

James Cloos avatar Jillian Ogle avatar

polyknights_clean's Issues

Basic Survival mode

2 options:

Protect the walker for as long as you can. Enemies keep spawning at higher rates until you die.

and / or:

Players fight for their own survival against the horde, you can revive each other until no one is left alive.

Constrain player to level bounds

Players should not be able to fall off the edges of levels. I'm not sure what the final solution here should be, so it needs research. I know manually adding colliders is pretty cumbersome. It may require a tool if that is the final method.

Player Unspawn

We need a state for the player to be in when they are dead, and need to be removed from play, thereby removing them from any other functions using live players.

1st place we need this is in walker mode, where a player is dead, and no longer in camera bounds.

Player defense stance.

Press a button to defend while grounded.
If in the air, this should also halt any forward momentum.
Player should lock direction towards defended position, and strafe slowly.

Game Over Screen

When you die for whatever reason, the game over screen pops up, you can either replay the current setting, or go back to the main menu.

enemies not fully oriented to the ground surface.

in baddie.cs, a raycast is projected downward to return a normal for the enemy to orient to, which should produce the effect that the enemies are parallel to the surface they are on. The ground orientation is currently only working in one axis, either x or z, but needs to work in both at the same time.

Camera Control

The camera should stay on the average location of all the players + the walker, however be clamped to a certain range limit.

The camera should zoom in to a degree when everyone is close together, and zoom out if everyone is spread out (smash brothers style).

Player death

When you run out of HP you die,

If walker is present:
If the walker is still alive you can respawn after a certain time.

If other players are still alive they can go revive you.

If no walker:
Players can revive each other until they are all dead.

Level / Game-mode selection

After the player select phase which needs to be completed first:
#19

Once character selection phase is complete, we need a basic list of game modes and levels to be chosen.

So far there are two modes to consider:
Game mode - where we put the normal levels, currently "terrain test" being the only one working.

Arena mode - currently being worked on: #14
"openArena" scene can be used for now though.

It would be great to assign custom strings for the level names, as the actual scene name in unity might change.

Refactoring enemy behavior....

Enemy stats and mechanical behavior should be broken up into 2 different scripts.
All enemies always use the same "stats" script, and inherent from the same behavior script.

Individual behaviors, such as movement, or targeting, should be stand-alone methods that can be strung together to make new enemy types.

Player respawn...

Players should be able to respawn at either a spawn location, or near the walker under certain circumstances.

If a player falls to death, they should definitely respawn immediately.

Spawn Player v1

Create a game object that spawns a player and assigns components,

Use the "player" prefab found in "terrain Test" scene to base this from.
Each player needs to be assigned a player number (thisPlayer enum from damageControl Script),
The player number is currently tied to which controller is used for which player(I want to change this later)

Each player will eventually have a class assignment (swordy, thief, etc... ), right now myClass enum in playerMovement script is set to swordy by default. There will be more classes soon.

Each player also needs a color assigned, this color will be their default material color

Variables that use player color:
Player Prefab: Player / chickFillet / chickFillet_mesh (skinned mesh renderer component) material,
Player (player movement component) storeMat,
CameraMan Prefab: cameraMan / battleCam / playerStats / playerInfo (TextMesh component color),

It's ok if this "player spawner" has to be manually edited to assign color and number, eventually we will make a more dynamic system. I just want to have to make complicated changes to character prefabs 8 times which is what i am currently doing.

Defensive knock-back

While defending, the knock back from enemy attacks should be proportional to the enemies power and the players strength / stamina.

Title Screen - Add player selection

Add the ability for players to press "start" and join the game on the title screen.
Players can then choose a class, and a color.
Players will then press the "ready" button to confirm the game can start.
Once all players are confirmed, the game will proceed.

Bonus points for adding a timer / time limit for players to finish their choices.

Procedural enemy spawner for arena mode

create a procedural enemy spawner for area mode.

There is a scene currently called Open Arena you can copy and make your own version to test on in Assets/Scenes. You can delete the enemies in the arena and start from there. There is already a player prefab with the camera set up nested in the scene.

There are 3 enemy prefabs you can use in Assets/prefabs:
charger, bigCharger, and tempShooter

The idea is to just have all the players in a single arena, and have waves of enemies try to wipe them out in ever increasing numbers and power. The enemies already automatically target the closest player to them, so you don't have to mess with any of that. There isn't a whole lot of enemy behaviors to work with yet, but whatever solution you have should scale to accommodate more as it comes.

It's up to you how you want the enemies to spawn, along with the flow / presentation. This mode should not require anything that breaks the rest of the game.

We are currently lacking a game over screen, so i suggest putting a scene reset option in there or something if all the players are dead. It can get fancier later.

Let me know if you have any questions!

Refactoring player behavior.

Each separate type of action a player can do needs to be a stand-alone method that can be assigned to any available action key. Right now key assignments are "Fire1" through "Fire3", but we can make more.

The action assigned to the action key should be swappable on the fly, so i can turn a melee attack into a projectile magic attack at any point in the game.

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.