There's only a small set of mobs that have the complicated tech trees - basically the heavy magic mods and the heavy tech mods. There's also a lot of mods that affect world generation, provide decorative blocks, offer activities outside of a tree structure, change game rules, provide storage and sorting options, or provide utility functions. I normally have only one "heavy" mod and then a bunch of the others - especially worldgen, as exploring is my favorite activity.
Also, I don't find the magic mods to have linear tech trees - quite the opposite; they're usually quite complex with a lot of optional stuff. I don't consider either Thaumcraft or Witchery to be linear at all. Botania has three sections with gateway event to advance but apart from those two events it's pretty nonlinear too. I've found ascending the trees to be exactly the same sort of do-it-when-you-feel-like-it that most Minecraft goals have. I haven't played too much with tech mods so I don't have an informed opinion on that.
Rollback Post to RevisionRollBack
Geographicraft (formerly Climate Control) - Control climate, ocean, and land sizes; stop chunk walls; put modded biomes into Default worlds, and more!
RTG plus - All the beautiful terrain of RTG, plus varied and beautiful trees and forests.
It is just much harder because it is written in C++, which cannot be easily decompiled into readable source code, and you basically have to hook into the existing code, not just make some changes to a class and recompile it.
True. People mod everything- from Pokemon to Team Fortress 2.
The Meaning of Life, the Universe, and Everything.
Location:
New England
Join Date:
1/14/2017
Posts:
54
Location:
New England, USA
Minecraft:
0ysterBoy
Member Details
I am sure that at first the plug-in API on the Win 10/PE version of MC will probably be fairly restrictive, but I suspect eventually it will blossom into something that allows for greater complexity, if there is interest.
The Meaning of Life, the Universe, and Everything.
Join Date:
8/20/2011
Posts:
233
Member Details
A long time ago there was talk of Mojang developing a proper mod API for Minecraft, which would have enabled mod authors to update their mods much more easily when Minecraft itself was changed. However, this seems to have got lost during the Microsoft takeover, and I haven't seen much mention of it recently.
If Mojang/Microsoft could prioritise this mod API once again, so that the hundreds of thousands of man-hours spent on mods were not thrown out of the window with every update, this would benefit the community immensely. Modders would find it easier to keep up with game updates, new modders would find it easier to learn how to mod MineCraft, and the community would be able to play most of their favourite mods with an up-to-date version of the game, including new blocks, and all the other new features.
Please no, that would ruin Minecraft. I occasionally go to the 1.6 updates before the world generator was ruined, but really, not updating Minecraft and relying on mods for more content would be a disaster.
Rollback Post to RevisionRollBack
I don't even play Minecraft much anymore yet here I am on the Minecraft forums for some reason...
Please no, that would ruin Minecraft. I occasionally go to the 1.6 updates before the world generator was ruined, but really, not updating Minecraft and relying on mods for more content would be a disaster.
No it wouldn't. Mods Provide 100x more (and better) stuff.
Mojang puts so many unfinished items/mobs in the game that without mods it would die really quickly. Years pass by and even slabs/stairs out of common blocks still do no exist.
At least with a mod if you don't like it you can just delete it.
Mojang just mostly now exhibits hostility towards players and the technical community and includes new rules/mechanisms for the sole purpose of irritating players that many people don't want. And the worst part of it all is that you are STUCK with those changes just to get bug fixes.
Now if it was possible to get bugs fixed without having to accept so-called "free" updates perhaps things would be different.
Having to accept the combat update just to get a slew of old bugs fixed is unacceptable.
More is not always better and quality is for the most part also a matter of opinion. Personally I love the simplistic yet in depth and never-finished nature of Minecraft and I firmly believe that this combination is just what makes Minecraft such a huge succes. With a few basic mechanics and a very simple tech tree, it forces you to think creatively to accomplish what you want and gives you the freedom to do whatever you want fairly quickly.
It would be more agreeable if all the updates past 1.8 weren't a disaster. And Mods doesn't mean its "not as good" quality, heck have you seen some of the big mods? Like immersive engineering? Buildcraft? mods like that force you to think even more creatively. Also a big part of why Minecraft is successful is because of the modding community.... Games with good mods can become very successful, same reason for minecraft. Also not to mention vanilla gets boring pretty fast, mods keep the game alive.
You want to know the real reason I'm inclined to want Minecraft to stop updating and hand it over to the modders?
Because I was 14 when I started playing Minecraft, that was more than 6 years ago. Nearly half my life I've been in love with this game and what it stands for, but so long as it isn't "complete" I'll always feel like a part of me can't move on.
I know it's stupid and petty, but its the truth, and I think more people need to admit it. I don't think any of my other points are less true, but that is my bias. The game has just drifted around in this state of forever-change for as long as its excised, and I honestly think It's lost some of its magic along the way because of it. And this is coming from someone who viciously defended every update and every feature that's been added. I want to move on, and I know that's my problem.
Countries can be male or female depending on the culture - hence "Fatherland" or "Motherland"
However, depending on the language, the native word for "company" can indeed be female - as in the German "die Kompanie" or "die Gesellshaft." (die being the feminine definite article in German for "the")
So, we should not criticize people for whom English is not their native language due to their own language having distinctions between male and female nouns.
Honestly, I agree that a lot of the updates have been rather lackluster as of late, but that is not reason for them to stop updating the game. While it is an issue that mods get broken, those mods will likely be fixed to work within about a month or two or have been replaced that does basically the same thing. The fact that the game is an ever-changing experience, be it through updates, mods, or different communities, is what keeps the game alive. It is not simply mods that keep the game alive. Lose the mods and you will lose some of the audience, but lose the updates or the communities, the majority of the audience will eventually leave the game. And honestly, if the team wants to continue working on Minecraft, that is their call. Also, we have been here before, through pretty much all of the development and public releases, with people constantly not liking the new versions for some reason or another and eventually either moved on or accepted the quirks. Also, the part about Mojang hurting their own product is an inevitable reaction of some, simply due to the size of the community (2nd most sales of any video game ever, only behind Tetris). Also, if you think Microsoft is not going to keep updating the game just to get as much money as possible from people, then you are likely mistaken.
I don't think 1.14 is supposed to be bigger update. That comment (was it Jens?) that if you want a big update you should wait for 1.14 wasn't saying that 1.14 is going to be a big update, it's saying that the cumulative effect of a year of smaller updates will be similar to the effect of one update in development for a year.
Small updates are fine, but they should group mod-breaking changes into batches so most mods don't need multiple versions for the different small updates. They made a trivial change in 1.11 to some method signatures (List to Non-Null List) and that makes a lot of modders (including me for one mod) have to maintain separate versions for 1.10 and 1.11. That's almost gratuitously nasty since there's not too many changes overall and if they'd just left it would save possibly hours of work for each mod.
Rollback Post to RevisionRollBack
Geographicraft (formerly Climate Control) - Control climate, ocean, and land sizes; stop chunk walls; put modded biomes into Default worlds, and more!
RTG plus - All the beautiful terrain of RTG, plus varied and beautiful trees and forests.
So people, my thought is that Minecraft would be nowhere near as popular without mods, but would also lose a decent chunk of its community if the updates stopped. Therefore updates should become more mod friendly, but other than that the only thing that really needs changing is the sheer number of immature jerks in the community. Games with a toxic community like what Minecraft is developing tend to lose popularity fast. And I don't really mean anyone on this thread, before the moderators slam me again. What I'm talking about is the sheer number of Minecraft players who grief servers, hack in PVP and just generally do things simply to irritate other players. A friendly prank can be fine, but going onto a friendly server and ruining it for the nice players with TNT and hack clients? This has to stop! So, Microsoft, if you find any way to make the game more mod-friendly, do that first, then put the rest of the update money towards content that will drive off these nasty people. Don't listen to complaints unless they're presented in a way that makes sense, if someone just posts stuff like "REMOVE THIS OR I QUIT *RAGE-RAGE-RAGE*" then they obviously don't have the level of maturity needed to be part of a non-toxic community, and you should let them go. More people will buy(and stay with) the game if it has a decent community, which will more than make up for the loss of the jerks' money if handled correctly. To sum it up, there are many changes that need to be made, but the updates should not stop. *votes on the poll since I hadn't done that yet*
Rollback Post to RevisionRollBack
I hope someday there's more magic in Minecraft, though I know it's not likely to happen. In the meantime, I play modded a lot. I enjoy a lot of other games too, so don't expect me to be on the forums all the time.
That is one reason that they're moving away from numerical ids; every time they add new items it conflicts with someone's mod.
Except that comes at a big performance cost; have you ever compared code for 1.6.4 to 1.8+? The latter adds multiple layers of complexity to what was once very simple code; for example, here is some code from 1.6.4's cave generator class:
Doesn't look much different? Well, what is that "p_180702_5_" variable? It is an instance of "ChunkPrimer", which has the following code:
public IBlockState getBlockState(int x, int y, int z)
{
IBlockState iblockstate = (IBlockState)Block.BLOCK_STATE_IDS.getByValue(this.data[getBlockIndex(x, y, z)]);
return iblockstate == null ? DEFAULT_STATE : iblockstate;
}
Already, that is going to be MUCH slower since it is a method call, not just a simple direct array access. And it calls even more methods; "Block.BLOCK_STATE_IDS.getByValue"?
public static final ObjectIntIdentityMap<IBlockState> BLOCK_STATE_IDS = new ObjectIntIdentityMap();
So what is in "ObjectIntIdentityMap"?
public final T getByValue(int value)
{
return (T)(value >= 0 && value < this.objectList.size() ? this.objectList.get(value) : null);
}
Now it has to fetch the data from a list... and I had to look through so many classes to finally get through this big mess; can you say "spaghetti code"? All of this replaces a simple "var53 = par5ArrayOfByte[var48]" in 1.6.4! Plus, you have to allocate iBlockState objects instead of simple primitives. If I ever mod a current version I have the mind to modify the game so I can directly read/write to (at least) the ChunkProimer's internal array (which is an array of shorts; yes - it encapsulates numerical data! Another issue is that the entire array index must be calculated every time you access it, insteadd of being able to precalculate the x/z component and just add the y-component within the innermost loop) and not have to use BlockPos.
No wonder terrain generation is several times slower in 1.11 than it is in 1.6.4! Even my 1.6.4 mod which adds many new biomes and 256 high terrain (vanilla 1.6.4 only deals with the lower 128 layers, so that would make it faster) and additional GenLayer layers is much faster. Also, have you ever seen the memory usage? Why does it change so fast that the poor garbage collector can barely keep up? In my mod Superflat worlds actually cause Java to allocate more memory than default worlds (about 100 MB more) since I've optimized the default world generator to counteract the impact of making it more complex, which includes reducing the rate of object allocation; during chunk generation I do not allocate a new array for the raw chunk data for every single chunk, but rather re-use the same one (the entire array is always written to so old data does not contaminate the next chunk; 1.10 simply makes a new ChunkPrimer, which is over 128 KB in size, per chunk - that's about 80 MB of objects allocated during the generation of the initial world spawn area!), and similarly eliminated as many instances of "new" as I could; any increase in base memory usage (since these objects are now permanently allocated, not created as needed) is more than offset by the reduction in object creation (using static objects helps cut down on memory usage since they are shared among all instances of a class).
IDs are so useful that I even added a second biome ID to the BiomeGenBase class to help group biomes; if I want to check for a desert biome I only have to do one comparison instead of checking for each type of desert, and I can easily add new desert-type biomes without having to look through the code to make sure I added it to all the code that checks for deserts:
public int biomeType;
public static final int DESERT = 1;
public static final int MESA = 2;
public static final int MESA_EDGE = 3;
public static final int MEGA_TAIGA = 4;
public static final int BEACH = 5;
public static final int SNOW = 6;
public static final int GRAVELBEACH = 7;
public static final int FLAT = 8;
public static final int ROCKY = 9;
public static final int RIVER = 16;
public static final int RIVER2 = 48;
public static final int OCEAN = 112;
public static final BiomeGenBase desert = (new BiomeGenDesert(2, 0)).setColor(16421912).setBiomeName("Desert").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.1F, 0.2F).setBiomeType(DESERT).setNoAnimals();
public static final BiomeGenBase desertHills = (new BiomeGenDesert(17, 0)).setColor(13786898).setBiomeName("Desert Hills").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(HILLS_MIN_HEIGHT, HILLS_MAX_HEIGHT).setBiomeType(DESERT).setNoAnimals();
public static final BiomeGenBase mountainousDesert = (new BiomeGenDesert(28, 0)).setColor(16421912).setBiomeName("Mountainous Desert").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.4F, 0.9F).setBiomeType(DESERT).setNoAnimals();
public static final BiomeGenBase mountainousDesertHills = (new BiomeGenDesert(29, 0)).setColor(16421912).setBiomeName("Mountainous Desert Hills").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(1.0F, 1.75F).setBiomeType(DESERT).setNoAnimals();
public static final BiomeGenBase desertRiver = (new BiomeGenDesert(60, 0)).setColor(16421912).setBiomeName("Desert River").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(RIVER_MIN_HEIGHT, 0.0F).setBiomeType(DESERT | RIVER).setNoAnimals();
public static final BiomeGenBase desertM = (new BiomeGenDesert(79, 1)).setColor(16421912).setBiomeName("Desert M").setDisableRain().func_76733_a(5470985).setTemperatureRainfall(1.0F, 0.5F).setMinMaxHeight(0.1F, 0.0F).setBiomeType(DESERT).setNoAnimals();
public static final BiomeGenBase desertRiverbank = (new BiomeGenDesert(92, 0)).setColor(16421912).setBiomeName("Desert Riverbank").setDisableRain().setTemperatureRainfall(2.0F, 0.0F).setMinMaxHeight(0.05F, 0.0F).setBiomeType(DESERT).setNoAnimals();
("setNoAnimals" sets yet another flag I added which is used by the passive mob pathfinding AI so they avoid biomes which do not naturally spawn animals, since while they prefer grass blocks they do not try to avoid non-grassy areas; likewise, they are attracted to skylight and higher ground when they are below sea level so they do no wander into lit cave openings at night)
Also, just wait until they replace numerical IDs within the save file... I wonder how they will manage save size when they do (compare "minecraft:stone" vs "1").
See, by continuing to update the game they are just making it slow, bloated, and unreadable with unnecessary code all because of a "mod API" (actually, plugin API, which is not the same as a mod API; plugins are generally more limited), when we don't need one, and I bet, just like with Forge, you'll still have to hack the code (either by directly editing it or using ASM/reflection to override it) to implement certain features since they can't possibly add hooks/interfaces to every single aspect of the game. Wait? It is now illegal to modify the game unless you are using the API? Well, then many advanced mods won't update.
Umm, you do know the numerical ID's came from 1.7 and not 1.8 right?
1.7 only replaced numerical IDs with block references, which can actually be faster in some cases, if not for the fact that references need 4/8 bytes (32/64 bit Java) of memory each (RAM is extremely slow compared to the CPU so the more it uses, and importantly, the more is being handled per operation, the slower things are); terrain generation is slower mainly because it has to handle 256 instead of 128 layers, but still slower than it is in my 1.6.4 mod. 1.8 made this worse because they completely abstracted away block IDs and metadata (numeric until 1.8) and replaced them with block states, and even abstracted away xyz coordinates, and added a lot of useless wrapper classes - just compare the sizes of the jar files, and number of classes, for 1.6-1.8 - much of that increase was NOT because of new features. There's also a good reason why many mods took so long to update to 1.8+; my own mod would have to be massively restructured to accommodate the loss of block and biome IDs - or re-add the ability to directly use them (as noted before I even added a secondary biome ID to make it easier to group biomes together), bypassing all that blockstate stuff (I'd have to modify many more classes, including all the ones associated with the save data handling).
Again, the point is that Mojang is making the game less efficient and the code harder to read and maintain (which is not just an issue for modders; wait until Mojang needs to make some significant change) by prettifying the code and preparing for a "plugin API" which is not needed because we already have one, and which is entirely optional.
1.7 only replaced numerical IDs with block references, which can actually be faster in some cases, if not for the fact that references need 4/8 bytes (32/64 bit Java) of memory each (RAM is extremely slow compared to the CPU so the more it uses, and importantly, the more is being handled per operation, the slower things are); terrain generation is slower mainly because it has to handle 256 instead of 128 layers, but still slower than it is in my 1.6.4 mod. 1.8 made this worse because they completely abstracted away block IDs and metadata (numeric until 1.8) and replaced them with block states, and even abstracted away xyz coordinates, and added a lot of useless wrapper classes - just compare the sizes of the jar files, and number of classes, for 1.6-1.8 - much of that increase was NOT because of new features. There's also a good reason why many mods took so long to update to 1.8+; my own mod would have to be massively restructured to accommodate the loss of block and biome IDs - or re-add the ability to directly use them (as noted before I even added a secondary biome ID to make it easier to group biomes together), bypassing all that blockstate stuff (I'd have to modify many more classes, including all the ones associated with the save data handling).
Again, the point is that Mojang is making the game less efficient and the code harder to read and maintain (which is not just an issue for modders; wait until Mojang needs to make some significant change) by prettifying the code and preparing for a "plugin API" which is not needed because we already have one, and which is entirely optional.
From someone who codes for himself and not others, I can't imagine the loss of enthusiasm for those who makes mods for the community, especially updating above 1.8. Your experience and explanation is a very good reason why 1.8 was a colossal failure at optimization.
I still use MCP 908 for my custom server that I play with my friends occasionally.
There's only a small set of mobs that have the complicated tech trees - basically the heavy magic mods and the heavy tech mods. There's also a lot of mods that affect world generation, provide decorative blocks, offer activities outside of a tree structure, change game rules, provide storage and sorting options, or provide utility functions. I normally have only one "heavy" mod and then a bunch of the others - especially worldgen, as exploring is my favorite activity.
Also, I don't find the magic mods to have linear tech trees - quite the opposite; they're usually quite complex with a lot of optional stuff. I don't consider either Thaumcraft or Witchery to be linear at all. Botania has three sections with gateway event to advance but apart from those two events it's pretty nonlinear too. I've found ascending the trees to be exactly the same sort of do-it-when-you-feel-like-it that most Minecraft goals have. I haven't played too much with tech mods so I don't have an informed opinion on that.
Geographicraft (formerly Climate Control) - Control climate, ocean, and land sizes; stop chunk walls; put modded biomes into Default worlds, and more!
RTG plus - All the beautiful terrain of RTG, plus varied and beautiful trees and forests.
True. People mod everything- from Pokemon to Team Fortress 2.
I am sure that at first the plug-in API on the Win 10/PE version of MC will probably be fairly restrictive, but I suspect eventually it will blossom into something that allows for greater complexity, if there is interest.
________
Oyster Boy
Please check out my vanilla Minecraft survival Let's Play on YouTube!
A long time ago there was talk of Mojang developing a proper mod API for Minecraft, which would have enabled mod authors to update their mods much more easily when Minecraft itself was changed. However, this seems to have got lost during the Microsoft takeover, and I haven't seen much mention of it recently.
If Mojang/Microsoft could prioritise this mod API once again, so that the hundreds of thousands of man-hours spent on mods were not thrown out of the window with every update, this would benefit the community immensely. Modders would find it easier to keep up with game updates, new modders would find it easier to learn how to mod MineCraft, and the community would be able to play most of their favourite mods with an up-to-date version of the game, including new blocks, and all the other new features.
Please no, that would ruin Minecraft. I occasionally go to the 1.6 updates before the world generator was ruined, but really, not updating Minecraft and relying on mods for more content would be a disaster.
I don't even play Minecraft much anymore yet here I am on the Minecraft forums for some reason...
No it wouldn't. Mods Provide 100x more (and better) stuff.
Mojang puts so many unfinished items/mobs in the game that without mods it would die really quickly. Years pass by and even slabs/stairs out of common blocks still do no exist.
At least with a mod if you don't like it you can just delete it.
Mojang just mostly now exhibits hostility towards players and the technical community and includes new rules/mechanisms for the sole purpose of irritating players that many people don't want. And the worst part of it all is that you are STUCK with those changes just to get bug fixes.
Now if it was possible to get bugs fixed without having to accept so-called "free" updates perhaps things would be different.
Having to accept the combat update just to get a slew of old bugs fixed is unacceptable.
It would be more agreeable if all the updates past 1.8 weren't a disaster. And Mods doesn't mean its "not as good" quality, heck have you seen some of the big mods? Like immersive engineering? Buildcraft? mods like that force you to think even more creatively. Also a big part of why Minecraft is successful is because of the modding community.... Games with good mods can become very successful, same reason for minecraft. Also not to mention vanilla gets boring pretty fast, mods keep the game alive.
You want to know the real reason I'm inclined to want Minecraft to stop updating and hand it over to the modders?
Because I was 14 when I started playing Minecraft, that was more than 6 years ago. Nearly half my life I've been in love with this game and what it stands for, but so long as it isn't "complete" I'll always feel like a part of me can't move on.
I know it's stupid and petty, but its the truth, and I think more people need to admit it. I don't think any of my other points are less true, but that is my bias. The game has just drifted around in this state of forever-change for as long as its excised, and I honestly think It's lost some of its magic along the way because of it. And this is coming from someone who viciously defended every update and every feature that's been added. I want to move on, and I know that's my problem.
Countries can be male or female depending on the culture - hence "Fatherland" or "Motherland"
However, depending on the language, the native word for "company" can indeed be female - as in the German "die Kompanie" or "die Gesellshaft." (die being the feminine definite article in German for "the")
So, we should not criticize people for whom English is not their native language due to their own language having distinctions between male and female nouns.
People, please stay on-topic. This thread is for discussing whether Minecraft should continue to be updated.
- sunperp
Honestly, I agree that a lot of the updates have been rather lackluster as of late, but that is not reason for them to stop updating the game. While it is an issue that mods get broken, those mods will likely be fixed to work within about a month or two or have been replaced that does basically the same thing. The fact that the game is an ever-changing experience, be it through updates, mods, or different communities, is what keeps the game alive. It is not simply mods that keep the game alive. Lose the mods and you will lose some of the audience, but lose the updates or the communities, the majority of the audience will eventually leave the game. And honestly, if the team wants to continue working on Minecraft, that is their call. Also, we have been here before, through pretty much all of the development and public releases, with people constantly not liking the new versions for some reason or another and eventually either moved on or accepted the quirks. Also, the part about Mojang hurting their own product is an inevitable reaction of some, simply due to the size of the community (2nd most sales of any video game ever, only behind Tetris). Also, if you think Microsoft is not going to keep updating the game just to get as much money as possible from people, then you are likely mistaken.
My webcomic: https://xtremegming.github.io/
I don't think 1.14 is supposed to be bigger update. That comment (was it Jens?) that if you want a big update you should wait for 1.14 wasn't saying that 1.14 is going to be a big update, it's saying that the cumulative effect of a year of smaller updates will be similar to the effect of one update in development for a year.
Small updates are fine, but they should group mod-breaking changes into batches so most mods don't need multiple versions for the different small updates. They made a trivial change in 1.11 to some method signatures (List to Non-Null List) and that makes a lot of modders (including me for one mod) have to maintain separate versions for 1.10 and 1.11. That's almost gratuitously nasty since there's not too many changes overall and if they'd just left it would save possibly hours of work for each mod.
Geographicraft (formerly Climate Control) - Control climate, ocean, and land sizes; stop chunk walls; put modded biomes into Default worlds, and more!
RTG plus - All the beautiful terrain of RTG, plus varied and beautiful trees and forests.
So people, my thought is that Minecraft would be nowhere near as popular without mods, but would also lose a decent chunk of its community if the updates stopped. Therefore updates should become more mod friendly, but other than that the only thing that really needs changing is the sheer number of immature jerks in the community. Games with a toxic community like what Minecraft is developing tend to lose popularity fast. And I don't really mean anyone on this thread, before the moderators slam me again. What I'm talking about is the sheer number of Minecraft players who grief servers, hack in PVP and just generally do things simply to irritate other players. A friendly prank can be fine, but going onto a friendly server and ruining it for the nice players with TNT and hack clients? This has to stop! So, Microsoft, if you find any way to make the game more mod-friendly, do that first, then put the rest of the update money towards content that will drive off these nasty people. Don't listen to complaints unless they're presented in a way that makes sense, if someone just posts stuff like "REMOVE THIS OR I QUIT *RAGE-RAGE-RAGE*" then they obviously don't have the level of maturity needed to be part of a non-toxic community, and you should let them go. More people will buy(and stay with) the game if it has a decent community, which will more than make up for the loss of the jerks' money if handled correctly. To sum it up, there are many changes that need to be made, but the updates should not stop. *votes on the poll since I hadn't done that yet*
I hope someday there's more magic in Minecraft, though I know it's not likely to happen. In the meantime, I play modded a lot. I enjoy a lot of other games too, so don't expect me to be on the forums all the time.
I know this sound stupid but wouldn't a modding API just stop updates from breaking mods besides things like ID clashes and such?
Sorry if this sounds stupid, just a random guess in the dark
That is one reason that they're moving away from numerical ids; every time they add new items it conflicts with someone's mod.
Except that comes at a big performance cost; have you ever compared code for 1.6.4 to 1.8+? The latter adds multiple layers of complexity to what was once very simple code; for example, here is some code from 1.6.4's cave generator class:
Equivalent code from 1.10 (from source I found on Github):
Doesn't look much different? Well, what is that "p_180702_5_" variable? It is an instance of "ChunkPrimer", which has the following code:
Already, that is going to be MUCH slower since it is a method call, not just a simple direct array access. And it calls even more methods; "Block.BLOCK_STATE_IDS.getByValue"?
So what is in "ObjectIntIdentityMap"?
Now it has to fetch the data from a list... and I had to look through so many classes to finally get through this big mess; can you say "spaghetti code"? All of this replaces a simple "var53 = par5ArrayOfByte[var48]" in 1.6.4! Plus, you have to allocate iBlockState objects instead of simple primitives. If I ever mod a current version I have the mind to modify the game so I can directly read/write to (at least) the ChunkProimer's internal array (which is an array of shorts; yes - it encapsulates numerical data! Another issue is that the entire array index must be calculated every time you access it, insteadd of being able to precalculate the x/z component and just add the y-component within the innermost loop) and not have to use BlockPos.
No wonder terrain generation is several times slower in 1.11 than it is in 1.6.4! Even my 1.6.4 mod which adds many new biomes and 256 high terrain (vanilla 1.6.4 only deals with the lower 128 layers, so that would make it faster) and additional GenLayer layers is much faster. Also, have you ever seen the memory usage? Why does it change so fast that the poor garbage collector can barely keep up? In my mod Superflat worlds actually cause Java to allocate more memory than default worlds (about 100 MB more) since I've optimized the default world generator to counteract the impact of making it more complex, which includes reducing the rate of object allocation; during chunk generation I do not allocate a new array for the raw chunk data for every single chunk, but rather re-use the same one (the entire array is always written to so old data does not contaminate the next chunk; 1.10 simply makes a new ChunkPrimer, which is over 128 KB in size, per chunk - that's about 80 MB of objects allocated during the generation of the initial world spawn area!), and similarly eliminated as many instances of "new" as I could; any increase in base memory usage (since these objects are now permanently allocated, not created as needed) is more than offset by the reduction in object creation (using static objects helps cut down on memory usage since they are shared among all instances of a class).
IDs are so useful that I even added a second biome ID to the BiomeGenBase class to help group biomes; if I want to check for a desert biome I only have to do one comparison instead of checking for each type of desert, and I can easily add new desert-type biomes without having to look through the code to make sure I added it to all the code that checks for deserts:
See also: https://www.reddit.com/r/Minecraft/comments/2js5j3/the_creator_of_optifine_sp614x_explains_the_18/ (in particular, the top comment)
Also, just wait until they replace numerical IDs within the save file... I wonder how they will manage save size when they do (compare "minecraft:stone" vs "1").
See, by continuing to update the game they are just making it slow, bloated, and unreadable with unnecessary code all because of a "mod API" (actually, plugin API, which is not the same as a mod API; plugins are generally more limited), when we don't need one, and I bet, just like with Forge, you'll still have to hack the code (either by directly editing it or using ASM/reflection to override it) to implement certain features since they can't possibly add hooks/interfaces to every single aspect of the game. Wait? It is now illegal to modify the game unless you are using the API? Well, then many advanced mods won't update.
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
Umm, you do know the numerical ID's came from 1.7 and not 1.8 right?
1.7 only replaced numerical IDs with block references, which can actually be faster in some cases, if not for the fact that references need 4/8 bytes (32/64 bit Java) of memory each (RAM is extremely slow compared to the CPU so the more it uses, and importantly, the more is being handled per operation, the slower things are); terrain generation is slower mainly because it has to handle 256 instead of 128 layers, but still slower than it is in my 1.6.4 mod. 1.8 made this worse because they completely abstracted away block IDs and metadata (numeric until 1.8) and replaced them with block states, and even abstracted away xyz coordinates, and added a lot of useless wrapper classes - just compare the sizes of the jar files, and number of classes, for 1.6-1.8 - much of that increase was NOT because of new features. There's also a good reason why many mods took so long to update to 1.8+; my own mod would have to be massively restructured to accommodate the loss of block and biome IDs - or re-add the ability to directly use them (as noted before I even added a secondary biome ID to make it easier to group biomes together), bypassing all that blockstate stuff (I'd have to modify many more classes, including all the ones associated with the save data handling).
Again, the point is that Mojang is making the game less efficient and the code harder to read and maintain (which is not just an issue for modders; wait until Mojang needs to make some significant change) by prettifying the code and preparing for a "plugin API" which is not needed because we already have one, and which is entirely optional.
TheMasterCaver's First World - possibly the most caved-out world in Minecraft history - includes world download.
TheMasterCaver's World - my own version of Minecraft largely based on my views of how the game should have evolved since 1.6.4.
Why do I still play in 1.6.4?
From someone who codes for himself and not others, I can't imagine the loss of enthusiasm for those who makes mods for the community, especially updating above 1.8. Your experience and explanation is a very good reason why 1.8 was a colossal failure at optimization.
I still use MCP 908 for my custom server that I play with my friends occasionally.
Been playing Minecraft for too long.