For Programming Challenge N. H. N. D. de Silva. Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and.

Slides:



Advertisements
Similar presentations
Global States.
Advertisements

Chapter 14 Infinite Horizon 1.Markov Games 2.Markov Solutions 3.Infinite Horizon Repeated Games 4.Trigger Strategy Solutions 5.Investing in Strategic Capital.
Introduction to Excel 2007 Part 2: Bar Graphs and Histograms February 5, 2008.
Chapter 11 Data Link Control
Games of probability What are my chances?. Roll a single die (6 faces). –What is the probability of each number showing on top? Activity 1: Simple probability:
Cs4411 – Operating Systems Practicum November 4, 2011 Zhiyuan Teo Supplementary lecture 4.
Inter Process Communication:  It is an essential aspect of process management. By allowing processes to communicate with each other: 1.We can synchronize.
Online Chess Project 3 Due date: April 17 th. Introduction Third in series of three projects This project focuses on adding online support –2 players.
VOCABULARY  Deck or pack  Suit  Hearts  Clubs  Diamonds  Spades  Dealer  Shuffle  Pick up  Rank  Draw  Set  Joker  Jack 
Introduction to Excel 2007 Part 3: Bar Graphs and Histograms Psych 209.
Project 4 Project 4 Supplemental Lecture Joe Mongeluzzi Jason Zhao Cornell CS 4411, October 26, 2012.
In S.T.E.M we do Science, Technology, Engineering, Maths. So far we have only done Maths… We have also played many games in our sessions. Here are a few:-
Super Pong Andrew Dunsmore CSC436. Overview Purpose Design Specification Software Engineering.
1 BRIDGEPAD (BP) SYSTEM TRAINING Adapted for ScoreBridge Users By John de Ridder PSBC Revised 2 November 2009.
CSCI 6962: Server-side Design and Programming Introduction to AJAX.
Guide to TCP/IP, Third Edition Chapter 8: The Dynamic Host Configuration Protocol.
Civ89 Instructions for PowerPoint. Getting Started Civ89 is a game of military, technological, and economic conquest played with two people, identified.
How to make Space Invaders
Artificial Intelligence Lecture 8. Outline Computer Vision Robots Grid-Space Perception and Action Immediate Perception Action Robot’s Perception Task.
Introduction to Networked Graphics Part 3 of 5: Latency.
Welcome to the Manage Inventory lesson for the North Carolina Immunization Branch. Contents: Adding Inventory Modifying Inventory Inventory Reports **
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Introduction to Networked Graphics Part 4 of 5: Bandwidth Management & Scalability.
 Make sure you are subscribed to announcements on Moodle.  Activity 4 will be due 48hrs after your lab ends.
