urrent conv.dat
256*8 x 256*8 = world grid size of 2048 = real ingame size = 32768 * 32768 (world = 11*16)
we will drop a grid down to
32*8 x 32*8 = grid size of 256 = real game size = 4096 * 4096 ( world = 88 * 128 )
This may seem small but its a grid the l2jworld will be made up of many grids
imagine each player will need to have HIS grid and all the grids arounf him activated, imagine a 3x3 square with him stood in the middle.
Now to store this data conv.dat just stores the whole data in one big file, no offsets, just reads it all into memory.
Now we will have 64 subgrids to the main conv.dat grid.
When we create these 64 grids we can store them in one file, and the header of that file can just hold the offset and the length of the subgrid data. This way we have 1 file, with 64 subgrids in that can be byte read.
now the reason we are going to this levelof grids is that the smaller the grid the less memory it will use and also we will parse that data directly into a useable format from the file, we could still use the conv.dat method of storing the data (it really doesnt matter).
any way, these grids require to be this size as the initial l2jworldgrid will control the mobs being on or off AND wether the geodata is loaded into memory.
eg a person teleports to x,y, the initial steps would be
1 - player is TPing to l2jgrid 4,4
2 - see if 4,4 is activated
if not activated activate it (turn all the mobs on and load the geodata into memory)
if activated, check all the touching grids are activated, if not activate them.
by the time the player gets there all th info will be in memory
if a player is walking around the 3x3 box will move with them and always be activating grids before he is anywhere stepping into them.
Now when a grid is activated we need to time the deactivation to around 10 mins
basicalliy we dont want the grid to be deactivated when they leave a grid as mobs would just stop moving and be were you left them, if you kleft it for 10 mins they could still move around.
once a grid becomes deactivated then the mobs are turn off and the geodata unloaded from memory.
Since mobs NEED geodata to move around this is a pretty ideal situation.
I hope this all makes sense implementing this system will should reduce cpu cycles as we no longer need to have 18K+ mobs all moving around when no one is ever near them.
this reduction in cpu maybe used back up with the geodata and the grid checking, but I think this is more acceptable.
Anyway please add to this idea, and just dont think of debunking it immediately unless you have positive input, posting replies to why it wont work, etc, post replies to why it wont work with the solution how to make it work, we are trying to move forward on this.