Multi-Group Network Game Project A Project By: Erez Gazit and Sagi Katz.

Slides:



Advertisements
Similar presentations
T-Mon SERVER CONNECTOR
Advertisements

Windows Basics An Introduction to the Windows Operating System.
EEE436 / CS422 Final Presentation Group
DNR-322L & DNR-326.
Calendar Browser is a groupware used for booking all kinds of resources within an organization. Calendar Browser is installed on a file server and in a.
Automating Tasks With Macros
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 of 5 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2007 Microsoft Corporation.
Academic Advisor: Prof. Ronen Brafman Team Members: Ran Isenberg Mirit Markovich Noa Aharon Alon Furman.
(NHA) The Laboratory of Computer Communication and Networking Network Host Analyzer.
Hands-On Microsoft Windows Server 2003 Administration Chapter 5 Administering File Resources.
Design and Implementation of a Server Director Project for the LCCN Lab at the Technion.
How Clients and Servers Work Together. Objectives Learn about the interaction of clients and servers Explore the features and functions of Web servers.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 7: Planning a DNS Strategy.
Cambodia-India Entrepreneurship Development Centre - : :.... :-:-
Check Disk. Disk Defragmenter Using Disk Defragmenter Effectively Run Disk Defragmenter when the computer will receive the least usage. Educate users.
MZ790 Print Driver and RINC Software Install and Setup These instructions are to assist you in installation and setup of the MZ790 Print Driver and RINC.
Microsoft Windows XP Remote Desktop Alvin Loh Program Manager Terminal Services Group.
File sharing. Connect the two win 7 systems with LAN card Open the network.
FIREWALL TECHNOLOGIES Tahani al jehani. Firewall benefits  A firewall functions as a choke point – all traffic in and out must pass through this single.
Creating a Web Page HTML, FrontPage, Word, Composer.
Laboratory Exercise # 3 – Basic File Management Office Productivity Tools 1 Laboratory Exercise # 3 Basic File Management Objectives: At the end of the.
Form Handling, Validation and Functions. Form Handling Forms are a graphical user interfaces (GUIs) that enables the interaction between users and servers.
CONNECTION SETTINGS FOR USE WITH THE MOTION COMPUTING MODEL-F5 TABLET COMPUTER AKA: SIMON October 8, 2011 (And other useful information.)
Web server and web browser It’s a take and give policy in between client and server through HTTP(Hyper Text Transport Protocol) Server takes a request.
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
1 Lab 3 Transport Layer T.A. Youngjoo Han. 2 Transport Layer  Providing logical communication b/w application processes running on different hosts 
Configuring the MagicInfo Pro Display
Socket Programming References: redKlyde ’ s tutorial set Winsock2 for games (gamedev.net)
Assignment 3 A Client/Server Application: Chatroom.
Classroom User Training June 29, 2005 Presented by:
Module 8: Managing Client Configuration and Connectivity.
Microsoft Internet Security and Acceleration (ISA) Server 2004 is an advanced packet checking and application-layer firewall, virtual private network.
A 2-D, multi-player tank game developed in PLT Scheme ~ ~ ~ Ben VandenBos, Tim Reeves, Justin Hall, and John Ericksen ~ ~ ~ Senior Project - CS496 Spring.
XP New Perspectives on Browser and Basics Tutorial 1 1 Browser and Basics Tutorial 1.
Firewall and Internet Access Mechanism that control (1)Internet access, (2)Handle the problem of screening a particular network or an organization from.
London April 2005 London April 2005 Creating Eyeblaster Ads The Rich Media Platform The Rich Media Platform Eyeblaster.
CIS—100 Chapter 15—Windows Vista 1. Parts of a Window 2.
Operating Systems. Without an operating system your computer would be useless! A computer contains an Operating System on its Hard Drive. This is loaded.
Technical Advisor - Mr. Roni Stern Academic Advisor - Dr. Meir Kelah Members: Shimrit Yacobi Yuval Binenboim Moran Lev Lehman Sharon Shabtai.
Spong Bluetooth game Developed by: Erik Matzols Fredrik Lindberg.
Duty Log and Chat Setup SSG Frese, Jerome S. Sensor Manager Cell 12 MDD.
Computer Emergency Notification System (CENS)
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Introduction to Concurrency.
Forms and Server Side Includes. What are Forms? Forms are used to get user input We’ve all used them before. For example, ever had to sign up for courses.
Fundamentals of Proxying. Proxy Server Fundamentals  Proxy simply means acting on someone other’s behalf  A Proxy acts on behalf of the client or user.
ITCS373: Internet Technology Lecture 5: More HTML.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
802.11n Sniffer Design Overview Vladislav Mordohovich Igor Shtarev Luba Brouk.
GISMO/GEBndPlan Overview Geographic Information System Mapping Object.
TownMUD An Interface for a Text-Based Multiple User Dimension.
Program 2 due 02/01  Be sure to document your program  program level doc  your name  what the program does  each function  describe the arguments.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Connecting Devices CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL Department of Electronics and.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Networking Material taken mainly from HowStuffWorks.com.
The world leader in serving science Overview of Thermo 21 CFR Part 11 tools Overview of software used by multiple business units within the Spectroscopy.
DOTSNBOXES. Overview Dots and Boxes is played originally with the use of paper, pen and 2 players. The Game board is a matrix of points and vary in size.
Understand Click Once Deployment Windows Development Fundamentals LESSON 5.1B.
BZUPAGES.COM WEB SERVER PRESENTED TO: SIR AHMAD KAREEM.
4343 X2 – The Transport Layer Tanenbaum Ch.6.
TCP/IP1 Address Resolution Protocol Internet uses IP address to recognize a computer. But IP address needs to be translated to physical address (NIC).
By the end of this lesson you will be able to explain: 1. Identify the support categories for reported computer problems 2. Use Remote Assistance to connect.
Introducing Scratch Learning resources for the implementation of the scenario
Game Maker Tutorials Introduction Clickball IntroductionClickball Where is it? Shooting Where is it?Shooting.
Getting Started with Application Software
Find It VR Project (234329) Students: Yosef Albo, Bar Albo
COMMON CONTROLS A control is a child window that an application uses in conjunction with another window to enable user interaction. Controls are most often.
Process Synchronization
Simulation Of Traffic Jams
Windows Operating System
Presentation transcript:

