Puzzle Pirates Case Study

Slides:



Advertisements
Similar presentations
Copyright Hub Software Engineering Ltd 2010All rights reserved Hub Document Manager Product Overview.
Advertisements

COM vs. CORBA.
Design Philosophy Development Approach Technical Arrrchitecture Implementation Notes and Challenges What went right? What went wrong? Conclusions and Recommendations.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
The road to reliable, autonomous distributed systems
Technical Architectures
MIT iCampus iLabs Software Architecture Workshop June , 2006.
Software Evolution Managing the processes of software system change
DATABASE APPLICATION DEVELOPMENT SAK 3408 The Web and DBMS.
1 PLuSH – Mesh Tree Fast and Robust Wide-Area Remote Execution Mikhail Afanasyev ‧ Jose Garcia ‧ Brian Lum.
Chapter 3.1 Teams and Processes. 2 Programming Teams In the 1980s programmers developed the whole game (and did the art and sounds too!) Now programmers.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
A Technical Game Project 4 Due dates: Game Idea Friday, March 16 th Game Plan Friday, March 23 rd Web Page Sunday, April 9 th First Playable Wednesday,
By Steven Taylor.  Basically a video game engine is a software system designed for the creation and development of video games.  There are many game.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
MMORPG-SIM Massively Multiplayer Simulation Game Creation Main Feature: Uniqueness.
Passage Three Introduction to Microsoft SQL Server 2000.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
N-Tier Architecture.
Client/Server Architectures
Computer Programming My Home Page My Paper Job Description Computer programmers write, test, and maintain the detailed instructions, called programs,
Informatics 43 – May 21, A quote from Piazza “This course is trying to teach you how to be a PM (product manager).”
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Improving Network I/O Virtualization for Cloud Computing.
Csi315csi315 Client/Server Models. Client/Server Environment LAN or WAN Server Data Berson, Fig 1.4, p.8 clients network.
© 2005 Erlang Training and Consulting Ltd Massively Multiplayer Online Game Servers Analysing the needs of an Erlang/OTP Virtual World Distributed Server.
Effect Of Message Size and Number of Clients on WS Frameworks For CIS* Service Oriented Computing Dariusz Grabka Gerett Commeford Jack Cole.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
A Space Game By William Sistar. The Problem What is provided:  Most network games are single player  Some do allow team work but not in a common environment.
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
1 MMORPG Servers. 2 MMORPGs Features Avatar Avatar Levels Levels RPG Elements RPG Elements Mission Mission Chatting Chatting Society & Community Society.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
GAAIN Virtual Appliances: Virtual Machine Technology for Scientific Data Analysis Arihant Patawari USC Stevens Neuroimaging and Informatics Institute July.
Location Application for Clients in a Mobile-IP Environment Project team: Rinat Gotsulsky Oz Barzilay Vitaly Khait Guy Alster.
Name Pending A Tetris Attack clone. Operational Concepts  An evolution into next-gen of an existing puzzle game scheme  Capturing the essence of retro.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
1 Wide Area Network Emulation on the Millennium Bhaskaran Raman Yan Chen Weidong Cui Randy Katz {bhaskar, yanchen, wdc, Millennium.
2012 Objectives for CernVM. PH/SFT Technical Group Meeting CernVM/Subprojects The R&D phase of the project has finished and we continue to work as part.
3246 JSF Support in JBuilder 2005 Karl Ewald R&D Engineer Borland Software Corporation.
CSC 480 Software Engineering High Level Design. Topics Architectural Design Overview of Distributed Architectures User Interface Design Guidelines.
Features Of SQL Server 2000: 1. Internet Integration: SQL Server 2000 works with other products to form a stable and secure data store for internet and.
CS223: Software Engineering Lecture 14: Architectural Patterns.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 4: Threads.
Navigation Framework using CF Architecture for a Client-Server Application using the open standards of the Web presented by Kedar Desai Differential Technologies,
Darkstar John, Ya-Ching, Akash, Lynne, Rick Jesse.
Networked Game Proposal Chris Snyder, Jason Brown.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Mary Ganesan and Lora Strother Campus Tours Using a Mobile Device.
CS223: Software Engineering
Introduction to threads
Microsoft® System Center Virtual Machine Manager 2008
Constructing Deploying and Maintaining Enterprise Systems
N-Tier Architecture.
Software Design and Architecture
The Client/Server Database Environment
Web Applications Security What are web Applications?
Tarneeb Game.
FileSpot Collaborative File Manager
#01 Client/Server Computing
Dynamic Web Pages (Flash, JavaScript)
Design and Maintenance of Web Applications in J2EE
Page Replacement.
Chapter 4: Threads.
Lecture 1: Multi-tier Architecture Overview
.NET vs. J2EE Architecture
Touchstone Testing Platform
Presents: Rally To Java Conversion Suite
CS703 - Advanced Operating Systems
WHAT ARE THE ADVANTAGES AND CHALLENGES OF MICROSOFT SQL SERVER.
#01 Client/Server Computing
Presentation transcript:

Puzzle Pirates Case Study Design Philosophy Development Approach Technical Arrrchitecture Implementation Notes and Challenges What went right? What went wrong? Conclusions and Recommendations

Design Philosophy Fun over Realism, Simplicity MMP from the outset no single-player Clean start with no legacy code Latency tolerant Client distrusting Minimize Client-Server Transactions

Development Approach Small Team Get to public Alpha quickly Spiral Development Model Contained Design (hoho) Modular, Re-usable code Frequent Refactoring Divided work by Feature, not Client vs. Server Use of Java and Open-source

Technical Arrrchitecture Built on mature distributed application framework (DObject) Designed as a distributed system first, a game second Client/server architecture with server maintaining canonical world view Simultaneously developed the game and our own Narya game development library (40% of code in library, 60% game specific) Code separated into modules and then further separated into client, server and shared code

What Went Right It works! Low server-side overhead, low bandwidth requirements Cross-platform worked well: all engineering (client and server) done on GNU/Linux (Debian) servers running on GNU/Linux and FreeBSD nearly all users are on Windows some issues with MacOS X but it works Very few incidents of server instability Few incidents of hacking; none were game destabilizing

What Went Wrong Java is still not very good for graphics and sound code: graphics performance is difficult to profile, hard to tune, not as fast as we'd like Java's sound support is high-latency and sometimes crashes VM things matured a lot during our 3+ years of development but we're still going to switch to OpenGL (JOGL or LWJGL) for the next project Testing has been poor and we've been saved from disaster only by anal programmers, luck and a tolerant user base Tried using Java Web Start for deployment and patches, eventually had to replace it because it was neither robust nor scalable

Conclusions and Recommendations Design the game as an MMP and incorporate the network into the design Start with an architecture designed for distributed applications, not one designed for realtime single player games Good development approach is at least as important as games experience Code quality paramount in MMP development Java great for server, good for client