May 2003
- NetGames 2003: CFParticipation Sugih Jamin
- MUD codebases Chris Saik
- MUD codebases Ammon Lauritzen
- MUD codebases Caliban Tiresias Darklock
- MUD codebases Linder Support
- MUD codebases J C Lawrence
- Flow of messages sanxion sanxion
- Flow of messages Ammon Lauritzen
- Flow of messages Ben Chambers
- Flow of messages Travis Casey
- Flow of messages Brian Lindahl
- Flow of messages Ben Chambers
- Flow of messages Brian Lindahl
- Flow of messages sanxion sanxion
- Flow of messages Brian Lindahl
- UDP vs TCP for MUD/MMORPG project. Jason Slaughter
- UDP vs TCP for MUD/MMORPG project. Matt Mihaly
- UDP vs TCP for MUD/MMORPG project. Ryan Arthur
- UDP vs TCP for MUD/MMORPG project. Crosbie Fitch
- UDP vs TCP for MUD/MMORPG project. William
- UDP vs TCP for MUD/MMORPG project. Byron Ellacott
- UDP vs TCP for MUD/MMORPG project. Evan Cortens
- UDP vs TCP for MUD/MMORPG project. J C Lawrence
- UDP vs TCP for MUD/MMORPG project. Amanda Walker
- Customization in games, as a design tool / gameplay element ceo
- Warrior Challenge on PBS Madrona Tree
- Warrior Challenge on PBS Edward Glowacki
- Warrior Challenge on PBS Travis Casey
- Warrior Challenge on PBS Michael Chui
- MudDev FAQ - part 2 Marian Griffith
- MudDev FAQ - part 2 Mats Lidstrom
- MudDev FAQ - part 2 J C Lawrence
- MudDev FAQ - part 2 J C Lawrence
- Storytelling in a PSW from a Player's Persepctive Talanithus HTML
- Storytelling in a PSW from a Player's Persepctive Michael Chui
- Storytelling in a PSW from a Player's Persepctive David Kennerly
- Storytelling in a PSW from a Player's Persepctive Michael Chui
- Storytelling in a PSW from a Player's Persepctive Talanithus HTML
- Storytelling in a PSW from a Player's Persepctive J C Lawrence
- relevance of paper RPGs (was D& D vs. MMORPG "complexity") Travis Casey
- WAP MUD GAME DEVELOP Richard Ruan
- WAP MUD GAME DEVELOP Edouard Kock
- D&D and MMORPGs Michael Tresca
- D&D and MMORPGs Sean Kelly
- D&D and MMORPGs shren
- D&D and MMORPGs Threshold RPG
- D&D and MMORPGs Taylor
- D&D and MMORPGs Chris Holko
- D&D and MMORPGs Daniel James
- D&D and MMORPGs Peter Tyson
- D&D and MMORPGs Jason Murdick
- D&D and MMORPGs Michael Tresca
- D&D and MMORPGs Michael Tresca
- Database vs. Disk Tom
- Database vs. Disk Sean Kelly
- Database vs. Disk Ben Garney
- Database vs. Disk Adam Dray
- Database vs. Disk Hans-Henrik Staerfeldt
- Database vs. Disk Brian Lindahl
- Database vs. Disk Chris Holko
- Database vs. Disk Daniel.Harman@barclayscapital.com
- Database vs. Disk Weston Fryatt
- Database vs. Disk J C Lawrence
- Database vs. Disk Byron Ellacott
- Database vs. Disk Dave Rickey
- Database vs. Disk J C Lawrence
- Database vs. Disk Bruce Mitchener
- Database vs. Disk J C Lawrence
- Database vs. Disk Bruce Mitchener
- Database vs. Disk Jason Gauthier
- Database vs. Disk J C Lawrence
- Database vs. Disk Nicolai Hansen
- Database vs. Disk Zach Collins {Siege}
- Database vs. Disk J C Lawrence
- Database vs. Disk Zach Collins {Siege}
- Database vs. Disk J C Lawrence
- Database vs. Disk Kwon Ekstrom
- Database vs. Disk J C Lawrence
- Database vs. Disk John A. Bertoglio
- Database vs. Disk corrine_123@hotmail.com
- Database vs. Disk Kwon J. Ekstrom
- Database vs. Disk J C Lawrence
- Database vs. Disk Peter "Pietro" Rossmann
- Database vs. Disk Marc Bowden
- Database vs. Disk Kwon J. Ekstrom
- Database vs. Disk Sulka Haro
- Thoughts on a simplified multiplayer game. Jason Slaughter
- Thoughts on a simplified multiplayer game. Edward Glowacki
- Thoughts on a simplified multiplayer game. J C Lawrence
- Thoughts on a simplified multiplayer game. Bruce Mitchener
- Thoughts on a simplified multiplayer game. Edward Glowacki
- Thoughts on a simplified multiplayer game. J C Lawrence
- Thoughts on a simplified multiplayer game. Bruce Mitchener
- Thoughts on a simplified multiplayer game. Christopher Allen
- Thoughts on a simplified multiplayer game. ghfdh fcgdfgdfg
- ADMIN: Untoward unsubscriptions J C Lawrence
- Bringing out the barbaric in each of us David Kennerly
- Horizons Valerio Santinelli
- RP, MMORPGs, and their Evolution Talanithus HTML
- RP, MMORPGs, and their Evolution Brian Lindahl
- RP, MMORPGs, and their Evolution Michael Chui
- RP, MMORPGs, and their Evolution Marian Griffith
- RP, MMORPGs, and their Evolution Paul Schwanz
- RP, MMORPGs, and their Evolution J C Lawrence
- RP, MMORPGs, and their Evolution Matt Mihaly
- Account retention (was: D& D vs. MMORPG "complexity") Byron Ellacott
- Object-Oriented Databases John A. Bertoglio
- Object-Oriented Databases Weston Fryatt
- Object-Oriented Databases Travis Nixon
- Object-Oriented Databases Bruce Mitchener
- Object-Oriented Databases John A. Bertoglio
From: "Adam" <adam@grexengine.com>
> John A. Bertoglio wrote:
>> The discussion on databases prompted me to delurk for a moment.
>> The problem is what kind of database? RDBMS are extremely fast
>> when
>> Over the last few years I have made my living doing consulting
>> and development for a database system that would (except for its
>> cost) be perfect for multi-player games. The product is a called
>> Cache' from InterSystems.
>> The key to these products are the way they store data. Instead of
>> using rows and columns, data is stored in multi-dimensional
>> arrays. It is a very odd product in many ways. If anyone cares, I
>> could expound on how Cache' works but perhaps that would be best
>> off list.
> I'd be really interested in hearing more about this, on or off
> list. I've done some experimentation about 12-18 months ago with
> techniques that sound superficially similar: I had source code to
> some very old CRPGs, which used an object-hierarchy made entirely
> of multi-dimensional int (or even char) arrays. I was looing at
> the pros/cons of using such approaches in a heavily distributed
> environment - where many method-calls require a complete
> object-serialize/de-serialize, and memory requirements tend to
> spiral out of control.
There is an alternative that allows the use of these arrays. It is
all dependent on how you structure them for access. For example: A
chair can be used as a weapon. In a strict object environment, you
could have an furniture object that inherits from a generic item
object (object object?). To allow it to be used as a weapon, you
would also have to inherit from a weapons class (assuming your
enviroment allows multiple interitance). If the chair can degrade
from use (non-weapon), you might need to inherit from a status
object. If the chair adds to one's prestige, you need to add
properties and methods from the prestige object and so on. If you
use item archetypes, you need another layer of objects.
This is very nasty if all you want to know is there is a chair in
the room.
My method is to use a pseudo-object model. The item array has
various levels of properties that represent objects. While these are
not true objects, all standard modeling techniques work just
fine. Here is a simplified example:
ObjectID=1
Item(1,ARCHETYPE)="33"
Item(1,GENERAL)=""
Item(1,GENERAL,MASS)="33.2" // kg
Item(1,GENERAL,HEIGHT)="1.1" //meter
Item(1,GENERAL,WIDTH)=".6" //meter
Item(1,GENERAL,DEPTH)=".5" //meter
Item(1,GENERAL,...etc)="..." // and so on
If the item is a weapon, you don't need a flag, just add the properties
Item(1,WEAPON)="YES" //
Item(1,WEAPON,BLUNT)="" //
Item(1,WEAPON,BLUNT,DAMAGE,)="YES" //
Item(1,WEAPON,BLUNT,DAMAGE,BASE)="2d3" //
Item(1,WEAPON,BLUNT,DAMAGE,MODS)="YES" //
Item(1,WEAPON,BLUNT,DAMAGE,MODS,NONWEAPON)="YES" //
Item(1,WEAPON,BLUNT,DAMAGE,MODS,NONWEAPON,VALUE)=".65" // %
// reduction due to poor suitablity as weapon. Blunt weapons do
// damage based on mass times longest dimention
Item(1,WEAPON,CONSEQUENCES)="YES" //
Item(1,WEAPON,CONSEQUENCES,STAT,AGILITY)="YES" //
Item(1,WEAPON,CONSEQUENCES,STAT,AGILITY,VALUE)="-.50" // % lose
// 50% of agility stat while wielding.
and so on. If the chair is not a weapon, none of the nodes above are
in the item record.
If the player says WIELD CHAIR (use it as a weapon) the system looks
into the db to see if Item(1,WEAPON) has a value. If it does, it
allows the player to wield the weapon, the code checks for the
existance of a CONSEQUENCES node and applies the proper
consequences. If there is none, the code moves on.
The same thing is goes for FURNITURE nodes (comfort, capacity, role,
etc). Note that BLUNT could be seen as a subclass of WEAPON. In all
cases, you can have a an item ARCHETYPE (#33, in this case) that the
system can check if a value is not overridden in the "instance" of
ARCHETYPE 33 (the base object) in the data store. For a generic
chair, only the first node is required (along with information about
where it is in the world and any wear, etc.) will be found. This
has the advantage of saving a huge amount of disk and memory storage
especially if you enter a banquet hall with 100 chairs. Make for a
heck of a bar fight but normally all that data would be a waste to
load. The ARCHETYPE might have the weapon node set to NO as a
default. But since it has all the base data for a weapon, all the
designer needs to do to "weaponize" a chair is reset the node to
YES.
In the actual code, we use numeric subscripts because they are
smaller, faster and allow the use of bitmapped indexes which are
VERY fast.
John Bertoglio - Object-Oriented Databases Jeff Bachtel
- Object-Oriented Databases Sean Kelly
- TECH: Application-level branch prediction? ceo
- DID vs. MORAG "complexity" Jeff Cole
- DID vs. MORAG "complexity" Dave Rickey
- DID vs. MORAG "complexity" Matt Mihaly
- Objects Ben Chambers
- Scripting languages Jason Murdick
- Scripting languages Brian Hook
- Scripting languages Jason Gauthier
- Scripting languages Sanvean
- Scripting languages Jason Murdick
- Scripting languages Mark 'Kamikaze' Hughes
- Scripting languages Ling Lo
- Scripting languages Jay Carlson
- Scripting languages Mark 'Kamikaze' Hughes
- Scripting languages Lars Duening
- Scripting languages Mark 'Kamikaze' Hughes
- Scripting languages Lars Duening
- Scripting languages Kwon J. Ekstrom
- Scripting languages Lars Duening
- Scripting languages justice@softhome.net
- Scripting languages MIKE MacMartin
- Scripting languages Kwon J. Ekstrom
- Scripting languages Bruce Mitchener
- Scripting languages Kwon J. Ekstrom
- Scripting languages Dr. Cat
- Scripting languages Jay Carlson
- Scripting languages David H. Loeser Jr.
- Scripting languages Shu-yu Guo
- Scripting languages Lars Duening
- Scripting languages David H. Loeser Jr.
- Scripting languages criscal@gmx.de
- Scripting languages eric
- Scripting languages Smith, David {Lynchburg}
- Scripting languages John Buehler
- Scripting languages Mike Shaver
- Scripting languages sanxion sanxion
- Scripting languages Mark 'Kamikaze' Hughes
- Scripting languages Mike Shaver
- Scripting languages sanxion sanxion
- Scripting languages Mark 'Kamikaze' Hughes
- When marketroids attack! Tess Snider
- Moo mailing list issue _DESPARATE FOR HELP! Ms Leigh Canny
- Moo mailing list issue _DESPARATE FOR HELP! David Clifton
- When Player Communities Rebel / Fanbois Gone Rogue vladimir cole
- When Player Communities Rebel / Fanbois Gone Rogue Andrew Barratt {MIS}
- NWN player modules (was: D&D and MMORPGs) Lars Duening
- NWN player modules (was: D&D and MMORPGs) Jonathan Grant
- Simpsons player types Matt Mihaly
- Dealing with cloned NPCs Thomas Sullivan
- Dealing with cloned NPCs Sasha Hart
- Dealing with cloned NPCs Mark 'Kamikaze' Hughes
- Dealing with cloned NPCs Kristen Koster
- Dealing with cloned NPCs Marc Bowden
- Dealing with cloned NPCs Kristen Koster
- Dealing with cloned NPCs Thomas Sullivan
- Dealing with cloned NPCs Owen Matt
- Dealing with cloned NPCs John Buehler
- Dealing with cloned NPCs Owen Matt
- Dealing with cloned NPCs Thomas Sullivan
- Dealing with cloned NPCs Vincent Archer
- The Laws of the Virtual Worlds Tamzen Cannoy