Multi-Group Network Game Project A Project By: Erez Gazit and Sagi Katz

Agenda Project description. Project goals. Overview of network platform. Network platform explanations. Overview of the game. User interface overview. The way it works. Challenges and their solutions.

Project description The project is a multi-group networked version of the classic “Capture the flag” type of game. It divides into two parts: –The network platform: The platform is responsible for communications between groups and within the groups. –The game: The implementation of the “capture the flag” algorithms and its interfaces. Therefore, this presentation also divides into two parts: The network platform presentation and a presentation of the game.

Project Goals Creating the multi-group networking platform. –It should be able to support: The connection establishment, and maintain communications. A wide variety of applications (Platform is generic). Designing the game: “coOperation”. Creating a simple interface between the two parts of the projects.

The Network Platform A multi-group networking platform. –Network communications are divided into a tree of connections. Each session member is part of a group. –All communications from session member go only to his group leader. Each group has a group leader. –Group leader is also a session member in the group, and sends data to his group leader – himself. Communications go through the session leader. –Only group leaders send their data to session leader. –Some internal group messages are not sent to session leader. Platform usage through multiple-groups strategic game.

Why connection tree? Information security: –Internal group messages need never leave the group network. Delay: –All messages need to pass a max of 4 arcs. Synchronization: –Two levels of synchronization: Synchronization inside group. Synchronization between groups. Programming: –Each role can be implemented separately and in a different thread than the other.

Platform 1 on 1. The network platform has three major parts: –Session construction. How do all the members of the session connect and assume their roles? –Communications flow. How does information get from one session member to another member or group? –Handling disconnections. What happens when a Session member, Group leader or Session leader disconnects?

Step 1: Session construction: Every member connects to external host server. –Host server address is ‘known’ to all. Host server organizes the members into groups, and creates group leaders and the game leader. –Leader roles are usually given on a first come first served method. Everyone disconnects from the external host with knowledge needed for connecting to other session members. –When connecting to host server, each client sends port numbers it will be listening to.

1 st connection: Session Leader Group 1 Leader Group 1 member 2 nd connection: Group 2 Leader 3 rd connection: Group 1 member 4 th connection: Group 1 member 5 th connection: Group 3 Leader 6 th connection: Group 2 member Host server And so forth and so forth…

Session Leader Group Leader 1 Also Session leader Group Leader 2 Group Leader 3 Also Group Leader

Step 1: Connection builder: Starts group leader and session leader hosts for future use. –Hosts used in case member becomes group leader or session leader. Connects to external host. –External host address is specified by user. Creates GUI for writing alias and selecting group (and role in some cases). –First to connect also picks number of groups and number of members in group. Is usually also session leader. Writes all members’ data in global list to be used in session. Disconnects from external host, sends data to net-manager and exits.

Step 2: Communications Flow: Every member sends data to group leader. Group leaders collect data from all members, process it, and send it to session leader. –Internal group messages are not sent to session leader, but remain in group. Session leader collects data from all group leaders, processes it, and sends it to group leaders. –Normal messages are only sent after all group leaders send their messages. –Most messages are sent back ‘as is’, with the exception of special messages (disconnections, etc.) Group leaders send data to group members. Each member uses its new data.