Sentinel Plan® Summit Bonus Index℠ INTRODUCING THE NEW Summit Bonus Index℠
Description, Classes, Interfaces, Hierarchy, Specifics George Georgiev Telerik Software Academy academy.telerik.com Technical Trainer itgeorge.net.
1 Network Layer Lecture 13 Imran Ahmed University of Management & Technology.
Math Games Compiled By: Joan Bartlett and Heather Bartlett.
How to make a Shooting Target game in Scratch!. WE ARE GOING TO MAKE A TARGET GAME. This game will have: A Target that will move when clicked. A Timer.
Chapter 4 Everyday Letters. Project 4 Objectives Identify letter types Structure everyday letters Format letters Determine when to use a form letter Identify.
Evoting using collaborative clustering Justin Gray Osama Khaleel Joey LaConte Frank Watson.
Guide to TCP/IP, Third Edition Chapter 8: The Dynamic Host Configuration Protocol.
Game Maker Terminology
Making Python Pretty!. How to Use This Presentation… Download a copy of this presentation to your ‘Computing’ folder. Follow the code examples, and put.
Games Development 2 Overview & Entity IDs and Communication CO3301 Week 1.
Networked Graphics Building Networked Virtual Environments and Networked Games Issues in Networking Graphics.
1 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Dynamic Host Configuration Protocol (DHCP)
Chapter 18 Host Configuration : DHCP
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Instruction Booklet.  Use the arrow keys to move your plane.  Don’t get hit by the rockets or you will die.  The level will last for 45 seconds.
Warlords Patrick Levoshko SE 558 – Multiplayer Game Design.
Lesson 2: Reading a program. Remember: from yesterday We learned about… Precise language is needed to program Actors and Classes Methods – step by step.
More on OO Programming Our programs will no longer just be a main method or a main which calls a collection of other methods –instead, a program will be.
Intermacs Form Download Excel Tutorial Pivot Tables, Graphic Tools, Macros By: Devin Koehl.
Learning to Program: Part 1 Scene Setup and Starting Animation by Ruthie Tucker and Jenna Hayes Under the direction of Professor Susan Rodger Duke University,
Firewalls A brief introduction to firewalls. What does a Firewall do? Firewalls are essential tools in managing and controlling network traffic Firewalls.
Lecture Focus: Data Communications and Networking  Data Link Layer  Data Link Control Lecture 22 CSCS 311.
Tutorial 2 Introduction to Android App Development Course: Network Protocols (NETW703) Department of Networks Faculty of Information Engineering and Technology.
Galactic Mail Part 2. Winning and Losing Exploding Asteroids Including Scoring Adding Levels And more.
How to create a basic game in Scratch. The Scratch Stage The Scratch stage is 480 pixels wide and 360 pixels high x increasesx decreases.
The Lovely Game of NIM. Version 1 - Classic NIM You will need seven objects, such as counters or blocks. It is a game for two players. Place the 7 counters.
1 © Process Software Corp. DHCP Failover Protocol Jeff DECUS Europe 2000 Thursday, 13 Apr :00 - 9:45.
Copyright © 2010 Pearson Education, Inc. Chapter 16 Random Variables.
Tank Game Part 2 of 6. Firing Shells Coming up… Players Scores Large Explosions Small Explosions Damage Health Bars Parent Shell Destructible Walls Reappear.
Grades update. Homework #1 Count35 Minimum Value47.00 Maximum Value Average
For traditional happy families, all the cards are dealt our evenly. Happy Families is a card game traditionally, played in the UK, with special packs of.
DATA LINK CONTROL. DATA LINK LAYER RESPONSIBILTIES  FRAMING  ERROR CONTROL  FLOW CONTROL.
The Stingray Example Program CMT3311. Stingray - an example 2D game May be useful as a simple case study Most 2D games need to solve generic problems.
Creating a Simple Game in Scratch Barb Ericson Georgia Tech May 2009.
Game Maker Tutorials Introduction Clickball IntroductionClickball Where is it? Shooting Where is it?Shooting.
March 1, 2016Introduction to Artificial Intelligence Lecture 11: Machine Evolution 1 Let’s look at… Machine Evolution.
Virtual World Architecture II
CS330 Discussion 4 Spring 2017.
Proposal for IEEE 802.1CQ-LAAP
Proposal for IEEE 802.1CQ-LAAP
Chapter 10 IGMP Prof. Choong Seon HONG.
Proposal for IEEE 802.1CQ-LAAP
Tank Game Part 2 of 6.
Tank Game Int 10 Unit 3 – Game Maker.
Creating a Simple Game in Scratch
Presentation transcript:

For Programming Challenge N. H. N. D. de Silva

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

Cross domain projects Software engineering Databases Networking Graphics AI! Same Game so tougher grading The LMS will be available....Soon

The game objective is; clients acting as “tanks” accumulating points while making sure of their own survival. The tanks are capable of shooting shells (bullets) and these bullets will move 3 times faster than a tank. The environment is made out of four kinds of blocks Brick wall Stone wall Water Blank cell

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

Server Client 1 Client 2 Client 3 Client 4 Client 5

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

A timer gets initiated when the first player resister for a game. When the 5 th player joins the game or in the event of the timer expiring, the server will issue the game starting message to all the players that are already registered with the server. As discussed before, any join request by a client hereafter until the end of the game instance will be rejected. The game will be played in a 20 x20 grid.

UI layerGame EngineNetwork Layer

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

JOIN# The client will have to send a request to the Server saying JOIN# The server will reply with one of the following replies Join accept message (explained in the next slide) PLAYERS_FULL# PLAYERS_FULL# - The maximum number of players are already added ALREADY_ADDED# ALREADY_ADDED# - The player is already added GAME_ALREADY_STARTED# GAME_ALREADY_STARTED# - The player tries to join an already started game

If the client’s request can be honoured, the server replies with a message in the following format. S:P :, : # For an example the first player to register in a game instance may get a message like, S:P1: 1,1:0# Direction 0 North 1 East, 2 South 3 West

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

All other map details vary with each game instance and will be sent in the following format I:P1;, ; :...: P5, ; :, ;, ;, ….., :, ;, ;, ….., :, ;, ;, ….., #

All other map details vary with each game instance and will be sent in the following format I:P1;, ; :...: P5, ; :, ;, ;, ….., :, ;, ;, ….., :, ;, ;, ….., # The highlighted part will have the initialization data for player 1

All other map details vary with each game instance and will be sent in the following format I:P1;, ; :...: P5, ; :, ;, ;, ….., :, ;, ;, ….., :, ;, ;, ….., # The highlighted part will have the initialization data for player 5

