Design Philosophy Development Approach Technical Arrrchitecture Implementation Notes and Challenges What went right? What went wrong? Conclusions and Recommendations.

Slides:



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

COM vs. CORBA.
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
The road to reliable, autonomous distributed systems
Technical Architectures
ISYS 546 Client/Server Database Application Development.
MIT iCampus iLabs Software Architecture Workshop June , 2006.
DATABASE APPLICATION DEVELOPMENT SAK 3408 The Web and DBMS.
Team Sparkle Motion Jetris – A multiplayer java based implementation of Tetris Team Member and Roles: Devin Kelly-Sneed, Lead Programmer Tristan Johnson,
1 CS6320 – Why Servlets? L. Grewe 2 What is a Servlet? Servlets are Java programs that can be run dynamically from a Web Server Servlets are Java programs.
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,
Course Instructor: Aisha Azeem
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.
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,
LAYING OUT THE FOUNDATIONS. OUTLINE Analyze the project from a technical point of view Analyze and choose the architecture for your application Decide.
Architecture Of ASP.NET. What is ASP?  Server-side scripting technology.  Files containing HTML and scripting code.  Access via HTTP requests.  Scripting.
Dynamic Web Pages (Flash, JavaScript)
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Reusability and Effective Test Automation in Telecommunication System Testing Mikael Mattas Supervisor: Professor Sven-Gustav Häggman Instructor: B.Sc.
© 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.
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
The Client/Server Database Environment Ployphan Sornsuwit KPRU Ref.
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.
Darkstar. Darkstar is a Sun research project on massively parallel online games The objective (not yet demonstrated!) is to supply a framework for massively.
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.
1 Wide Area Network Emulation on the Millennium Bhaskaran Raman Yan Chen Weidong Cui Randy Katz {bhaskar, yanchen, wdc, Millennium.
A Scalable Virtual Registry Service for jGMA Matthew Grove DSG Seminar 3 rd May 2005.
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.
Client-Server applications Introduction to Java Applets Client-server architectures Why do Applets exist? What can an Applet do?
CS223: Software Engineering Lecture 16: The Agile Methodology.
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.
Silberschatz, Galvin and Gagne ©2009Operating System Concepts – 8 th Edition Chapter 4: Threads.
A service Oriented Architecture & Web Service Technology.
Introduction to threads
Frequently Asked Questions Thin Clients, Linux, and LTSP
Microsoft® System Center Virtual Machine Manager 2008
Constructing Deploying and Maintaining Enterprise Systems
N-Tier Architecture.
Software Design and Architecture
FileSpot Collaborative File Manager
Puzzle Pirates Case Study
#01 Client/Server Computing
Design and Maintenance of Web Applications in J2EE
Chapter 4: Threads.
Requirements Engineering Bsc Applied Computing Year 2
.NET vs. J2EE Architecture
Chapter 6 – Architectural Design
#01 Client/Server Computing
Presentation transcript:

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

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