Posts: 15
Threads: 7
Joined: May 2013
Thanks: 1
Given 7 thank(s) in 4 post(s)
07-28-2013, 05:29 AM
(This post was last modified: 07-28-2013, 05:30 AM by supertransformer.)
Specs:
Intel Celeron single core 1.6Ghz processor
Ram: 1GB and its DDR2(i belive)
HDD: 120 GB idk the I/O thingy(rate? write? speed?) ._.
OS: Linux Debian(No GUI)
Also, how vital is the CURRENT version to run in a production enviroment?(Survival)
And how many days/months/years/lightyears is untill MCServer is working in the survival side? cuz bukkit in performance wise SUXS! :#
Posts: 1,469
Threads: 57
Joined: Jul 2012
Thanks: 66
Given 127 thank(s) in 108 post(s)
It could probably hold about 15 players, more if you decrease the viewlimit.
MCServer is behind by quite a way, but patchy. Some areas are quite good, but others, like enchanting and brewing, are nonexistant.
Posts: 1,162
Threads: 68
Joined: Mar 2013
Thanks: 245
Given 125 thank(s) in 100 post(s)
15 players? It should support more.
Posts: 1,469
Threads: 57
Joined: Jul 2012
Thanks: 66
Given 127 thank(s) in 108 post(s)
All minecraft servers are really constrained on RAM atm. Each player takes about 100 megs of ram with large render distance, and about 40 with small. Small will allow you to really cram players, but it looks bad.
It would be great if the world could be compressed in-ram like in the region files. It would make minecraft a CPU-bound game not memory
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1074 thank(s) in 852 post(s)
Actually, minecraft already is CPU-bound in the tick thread.
Posts: 1,469
Threads: 57
Joined: Jul 2012
Thanks: 66
Given 127 thank(s) in 108 post(s)
Even so, would it be theoretically possible to implement in-memory world compression?
Posts: 6,485
Threads: 176
Joined: Jan 2012
Thanks: 131
Given 1074 thank(s) in 852 post(s)
Theoretically, yes.
Let me give you some counts: Every tick, each chunk selects up to 50 blocks that receive a "block update", and entities (will) query the chunk for blocks related to their physics simulation. This means that the chunk will need to decompress its data in each tick, that is, 20 times a second. I don't think there's a CPU on this world that could do that.
The only "compression" that could be actually implemented is "sparsing". There are two levels of it, each with its benefits:
A) For each chunk, allocate only data for blocks until the highest non-air block. All the blocks above the limit are know air, so there's no need to keep that in memory. Difficulties: When players / entities / simulators build above this limit, the data needs to be reallocated. Useless for structures that have two layers, one at Y bottom and the other at Y top.
B) Split each chunk into 16 sections vertically, each section 16x16x16 blocks. If the section is full of air, don't allocate the memory for it. Difficulties: Again, when building, sections may need to get allocated; a lot of code in cChunk will have to take this into account.
Posts: 15
Threads: 7
Joined: May 2013
Thanks: 1
Given 7 thank(s) in 4 post(s)
07-31-2013, 04:37 AM
(This post was last modified: 07-31-2013, 04:40 AM by supertransformer.)
(07-28-2013, 11:31 PM)xoft Wrote: Theoretically, yes.
Let me give you some counts: Every tick, each chunk selects up to 50 blocks that receive a "block update", and entities (will) query the chunk for blocks related to their physics simulation. This means that the chunk will need to decompress its data in each tick, that is, 20 times a second. I don't think there's a CPU on this world that could do that.
The only "compression" that could be actually implemented is "sparsing". There are two levels of it, each with its benefits:
A) For each chunk, allocate only data for blocks until the highest non-air block. All the blocks above the limit are know air, so there's no need to keep that in memory. Difficulties: When players / entities / simulators build above this limit, the data needs to be reallocated. Useless for structures that have two layers, one at Y bottom and the other at Y top.
B) Split each chunk into 16 sections vertically, each section 16x16x16 blocks. If the section is full of air, don't allocate the memory for it. Difficulties: Again, when building, sections may need to get allocated; a lot of code in cChunk will have to take this into account.
If you do that with the compressing,
(i think this will happen):
It will take more ticks, and overall lag on old machines with slow CPU
so basicly you're killing more of the CPU and giving the ram less work.
And that with the CPU, it will make MCServer less lightweight
- And these days, RAM is cheap, but not CPU's
Edit: 1,884 THREAD VIEWS HOLY SH*T
Posts: 1,469
Threads: 57
Joined: Jul 2012
Thanks: 66
Given 127 thank(s) in 108 post(s)
Wow, quite a lot of views
Posts: 1,450
Threads: 53
Joined: Feb 2011
Thanks: 15
Given 120 thank(s) in 91 post(s)
Wow impressive, this thread isn't even this old o_O
|