it114 homework
it114001's Introduction
it114001's People
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)
Server confirms collisions and any important mechanics
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
Reconnecting without crash
Clients can disconnect and reconnect without crashing the server
Player Is in a team
Players get randomly split into two close-to-even teams
Implement different stats
Rate of fire
Hopper Capacity / “clip” capacity
Reload time
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
Implement deployables
Paint grenade (radius hit)
Turret (targets closest player within radius)
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
Message System
Client can send messages to the server
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
Server Can Be Opened
Server can be started via eclipse or command line and listen for connections
Identification of messages
Clients will have some sort of identifier to show who sent each message
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
Implement Capture the Flag as a game mode
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.