| Time |
Nick |
Message |
| 00:01 |
|
T4im joined #minetest-dev |
| 00:12 |
|
Taoki joined #minetest-dev |
| 01:50 |
|
calcul0n__ joined #minetest-dev |
| 01:54 |
|
TechDude joined #minetest-dev |
| 04:00 |
|
MTDiscord joined #minetest-dev |
| 05:00 |
MTDiscord |
<Techy5> I know this would require breaking compatibility, but has anyone considered variable-width content IDs for serialized mapblocks? The vast majority of mapblocks aren't going to contain over 256 node types, so it's a waste to always use 16-bit content ids when 8-bit IDs would work. |
| 05:02 |
MTDiscord |
<Techy5> I tested 8-bit IDs on one fairly typical mapblock and was able to reduce the total size of the block by around 12%. Not huge, but that's an entire gigabyte saved on a 10 GB map. |
| 06:49 |
|
Fixer joined #minetest-dev |
| 06:58 |
|
troller joined #minetest-dev |
| 07:13 |
|
nerzhul joined #minetest-dev |
| 08:00 |
|
ShadowNinja joined #minetest-dev |
| 08:28 |
|
silver_est joined #minetest-dev |
| 08:48 |
|
Fixer_ joined #minetest-dev |
| 08:50 |
|
hlqkj joined #minetest-dev |
| 09:37 |
|
tech_exorcist joined #minetest-dev |
| 09:41 |
|
tech_exorcist joined #minetest-dev |
| 09:55 |
|
YuGiOhJCJ joined #minetest-dev |
| 10:51 |
|
entuland joined #minetest-dev |
| 11:17 |
|
silver_estonia joined #minetest-dev |
| 11:48 |
|
troller joined #minetest-dev |
| 11:54 |
|
amk joined #minetest-dev |
| 12:03 |
|
silver_est joined #minetest-dev |
| 12:11 |
|
silver_est joined #minetest-dev |
| 12:22 |
|
Fixer joined #minetest-dev |
| 13:04 |
|
Taoki joined #minetest-dev |
| 13:23 |
|
silver_est joined #minetest-dev |
| 14:23 |
MTDiscord |
<Benrob0329> Wouldn't you need to store a map/dictionary/set for each mapblock then? |
| 14:23 |
sfan5 |
mapblock already do that |
| 14:25 |
MTDiscord |
<Benrob0329> I mean one for node_ids |
| 14:37 |
sfan5 |
yes? |
| 14:38 |
sfan5 |
there is no translation table at runtime but that's not what he meant anyway |
| 14:38 |
sfan5 |
there still is a legacy mode with 8-bit content IDs: content_width=1 |
| 14:39 |
sfan5 |
and for some reason it wasn't bound to the mapblock version so you can use it to save some space in mapblocks even today (with zero compat concerns) |
| 14:53 |
|
hlqkj joined #minetest-dev |
| 15:23 |
|
absurb joined #minetest-dev |
| 16:18 |
|
hlqkj_ joined #minetest-dev |
| 16:18 |
|
AntumD joined #minetest-dev |
| 16:18 |
|
p_gimeno joined #minetest-dev |
| 16:26 |
|
tech_exorcist joined #minetest-dev |
| 17:45 |
MTDiscord |
<Techy5> There might be some compatibility issues. It looks like the upper 4 bits of param2 were used to store the rest of the content ID if it exceeded a certain value (I'm not quite sure how this works): https://github.com/minetest/minetest/blob/master/src/mapnode.cpp#L811 |
| 17:47 |
sfan5 |
yeah |
| 17:47 |
sfan5 |
you can actually store 128 nodes with full param2 and 2048 nodes with param2 < 16 with this approach |
| 19:23 |
|
Fixer joined #minetest-dev |
| 20:01 |
|
v-rob joined #minetest-dev |
| 20:04 |
v-rob |
Say, are dummy mapblocks even used anymore? I tried removing `dummy` from the constructor, and Minetest compiled fine, and there's no other way for dummy mapblocks to exist except through the constructor as far as I can tell. |
| 20:04 |
sfan5 |
check where it's called and see? |
| 20:05 |
sfan5 |
oh wait |
| 20:08 |
sfan5 |
> If NULL, block is a dummy block. Dummy blocks are used for caching not-found-on-disk blocks. |
| 20:09 |
sfan5 |
this sounds useful though, why don't we have this anymore? |
| 20:11 |
v-rob |
Assuming we don't have a use for them, mapblocks could use a std::array for nodes and the `*Unsafe` methods could be removed, making the code simpler. |
| 20:38 |
|
hlqkj_ joined #minetest-dev |
| 20:51 |
celeron55 |
i think it would be up to ServerMap::loadBlock to set that |
| 20:52 |
celeron55 |
the logic there seems weird and possibly buggy |
| 20:57 |
|
proller joined #minetest-dev |
| 21:30 |
|
proller joined #minetest-dev |
| 21:36 |
|
olliy_ joined #minetest-dev |