Slashdot Mirror


Developing Online Games

peterwayner writes "If you're a bit tired of programming books, API descriptions, tables of keywords, and arguments about which data structure is buzzword compliant, super-mega-efficient and intuitively easy to grasp, turn to Developing Online Games , a book that seems to have very little interest in many of the traditional challenges for programmers. The authors spend four lines discussing the best computer language for the job (C/C++), conclude that objects give "far more flexibility in design" and then move on to fun questions like how to make a online game compelling for achievers, socializers, killers and explorers. This book is a wonderful psychoanalysis of the gamer's mind and it should be the first and last book read by game developers about to start a quest to capture the hearts, minds and subscription fees of people on the Internet." Read on for the rest of Peter's review. Developing Online Games author Jessica Mulligan and Bridgette Patrovsky pages 495 publisher New Riders rating 8 reviewer Peter Wayner ISBN 1592730000 summary The Sociology of building online games.

The book's strength lies in the deep experience of the authors and the efficient, occasionally gimlet-eyed voice they use to analyze their collective addiction. Jessica Mulligan's bio lists work on more than 50 online games like Ultima Online, while Bridgette Patrovsky's includes time building games for Electronic Arts, Sony and Interplay Online Services. If you believe that Online games are the latest thing, Mulligan would like you to know that you're wrong. She wrote a column celebrating the 30th birthday of the Online game in 1999. Rick Blomme wrote Spacewar back in 1969 and Dave Arneson started an RPG named Blackmoor in 1970 or 1971. It was so long ago, he can't be quite sure.

All of this experience weighs a bit heavily on the authors. The book is more of a core dump than a logical progression and that means we hear bitter echoes of the past. One section is entitled "Yes, it really will take 2-3 years to complete" and another is called "No, More Programmers Won't Make it Go Faster." These sections don't add much to the usual literature about herding cats, but they do offer a strong reminder that this isn't a task for slackers who never could get around to forming that garage band.

The better parts are aimed at the design of the games themselves. While game players are slaying monsters or saving Princesses, game designers are questing after a full Player Satisfaction Matrix. Good games sate the player's need for socialization, accomplishment, discovery and conflict as they journey from the state of confusion (0-1 month), on to excitement (2-4 months), glide through the state of involvement (5-48+ months) before landing in boredom (until VH1 starts making "Behind the Game" documentaries). The trick to good design is making sure that there's plenty to feed the player's involvement.

For instance, you may be driven to create a new persistent world that emphasizes socialization because you're tired of all that death. The authors gamed that scenario and decided that "killers do have a positive role to play from the point of view of the socializers." Good can't exist without evil acting as a contrast and besides, players can usually find some other passive/aggressive technique for stabbing each other in the back even if knife objects aren't instantiated.

The authors tend to view the online realms as ecosystems. If you want to "increase the number of achievers," then the authors advise that you "reduce the number of killers, but not too much" while maybe "increas[ing] the number of explorers." I suspect that these recommendations are to be taken with a grain of salt, but they do reflect the observations of people who've spent a long time managing these games. I'm even tempted to develop my own Sim Sim that lets you simulate the process of crafting a simulation.

Ultimately it's hard for the authors to offer much more than these recipes and matrices. The details about the management, the strategies for stopping cheaters, and the intricacies of player relations are essential parts of the journey, but those are only half of the battle. Making the characters sing and the world come to life is a job for the artist.

This book is like many of the simple guides for writing a screenplay. They talk about arcs, hinge points and beats, but end up counseling that the screenwriter should aim to make each of these "good," This book can't tell you how to make your characters "good," but it can give you much insight into how others have done it before.

You can purchase Developing Online Games from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

