Lord_Greywolf said:
Also a quick question, on the new maps that people would make, you said they have to be the size of fel/tram maps, but do you have the restriction of the water/dungeon line, or can the whole map be used as 1 big map?
This is a great question.
The limitation on the maps is really a memory limit. Rather than implementing a fully working uop reader/writer, I implemented the reader portion only with the ability to change the data portions of the uop files (but not the metadata, or the fileblocks, etc). What this means is that when the client loads up, UltimaLive loads the uop map file for felucca into memory and parses it. UltimaLive uses that memory space to load each map when you change maps. If I had implemented a fully working reader/writer then I could simply extend the size of the in memory uop file to accomodate larger file sizes. I didn't do that however, and so for now UltimaLive is stuck using maps that are the same size or smaller size than the Felluca map.
A thing to note here is that it isn't a restriction on the exact dimensions. As long as you have as many or less map blocks in your file as Felucca, it will work fine. So instead of having a map that is 896x512 blocks, I could have one that is 512x896 blocks, or anything smaller.
When I add support for older clients, this restriction will likely change and I will be able to allow larger map dimensions. It's a tricky balance though because the game will use more memory if I do allow higher dimensions.
Another thing to note is the limitation on statics. While the current Felucca statics file is only 19,935,055 bytes, UltimaLive will handle a statics file that is upto 200,000,000 bytes. That should be plenty of room, but you need to consider fragmentation. When you change a block by adding a static to it, you are increasing the size of that block in the file. Adding a static to a block would result in UltimaLive moving that data to the end of the file, leaving some space in the file that is unused. This is called fragmentation. Currently, UltimaLive does not defragment the file, but it is on my list of things to add to the system in the near future.
Given enough changes, a statics file could grow to be bigger than the 200 meg byte limit. It would likely take a really long time because the player would have to visit that portion of the map between changes. Once defragmentation is implemented, UltimaLive will periodically condense those files. Also keep in mind that this only happens when there are changes, not simply streaming. Streaming always packs the file without fragments, using the optimal amount of space.
Finally, I will try to answer your question about the water/dungeon line. In the map registry file, there are two sets of dimensions. One set is the map dimension, and the other is the map wrapping dimension. UltimaLive puts these values into the game client's memory when you change maps. In the previous version of this system, I had done some testing to see if it was functional. From what I can tell, it is functional. If you want to use the entire map as one big map, I don't believe there will be any side effects.