Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
tintin++ ogg sound player script for linux
Author: Robert Smith
Submitted by: Vladaar
6Dragons ogg Soundpack
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.4
Author: Vladaar
Submitted by: Vladaar
LoP 1.46
Author: Remcon
Submitted by: Remcon
LOP 1.45
Author: Remcon
Submitted by: Remcon
Users Online
CommonCrawl, Sogou

Members: 0
Guests: 7
Stats
Files
Topics
Posts
Members
Newest Member
481
3,735
19,370
618
Micheal64X
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » General » Coding » Instanced Zones
Forum Rules | Mark all | Recent Posts

Instanced Zones
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Oct 6, 2009, 3:31 pm
Go to the top of the page
Go to the bottom of the page

Lares
Fledgling
GroupMembers
Posts13
JoinedSep 29, 2009

Hey, just wondering...

Has anyone ever thought of using an instanced zone system for areas? Is there any code out there that is currently using it?
       
Post is unread #2 Oct 6, 2009, 11:16 pm   Last edited Oct 6, 2009, 11:18 pm by Caius
Go to the top of the page
Go to the bottom of the page

Caius
Magician
GroupMembers
Posts132
JoinedJan 29, 2006

SWFotE uses a quasi-instance system for creating spaceships. Basically each ship has a template which resembles an area file. Then there is a designated area in the mud where rooms are created for instanced ships, based on these templates. The system is pretty awkward, but you could take a look to get some ideas at least.
       
Post is unread #3 Oct 7, 2009, 1:49 am
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,643
JoinedJan 1, 2002

You'll also want to look at the code for virtual rooms as it would probably prove useful for this. There's also another discussion on this topic around here somewhere.
       
Post is unread #4 Oct 7, 2009, 9:36 pm
Go to the top of the page
Go to the bottom of the page

Lares
Fledgling
GroupMembers
Posts13
JoinedSep 29, 2009

Where would I find the code for virtual rooms?

I'm thinking of just having a struct for instances to load exactly like rooms, however not save. The only problem I can think of this is if the mud crashes or hotboots, it would lose the instance and force players to start over.
       
Post is unread #5 Oct 8, 2009, 8:24 am
Go to the top of the page
Go to the bottom of the page

Caius
Magician
GroupMembers
Posts132
JoinedJan 29, 2006

I believe you'll find the virtual room code in any of the FUSS codebases downloadable from this site (Smaug/SWR/SWFotE). I think there was some problem with a bug fix messing up the virtual room system. If so, you can locate a copy of the older non-FUSS versions.
       
Post is unread #6 Oct 8, 2009, 4:42 pm
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

Instanced zones is something I've brought up several times here in the past, and has always been met with curiosity, but no one really seems to have ever been curious enough to actually attempt it, and return with some kind of proof of concept. Personally, it might be something I pursue for Elysium. But that's a long way off.

I'm not entirely convinced that the pro's of the system fit with the way most MUDs work. Most players on MUDs I've played have generally worked with other groups to determine who would be using which areas when, and worked around it. Other than leveling, I've never really seen anything where it would make a difference.

On the topic of Virtual rooms, yes, they seem like a good place to start, until you actually look at the code and realize it would be easier to write an instancing system from scratch then try to adapt them to that use.
       
Post is unread #7 Oct 8, 2009, 7:38 pm
Go to the top of the page
Go to the bottom of the page

Lares
Fledgling
GroupMembers
Posts13
JoinedSep 29, 2009

I am extremely interested in attempting to get virtual rooms to work on a mud level. I do not think it would be a difficult thing to install, just time consuming to write in all the pointers to instances rather than static rooms.

I understand that generally, it's not required, however it could be a good thing in a mud with 50+ players going to the same area all at once.

I will start pondering how I will implement this system without recreating a wheel that doesn't have all it's spokes. If anyone has some pointers, other than looking at virtual rooms, please let me know. Or if someone would like to help me work on this, that would be nice as well.

       
Post is unread #8 Oct 9, 2009, 12:56 am
Go to the top of the page
Go to the bottom of the page

Caius
Magician
GroupMembers
Posts132
JoinedJan 29, 2006

Kayle said:

Instanced zones is something I've brought up several times here in the past, and has always been met with curiosity, but no one really seems to have ever been curious enough to actually attempt it, and return with some kind of proof of concept. Personally, it might be something I pursue for Elysium. But that's a long way off.


Well, for the record I have a fully working instanced zone system up and running. Currently I only use it to create a deep copy of a normal area when a player buys a spaceship. It is different from the FotE solution in that each spaceship gets it own area, with its own private vnum range, and absolutely everything is copied.

I have also thought of other uses for it, like using instanced zones for assault courses in our military academy, and for certain types of quests.

This system was very easy to implement for me, because I had already changed how vnums work. In my system each area has its own private range, in that a "vnum" actually consists of two components. An zone ID + room/object/mobile ID. Thus all zones can have room 100, for example. So copying a zone is a simple matter of altering the zone part of the vnums. A fully qualified vnum is referred as <zone name/or ID>:<room ID>, like 4:100 or myarea:100. So I don't need to actually alter the IDs of the rooms within the zone.

This is one of the things that makes the FotE system a bit messy; it needs to find a suitable free "block" inside the area where it puts temporary rooms, and shift all the vnums. When the ship is deleted, so are these rooms. But this leaves that special area fragmented, and sooner or later you might end up in a situation where there is nowhere to put a large ship with, say, 50 rooms. In my case the instanced zone is a completely separate entity, and when it's no longer needed, the entire thing is simply deleted.

My approach makes many things very simple. There is no need to have any conditional code anywhere. The MUD simply doesn't need to know whether it's an instanced or a permanent zone.

If each zone didn't have its own private vnum range, though, this wouldn't have been as straight forward.
       
Post is unread #9 Oct 9, 2009, 6:05 am
Go to the top of the page
Go to the bottom of the page

Lares
Fledgling
GroupMembers
Posts13
JoinedSep 29, 2009

That type of system is kinda along the lines of how I was thinking of implementing it, but without rewriting the current vnum system. <InstanceID>:<RoomNum>...

Thank you for the heads up. The only thing I would do differently is that instances would be temporary and would not persist past all characters saved to it logging out. The only problem I can see with this is that if there's a crash, they would have to start over, but that's not that big of a deal because I'm hoping not to have many crashes.
       
Post is unread #10 Oct 9, 2009, 6:34 am
Go to the top of the page
Go to the bottom of the page

Caius
Magician
GroupMembers
Posts132
JoinedJan 29, 2006

Lares said:

[...] but that's not that big of a deal because I'm hoping not to have many crashes.

Don't we all? ;-)
       
Post is unread #11 Oct 9, 2009, 6:36 am
Go to the top of the page
Go to the bottom of the page

Caius
Magician
GroupMembers
Posts132
JoinedJan 29, 2006

Lares said:

That type of system is kinda along the lines of how I was thinking of implementing it, but without rewriting the current vnum system. <InstanceID>:<RoomNum>...

The rewrite was unrelated to zone cloning. That was just a nice bonus. Hehe.
       
Post is unread #12 Oct 9, 2009, 7:30 pm
Go to the top of the page
Go to the bottom of the page

Lares
Fledgling
GroupMembers
Posts13
JoinedSep 29, 2009

Definately a nice bonus, I just don't know if I need to rewrite the vnum system in order to add instances. I'll keep everyone posted on my progress, but I gotta finish my current project first, lol.
       
Pages:<< prev 1 next >>