Problem A: Minecraft (or I believe Forge rather) has a hard limit of 4096 block IDs that can exist at a given time. Since there are 16 metadata slots we can have a total of 65535 combinations. And according to Emote's post here (https://forum.westeroscraft.com/threads/westeroscraft-texture-pack-megathread.34/page-23#post-9966), we're close to having used them up (re: his comment about a 4___ ID glitch).
Problem B: Adding a ton of new blocks is expensive and adds to the loading time and memory requirement.
Disclaimer: I don't have any experience with how this is implemented in MC or how to effectively manage memory in modern programming languages, but I'm convinced there are some solutions to this that we should consider if we wanna keep growing.
So what are our options?
1. Push the update to 1.13. (according to 'rumors' the block ID limit has been removed: ) - Could solve A but likely not B and is a moderate amount of work for Mike having to translate all mods to the most recent Forge API.
2. Move to an open-source Minecraft clone server/ client combination that is more efficient or at the very least customizable in terms of memory management? A few examples are mentioned here: https://forum.westeroscraft.com/threads/westeroscraft-texture-pack-megathread.34/page-23#post-9961 - Could solve A and B but its a lot of work for our understaffed coding department.
3. Chop up Westeroscraft blocks into mini-mods and our server into separate minis each hosting a part of the world (yes apparently that's a thing https://www.spigotmc.org/threads/splitting-up-the-servers-or-one-big-server.2736/). We'd have to split up WesterosBlocks into a base-set and regional set, which could possibly give us more options in each region. - Could solve A not B though. And man, I can't even fathom the amount of work to split everything.
4. Tile entity ALL THE THINGS. Apparently, 'tile entity magic' is a workaround (https://github.com/MinecraftForge/MinecraftForge/issues/1769). No idea what that means /shrug. - A? B? Effort!
5. Same as 3. but instead of splitting the server we create several regional resource packs for WesterosBlocks and only keep a minimum necessary set of common styles. Think MCME but with a custom mod too in addition to the base blocks. Fixes A (for a while), slight memory/startup time increase due to multiple resource packs.
Do any of you see any other options? Is @mikeprimm still the only guy in the 'IT department' that can do the heavy lifting in Java? @Dav4 and @Emotione11 how are your degrees coming along I think if we ever wanted to fix this we'd need some solid computer science-inclined people
Edit: Here's another thing I'm curious about. Would it lower our memory strain if we lazy-loaded, rendered block models and textures per visible chunk instead of globally at the start of the game? Technically that should be possible with a custom client right? What are technical limitations to going to a completely custom client?
Problem B: Adding a ton of new blocks is expensive and adds to the loading time and memory requirement.
Disclaimer: I don't have any experience with how this is implemented in MC or how to effectively manage memory in modern programming languages, but I'm convinced there are some solutions to this that we should consider if we wanna keep growing.
So what are our options?
1. Push the update to 1.13. (according to 'rumors' the block ID limit has been removed: ) - Could solve A but likely not B and is a moderate amount of work for Mike having to translate all mods to the most recent Forge API.
2. Move to an open-source Minecraft clone server/ client combination that is more efficient or at the very least customizable in terms of memory management? A few examples are mentioned here: https://forum.westeroscraft.com/threads/westeroscraft-texture-pack-megathread.34/page-23#post-9961 - Could solve A and B but its a lot of work for our understaffed coding department.
3. Chop up Westeroscraft blocks into mini-mods and our server into separate minis each hosting a part of the world (yes apparently that's a thing https://www.spigotmc.org/threads/splitting-up-the-servers-or-one-big-server.2736/). We'd have to split up WesterosBlocks into a base-set and regional set, which could possibly give us more options in each region. - Could solve A not B though. And man, I can't even fathom the amount of work to split everything.
4. Tile entity ALL THE THINGS. Apparently, 'tile entity magic' is a workaround (https://github.com/MinecraftForge/MinecraftForge/issues/1769). No idea what that means /shrug. - A? B? Effort!
5. Same as 3. but instead of splitting the server we create several regional resource packs for WesterosBlocks and only keep a minimum necessary set of common styles. Think MCME but with a custom mod too in addition to the base blocks. Fixes A (for a while), slight memory/startup time increase due to multiple resource packs.
Do any of you see any other options? Is @mikeprimm still the only guy in the 'IT department' that can do the heavy lifting in Java? @Dav4 and @Emotione11 how are your degrees coming along I think if we ever wanted to fix this we'd need some solid computer science-inclined people
Edit: Here's another thing I'm curious about. Would it lower our memory strain if we lazy-loaded, rendered block models and textures per visible chunk instead of globally at the start of the game? Technically that should be possible with a custom client right? What are technical limitations to going to a completely custom client?
Last edited: