polyknights_clean's Introduction
polyknights_clean's People
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.
walker HP bar
In the HUD, show the walker HP.
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.
When players are dead, they are dragged with the camera
The camera should not snag on dead players, instead they should need to press a button to respawn near the torch walker.
Input manager...
We need one, so any controller can work with the game.
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.
HUD - basic pause menu
suspend game, either return to game, or reset to title.
Player turns north while jumping if no directional input is given
player does not dash forward during dash attack while standing still
Multiplayer - choose player count before starting.
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.
When players are dragged by the camera, they can fall through the floor
Not sure what the solution should be here yet...
show HP per player.
In the HUD, list the players and their HP count.
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.
When players are dragged by the camera, they can snap to random positions and still get stuck
Constrain players to camera
Players should not be able to travel outside the visible bounds of the camera.
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.
Players should fall to death
If players fall, and there is no ground beneath them, they should die.
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.
Player needs to be able to strike downward
Useful for when the player is on top of enemies.
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!
Camera Target should only move so far away from the walker
Create a max distance the camera's focus can be from the walker, so the walker can't end up on the edge of the screen for any reason. You need to clearly see what's around them at all times.
Using the player factory prefab in arena mode causes crash
Because the camera script currently requires the players to be there on awake.
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.