Quoridor Classic Game Manager Kevin Dickerson April 2004.

Slides:



Advertisements
Similar presentations
ECE 491 Final Project Multiplayer Card Game Author: Tian Ma Presentation 5/4/2004.
Advertisements

Linking A quick overview of how to configure PulseWorx UPB devices to control each other.
1 Microsoft Access 2002 Tutorial 9 – Automating Tasks With Macros.
BASIC CRYPTOGRAPHY CONCEPT. Secure Socket Layer (SSL)  SSL was first used by Netscape.  To ensure security of data sent through HTTP, LDAP or POP3.
EEE436 / CS422 Final Presentation Group
CSE 380 – Computer Game Programming Pathfinding AI
XP Tutorial 9 New Perspectives on Microsoft Windows XP 1 Microsoft Windows XP Exploring Your Network Tutorial 9.
Abstract Basically assuming the road traffic as a computer LAN. Our fuel saver system uses radio frequency transmitting and receiving technique to communicate.
R-Mancala Srinivas Krishnan & Kiranjit Sidhu. Outline Design Details Refactoring Experience Demo.
Automating Tasks With Macros
CA 121 Intro to Programming Tariq Aziz and Kevin Jones GUI Programming in Visual Studio.NET Chapter 1 Tariq Aziz and Kevin Jones.
CSCI 4550/8556 Computer Networks Comer, Chapter 3: Network Programming and Applications.
Automating Tasks With Macros. 2 Design a switchboard and dialog box for a graphical user interface Database developers interact directly with Access.
Yard Wars David Greer Alex Gross Ahsen Uppal. Goals Wireless, Portable Development Real Time Voice Conferencing Exciting, Expandable Game Engine.
RULES Each player begins the game with twelve normal pieces (either white or black). The pieces are automatically set in their proper positions. The object.
The CSE 331 Version By Jeff Golden and Paul Madrid.
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.
Student Projects in Computer Networking: Simulation versus Coding Leann M. Christianson Kevin A. Brown Cal State East Bay.
Graphics and Client Design Overall Game Design Doug Camin.
70-290: MCSE Guide to Managing a Microsoft Windows Server 2003 Environment Chapter 8: Implementing and Managing Printers.
JokerStars: Online Card Playing William Sanville Milestone 4.
3D Object Retrieval Client-Server Project
Computer Science 101 Web Access to Databases Overview of Web Access to Databases.
Overview Print and Document Services Print Management console Printer properties Troubleshooting.
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
CECS 5460 – Assignment 3 Stacey VanderHeiden Güney.
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
Dijkstras Algorithm Named after its discoverer, Dutch computer scientist Edsger Dijkstra, is an algorithm that solves the single-source shortest path problem.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
Network Management System The Concept –From a central computer, network administrator can manage entire network Collect data Give commands –Moving gradually.
Brazilian Tunable Filter Imager (BTFI) Preliminary Design Review (PDR)‏ USP-IAG Universidade de São Paulo 18-19th June 2008 Software Giseli Ramos.
Final Presentation – CS 425 Aaron O'Banion Todd Astroth Chris Cobb Matt Stowe Mark Williams.
WAN technologies and routing Packet switches and store and forward Hierarchical addresses, routing and routing tables Routing table computation Example.
ZOMBIE MADNESS! Jack Smith Steve Mander-Jones OUTLINE > GAME OVERVIEW > IMPLEMENTATION > AI FEATURES > CONCLUSION.
Basic Concepts of a Computer Network
Networks – Network Architecture Network architecture is specification of design principles (including data formats and procedures) for creating a network.
Prepared by : Walaa Maqdasawi Razan Jararah Supervised by: Dr. Aladdin Masri.
Design Document Presentation. Review Quoridor – a board game played on a grid where players must advance tokens across a board to win. Our basic objective:
ICOM 6115©Manuel Rodriguez-Martinez ICOM 6115 – Computer Networks and the WWW Manuel Rodriguez-Martinez, Ph.D. Lecture 3.
COMP1321 Digital Infrastructure Richard Henson February 2014.
GUI For A Virtual Pipeline Simulation Testbed By, Revathi Manni Ranganathan Major Professor: Dr.Virgil Wallentine.
HERTS Paul Larpenteur Lee Murphy CSE 403 – Sp 2003 Hearts Experimental Remote Transportable System.
ENTC-489 Embedded Real Time Software Development Embedded Real Time Software Development Week 11 Design Examples.
MobileMAN Internal meetingHelsinki, June 8 th 2004 NETikos activity in MobileMAN project Veronica Vanni NETikos S.p.A.
802.11n Sniffer Design Overview Vladislav Mordohovich Igor Shtarev Luba Brouk.
Texas Forty-Two By: Nate Normandin CS 470. What is Texas Forty-Two? A Domino Game A way for people to learn the game A way for people to play others A.
Quoridor Requirements Matt Stowe Mark Williams Chris Cobb Todd Astroth Aaron O'Banion.
Making Python Pretty!. How to Use This Presentation… Download a copy of this presentation to your ‘Computing’ folder. Follow the code examples, and put.
X-WindowsP.K.K.Thambi The X Window System Module 5.
Module 1: Configuring Routing by Using Routing and Remote Access.
World Wide Web “WWW”, "Web" or "W3". World Wide Web “WWW”, "Web" or "W3"
SD1230 Unit 6 Desktop Applications. Course Objectives During this unit, we will cover the following course objectives: – Identify the characteristics.
XP New Perspectives on Microsoft Office Access 2003 Tutorial 10 1 Microsoft Office Access 2003 Tutorial 10 – Automating Tasks With Macros.
Protocols COM211 Communications and Networks CDA College Olga Pelekanou
Quoridor and Artificial Intelligence
Chapter 5 Introduction To Form Builder. Lesson A Objectives  Display Forms Builder forms in a Web browser  Use a data block form to view, insert, update,
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.
Busta’ Sandwich Life Cycle Architecture. Specifications.
Modeling the Game of Brain Cube Leslie Muzulu, Kristal Jameson, and Kathy Radloff; St. Catherine University Game Description Brain Cube is a puzzle game.
/16 Final Project Report By Facializer Team Final Project Report Eagle, Leo, Bessie, Five, Evan Dan, Kyle, Ben, Caleb.
CSE 333 – Section 4 HW3, MVC, GTK+.
(How the routers’ tables are filled in)
“Link All Together” – Linktile 2D game programming
Settlers of Alpha Centari
#01 Client/Server Computing
Chapter 3: Windows7 Part 4.
Snippet Engine as a Database Server
#01 Client/Server Computing
Presentation transcript:

