Code Monkey home page Code Monkey logo

three-fps's People

Contributors

hmallen99 avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

wahello

three-fps's Issues

In-Game Settings UI

  • When the player presses escape, it should present a menu with settings
  • There should be a button to return to the home screen

Zombies

Zombies have variable characteristics according to their color:

  • Green: Slow, low damage
  • Yellow: Faster, low damage
  • Orange: Faster, high damage
  • Red: Fastest, high damage

Zombies should follow the characters across the map, and should be able to move nearly as well as the players

Home Screen

Layout:

  1. Title with game name
  2. Big Play button to enter game configuration screen
  3. Tabs for avatar customization, loadout selection, skins/weapons/character shop, settings page
  4. Cool background

Tab Menu

  • When the player presses tab, they should see their score and opponent scores, with K/D/A, ADR, etc.

Add a Gun RayCaster

The gun should send out a ray with a raycaster when the user clicks. Objects should have a callback to set their health with the value of the gun's damage.

Character Selection Gameplay

Mechanism:

  • Players each have their own avatar, but they can select a character loadout
  • Characters have special perks
  • Each character can only be chosen by one player
  • Characters do not affect weapon loadouts
  • New characters can be unlocked with XP or Purchases
  • Each player has a skill tree, with perks that can be unlocked as they progress through the game.

Characters:

Default (4)

  1. Super speed - Add some special boots to a character
  2. Triple jump
  3. Extra health
  4. Critical hit boost

Unlockable

TBD

Weapon Loadout Screen

Layout:

  1. Display all of the weapons that a user has in a carousel with an icon of the weapon
  2. A modal displaying the weapon appears in the middle of the screen. It should have the following tabs:
    • Display weapon attributes
    • Display upgrade path
    • Select skin
  3. Selected weapons appear at the bottom of the screen. Select one of the weapons at the bottom and then select a weapon from the carousel to change the loadout

Create Player Class

The Player class should keep track of attributes like health, ammo, position, etc.

Zombie Mode Gameplay

Zombie Survival Game, similar to COD Zombies or Left 4 Dead
Two game modes:

  1. Survival: Survive as many rounds as you can. Characters start out with default perks, and can upgrade their skill trees as they progress through the levels. Ammo is scarce, health regenerates.
  2. Speed run: Complete the objective as fast as possible. All perks are available, you can configure how you choose.

Weapon Gameplay

  1. The player can configure their equipped weapons before joining a game.
  2. Weapons will have different abilities and characteristics, such as damage, fire rate, auto vs. semi-auto, etc.
  3. Weapons will have an upgrade tree similar to characters, which players can upgrade throughout the game
  4. Players can get different skins for their weapons

Add shop

  • Buy weapons with in game experience points

Add a Terrain and Obstacles

Replace the flat plane with a bumpy terrain and obstacles. Have a reproducible way of recreating individual maps.

Game Score UI

  • At the top of the screen, the score for the current game should be displayed

Add tests

Problem

There are no tests, but there probably should be some.

Implementation Notes

  • There are some import issues with jest for the react-three/cannon module that make it basically impossible to test components that use it
  • In general, there isn't a good way to test these react-three components
  • Tests can be written for hooks and non-three components

Create Humanoid Player Model

Either import or create humanoid player model to add to the Player class. Leave the current sphere, but make it invisible and non-colliding.

This is only necessary if multiplayer is added, as you can't see yourself

Remove "any" type usage

There are a few uses of the typescript "any" type, which should be replaced with the actual types

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.