|
JQuilici Adept
Joined: 21 Sep 2005 Posts: 250 Location: Austin, TX
|
Posted: Tue Jan 20, 2009 5:22 pm
Checking assumptions re: sessions/folders/mapper |
Ok...I've just gotten a new laptop (with Vista x64 ), and I'm migrating stuff over. Plus I intend to so some substantial rewrites on my CMUD scripts, now that I know more than I did when I designed the first set. Seems like a good time to check some of my assumptions about how to set up my CMUD, to be sure I'm not causing trouble for myself.
First, let me address folder setup. I intend to have several different versions of CMUD installed at once (currently gaming on 2.37, but beta-testing 3.x, and may have multiple 3.xs at once in the future). Since I want my 'working' setup to be separate, I have always installed with the user data stored in the game directory (not in 'My Documents') so that each version is self-contained. I do a hand-migration of sessions/packages/maps/etc. between versions when I upgrade (more on this later).
Under Vista, I know that this setup causes problems if CMUD is installed in Program Files (or Program Files x86, I presume), thanks to the file-virtualization done under the covers. Fortunately, it has always been my habit to install games in C:\Games, and I will do so on this laptop also. Thus, I will have C:\Games\CMUD 2.x for my gaming version, and then C:\Games\CMUD 3.03a for the current beta, etc.
Q1: Will this installation setup cause any problems? I know that the recommendation is to install with all the user files under My Documents, but this setup seems to solve the problem also, and so far (after a whopping 1/2 hour) I haven't seen any problems.
Since I have different versions in different folders, I am forced to migrate my sessions and other data between the versions (e.g. when a new beta is released). To date, I have done so with the following steps:
- Install new beta (pointing user files at the install directory)
- Manually copy the folders for each of my characters (each is a separate session) to the new install directory, plus the folder for my common-across-characters files (e.g. map, eq database).
- Delete the .xly file in each session folder in the new install directory.
- Run new beta, and let it setup all its default sessions, etc.
- Delete the sessions created by CMUD.
- Create new sessions for each of my characters. In each one, I manually add the half-dozen packages I've created that are common across characters.
- As I use each one, I have to re-create the layout, and get all the windows sized right, open the mapper and point it to the right file, etc.
This process is annoyingly labor-intensive, but I have vague memories that simply copying over and using the layout files and/or the session DB would cause problems, since they had absolute paths in them that would then point back to files in the previous version (e.g. the mapper window would reference the map in the directory for the old version, not the new one I had copied over, same for the database, etc.).
Q2: Am I wrong? Can I just copy over and use the session DB and layout files? Or do they still contain absolute paths?
Q3: Even if I still need to recreate the sessions...is there a fast way to create a bunch of sessions that are nearly identical? In particular, I want to have them all have the same 5 packages loaded (and a different main session package for each, of course), and I want them all to have the windows docked and sized the same way (but a different session window in each one, of course). Is there some way to create a 'template' session, that is then copied or used as a default for new sessions? I can copy/paste a session in the session window - but everything is exactly the same - same layout file, same session package, etc. I want to make a new session that looks exactly like the old one, except for the main session package and window. Note that this is the same behavior I'd want when I created a new character anyway, regardless of this migrating-to-the-new-beta thing.
Finally....I'm trying to understand how to work with the new mapper and multiple characters/sessions. I want to have one mapper DB that is shared by all the sessions (only one session is open at a time, BTW). In the old mapper (2.x), I just opened the map window in each session, then used the Mapper menu to 'Open' the map file in my common directory. Each session then used the same map. However, in the 3.x world, this fails, because only one of the sessions (the first one, which converted the map) has all the room scripts in it. The others can open the map, but they don't seem to have all the room-script folders that get enabled/disabled.
So...my assumption is that I need to put the mapper object created by the conversion into a shared package, that is imported into each session. I did that, but somewhere along the line the mapper completely stopped following my character(s) entirely, and I don't yet know if it's related to this change, or some other bug, or what.
Q4: What is the intended method of sharing a map across multiple sessions? Am I barking up the wrong tree here?
Q5: Follow-up - What is the best way of pointing a brand-new session at an existing map? Ideally, without creating a new, blank map for each session first...
Thanks in advance for helping me sort out my thinking on these issues. |
|
_________________ Come visit Mozart Mud...and tell an imm that Aerith sent you! |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Jan 20, 2009 5:59 pm |
Q1:
As long as you select the "Use Same directory as program files" for the Data Files in the installer, and then put the program data into their own directories NOT in the "Program Files" area, then you should be fine. So using C:\Games\CMUD2.x etc should work fine as long as you selected the "Same as program files" option for the Data files.
Q2:
To copy your sessions, copy the individual session folders as you already mentioned, but then just copy the SESSIONS.DB and SESSIONKEYS.DB files into the new directory. Those are the files that contain your sessions and they all use relative directory paths, so it should work fine. Also shouldn't be any problem with copying the *.XLY layout files.
The XLY layout files do not contain any file names at all. As long as you are using the same *.PKG files, then the XLY layout should work fine.
On the map path, the old 2.x versions stored an absolute path to the map database. However, the 3.x versions store the relative path within the new Map Object in your settings. But these paths are stored in different places in the package files. v3.x uses the new Map Object location for the map file, and ignores the old 2.x path if this map object exists. So just copying your 3.x packages to any new 3.x beta should work fine.
Q3:
I know that there is a problem sometimes using the Copy/Paste option to create copies of sessions. So I wouldn't recommend that. But the data stored in the SESSION.DB and SESSIONKEYS.DB file is completely separate from your package settings, and the session data all uses relative paths. So just copying these files should maintain your sessions intact between versions. I do it all the time here.
Q4:
Using the same map for multiple sessions isn't quite working correctly yet. In theory, you can move the Map Object into a common package that is shared by all of your sessions, and this will ensure that there is a single map database for multiple sessions. So you are doing it correctly, but there hasn't been a lot of testing of this yet. My main focus has been to ensure that the mapper still works the same as v2.x for people importing their previous maps. The new architecture that allows shared maps and/or multiple maps is still very much in "beta".
Q5:
If you don't want to open a blank map first, then in theory you would go into the Settings Editor and create a New Map object and point it to the map database that you want to use. But then you probably need to exit CMUD and reload the session to get the actual map loaded. Changes to the map object filename don't take effect until the session is restarted. |
|
|
|
JQuilici Adept
Joined: 21 Sep 2005 Posts: 250 Location: Austin, TX
|
Posted: Tue Jan 20, 2009 6:12 pm |
Follow ups:
Q1/2: Yay! Thanks.
Q3: I agree that, given the answers to Q1 and Q2, I won't need to make new sessions/layouts by hand anymore when installing a new version (yay!). However, I'll reiterate Q3 for creating a new character (rather than copying between versions): If I want to make a new session that's just like an existing session for another character, is there any easy way to do so? Or, to put it another way, can I use session A as a 'template' when creating session B? I want the new session to have the same common packages, the same layout, same map, DB, fonts, etc., but with its own session package and thus its own main session window (but laid out in the same place/size as the old one).
Q4/5: Fair enough. There is definitely a bug with the Map object in a common package, which I will report in a new thread. And I'd forgotten that you can access the settings editor w/o opening the session - I just never do it that way. |
|
_________________ Come visit Mozart Mud...and tell an imm that Aerith sent you! |
|
|
|
Zugg MASTER
Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Tue Jan 20, 2009 6:28 pm |
Q3: No way to do that currently, but some sort of "template" feature is an interesting idea for the future.
|
|
|
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|