Step 2: Net-manager: Receives global list of addresses from connection builder. –List used throughout the session and updated upon disconnections. In charge of connecting clients to hosts and maintaining connections. –Hosts and clients are external threads that send messages to functions in net-manager. Presents simple send function to outside program. –Outside program only has to add header and dest. to message and run send function. Contains routines for sending the messages: –Currently, routine is group leader collects messages from all group members and sends to session leader who collects from all group leaders and sends all data back to group leaders. Currently, outside program (game) determines interval between sending of messages.

Handling disconnections: “Normal” group player disconnection detected by group leader. –Message is sent through game leader informing of disconnection. –Player removed from group and from game. Group leader disconnection detected by group and Session leader. –New group leader from group waits for group to connect and announces disconnection to session leader. –Old group leader removed from group and from game. –If Group empty then session leader removes group, and removes old group leader from game. Session leader disconnection detected by group leaders. –New session leader is taken from old session leader group, or next group if empty. –New session leader waits for connections from group leaders and resynchronizes game, and announces disconnection of old session leader.

Handling disconnections: Divides into two parts: –Intentional disconnection: Program sends message to all about disconnection and waits for everyone to disconnect from him, and closes client and host threads. –Accidental disconnection: Usually occurs when program abnormally exits, or computer locks up. The clients and hosts that detect disconnection send message to all and close threads to disconnected member. After a session member is disconnected, it is remarked in all other members’ global lists.

Overview Of The Game “Capture the flag” kind of game –The goal of each group is to get the flag of the other teams and get back to the base. –The winning group is the one whose flag wasn’t taken. –Capabilities of the tanks: Moving around –Tanks can be moved in 4 directions (up,down,left,right) Shooting –Every player can shoot all the other players. –After being shot 10 times a player will be disabled (killed). –The base (which contains flags) of each team can be destroyed after 20 shots. Hiding –Every player can cloak so only his team members can see him. –When being in cloaked state, the player can’t make any moves. This is a good way to make ambushes.

User Interface Input methods: –Tanks may be moved and operated by clicking around the tank to make it move, or double clicking to make the tank shoot. –Another way to control the tanks is pressing on the buttons on the right side of the screen or just using the keyboard. Menus –Connect Connect Disconnect Exit –Options –Help Instructions about

Connect menu –Connect: This will trigger the “connection builder” and ask the user which group he wants to join In case the user is the first user to join the game, he will be asked for the number of groups and the number of members in each group. –Disconnect: Choosing this option will disconnect the user from the other users (he will be treated as if he died) –Exit: This will exit the program after disconnecting. User Interface

Option menu –Choosing the “options” option will bring up the pop-up menu shown below which contains the following: Host IP and host port number of the constant server which helps creating the game Resolution choosing box Performance scroll bar Music on/off check box Manual scrolling on/off check box User Interface

Help menu –Choosing the “instructions” in the help menu will bring up a pop-up window with internet explorer that shows the help files in HTML format User Interface

The Way It Works

The Way It Works

The Way It Works

Challenges And Their Solutions Flickering effect –When scrolling the map there is an effect of disappearing items. –This effect arises from the fact that the background map takes a lot longer to draw on the screen than the objects on the map (like the tanks or flags). –Solution: draw all the object that should appear on the screen into a buffer first.

Challenges And Their Solutions Creating and managing the background map –We thought of 2 ways for implementing the map 1) Sprite mapping –The map is actually a matrix of numbers where each number is actually an index to a bitmap. –Advantages: –This method is very effective when trying to cut back on memory usage (it is used in many commercial games) –Scrolling is very fast –Disadvantages: –There is a need to create many small bitmaps to create the full map and make sure that the bitmaps match. –Need to create the matrix and assign numbers for the bitmaps

Challenges And Their Solutions Creating the background map 2) Treating the map as an object –This way we just load the map and use offsets from the origin to specify a position (for scrolling and object placement) –Advantages: –Easier to program (no need for any matrix building) –Easy to load and maintain the map –Disadvantages: –Consumes a lot of memory –There is a need to analyze the map (water detection)

Challenges And Their Solutions Problem of water detection: –We thought of 2 solutions: 1) Deciding between land and water by the color –Disadvantages: –Very hard to decide only by color –Limits the colors of the objects –Very hard to implement (many cases to be checked) 2) Creating a matrix that contains different values for land and water –A matrix could be created by using applying threshold effect –Advantages: –Easy to create the matrix (load the B/W bitmap) –Pretty accurate –Very easy to program

Challenges And Their Solutions

Moving objects simultaneously on the screen –There is a difficulty in moving several objects on the screen simultaneously –We didn’t want to create a thread for each moving tank (too much overhead) –Our solution was to get and process all of the commands from the network and wait for a “special” command that indicates an “end of a round”. –Only after getting the special command do we act according to the commands that we got earlier. This way we have all the information to move all the objects together. –The simultaneous moving of the objects is done by going over all the objects n times while moving each one of them 1/n of the way.