st)
by now everyone knows about the HUGE maps i like to make for my games(though noone has ever seen much of one and is not going to untill im DONE!)! well here is the thing.. byond wont run my maps! NOPE! I SPENT SO LONG MAKEING A 500x500x47 MAP AND IT WONT RUN! here is the error i get
BYOND ERROR: maximum number of objs exceeded (65535)
THIS IS NOT RIGHT! WE NEED MORE SPACE!(please) i mean i cant run ANY of the maps i make... and i have one im makeing now that is twice the size of the one that is not working! so please please please dont limit us on our map makeing creativity...
ID:137928
Jun 6 2001, 10:35 am
|
|
In response to Ebonshadow
|
|
woh
now this is just too weird darkness had the same exact error message, is this some sort of byond bug is byond trying to incorporate obj's with maps or something!! lets fix this FIREking |
BYOND ERROR: maximum number of objs exceeded (65535) If this is being caused by turfs, then it is indeed a bug--BYOND should be able to handle larger maps than 65535 turfs total. (I sure hope so, at least, for the modest 240x240x3 map I have planned.) Having said that, though... a 500x500x50 map is over 12 million turfs--which would take 12 MB of server memory if each turf only used one tiny byte, which I'm pretty certain is not the case. So even if BYOND supports your scheme, the computer running it might not, or at least not well. 500x500x5 might be more reasonable. (Hmm, didn't Spuds go over this already at some point not too long ago?) But don't let me discourage you--by all means keep trying; just be aware that, no matter how Dantom tunes BYOND, there will always be certain limits imposed by the laws of physics... |
In response to Gughunter
|
|
On 6/6/01 2:02 pm Gughunter wrote:
Having said that, though... a 500x500x50 map is over 12 million turfs--which would take 12 MB of server memory if each turf only used one tiny byte, which I'm pretty certain is not the case. Dan once said that turfs take up 12 bytes in the minimal case. Huge maps seem like cool things to do...actually they tend to be signs of bad game design. Even games with vast infrastructure like EverQuest don't do maps this size for a single computer to serve. What you should do in these cases is have multiple instances of your games that players move between, each instance having a reasonable portion of the map. Given that every multi-million dollar 3D RPG does the same thing, you can hardly expect to be able to beat it when you don't have hundreds of dedicated servers for your game. One advance that some RPG systems are working on is making the world SEEM seamless to players. But that's just a networking trick -- in reality the world is broken down into small maps and you are moving between maps/computers as you run around. If you design for this case from the beginning you will be saved much grief. |
In response to Deadron
|
|
On 6/6/01 2:07 pm Deadron wrote:
What you should do in these cases is have multiple instances of your games that players move between, each instance having a reasonable portion of the map.... One advance that some RPG systems are working on is making the world SEEM seamless to players. But that's just a networking trick -- in reality the world is broken down into small maps and you are moving between maps/computers as you run around. If you design for this case from the beginning you will be saved much grief. There is a great and simple example of how to do just this in chapter 12 of The Blue Book. |
In response to Air Mapster
|
|
On 6/6/01 2:17 pm Air Mapster wrote:
On 6/6/01 2:07 pm Deadron wrote: yeah but what happens when one player chats on one server? will the rest of the servers hear it? will all the players on every server be able to hear the same world << "[msg]" ? |
In response to jobe
|
|
On 6/6/01 2:40 pm jobe wrote:
yeah but what happens when one player chats on one server? will the rest of the servers hear it? will all the players on every server be able to hear the same world << "[msg]" ? A good question. What you will need to do is exactly what the big-name RPGs do...have a central game server that coordinates chats and such. When a player chats and people on other servers should hear it, you send the message to the central server, and that sends it to the other instances of the game that are running. Fortunately in BYOND this is very easy to do, and I plan to provide a tutorial for exactly this sometime soon. You can probably figure it out yourself in the meantime if you check out the ClientServer demo. |
In response to Deadron
|
|
On 6/6/01 2:44 pm Deadron wrote:
On 6/6/01 2:40 pm jobe wrote: well still.. if i have 300megs of memory and a T1 line on a 1.9 Gig server wouldent it work to just have it on one server? |
In response to jobe
|
|
On 6/6/01 2:48 pm jobe wrote:
well still.. if i have 300megs of memory and a T1 line on a 1.9 Gig server wouldent it work to just have it on one server? Maybe you can get something working. But I don't think Dantom is interested in optimizing their tools for an approach that is overall not a good one to take, so you may have difficulty implementing it. On the other hand maybe you will come up with an approach that the multi-million dollar games haven't thought of...good luck! |
In response to Ebonshadow
|
|
Is your game creating new objects as it runs? If you do this and don't have some mechanism for keeping the object population down, you will eventually hit the wall.
I have code that randomly spawns objects on the map and in vendor inventories, but I always use the following safety: spawn(delay, poof_check()) where delay is the number of ticks you want an unclaimed item to exist (I like to give about two minutes). poof_check() is my routine to check if the item is owned by a player, and does a del() if it's not owned. I have the variable owned in my carriable objects. Then you just add to your get() and drop() routines, making them set owned as necessary. There's a little more to this routine in my game, but that's the general idea. I had to put this in when I was running around solo in test mode, and started noticing all the garbage piling up on my map. On 6/6/01 1:40 pm Ebonshadow wrote: I got the same error BYOND ERROR: maximum number of objs exceeded (65535)! after runing FQO for about 2 hours yesterday...its not good if I can't run my game for longer than 2 hours and get this error. |
I will be increasing the limits on numbers of objects that may be dynamically allocated in the near future. This applies to atomic objects other than turfs. The limit on turfs is something like 4 billion, so that's not the limiting factor. Each of the others (obj, mob, and area) are currently limited to 65535.
We are also drawing up plans to support dynamic loading of maps. That will allow you to load individual map files as they are needed rather than trying to fit them all in memory at the same time. of course that doesn't help if all the maps are needed at the same time, but it may help encourage a modular map design that is more easily split up into multiple servers. Things to do in the mean time: whenever possible, do not use /obj as a terrain object; use turfs instead. Also make sure you do not have leaks in your atomic objects. Currently, atomic objects are not garbage collected, but if this turns out to be a source of too much trouble, we may have to change that. We would never delete objects which are referenced, such as objects that are sitting on the map, but we might have to start deleting ones that are sitting at a null location and which are not referenced anywhere other than the world.contents list. |
In response to Dan
|
|
The limit on turfs is something like 4 billion, so that's not the limiting factor. Each of the others (obj, mob, and area) are currently limited to 65535. Eek! :) Glad I learned that before I got too engrossed in my LexyMUD revamp. I'm terrible about using objs for landscaping. But I never ran out of objects of any sort, even when I left the server running all night with only one inactive player logged on... in fact, the world wasn't even too crowded when I checked in the morning. I guess I have my "monster ecology" balanced enough that the different monster types kept each other in check. |
In response to Deadron
|
|
On 6/6/01 2:53 pm Deadron wrote:
On 6/6/01 2:48 pm jobe wrote: well for your server idea? can i have differant instanses of the game running on other ports?so i have map one on one port and map 2 on the other? |
In response to jobe
|
|
On 6/7/01 4:38 pm jobe wrote:
well for your server idea? can i have differant instanses of the game running on other ports?so i have map one on one port and map 2 on the other? Yes that would be the idea. |
I got the same error BYOND ERROR: maximum number of objs exceeded (65535)! after runing FQO for about 2 hours yesterday...its not good if I can't run my game for longer than 2 hours and get this error.