ClientServer Postmortem - PowerPoint PPT Presentation

1 / 31
About This Presentation
Title:

ClientServer Postmortem

Description:

Design from 30 2-hour missions to 3 20-hour chapters. ... Items contain executable code (The Sims) ... (Part 2) Bumping your followers into unwalkable locations. ... – PowerPoint PPT presentation

Number of Views:68
Avg rating:3.0/5.0
Slides: 32
Provided by: mille77
Category:

less

Transcript and Presenter's Notes

Title: ClientServer Postmortem


1
Client/Server Postmortem
  • Mark Brockington Scott Greig

2
45 Programmer Years In 45 Minutes
  • User-Created Content
  • Multiplayer
  • Multiplayer vs. User-Created Content
  • Neverwinter Nights Toolset
  • Team Organization
  • Artificial Intelligence
  • Conclusions Questions

3
User-Created Content
  • Why We Did it?
  • DD nostalgia
  • Creation is one of DDs four fundamentals
  • Tap into Creation Desires
  • Even I could do better
  • Creation is fun
  • Communities Keep Games Alive

4
User-Created Content
  • They would if they could
  • Most content is created by 1 of 1
  • Barriers to Entry
  • No instant gratification
  • No Art Skills
  • No Programming Skills
  • Only one person
  • Our goal was to reach to the 1s

5
User-Created Content
  • What we did
  • The tile painting system
  • Easy to use
  • Fun to use
  • Limited the quality
  • Hard to add custom content

6
User-Created Content
  • What we did
  • Technical constraints
  • No forced downloads for client
  • All custom module data sent at run time
  • Limited customization on any client data
  • No preprocessed shadow solution
  • Custom content cant break the install
  • Isolated custom content into modules
  • Isolated hacking and custom art into HakPaks

7
User-Created Content
  • What we learned
  • Supporting user created content pays off
  • You still need to support both the 1ers and the
    1 of 1ers
  • The easier you make it use, the harder it is to
    add custom content
  • To make content creation accessible, you will
    have to make sacrifices

8
Multiplayer
  • Baldurs Gate ignored bandwidth as a valuable
    resource.
  • Our Goal For NWN A secure server running 8
    players on a 56k modem.
  • Sending 100K to one client would take 3 minutes.

9
Multiplayer450 bytes/second?
  • Tiles create low-bandwidth areas.
  • 10K for the largest area to download
  • At most 10 bytes per tile, including all lighting
    information.
  • Up to three lights in each tile and one animation
    per tile fit within 10 bytes
  • Used zlib to force sounds and map pin info into
    the area message.

10
MultiplayerUpdating Objects
  • Adding/Deleting/Modifying visible objects in area
    was carefully metered.
  • Follows the Tribes network model
  • Server has view of each clients objects
  • Maintains a priority list of objects to update
  • Fills message with differences between that
    clients view and the servers view.
  • Never re-send the same data.

11
MultiplayerClient/Server Model
  • Client is treated as insecure.
  • All input from the client are requests to do
    things that must be validated by the server.
  • Never tell the client what it doesnt need to
    know.
  • Spend extra effort validating commands for
    super-users (Dungeon Masters and Server
    Administrators)

12
MultiplayerClient/Server Model
  • What Went Wrong?
  • Design from 30 2-hour missions to 3 20-hour
    chapters.
  • I can run a persistent world on my machine!
  • Overzealous bandwidth reduction requires lots of
    RAM
  • Increased our minimum specification a LOT!

13
Feature Checklist
  • Every feature had to meet all of the following
    criteria
  • Does it improve the players fun?
  • Is it faithful to the Dungeons Dragons rules?
  • Can it be implemented with little bandwidth and
    not break the server?
  • Does this feature break user-designed content?

14
Custom Contentversus Multiplayer
  • Characters are the only resource a client adds to
    a server.
  • How do I verify your player character is not
    hacked?
  • If you have access to your character, we cant
    prove anything.
  • Server versus local vaults.

15
Custom Contentversus Multiplayer
  • Items contain executable code (The Sims)
  • Importing executable code (scripts) violates
    every rule of server security.
  • No scripts are allowed to be imported on to a
    server (characters or their items).
  • How to implement custom item properties?
  • Modules implement them, and the custom abilities
    dont transfer.

16
Custom Contentversus Multiplayer
  • User community evolution took us by surprise.
  • Each server has its own unique HAK pack.
  • Leaving game to install HAK packs is the 1
    reason amongst our users for not playing
    multiplayer!
  • Were fixing this in an upcoming release.

17
Neverwinter Toolset
  • The good stuff
  • Easy to use
  • Not quite even your grandma can use
  • Basic functionality within the reach of novice
    users
  • Made our development faster
  • Reduced training time
  • Made good use of nested levels of difficulty
  • Shared Source Code with the game

18
Neverwinter Toolset
  • The bad stuff
  • Seven times the programmers
  • Incompatibilities between development
    environments
  • Was developed during the content creation phase
  • Out of order implementation
  • Posting of fixes without adequate testing
  • Required several GUI rewrites

19
Neverwinter Toolset
  • The surprising stuff
  • Focus Testing Results
  • The expected barriers were there but
  • Too many basic concepts were assumed
  • What to do when they just dont get it
  • Not everyone thinks like a developer
  • We were required to add step by step wizards
  • We were required to post tutorials
  • The Neverwinter Toolset is great for evaluating
    designer applicants

20
Team Organization
  • Our most programmer heavy project
  • Baldurs Gate only required seven

21
Team Organization
  • Neverwinter required 25 programmers
  • The Rule Of Four

22
Team Organization
  • Dividing between Client and Server
  • Seemed like a good idea
  • Promoted good networking
  • Caused constant delays and communication overhead
  • Dividing between Game and Tools
  • Worked out well
  • The Generic File Format

23
Artificial Intelligence
  • Wasnt a top priority.
  • Overengineered with two rationales
  • Wouldnt this be cool?
  • What does the end user need?

24
Reputation System
  • Based on a matrix of faction to faction
    reputation values.
  • I have to enter how much data?
  • Where did the orcs go?
  • Did the toolset make them disappear?
  • Did the game destroy them?
  • The Deer Ate Them!

25
Pathfinding
  • All pathfinding run from the server.
  • Hierarchical pathfinding.
  • Inter-tile pathfinding used to plan path between
    tiles.
  • Intra-tile pathfinding used to resolve how to
    traverse each tile.

26
Pathfinding
27
Pathfinding 31 Flavours
28
Why Did The Pathfinding Suck? (Part 1)
  • We cant pre-compute mesh around placeable
    objects!
  • itll cost too much in bandwidth
  • they can be spawned in dynamically.
  • Up-close pathfinding versus long range
    pathfinding.

29
Why Did The Pathfinding Suck?(Part 2)
  • Bumping your followers into unwalkable locations.
  • Re-entrant pathfinding.

30
Conclusions
  • In June 2002, we feel we accomplished our goals
  • A true multiplayer DD experience for both
    Dungeon Masters and players, with a solid
    single-player game
  • 2100 user-created adventures posted on
    Neverwinter Vault (nwvault.ign.com)
  • 25000 players enjoying multiplayer each weekend.
  • 850,000 user-created accounts on our community
    site.

31
Any Questions?
  • Mark Brockington markb_at_bioware.com
  • Scott Greig - scott_at_bioware.com
  • For more information on Neverwinter Nights, see
    http//www.neverwinternights.com/
Write a Comment
User Comments (0)
About PowerShow.com