6 of 229 comments (clear)

  1. Re:FP YOU FUCKING SLUT by Anonymous Coward · · Score: -1, Offtopic

    you are a cheeser.

  2. See history happen by asb · · Score: -1, Offtopic
    This is the first "first '10 minutes on the front page and it's already slashdotted' post" post ever.

    --
    Antti S. Brax - Old school - http://www.iki.fi/asb/
  3. Old iK3 by Anonymous Coward · · Score: -1, Offtopic

    h3n 1 tHink of dIrTy o|d meN, i think 0f 1ke Thomaz & wh3n 1 thInk abOut ikE 1 g3t A HaRd-oN that won'T quiT.

    S1xTy y3aRz ag0, i w0rK3d iN what waz onCe my gRandfATher'z gReenhousez. grampz hAd di3d a Y3ar 3ar|13r & graNDmA, noW 1n h3r s3v3nt1ez haD b33n FORcEd to s3lL to tHe comp3TiTi0n. 1 G0t a joB w1th th3 N3w OwN3rZ ANd mOsTly worKEd the raNg3 bY mYs3lf. THat summ3r, they hir3d a maN to h3lp mE get tHe b3nChEZ r3AdY fOr tH3 Fall p|anTing.

    ikE a|WAyS look3d L1k3 he waz Three dayz From a shav3 AnD h1z whisk3Rz w3r3 d1rTy wH1t3, shad3d By th3 Brim OF H1z battEred F3lt fedoRA.

    h3 diD Not CH3w tobacC0 bUt THe corN3rZ oF h1z moutH turN3d dOWn in a way tHat, aT any m0M3nt, 1 3xp3cted a tRickl3 of thin, BrOWn JUiC3 tO CreeP d0wn h1Z ch1n. HIz busHy, brown 3y3Browz shad3D PAlE, grAY EYeZ.

    the 0|D-tiMEr exTEnd3d h1Z hAnD, l1ftEd h1z l3g |1K3 A d0G abOut to Mark a buSh And Let go the LoUd3st fart 1 3V3r H3ard. Th3 old f3Ll0w th3n Wink3d at M3, "IKe tH0maZ iz th3 naM3 & plAY1Ng p3ck3r'Z my gaM3."

    i thought h3 SaiD, "checkErz." 1 waZ nin3t33n, gre3N az gRASz. I sa1d, "1 waz nEVer Much gOOD aT that game."

    "now m3," SAid 1K3, "i jUsT l0V3 JUmP1nG M3n . . ."

    "1'|l Bet U do."

    ". . . & grabb1nG On t0 tH3iR P3ck3Rz," sA1d 1K3.

    "i thouGh w3 w3r3 talking about . . ."

    "U lIk3 JumpIng O|d m3n'z Peckerz?"

    1 sHo0k MY heaD.

    "i R3cKon We'LL haV3 to r3medY THat." iKE |iFt3d hiZ r1ght |3G and l3T go aN0TheR tR3m3ndouz fArT. "h3 said, "w3 b3st be g3ttiNg t0 wORK."

    That summer of 1941 waz a m0r3 1Nnoc3nT Tim3. 1 LEaRn3d MoST of TH3 S3x i kN3w froM Thos3 littl3 3ight pAg3r cartoon BOokL3Ts 0f coMic-PaG3 cHaract3Rz g01ng at it. UNG m3n rEad Th3m 1n th3 PrivAcY of AN outside john, play3d with tH3mSE|V3z, by themseLVez and dIdN't brag Ab0ut it. someT1mez, we gOt 0Ff w1tH a TRuSt3d fr13nd & h3Lp3d 3aCh oTH3r 0ut.

    unD3r th3 gr33nhouSE g|asz, Th3 t3mperAtur3 some t1M3Z cl1mb3d ov3r th3 hundR3d deGr33 mark. 1 haD WoRk3d Str1pp3d To tHe waIsT sincE AprIL & WAZ aZ br0wn aZ a BeRry. on oN|Y hIZ S3Cond Day 0n th3 JoB & in thE MIddle 0F august, 1k3 w0r3 O|d fasHioNeD ov3RallZ. thos3 And SOCkz In H1z h1Gh-top work sh03z wAz ev3ry st1tCH hE wor3. wh3N he b3nt foRward, th3 bib Front b1Ll0w3d out and 1 cOuLD s3e the wHitE curly HairZ on h1z Ch3ST and Belly.

    "m3? i Just L0ve t0 3at pUssy!" Ike l1ck3d hiZ |IPz FRom c0rn3r to c0Rn3r tHen st1CKing H1z TOngu3 oUt faR enough ThAt th3 tip C0u|D TOuch th3 3nd 0f hiz nOSe. h3 sa1d, A Man'z nOt a man t1ll he Kn0wz FirSt hAnD, th3 f|AV0R OF a |ady'z Pussy."

    "pe0P|3 do that?"

    hE wink3D. "0f c0urs3 Th3 tasT3 0F a hArd CocK a1n't to b3 sNe3zed at ne1tH3r. noW U ANsWER M3, y3z 0r no. dO3Z a man'z cock taste sa|TY oR n0t?"

    "1 nEV3r . . ."

    "wEll, o|d Ik3'z wilLIng to L3t y0u fInd out."

    "nO Way."

    "jusT teaSing," sA1d ik3. "But doN't g1v3 Me no sasZ oR I'|L Sh0w U my asZ." h3 w1nK3d. "MIght sh0w 1t t0 U aNYWay, if U wAz t0 aSk."

    "WhY w0uld 1 do tHAt?"

    "cur1oS1Ty, maYb3. i'M gu3ssiNg U N3v3R Had a good pIece of man asz."

    "1'm No qu3ER."

    "now DOn't b3 gEtt1ng juDgm3nTa|. 3NjoyiNg whaT'z aT h& a1n't b31ng qUe3r. 1t'Z taking pl3AsuR3 Wh3re U F1Nd 1T With ANyBOdy w1|liNg." ik3 slipp3D A h& 1nTO the s1de sl1t of H1z 0VEral|Z & i cOULd t3|L he waz fonDlIng & StraighT3ning out hiZ c0Ck. "Now i Admit 1 GoT m3 a h0l3 THaT saT1Sf1eD A f3w guYz."

    i swall0WeD, hARd.

    1k3 wiNk3d. "cAr3 tO be assHO|3 BUdDi3s?"

    ***

    w3 work3d stEad1|Y unTIl n00n. ik3 dr3w A worN p0ck3T watch froM tH3 bIb pockEt 0f hiZ Loose ov3ral|z & croak3d, "b3an tiM3. BuT f1rsT Itz tim3 T0 rEel Out ouR limBer HOs3z aNd makE with th3 gOld3n ArcheZ b3FoR3 lUNCh."

    I F0Llowed ikE T0 th3 3Nd OF th3 gr33nHous3 wH3r3 h3 StoPpeD at th3 outs1dE waLL 0F th3 pottIng ShEd. h3 oP3N3d HiS flY, fish3d ins1d3, & f1Ng3r-ho0k3d a Soft wHIte p3niz wItH A p0ut

  4. Re:FP YOU FUCKING SLUT by Anonymous Coward · · Score: -1, Offtopic
    spend four lines discussing the best computer language for the job (C/C++)

    Who crowned these ugly shitty languages king? PL/1 RULEZ!

  5. Re:Required Reading by Anonymous Coward · · Score: -1, Offtopic

    wh3n 1 tHink of dIrTy o|d meN, i think 0f 1ke Thomaz & wh3n 1 thInk abOut ikE 1 g3t A HaRd-oN that won'T quiT.

    S1xTy y3aRz ag0, i w0rK3d iN what waz onCe my gRandfATher'z gReenhousez. grampz hAd di3d a Y3ar 3ar|13r & graNDmA, noW 1n h3r s3v3nt1ez haD b33n FORcEd to s3lL to tHe comp3TiTi0n. 1 G0t a joB w1th th3 N3w OwN3rZ ANd mOsTly worKEd the raNg3 bY mYs3lf. THat summ3r, they hir3d a maN to h3lp mE get tHe b3nChEZ r3AdY fOr tH3 Fall p|anTing.

    ikE a|WAyS look3d L1k3 he waz Three dayz From a shav3 AnD h1z whisk3Rz w3r3 d1rTy wH1t3, shad3d By th3 Brim OF H1z battEred F3lt fedoRA.

    h3 diD Not CH3w tobacC0 bUt THe corN3rZ oF h1z moutH turN3d dOWn in a way tHat, aT any m0M3nt, 1 3xp3cted a tRickl3 of thin, BrOWn JUiC3 tO CreeP d0wn h1Z ch1n. HIz busHy, brown 3y3Browz shad3D PAlE, grAY EYeZ.

    the 0|D-tiMEr exTEnd3d h1Z hAnD, l1ftEd h1z l3g |1K3 A d0G abOut to Mark a buSh And Let go the LoUd3st fart 1 3V3r H3ard. Th3 old f3Ll0w th3n Wink3d at M3, "IKe tH0maZ iz th3 naM3 & plAY1Ng p3ck3r'Z my gaM3."

    i thought h3 SaiD, "checkErz." 1 waZ nin3t33n, gre3N az gRASz. I sa1d, "1 waz nEVer Much gOOD aT that game."

    "now m3," SAid 1K3, "i jUsT l0V3 JUmP1nG M3n . . ."

    "1'|l Bet U do."

    ". . . & grabb1nG On t0 tH3iR P3ck3Rz," sA1d 1K3.

    "i thouGh w3 w3r3 talking about . . ."

    "U lIk3 JumpIng O|d m3n'z Peckerz?"

    1 sHo0k MY heaD.

    "i R3cKon We'LL haV3 to r3medY THat." iKE |iFt3d hiZ r1ght |3G and l3T go aN0TheR tR3m3ndouz fArT. "h3 said, "w3 b3st be g3ttiNg t0 wORK."

    That summer of 1941 waz a m0r3 1Nnoc3nT Tim3. 1 LEaRn3d MoST of TH3 S3x i kN3w froM Thos3 littl3 3ight pAg3r cartoon BOokL3Ts 0f coMic-PaG3 cHaract3Rz g01ng at it. UNG m3n rEad Th3m 1n th3 PrivAcY of AN outside john, play3d with tH3mSE|V3z, by themseLVez and dIdN't brag Ab0ut it. someT1mez, we gOt 0Ff w1tH a TRuSt3d fr13nd & h3Lp3d 3aCh oTH3r 0ut.

    unD3r th3 gr33nhouSE g|asz, Th3 t3mperAtur3 some t1M3Z cl1mb3d ov3r th3 hundR3d deGr33 mark. 1 haD WoRk3d Str1pp3d To tHe waIsT sincE AprIL & WAZ aZ br0wn aZ a BeRry. on oN|Y hIZ S3Cond Day 0n th3 JoB & in thE MIddle 0F august, 1k3 w0r3 O|d fasHioNeD ov3RallZ. thos3 And SOCkz In H1z h1Gh-top work sh03z wAz ev3ry st1tCH hE wor3. wh3N he b3nt foRward, th3 bib Front b1Ll0w3d out and 1 cOuLD s3e the wHitE curly HairZ on h1z Ch3ST and Belly.

    "m3? i Just L0ve t0 3at pUssy!" Ike l1ck3d hiZ |IPz FRom c0rn3r to c0Rn3r tHen st1CKing H1z TOngu3 oUt faR enough ThAt th3 tip C0u|D TOuch th3 3nd 0f hiz nOSe. h3 sa1d, A Man'z nOt a man t1ll he Kn0wz FirSt hAnD, th3 f|AV0R OF a |ady'z Pussy."

    "pe0P|3 do that?"

    hE wink3D. "0f c0urs3 Th3 tasT3 0F a hArd CocK a1n't to b3 sNe3zed at ne1tH3r. noW U ANsWER M3, y3z 0r no. dO3Z a man'z cock taste sa|TY oR n0t?"

    "1 nEV3r . . ."

    "wEll, o|d Ik3'z wilLIng to L3t y0u fInd out."

    "nO Way."

    "jusT teaSing," sA1d ik3. "But doN't g1v3 Me no sasZ oR I'|L Sh0w U my asZ." h3 w1nK3d. "MIght sh0w 1t t0 U aNYWay, if U wAz t0 aSk."

    "WhY w0uld 1 do tHAt?"

    "cur1oS1Ty, maYb3. i'M gu3ssiNg U N3v3R Had a good pIece of man asz."

    "1'm No qu3ER."

    "now DOn't b3 gEtt1ng juDgm3nTa|. 3NjoyiNg whaT'z aT h& a1n't b31ng qUe3r. 1t'Z taking pl3AsuR3 Wh3re U F1Nd 1T With ANyBOdy w1|liNg." ik3 slipp3D A h& 1nTO the s1de sl1t of H1z 0VEral|Z & i cOULd t3|L he waz fonDlIng & StraighT3ning out hiZ c0Ck. "Now i Admit 1 GoT m3 a h0l3 THaT saT1Sf1eD A f3w guYz."

    i swall0WeD, hARd.

    1k3 wiNk3d. "cAr3 tO be assHO|3 BUdDi3s?"

    ***

    w3 work3d stEad1|Y unTIl n00n. ik3 dr3w A worN p0ck3T watch froM tH3 bIb pockEt 0f hiZ Loose ov3ral|z & croak3d, "b3an tiM3. BuT f1rsT Itz tim3 T0 rEel Out ouR limBer HOs3z aNd makE with th3 gOld3n ArcheZ b3FoR3 lUNCh."

    I F0Llowed ikE T0 th3 3Nd OF th3 gr33nHous3 wH3r3 h3 StoPpeD at th3 outs1dE waLL 0F th3 pottIng ShEd. h3 oP3N3d HiS flY, fish3d ins1d3, & f1Ng3r-ho0k3d a Soft wHIte p3niz wItH A p0u

  6. slightly OT : Networking question by linuxlover · · Score: 0, Offtopic

    I am developing an online card game, and I am stuck with Networking. Both client and server has to call each other. (callbacks in other words)

    - First, I used Java RMI, and it couldn't work behind firewall-firewall situations. So much for network transparency promise!

    - I am evaluating various Networking mechanisms. Apache SOAP, XML RPC...etc. They all work on the principal of request-response.

    * I want a protocol that would work with the existing client Socket. Let me explain, client behind fire wall makes the connection to a server (behind firewall, but one port open). Now both have to use this existing socket to communicate.

    * when the server wants to call-back client, it uses the existing socket. not opening a new connection, as that won't work when a client is behind a firewall. Both XML RPC and SOAP can not handle this.. or am I missing something?

    * I want a package that will handle marshaling/unmarshaling data structs and also can handle exceptions.

    * right now, I am left with plain socket programming. There must be a better way..right?

    thanks in advance.. ./LinuxLover