23 Oct, 2010, drifton wrote in the 1st comment:
Votes: 0
I'm the lead coder on a custom mud codebase in the middle of working out the olc and format for the world of the custom code base
i've already got the basics down for telnet and account management for my mud engine

so what options are out there for referencing zones and rooms and whats everyones preferred method for this

i'm currently using <zoneid#>,<roomid#> with the id's being generated when the objects are created from a list of free/non used id numbers

my friend is toying with using something like <room key string>@<zone key string> for referencing rooms and zones and for linking with exits

so for linking an exit to the grand capital main room

@link north grand.room@capitalzone

My biggest problem with this is that generating these keys automatically and usefully with out overlap would be very complicated unless they were assigned during the creation of the room and zone by the builder i don't know if i like the idea of having to force the builder to assign keys so that they can reference

my goal is for users to just be able to download the code base run the program and just have everything work

suggestions ideas doom and gloom fire away? thanks every one
23 Oct, 2010, chrisd wrote in the 2nd comment:
Votes: 0
drifton said:
my friend is toying with using something like <room key string>@<zone key string> for referencing rooms and zones and for linking with exits

NakedMud uses this… method, for lack of a better word, and it works very nicely. When creating a room, builders just do: redit room@zone and a new room with that key is created for them - simple. I guess in your case it might be something like @create room room@zone - that's still super easy. Having keys is far, far nicer than having vnums, in my opinion.
23 Oct, 2010, Runter wrote in the 3rd comment:
Votes: 0
I use a system where anything createable has a tag in the format of any.valid.string. Furthermore, any createable item may act as the namespace for another. This creates a generic lookup chain. The format I use, for example, for a steel sword in a city on a continent would be: sylverant::renegade.base::steel.sword

The full tag is generated like that. Partial tag lookups are accomplished by simple prefix matches against the terms in any order, returning all found, and the sorting found tags by chain depth and alphabetically. In the previous example I may type "edit sword". Perhaps this is ambiguous. "edit steel sword". Perhaps we got a steel sword on a different area so again too ambiguous. "edit renegade base::steel sword". In any event, I've been using it for a long time now and rarely is ambiguous tags in play.

In regards to the random tag generation- that's precisely what I do. I generate in the format of "class.nato_code.number". Thus you can have an unlimited number of tags sequentially. Ie you could generate a new one without ever running out. The first tag would be room.alpha.1. Although I should mention I only use random tag generation as place holders while macro world creation is happening. e.g. Room layouts.
23 Oct, 2010, Idealiad wrote in the 4th comment:
Votes: 0
@Runter, do you filter partial tag searches by the zone the builder currently is in as well, for example giving the swords in that zone priority over swords in other zones?
23 Oct, 2010, Runter wrote in the 5th comment:
Votes: 0
Sorry. Yes. Additionally to the other sorting mentioned it also sorts by the hierarchy. So the area you're in, the continent, etc, up to global namespace.

I should also mention that I use an internal I'd number system for every game element that never changes. I don't use tags for anything but builder user interface. Certainly not for predeterminate lookups. It would be very inefficient for this.
23 Oct, 2010, drifton wrote in the 6th comment:
Votes: 0
thanks for the replies it wouldn't be that hard for me to create a mapping system to poll ids based off of tags reducing those tags to the generic id's of the system that leads back up the storage tree.

so it seems that room id numbers and zone id numbers are out for basic olc, i'm going to allow the use of them because that is my preferd method but i'll also be implimenting keys or tags what ever i end up calling them its interesting to see how people are referencing their game objects with in game so thanks every one