Presentation is loading. Please wait.

Presentation is loading. Please wait.

Client/Server Postmortem Mark Brockington & Scott Greig.

Similar presentations


Presentation on theme: "Client/Server Postmortem Mark Brockington & Scott Greig."— Presentation transcript:

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? –D&D nostalgia Creation is one of D&D’s 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 1%’s

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 can’t 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 1%’ers and the 1% of 1%’ers –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 Baldur’s 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 Multiplayer 450 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 Multiplayer Updating Objects Adding/Deleting/Modifying visible objects in area was carefully metered. Follows the Tribes network model –Server has view of each client’s objects –Maintains a priority list of objects to update –Fills message with differences between that client’s view and the server’s view. –Never re-send the same data.

11 Multiplayer Client/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 doesn’t need to know. –Spend extra effort validating commands for super-users (Dungeon Masters and Server Administrators)

12 Multiplayer Client/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 player’s 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 Content versus 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 can’t prove anything. Server versus local vaults.

15 Custom Content versus 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 don’t transfer.

16 Custom Content versus 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! We’re 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 don’t 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 Baldur’s 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 Wasn’t a top priority. Overengineered with two rationales: –Wouldn’t 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 “We can’t pre-compute mesh around placeable objects!” –it’ll cost too much in bandwidth –they can be spawned in dynamically. Up-close pathfinding versus long range pathfinding. Why Did The Pathfinding Suck? (Part 1)

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 D&D 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@bioware.commarkb@bioware.com Scott Greig - scott@bioware.comscott@bioware.com For more information on Neverwinter Nights, see http://www.neverwinternights.com/ http://www.neverwinternights.com/


Download ppt "Client/Server Postmortem Mark Brockington & Scott Greig."

Similar presentations


Ads by Google