Quoridor Classic Game Manager Kevin Dickerson April 2004

System Overview Goal –Develop a system for managing games of Quoridor Classic over a network –Real-time interactive graphics –Open network protocol Why –To allow students a way to play Quoridor Classic without having to write their own game manager! –Hopefully nicer than old text-mode managers that may have been confusing, hard to use –Simplifies software development process for AI!

The Board Game “Real” board game for two players A typical “western” (tile-based) board game. 9x9 tiles Each player starts with 10 walls Each turn, a player moves his pawn to an adjacent tile, or places one wall on the board. Moves may be timed. Objective is to get to the opposite side of the board first!

Quoridor Classic Game Manager (QCGM) Fully implements the board game Quoridor Classic’s rules for two players! Allows players to play “hotseat,” or through a common network protocol. Allows anyone to write their own AI module to control a client.

Special Use AI students will write their own client software that will communicate with my software. Simplified example of communication: –Client 1: “move up” –Client 2: “place a horizontal wall at tile x, y” –Etc… –QCGM does the validation!

Game Manager Software Has several modes: –Stand-alone Server Mode –Interactive Client/Server Mode –Interactive Client Mode

Stand-alone Server Mode Two remote clients connect to the server. The game may be observed, but not interacted with.

Interactive Client/Server Mode The software acts as both server and client for one or two players. Example: –You are Player 1 (sitting at the server). When it is your turn, you click and drag objects to make your move. –Player 2 is a remote client. Player 2 is controlled via the network through either another instance of QCGM, or by AI software!

Interactive Client Mode Client connects to a remote server running the QCGM software. You observe your opponent’s move until it is your turn. You control only your game piece.

Components

Main Form –OpenGL Pane –Menu Bar –Status Bar Start New Game Form –Host a game Join Game Form –Connect to remote server Console Form –View traffic, messages (Don’t worry, final version will be much less purple!)

Algorithms Used Dijkstra’s algorithm –Finds the shortest path from a source node to all other nodes in a graph. –Complexity: O(E lg V) if no nodes are “sealed off” by walls Where, –|E| is the total number of edges in all adjacency lists –and |V| is the number of vertices (or nodes)

Algorithms Used, cont. Dijkstra’s, continued: –In QCGM, each tile is a node, the board is a directed edge graph. Placing a wall removes an edge! –Chosen because players may “win” by reaching any tile in a row across the edge of the board. Side effect: If no walls left, computer may know who will win before the players do!

Algorithms used, cont. Other algorithms I won’t cover today: Arcball (boring)

Built Using: Microsoft Visual Studio.NET 2003 C# OpenGL (via “Tao Framework,” a C# OpenGL wrapper) Windows Forms GUIs Asynchronous Sockets using TCP/IP

Software Features (i.e. Requirements met) Pretty nice 3D graphics (uses OpenGL) Moveable camera uses “arcball” method Click/drag interface for placing moves Dijkstra’s shortest path algorithm for move validation Sockets using TCP/IP to communicate moves over an open (and documented) network protocol

Difficulties Had This project was a black hole for time! –Spent too much time learning C#, Sockets/Networking, Visual Studio.NET –Development of network model had a tendency to lean towards more complicated than simplified, several classes required rewriting/significant changes –I ended up writing about 90 classes/structures! (Is there such a thing as too object-oriented?)

“Nice to Have” Features that Did Not Make It “Tournament Mode” –A number of clients connect all at once, and are queued to play games. Results are recorded. Cryptography –Would unnecessarily complicate network traffic! Not so nice to have after all…

Changes During Development Ditched internal “game protocol communication” idea, just used OO methods! Ditched message packets early on and just used strings – much easier! Simplified network model (no acknowledgement required)

Things I’d Like to Change A more solid network model. –Right now it is not very forgiving! Errors tend to lead to disconnections. –I would probably use a “difference” network protocol, where the server sends the state of the board, rather than individual moves. Right now, it is conceivably possible for moves to be dropped on the client side.

Things I’d Like to Change (cont.) Better OpenGL Graphics –Not necessary, but adding textures or lighting would be nice! Game Records –Would store in a chess-like move record with tables rather than an array of commands.

Questions?