May 2002
- Random Resets John Robert Arras
- Random Resets Kwon Ekstrom
- Random Resets John Robert Arras
- [MLP] The use of ecology models Rayzam
- Interesting things to do (was: Player Accounts on a Non-Commercial MUD) John Buehler
- Apple WWDC? amanda@alfar.com
- Apple WWDC? Nathan F. Yospe
- Apple WWDC? Amanda Walker
- Apple WWDC? Sasha Hart
- Apple WWDC? amanda@alfar.com
- Apple WWDC? Brian Hook
- Apple WWDC? John A. Bertoglio
- Apple WWDC? Daniel.Harman@barclayscapital.com
- Apple WWDC? Matt Mihaly
- Apple WWDC? shren
- Apple WWDC? Matt Mihaly
- Apple WWDC? John A. Bertoglio
- Apple WWDC? James Edward Gray II
- Apple WWDC? Brian Hook
- Encouraging groups without grouping Brian 'Psychochild' Green
- Introduction and My solution to Powergamers, Treadmills, and Content Devaluation. Ken Raisor
- The audience is the medium. For now. John Szeder
- The audience is the medium. For now. John Buehler
- The audience is the medium. For now. Damion Schubert
- The audience is the medium. For now. Ted L. Chen
- The audience is the medium. For now. Shane Gough
- The audience is the medium. For now. Michael Tresca
- The audience is the medium. For now. Ted L. Chen
- The audience is the medium. For now. Marian Griffith
- The audience is the medium. For now. Vincent Archer
- The audience is the medium. For now. Damion Schubert
- The audience is the medium. For now. David B. Held
- The audience is the medium. For now. Ted L. Chen
- The audience is the medium. For now. Marian Griffith
- The audience is the medium. For now. F. Randall Farmer
- The audience is the medium. For now. J C Lawrence
- The audience is the medium. For now. Frank Crowell
- Ownership of characters Jasper McChesney
- Explorers? (Was: Codename Blue & Facets - Nick Yee's new studies) Brian 'Psychochild' Green
- Befriending Critters (was: Random Resets) Arthaey
- Questions about server design Ben Chambers
- Questions about server design Michael Bayne
On Sat, 4 May 2002 22:11:44 Ben Chambers wrote:
> First question, is about the new java.nio classes introduced in
> version 1.4. I've seen a lot of information using them as simple
> echo servers, but not much on expanding that to something like a
> chat server or beyond. What would be the best way of handling
> this?
I don't imagine any particular architecture is best in all cases,
but for a MUD server, a message based approach is very effective.
I have found that a single thread handling all of the networking
(reading and writing) works nicely (on a dual processor machine)
with another thread that processes the messages and performs the
"logic" of the server.
I haven't seen any problems with writing before reading, and the
main network handling loop on the server I'm currently developing
looks something like:
loop:
1. close connections that have been marked for death
2. write queued outgoing messages
3. block in select() waiting for incoming data
4. read, frame and queue incoming messages (handing them off to a
separate message processing thread which eventually ends up
queuing up outgoing messages)
You should note that in (3) while select() is blocked waiting for
incoming data, any messages posted to the outgoing queue won't be
processed until data is received or the select() times out; thus in
a server that is receiving little traffic, you'll want a short
select() timeout.
You could go through the rigamarole of incorporating a separate
socket into your select() to which you could write when a message is
posted to the outgoing queue so that your select() would wake up and
you could subsequently process the outgoing message, but in a server
that's doing any meaningful amount of traffic, this is a pointless
act because you'll pretty much be constantly reading and writing
anyway and won't need the overhead every time you post a message.
What you do want to be careful of is that only one thread is reading
or writing to any particular socket at the same time. By doing all
I/O on a single thread, you simplify your life in that regard.
> Second question, how plausible is XML as a format for MUD data
> files as opposed to a SQL based database? Would it be fast enough
> using the java classes to parse it to create a XML based format
> for my MUD data files instead of using SQL? This idea appeals to
> me because it makes it easier to write object oriented data files
> that take into account inheritance and stuff, but I don't know if
> the load times would be drastically reduced.
Whether XML is fast enough seems a minor consideration in deciding
how to architect the storage of your MUD data. That said, XML is not
designed for speed of parsing. Doing so creates many many strings
and is hardly likely to be able to move data as quickly as a
reasonably optimized JDBC driver.
To scale to interesting levels, you'll need to spread the processing
between multiple machines. In such circumstances, XML on the file
system is likely to only be useful for static data that can be
mirrored to all of the machines in the cluster. Not useful for the
data that makes up the ever growing and changing persistent world
that one is generally trying to create with a MUD.
Even if your server will only run on a single machine, XML files are
not well suited to changing data (an XML database would be a
different story, but I'm not aware of anything that's robust and
inexpensive). Additionally, I think that you'll find that XML
doesn't grease the wheels of OO persistence a whole heck of a lot
more than does a reasonable object/relational library. I can
recommend a couple if you're not familiar with what's available in
that regard.
For the XML parsing you do end up doing, I highly recommend using
the Digester library from the Apache guys:
http://jakarta.apache.org/commons/digester.html
It's great for turning XML into objects.
Where performance really is a concern, I've found parsing the XML
into Java objects and then serializing those back to disk to be
quite effective. The server then simply unserializes the objects at
startup which is about as fast as you're going to get in a world
where you can't dump pages of memory to disk directly.
It so happens that we're planning on releasing the source to our
game development toolkit once we've finished this first project. So
if you're keen, I can send you the relevant networking code.
-- mdb /o)\ "In a world full of bad ideas, this may be the worst
\(o/ I've heard." -- Paul on an advertising strategy - Questions about server design Sean Middleditch
- Questions about server design Mike Shaver
- Questions about server design Kwon Ekstrom
- Questions about server design szii@sziisoft.com
- Questions about server design F. Randall Farmer
- Questions about server design James Edward Gray II
- Questions about server design Shane Gough
- Questions about server design Michael Bayne
- Extensibility Ben Chambers
- Extensibility Ammon Lauritzen
- Extensibility Kwon Ekstrom
- Extensibility Ben Chambers
- Extensibility "Christopher {siege} " OBrien
- Extensibility Sean Middleditch
- Extensibility Sean Kelly
- Extensibility John Buehler
- Extensibility shren
- Extensibility John Buehler
- Extensibility szii@sziisoft.com
- Extensibility John Buehler
- Extensibility szii@sziisoft.com
- Extensibility Mike Shaver
- Question: Any published research on Sims type game personae? susan wu
- [MLP] Why care about levels? (was: The use of ecolo Richard Woolcock
- [MLP] Why care about levels? (was: The use of ecolo gy models) Jon Lambert
- Component Design (was: Extensibility) Scion Altera
- [BIZ] Selling Stock (formerly Blacksnow revisted ) Robert A. Rice, Jr.
- Games are Hot. Period Michael Tresca
- Games are Hot. Period Gladimir
- Games are Hot. Period Richard Aihoshi aka Jonric
- Games are Hot. Period Freeman, Jeff
- Games are Hot. Period Richard Aihoshi aka Jonric
- Games are Hot. Period Koster, Raph
- Games are Hot. Period Vincent Archer
- Games are Hot. Period Richard Aihoshi aka Jonric
- Games are Hot. Period Matt Mihaly
- fun Matt Mihaly
- [TECH] Shortest Path William Murdick
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Ted L. Chen
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction John Buehler
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Ted L. Chen
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Eli Stevens
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Jon Leonard
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Hans-Henrik Staerfeldt
- [TECH] Voice in MO* - Phoneme Decomposition and Rec onstruction Robert Zubek
- [TECH] Voice in MO* - Phoneme Decomposition and Rec onstruction ceo@grexengine.com
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Hans-Henrik Staerfeldt
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Ted L. Chen
- [TECH] Voice in MO* - Phoneme Decomposition and Rec onstruction Koster, Raph
- [TECH] Voice in MO* - Phoneme Decomposition and Rec onstruction lynx@lynx.purrsia.com
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Ted L. Chen
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Rudy Neeser
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Matt Mihaly
- [TECH] Voice in MO* - Phoneme Decomposition and Rec onstruction Daniel.Harman@barclayscapital.com
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction John Buehler
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Ted L. Chen
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction Mike Shaver
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction John Buehler
- [TECH] Voice in MO* - Phoneme Decomposition and Reconstruction amanda@alfar.com
- [TECH] Voice in MO* - Phoneme Decomposition and Rec onstruction Koster, Raph
- [TECH] Voice in MO* - Phoneme Decomposition and Rec onstruction Steve {Bloo} Daniels
- Combat with Style (was Player Accounts on a Non-Commercial MUD) lynx@lynx.purrsia.com
- Playskins Koster, Raph
- People were talking about resets.. Anderson, David
- People were talking about resets.. Sasha Hart
- People were talking about resets.. Anderson, David
- People were talking about resets.. John Buehler
- People were talking about resets.. Anderson, David
- People were talking about resets.. Arnau Rossell=?US-ASCII?Q?=F3?= Castell=?US-ASCII?Q?=F3?=
- People were talking about resets.. shren
- People were talking about resets.. Anderson, David
- People were talking about resets.. David B. Held
- People were talking about resets.. shren
- People were talking about resets.. Anderson, David
- People were talking about resets.. Michael Tresca
- People were talking about resets.. Fred Clift
- People were talking about resets.. Lars Duening
- People were talking about resets.. Michael Tresca
- People were talking about resets.. Rayzam
- People were talking about resets.. Matt Mihaly
- People were talking about resets.. Tand'a-ur
- People were talking about resets.. John Buehler
- People were talking about resets.. Leland Hulbert II
- People were talking about resets.. lynx@lynx.purrsia.com
- People were talking about resets.. Jason Murdick
- People were talking about resets.. Jeff Lindsey
- People were talking about resets.. Ben Chambers
- People were talking about resets.. Sasha Hart
- People were talking about resets.. David B. Held
- People were talking about resets.. Sasha Hart
- People were talking about resets.. Anderson, David
- People were talking about resets.. David B. Held
- People were talking about resets.. Acius
- People were talking about resets.. Marian Griffith
- Question about copyovers. Anderson, David
- Question about copyovers. Tand'a-ur
- Question about copyovers. Anderson, David
- Question about copyovers. Kwon Ekstrom
- Question about copyovers. Adam
- Question about copyovers. Oliver Jowett
- Question about copyovers. Kwon Ekstrom
- Question about copyovers. Lars Duening
- Question about copyovers. Jon Lambert
- Question about copyovers. fred@clift.org
- Question about copyovers. Zach Collins {Siege}
- Question about copyovers. Smith, David {Lynchburg}
- non-violent activities (was People were talking about resets..) Ammon Lauritzen
- References on personality and emotion models Robert Zubek
- Multimodal interface conference. Rayzam
- Hyperbolies R Us shren
- Hyperbolies R Us Matt Mihaly
- TECH: Systems Administration Issues Thomas Leavitt
- Questions about ... XML as data format Adam
- Questions about ... XML as data format Anderson, David
- Questions about ... XML as data format Kwon Ekstrom
- R&D Matt Mihaly
- Conversation logs? Robert Zubek
- Conversation logs? Rudy Fink
- Conversation logs? Vincent Archer
- Conversation logs? Shane Gough
- DGN: Elastic Advancement in MUDs? Jeff Lindsey
- DGN: Elastic Advancement in MUDs? David B. Held
- Building histories off civilizations automatically adam Martin
- ADMIN: Virii and mail forgeries J C Lawrence
- Hi from the Dragon Empire's CLM Peter Tyson
- Linux gaming ( was Apple WWDC? ) Kevin Mack
- [TECH] Preferred LPC replacement? Jeff Bachtel
- [TECH] Preferred LPC replacement? Damion Schubert
- Who `owns' conversation logs? Joshua Judson Rosen
- The Online Gaming Life for Me! Michael Tresca
- Boredom Ben Chambers
- Law of Diminishing Marginal Utility [was Boredom] Ron Gabbard
- Law of Diminishing Marginal Utility [was Boredom] Caliban Tiresias Darklock
- "MMOG" Bible Brian 'Psychochild' Green
- "MMOG" Bible David Kennerly
- TECH: Single process v.s. multi process? Philip Mak
- TECH: Single process v.s. multi process? Smith, David {Lynchburg}
- TECH: Single process v.s. multi process? Bruce Mitchener
- TECH: Single process v.s. multi process? Bruce Mitchener
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Clay
- In defense of "soloability" [was Law of Diminishing Marginal Utility] apollyon
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Caliban Tiresias Darklock
- In defense of "soloability" [was Law of Diminishi ng Marginal Utility] Koster, Raph
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Michael Tresca
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Paul Schwanz
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Martin C. Martin
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Dave Rickey
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Sanvean
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Matt Mihaly
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Michael Tresca
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Kwon Ekstrom
- In defense of "soloability" [was Law of Diminishing Marginal Utility] Ron Gabbard
- Game shows Peter Tyson
- What keeps people interested in social muds? Martin C. Martin
- What keeps people interested in social muds? Rudy Fink
- What keeps people interested in social muds? Martin C. Martin
- What keeps people interested in social muds? Joshua Judson Rosen
- What keeps people interested in social muds? Ron Gabbard
- What keeps people interested in social muds? Marc Bowden
- What keeps people interested in social muds? Joshua Judson Rosen
- What keeps people interested in social muds? lynx@lynx.purrsia.com
- What keeps people interested in social muds? Richard A. Bartle
- What keeps people interested in social muds? Martin C. Martin
- What keeps people interested in social muds? Richard A. Bartle
- New Beginings Drylar Levre
- New Beginings Acius
- New Beginings ceo@grexengine.com
- New Beginings Bruce Mitchener
- New Beginings David B. Held
- New Beginings Kwon Ekstrom
- New Beginings David B. Held
- New Beginings Kwon Ekstrom
- New Beginings Sean Kelly
- New Beginings Lars Duening
- New Beginings David B. Held
- New Beginings Lars Duening
- New Beginings Bruce Mitchener
- New Beginings David B. Held
- New Beginings Kwon Ekstrom
- New Beginings Paul Schwanz
- New Beginings Zach Collins {Siege}
- New Beginings Miroslav Silovic
- New Beginings David B. Held
- New Beginings Draymoor a Vin il'Rogina
- New Beginings David B. Held
- New Beginings Kwon Ekstrom
- New Beginings Bruce Mitchener
- [DGN] Creating a MUD Richard Krush
- [DGN] Creating a MUD Acius
- [DGN] Creating a MUD Caliban Tiresias Darklock
- [DGN] Creating a MUD Edward Glowacki
- [DGN] Creating a MUD Kwon Ekstrom
- [DGN] Creating a MUD Edward Glowacki
- [DGN] Creating a MUD Fred Clift
- [DGN] Creating a MUD David Bennett
- [DGN] Creating a MUD fred@clift.org
- [DGN] Creating a MUD Damion Schubert
- [DGN] Creating a MUD Taylor
- [DGN] Creating a MUD Matt Mihaly
- [DGN] Creating a MUD Daniel.Harman@barclayscapital.com
- On the creation of constructive/social behaviours in online games! Marc Demesel
- [DGN] MUD Books James Edward Gray II
- [DGN] MUD Books Scion Altera
- [DGN] MUD Books Jeremy Noetzelman
- [DGN] MUD Books Tand'a-ur
- Positive reinforcement for socializing [was In de fense of "soloability" ] Jeff Lindsey
- Character skill distribution and trade-offs Ron Gabbard
- Character skill distribution and trade-offs Daniel.Harman@barclayscapital.com
- Character skill distribution and trade-offs Vincent Archer
- Character skill distribution and trade-offs Daniel.Harman@barclayscapital.com
- Character skill distribution and trade-offs John Buehler
- Character skill distribution and trade-offs Sean Kelly
- Character skill distribution and trade-offs Ron Gabbard
- Space partitioning, R-Trees? Dread Quixadhal
- Space partitioning, R-Trees? Daniel.Harman@barclayscapital.com
- Space partitioning, R-Trees? Hans-Henrik Staerfeldt
- Space partitioning, R-Trees? Crosbie Fitch