doom 3 · doom3 has a singleplayer mode and player vs player multiplayer we will implement co-op...

19
Co-op Campaign in DOOM 3 Unnamed Space Marines Laura W., Dan L., Matt R., Kristian L., Karen C.

Upload: others

Post on 17-Oct-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Co-op Campaign in

DOOM 3Unnamed Space Marines

Laura W., Dan L., Matt R., Kristian L., Karen C.

Page 2: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Overview

1. Introduction of New Feature2. 2 Ways to Implement Feature3. SAAM Analysis and Tradeoffs4. Chosen Implementation5. Impact on Architecture and Testing6. Sequence Diagram7. Team Issues8. Effects of Concurrency9. Lessons Learned

10. Limitations of Findings11. Closing

Page 3: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Introduction

Co-op CampaignDoom3 has a singleplayer mode and Player vs Player multiplayer

We will implement Co-op multiplayer gameplay to allow two users to play through the

story mode together

Page 4: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Implementation 1

Local co-op (splitscreen)

Page 5: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Implementation 2

Online co-op (dedicated servers)

Page 6: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Comparison of 1 and 2NFR Implementation 1 - Local Co-op Implementation 2 - Online Co-op

PerformanceThe game must run consistently at 60fps on modern hardware.

HIGH - two views of the game must be rendered at the same time on the same machine which

will require twice as much GPU power

LOW - each player’s machine is only responsible for rendering one view of the game; very little difference in

rendering requirements

AccuracyGame state on the local machine at most 0.5s behind during co-op so that the person connecting can play the game without lag.

LOW - not dependent on anything other than the instance of the game running on the local

host machine

HIGH- highly dependent on client connection and packet loss. If one player has a poor connection to the server, then this will cause player position and game state on the local machine to be slightly out of sync with the server. Weapon fire hit accuracy may suffer

as a result.

PortabilityCo-op must not use any API specific to a certain console to allow for portability to Xbox, PS3, Windows etc

LOW - Local co-op does not depend on any external APIs to function properly, since the only

changes that need to be made are within the gameplay foundation subsystem.

MEDIUM - If the network API chosen to implement online co-op is not well abstracted and platform

dependent, this might make moving to new consoles more challenging.

Page 7: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Comparison of 1 and 2NFR Implementation 1 - Local Co-op Implementation 2 - Online Co-op

MaintainabilityCode for implementing co-op should be reasonably focused and modular in order to be reused. Coupling between components should be minimized through good use of design patterns.

LOW - System simply needs to keep track of two players’ queued events and render two

instances of the game; no need to send events or states back and forth and can synchronize

into one state.Modularity can be preserved in AI behaviour as

well, since this requires only detecting the number of players (for scaling) and targeting.

MEDIUM - More components will be affected than in local co-op, so this may complicate the dependencies and force coupling.

Saving, sending, and receiving events may need to be more complex in code and less focused in order to handle the

sequence of many events and synchronize them properly; two states are updated at one time.

InteroperabilityLocal co-op should use common file formats and protocols so that information exchanged between clients is simplified.

LOW- little to no extra exchanges on local system, not dependant on any external systems

besides what is required to run the game

MEDIUM - online services such as Xbox Live and PSN should use standardized protocols which extend to all their systems but

PC hardware and software may differ and cause issues for content and bug patching

ReusabilityCo-op must be able to be exported as a mod or library to interface with as many systems and hardware as possible and abstracted well, with flexible code and adaptability

LOW - Local co-op code is only dependent the gameplay foundations subsystem. These subsystems are well abstracted and not

dependent on specific system APIs.

MEDIUM - Online co-op can be implemented using a client server architecture. Thus, it would be easy to reuse the code on different platforms assuming that network communication is well

abstracted on different platforms. This may not be the case depending on the API, however.

Page 8: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Comparison of 1 and 2NFR Implementation 1 - Local Co-op Implementation 2 - Online Co-op

CapacitySystem must handle co-op between two players while maintaining performance objectives.

LOW- As each co-op instance is run on a local computer, there is no impact on server capacity

MEDIUM - The servers should be able to support up to thousands of players creating and running co-op games at one

time while maintaining performance objectives

ManageabilityOnline: The dedicated server should be online and functional all but 2 hours per week, which are set aside for weekly server maintenance. Automated tests should exist for all affected components.

LOW - Local co-op only runs on the local machine, so server testing and downtime is not a factor.

MEDIUM - must be able to collect data and player statistics relating to peak usage times and average number of users

online at any given time to be able to schedule downtime for the server and to know what server capacity is needed

Logging bugs reported by players should also be possible.

Page 9: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Stakeholders

Managerial

- CEO- Project managers- Sponsors/Investors

Development

- Software developers- QA team- Artists- Voice actors

Users

- Players

Page 10: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Pros and Cons

LocalPros

• No internet connection required!

Cons• performance takes significant hit rendering two views of game on same machine at once• requires another person to be present in the same room to play and a second I/O device

OnlinePros

• Ability to engage in remote gameplay with distant users• You don’t need a specific individual to play with you - random matches can be made

Cons• capacity of server limits the amount of users able to play at once

Page 11: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Chosen Implementation

Online Co-op Campaign : Dedicated Server

- Performance will be too severely reduced if we implement a local co-op (running two views of the game will be very taxing on one machine)

- Capacity will be restricted, but the ability to scale-up or scale-out the dedicated servers will allow any number of users to be accommodated

- Players may connect with remote users (benefit to players)

- Dedicated servers instead of P2P because they are less dependent on player upload speed

Page 12: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Impact on ArchitectureClient-Server Architecture Affected Components:

● Gameplay Foundations:○ enemies need to target not one but

two players now (AI behaviour should change)

○ difficulty / strength of enemies may need to be scaled up

● Network:○ must have dedicated servers

available for matchmaking players into co-op missions

○ must been able to support thousands of players

Page 13: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Testing

• Potential automated testing methods• In order to test the integration of co-op mode fully, it is necessary for two people to play the game

using online co-op• This eliminates the possibility of using automated integration tests, since this has to be

carried out manually• Certain tests can still be automated

• unit tests that verify that the client machine can connect to the dedicated server• unit tests that verify that the server is receiving campaign game state properly• unit tests that verify that the server is sending campaign game state to client machine

properly

• Potential manual testing methods• QA team testing• code inspections• code walkthroughs

Page 14: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Firing a bullet and killing an enemy in a multiplayer setting

Page 15: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Team Issues

- Team needs to add more software QA testers

- Existing functionality may not be tested as fully during feature development

- More server capacity is required (must scale-up or scale-out)

- More technical support staff will be required upon initial release of game

- Hard to verify the connection quality in all geographical locations

Page 16: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Effects of Concurrency

• Our feature does not require the use of multithreading due to the fact that it uses a client-server architecture

• Major performance bottleneck is network connection, not local machine hardware

Page 17: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Limitations

- We have limited knowledge of specific Doom3 gameplay details (none of us have played it)

- Unclear distinctions and overlap between NFRs in SAAM analysis (e.g. Manageability vs Maintainability, Portability and Maintainability)

- Inability to actually implement proposed feature due to lack of resources

Page 18: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Lessons Learned

- Hard to speculate about the performance (and other NFRs) of a system without actually implementing the feature

- Difficult to think of quality NFRs with limited game development experience

- Hard to stay motivated in the last weeks of class!

Page 19: DOOM 3 · Doom3 has a singleplayer mode and Player vs Player multiplayer We will implement Co-op multiplayer gameplay to allow two users to play through the story mode together. Implementation

Closing

Co-op campaign : Online using Dedicated Server