All other map details vary with each game instance and will be sent in the following format I:P1;, ; :...: P5, ; :, ;, ;, ….., :, ;, ;, ….., :, ;, ;, ….., # The highlighted part will have the Brick co-ordinates

All other map details vary with each game instance and will be sent in the following format I:P1;, ; :...: P5, ; :, ;, ;, ….., :, ;, ;, ….., :, ;, ;, ….., # The highlighted part will have the Stone co-ordinates

All other map details vary with each game instance and will be sent in the following format I:P1;, ; :...: P5, ; :, ;, ;, ….., :, ;, ;, ….., :, ;, ;, ….., # The highlighted part will have the Water co-ordinates

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

If the request direction is the same as the current direction, the server will try to move the client 1 cell in the said direction. Otherwise the tank will be rotated to face the requested direction E.g.: North UP# If the tank is facing North and the client issues the command UP#, the server will try to move the tank up by 1 cell North DOWN# South If the tank is facing North and the client issues the command DOWN#, the server change the tank direction to South.

When the client want to move/rotate their tank or shoot, it must issue the relevant command from the following list. UP# UP# DOWN# DOWN# RIGHT# RIGHT# LEFT# LEFT# SHOOT# SHOOT# A client can issue one of these commands each second

If the request of the client cannot be honoured due to some reason, it will be immediately communicated. OBSTACLE# OBSTACLE# CELL_OCCUPIED# CELL_OCCUPIED# DEAD# DEAD# TOO_QUICK# TOO_QUICK# INVALID_CELL# INVALID_CELL# GAME_HAS_FINISHED# GAME_HAS_FINISHED# GAME_NOT_STARTED_YET# GAME_NOT_STARTED_YET# NOT_A_VALID_CONTESTANT# NOT_A_VALID_CONTESTANT# Otherwise the server will update its internal variables

Once per second the server will broadcast a global update to all the clients documenting its internal variables about the clients. G:P1;, ; ; ; ; ; : …. P5;, ; ; ; ; ; :,, ;,, ;,, ;,, …..,, #

G:P1;, ; ; ; ; ; : …. :P5;, ; ; ; ; ; :,, ;,, ;,, ;,, …..,, #

0 (no damage), 1 (25% damage), 2 (50% damage), 3 (75% Damage), 4 (100% Damage).

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

For two reasons coins will appear on the map. Random treasures Spoils of war The players are supposed to collect them by moving to the cell where the coin pile is. When a player collect a pile of coins, their coin count and the point count will get increased by that amount.

The server will send the following message to signal the appearing event of a pile of coins.C:<x>,<y>:<LT>:<Val># x - y - LT - the time that the pile of coins will be on the map before it automatically disappears Val – value of the coins

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

There are three ways to acquire points Breaking bricks Each time a shell (bullet) from a player damages a brick wall, a constant amount of points is added to the player’s point count. Collecting coins As described in the previous topic Spoils of war Will be discussed in a subsequent topic

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

Similar to the piles of coins, life packs will appear on empty cells. The method of taking a life pack is similar to the method of taking a treasure. When a client takes a life pack, 20% of the initial health will be added to their health. Note that it is possible for a client, at some point of the game, to have a health value which is greater than the initial health value.

The server will send the following message to signal the appearing event of a Life Pack.L:<x>,<y>:<LT># x - y - LT - the time that the life pack will be on the map before it automatically disappears

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

A bullet hit will reduce the health of a tank by 10% of the initial health A player who has health of 0% (or less) will die and drop their coins at the point of death. But they will not lose the current points. However 25% of the points of the victim will be added to the killer. The dropped pile of coins is no different from a randomly created pile of coins. Thus the killer do not have a claim on it, it can be picked up by any remaining client.

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

If a client hits an obstacle (a standing brick wall or a stone wall), a fixed number of points will be deducted from the client. The deduction takes place per each turn, thus if a client keeps hitting an obstacle, it will continuously lose points.

As described in a previous slide, clients can shoot over water. But if the client tries to move the tank in to a cell with water, the client will be killed. Since there is no killer here other than the environment, no body will be credited with points and the coins of the slain client will not drop to the ground. But they will get their coin count set to zero nevertheless.

Introduction General Game Architecture Server Architecture Joining the game Game initiation Moving and Shooting Acquiring coins Acquiring points Life Packs Killing! Penalties and Death Endgame

The game ends if one of the following happens; All the clients are dead The game lifetime counter expires All the coin piles (random or otherwise) finished appearing on the map and all the appeared coin piles either has been claimed by a client or disappeared. GAME_FINISHED# When the game ends, the player with most points will be declared the winner. And the message GAME_FINISHED# will be broadcasted to all the clients.

“Live long and prosper”