August 2004
- What is an MMOG? ceo
- MEDIA: .hack//SIGN Japanise animated series Mike Rozak
- MEDIA: .hack//SIGN Japanise animated series
- MEDIA: .hack//SIGN Japanise animated series Otis Viles
- MEDIA: .hack//SIGN Japanise animated series Richard A. Bartle
- MEDIA: .hack//SIGN Japanise animated series Scott Tengelin
- MEDIA: .hack//SIGN Japanise animated series Dana V. Baldwin
- MEDIA: .hack//SIGN Japanise animated series David Kennerly
- MEDIA: .hack//SIGN Japanise animated series Ghilardi Filippo
- MEDIA: .hack//SIGN Japanise animated series Ola Fosheim Grøstad
- MEDIA: .hack//SIGN Japanise animated series zgj22@drexel.edu
- Books on Virtual Worlds Matt Cruikshank
- DGN: Requesting feedback on a "concept document" (somewhat related to Better Combat) Craig Huber
- The Casual-Player Killer: Time? (was MMO Communities) Will Jennings
- The Casual-Player Killer: Time? (was MMO Communities) Amanda Walker
- The Casual-Player Killer: Time? (was MMO Communities) Michael Sellers
- [BIZ] CoH subscribers numbers Ghilardi Filippo
- [DGN] Socialization against the fun [was: MMO Communities] HRose
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Fwd: Cognitively Interesting Combat (was Better Combat) kennerly@finegamedesign.com
- Time debt Stephen McDonald
- Fwd: Cognitively Interesting Combat (was Better Combat) kennerly@finegamedesign.com
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Cognitively Interesting Combat (was Better Combat) David Kennerly
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Cognitively Interesting Combat (was Better Combat) David Kennerly
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Cognitively Interesting Combat (was Better Combat) David Kennerly
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Cognitively Interesting Combat (was Better Combat) Paul Schwanz
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Cognitively Interesting Combat (was Better Combat) Paolo Piselli
- Cognitively Interesting Combat (was Better Combat) cruise
- Cognitively Interesting Combat (was Better Combat) ceo
- Cognitively Interesting Combat (was Better Combat) ceo
- Cognitively Interesting Combat (was Better Combat) cruise
- Cognitively Interesting Combat (was Better Combat) ceo
- Cognitively Interesting Combat (was Better Combat) cruise
- Cognitively Interesting Combat (was Better Combat) Paul Schwanz
- Cognitively Interesting Combat (was Better Combat) KaVir@t-online.de (Richard Woolcock)
- Cognitively Interesting Combat Derek Larson
- Cognitively Interesting Combat (keyword: archetypes) Eric Random
- Cognitively Interesting Combat (keyword: archetypes) Paolo Piselli
- ADMIN: Effective progress methods for MUD-Dev (was Better Combat (long)) J C Lawrence
- FW: Deriving Self Esteem from one's MMORPGavatar[was:Long-Term Rewards] vladimir cole
- Asynchronous Event Execution & Localizing Brian Lindahl
- database design Lazarus
- database design Hans-Henrik Staerfeldt
- database design Lazarus
- database design
Lazarus wrote:
> Is storing each item in its own row, indexed by a unique player
> identifier a reasonable solution? What happens when you have
> 100,000 players with 100-200 items each. Can an ISAM data base
> handle it? How bad do 'pfile updates' become when you have to
> update each of the 100-200 items in the ISAM data base every time
> things change with the player inventory. Likewise with skills.
> Do you store each skill in its own table with rows indexed by a
> unique player identifier? Do you use dirty bits to tell "this
> skill must be updated" to avoid updating the entire list?
Personally - I would normalize all of it out.
SkillDefinitions
SkillID/PK, Skill Name, Skill Description, Effect..etc
PlayerDefinitions
PlayerID/PK, Player Name, etc
PlayerSkillMaps
PlayerID, SkillID
It'll centralize all of your player skills, and you can VERY easily
add or remove skills from a player, regardless of class-boundaries.
Keep "classes" (if you use them) as prepackaged skill sets. When
you achieve a "class" the PlayerSkillMaps are updated with the
information in that package.
This does mean that you need application/middleware to manage these
building blocks.
The downside that PlayerSkillMaps with 100k players could be a
couple million rows (not a huge challenge for modern enterprise
RDBMS but still a factor.) You can mitigate this via multiple
PlayerSkillMaps (PlayerSkillMaps1, PlayerSkillMaps2, etc) and a
column in your player field (PlayerSkillMapTable "PlayerSkillMaps1") and via excellent use of indicies. Since you're
just indexing scalar values the indexes should be pretty fast.
I'm not a game programmer but the challenges aren't much different
than traditional DB performance design so any good book should help
out quite a bit.
On a related note, while I'm a huge fan of this system and have even
written some "generic map handling routines" (which work regardless
of column name/data values) there is one HUGE caveat.
CAVEAT: You CAN over-normallize and make your life a living hell
unless you properly build the application/middleware to manage those
tables. This means things like hand-editing the database for ad hoc
stuff can get you into deep doo-doo very very quickly, especially if
you use a RDBMS which doesn't support foreign keys. Trying to keep
your game state consistant using this framework is MORE WORK than
it's worth unless you've built the correct tool sets so that you
execute perfectly every single time.
That said, once those tool sets are in place you can really really
do some neat things (temporary skills, skill-blocking-skills,
time-of-day-based skills, etc)
And, of course, you can use the schema for more than just skills
(items come to mind.) You update the ItemDefinitions table and
*poof* *poof* *poof* it's global. (Well, you may have to reload the
game-state from the database but you don't have to manage multiple
files/pfiles to walk and find/replace.)
-Mike/Szii - [DGN] database design Steven King
- database design Erik Bethke
- database design Sean Kelly
- database design Hans-Henrik Staerfeldt
- database design
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death Artur Biesiadowski
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death Vladimir Cole
- PVP and perma-death Vladimir Cole
- PVP and perma-death Artur Biesiadowski
- PVP and perma-death Steven King
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death Steven King
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death Douglas Goodall
- PVP and perma-death HRose
- PVP and perma-death [NEW THEME] After Deployment Tiago Carita
- PVP and perma-death Paul Schwanz
- PVP and perma-death J C Lawrence
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death HRose
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death HRose
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death HRose
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death HRose
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death Koster, Raph
- PVP and perma-death HRose
- PVP and perma-death ceo
- PVP and perma-death Michael Sellers
- PVP and perma-death Matt Mihaly
- PVP and perma-death Douglas Goodall
- PVP and perma-death HRose
- PVP and perma-death Derek Licciardi
- PVP and perma-death HRose
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death J C Lawrence
- PVP and perma-death Ola Fosheim Grøstad
- PVP and perma-death HRose
- PVP and perma-death Michael Sellers
- PVP and perma-death Byron Ellacott
- PVP and perma-death J C Lawrence
- PVP and perma-death Ola Fosheim Grøstad
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] William Leader
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Stephen McDonald
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] David Kennerly
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] J C Lawrence
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] David Kennerly
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Koster, Raph
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] J C Lawrence
- ADMIN: Effective progress methods for MUD-Dev Jim Purbrick
- The Great Scam J C Lawrence
- [MEDIA] Finding an Interesting Middle Path in the RPG J C Lawrence
- [MEDIA] Finding an Interesting Middle Path in the RPG Koster, Raph
- [MEDIA] Finding an Interesting Middle Path in the RPG Douglas Goodall
- [MEDIA] Finding an Interesting Middle Path in the RPG J C Lawrence
- [MEDIA] Finding an Interesting Middle Path in the RPG David Kennerly
- [MEDIA] Finding an Interesting Middle Path in the RPG Megan Fox
- SOC DGN - Spawn locations Matthew Rick
- SOC DGN - Spawn locations Brian Hook
- SOC DGN - Spawn locations ceo
- SOC DGN - Spawn locations Sean Middleditch
- SOC DGN - Spawn locations Paul Schwanz
- SOC DGN - Spawn locations Jason Lai
- SOC DGN - Spawn locations J C Lawrence
- SOC DGN - Spawn locations HRose
- SOC DGN - Spawn locations J C Lawrence
- SOC DGN - Spawn locations Megan Fox
- SOC DGN - Spawn locations J C Lawrence
- SOC DGN - Spawn locations Ola Fosheim Grøstad
- SOC DGN - Spawn locations HRose
- SOC DGN - Spawn locations Brian Miller
- SOC DGN - Spawn locations Michael Sellers
- SOC DGN - Spawn locations Michael Hartman
- SOC DGN - Spawn locations Brian Miller
- SOC DGN - Spawn locations Chris Duesing
- SOC DGN - Spawn locations Douglas Goodall
- SOC DGN - Spawn locations J C Lawrence
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] William Leader
- On balance and reality Ola Fosheim Grøstad
- On balance and reality William Leader
- On balance and reality Koster, Raph
- On balance and reality Ola Fosheim Grøstad
- On balance and reality HRose
- On balance and reality Ola Fosheim Grøstad
- On balance and reality Vladimir Cole
- On balance and reality William Leader
- On balance and reality William Leader
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Koster, Raph
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Gedanken
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Koster, Raph
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] HRose
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Koster, Raph
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Matthew Dobervich
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Mike Rozak
- text based MUD Codebases, which one to pick? mirjam.eladhari@interactiveinstitute.se
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Douglas Goodall
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Steven King
- Casual Crowd vs.Time Rich Crowd [was: Time Debt] Michael Hartman
- Complexity and Accessibility (was: Better Combat (long)) Will Jennings
- SOC DGN: AC like alligiance system Matthew Rick
- SOC DGN: AC like alligiance system Hans-Henrik Staerfeldt
- SOC DGN: AC like alligiance system cruise
- SOC DGN: AC like alligiance system Artur Biesiadowski
- SOC DGN: AC like alligiance system HRose
- "a nicer species" (from today's Chronicle) (fwd) J C Lawrence
- Distributed State Systems Michael Tindal
- Distributed State Systems Davion Kalhen
- Distributed State Systems Michael Tindal
- Distributed State Systems Alex Arnon
- Distributed State Systems Davion Kalhen
- Distributed State Systems Michael Tindal
- Distributed State Systems Alex Arnon
- Distributed State Systems Alex Arnon
- Distributed State Systems Michael Tindal
- Distributed State Systems Bruce Mitchener
- Distributed State Systems Michael Hartman
- Distributed State Systems Michael Tindal
- Distributed State Systems Thomas Tomiczek
- Distributed State Systems Brian Lindahl
- Complexity and Accessibility Ola Fosheim Grøstad
- wherefor in-game artists? Paolo Piselli
- wherefor in-game artists? Richard A. Bartle
- wherefor in-game artists? Sean Howard
- wherefor in-game artists? David Kennerly
- wherefor in-game artists? ceo
- wherefor in-game artists? David Kennerly
- wherefor in-game artists? Richard A. Bartle
- wherefor in-game artists? Paolo Piselli
- wherefor in-game artists? Richard A. Bartle
- wherefor in-game artists? Ola Fosheim Grøstad
- wherefor in-game artists? Richard A. Bartle
- wherefor in-game artists? Ola Fosheim Grøstad
- wherefor in-game artists? Robert Zubek
- wherefor in-game artists? Matt Mihaly
- wherefor in-game artists? Christopher Allen
- wherefor in-game artists? Matt Mihaly
- wherefor in-game artists? Christopher Allen
- wherefor in-game artists? Ola Fosheim Grøstad
- wherefor in-game artists? Douglas Goodall
- wherefor in-game artists? Christopher Allen
- wherefor in-game artists? Ola Fosheim Grøstad
- wherefor in-game artists? Christopher Allen
- wherefor in-game artists? Ola Fosheim Grøstad
- wherefor in-game artists? Koster, Raph
- wherefor in-game artists? Ola Fosheim Grøstad
- wherefor in-game artists? Koster, Raph
- wherefor in-game artists? Douglas Goodall