Giter VIP home page Giter VIP logo

it114001's Introduction

IT114

Reynaldo

it114 homework

it114001's People

Contributors

reymarias avatar

Watchers

 avatar

it114001's Issues

Client Can Be Opened

Client can be started via eclipse or command line and connect to the running server

Server UI

Create a UI Page/Panel for connecting to the server
Username
Password (tentative)
Host
Port

Teams are deciferable

Players will get a team color/flag assigned (a letter or color to start out since there’s no UI)

Scoreboard Placeholder

Following the payload concept begin implementing some of the core functionality
Payload Sample: Payload { type: (direction, position, shoot, team), x: 0, y:0, r:0}

Player Collision (Y/N)

Players need not collide with other players
If you decide to have player collision, make note of it

Capture keyboard input

WASD for movement
Pick one
Arrow keys for aiming
Fixed direction changes
or
Left/right arrow rotates player at constant speed
Mouse for aiming
Pick one
Space to shoot
Mouse click to shoot
Function must send “intent” to server, server must calculate intent and broadcast it to clients if it’s valid; otherwise drop/ignore

Projectiles collide only with Players

If you decide to have projectiles hit projectiles make note of it and make sure the current player’s projectiles don’t have weird collisions with other projectiles from the same player

Gamephases

Keep track of different game phases (Lobby, Game, End)

Hitpoints

Determine # of hits to count as an “out” (i.e., 1 hit and out, 3 hits and out)
Create a function that can easily be called to test the functionality of “being out”
Client should still be connected but their player shouldn’t be controllable
Optionally you can hide the player but it won’t be visible for this milestone

Game Events Testing

Record and output the major actions of the game (full testing may not be possible at this point)
PlayerA hit PlayerB
PlayerA got PlayerB out
PlayerA is the last one standing

Ammo

Players have unlimited ammo with a consistent rate of fire and no cooldown
If you diverge from this, let me know the differences

Game Flow

Round starts
Players are spawned (pick one):
At Random
At specific point for each team
At random within specific area for each team
When all players are spawn controls are enabled
Teams compete to eliminate players
Hits and outs are shown in the event text area
Points are awarded accordingly
Game goes until time expires or an entire team is eliminated
Team with highest score wins if timer expires (tie if scores match too)

Game UI

Create a UI for the game area
List the players
List their scores
Group them by teams (or color code them by team)
Show the round countdown timer
Show the team scores
Have a text area for game events
Have an area to draw the game
Players may be top down circles with a line drawn to denote direction they’re facing
Projectiles may be smaller circles
Projectile colors should either be team color or random color
Projectiles despawn on hit or off screen
Players must stay in bounds of the screen
Force a set screen size for “fairness” across clients
Show player names above their player

Round Timer

Rounds last X minutes or until a team is completely out

Message Board for Lobby

Server can broadcast messages to all connected clients of a particular Room

Server will implement the concept of “Rooms”, for this milestone only “Lobby” is needed

Server Rooms

Server will have the functionality to switch users between “Rooms”
(i.e., all start in “Lobby”, but can then create or join existing rooms to be with a particular group)
Rooms will not have cross communication

Class Preparation

Prepare the following classes
Player
Try to include properties and methods you anticipate you’ll need
Projectile
Try to include properties and methods you anticipate you’ll need

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.