Mojang has been hard at work developing a new launcher for Minecraft, one that promises to improve the overall experience of Minecraft in a number of ways. However, there seems to be some confusion on what the new launcher is, what state it is currently in, and what can be expected from it in the future. Today, we are going to take a look at what the new launcher currently features, what it will feature later on, and more!
What the New Launcher Offers
According to Jeb, The new launcher will support updated OpenGL and Java libraries, and will come with the ability to change versions with a drop-down menu. In addition, detailed game settings, such as game directory location, jvm options, memory, and more, will be customizable. This offers an obvious benefit in allowing players to choose which version they are playing with minimal fuss, and no extra installations, as well as tailoring their game to their personal and system specifications.
New Launcher Rumors: Fact or Fiction?
Unfortunately, there have been rumors circulating about what the new launcher will bring (or break), many of which are simply untrue. Today, I sat down with Mojang's very own Dinnerbone to talk about the new launcher, where it is, and where it is going. Some of the most heard rumors are addressed below, plus some exciting news for the future of the launcher!
"The new launcher has always-on DRM! Why is Mojang joining the AODRM bandwagon?!"
- Untrue. The launcher is still in a testing phase, and the "Play Offline" option simply hasn't been added to the menu yet. It is coming in future launcher updates, and will remain a core feature of the launcher. Not to worry, Offline isn't going away!
"The new launcher will kill modding!"
- Untrue; however, we have to examine how Minecraft works now, and how it is planned to work with the new launcher in the future, to understand why this is the case. The Technical Explanation
Right now, Minecraft is installed to the same location for every player (on their respective operating systems), and modding the game requires editing the core files in this location, such as the mincraft.jar, adding mod/config/etc files and folders, and so on. For most players, modding Minecraft, changing versions, or testing Snapshots requires editing these core files directly, which changes the game itself. One of the running problems with this approach has been the lament of modders since the earliest days of the game - every update breaks mods, because an update will completely overwrite old versions of Minecraft (modded or not) with the new version data.
The new version of Minecraft is expected to be compartmentalized. Instead of having "Minecraft" as an entire game to modified, there will be a "core" Minecraft - essentially, the game's engine and crucial data - which all things will be built upon. Jar files which determine how the game runs will have their own locations, called "Versions", which will be selected from the new launcher. This includes everything from actual vanilla versions of Minecraft to the most complex mods imaginable. For example, if you were to install a mod called "Baconcraft" - which involved adding modified files to the minecraft.jar file, custom folders, assets, and textures - you could place it in a Version folder called "Baconcraft", and select it from the launcher when you started the game.
Vanilla Versions already download their data on launch, but only the selected Version's data downloads. For example, if you launch the game with 1.6 selected, only 1.6 data downloads. It is hoped that the launcher will also use this feature to update modded versions of the game, adding functionality for modders to include a download source which would update their modded Version whenever a player launched it.
More details on planned features will be released in the coming days, but this glimpse into the future of the launcher definitely shows an exciting future for modded Minecraft!
The "TL;DR" Explanation
Right now, modifying Minecraft means changing the game itself - adding, removing, or modifying files, which will inevitably get overwritten with updates. The new, proposed system will let you pick any version to play that you wish - up to and including modded versions that you have installed - without accidentally breaking other versions, or worrying that a new update will overwrite and ruin your modded game. Pretty awesome!
"Wait...does that mean the MOD API is coming now?!"
- The new launcher - and the 1.6 update itself - do not include the mod API. However, the API will require many of the coming changes, and so this can be thought of as a preliminary step towards the API!
It kind of is seeing that who was working on the game drastically changed during that time. You had the creator of the game, Notch, leave. You had a one man team, Jeb, working after "release" trying to figure out how to do things on his own. You had Jeb having to introduce a new team member, Jon, to the code and working with them on AI before he was pulled off the team a few months later. You had three new members, Dinnerbone Grum and Evilseph, added to the team who had to be introduced to the game code as well as Jeb becoming head designer of MC Pocket on top of MC PC. So man power to make an API was very much an issue.
The second point I will make is that Notch's "API" was just a licensed attached to access to the source code. In his posts you link he does not talk about a proper API, he talks about open source code and calls it an API, he never talks about anything that what the API upcoming will add. Just handing out source code is completely useless because, as stated, mods would still break with every patch and MPC does that already for modders. You will note that Notch stated that they would run a limited trial of open source code with a select few users to see how this would work out.
"* We’re starting the modding support on a small scale with 1.7. We’ll be giving the source code out to a very VERY small group of people before the release of 1.7. We’ll use those experiences to work out the final details, then we’ll get the modding api out as soon as possible after 1.7 has been released."
My guess is that they got very negative feedback from their test trial. You will notice that the source code version of the API is not brought up again really, instead Notch's next major news about the API is him talking about what a proper API would require and how he does not feel he can do it right (see below).
As of Dec 2011 Notch hands development over Jeb and steps down off the project. Jeb first openly talks about the API in March 2012 in this interview:
In this he never mentions your precious source code, but lays out what an actual API would do. It wasn't until August 2012 that they could start the first steps towards making the API a possibility.
One of the things from Notch that you failed to mention would be from a post in April 2011:
One slightly bad news item is that I’m starting to get second thoughts about the modding API. People are already doing great mods, and there’s no way we’d be able to make an API good and dynamic enough to support all of the awesome things people are making. I still very much want modding to be a part of Minecraft, but I’m not convinced spending months writing an API that won’t satisfy people is the correct way to do so. There probably are better ways to do it.
The main problems we need to solve are preventing people from making money off our work (unless they have a license deal with us), and making sure mods don’t break with each game update. People obviously already CAN make mods, so the ability to make them isn’t the biggest priority.
At this point you can see that Notch is no longer talking about an API that just consists of the source code and nothing more, since he acknowledges the whole mod breaking issue. He is also having doubts he can pull it off.
What your posts come off is that you are both entitled and whinny. The person who promised you left the team years ago. The plan for an API was up in the air when that happened, and nothing was decided until a few months into 2012. If the process of fixing the game so that an API could even be done has taken as long as it has (since Release 1.3), then there is no way that Notch of all people would have been able to get it out in the time frame he put down. You know why? Because he wanted to do the lazy and stupid route of just releasing source code, again something that does not matter at all for modding with MCP and would not help the community in the slightest because it provides no benefit that an API provides. It is clear that close to the deadline that the team realized that and started drawing up plans for what would be needed for an actual functional API. They realized it would take more time than they originally planned and at that point they had gameplay related projects that needed to be worked on, again features that would sell the game, it was also about halfway through 2011 that Notch became tired of working on the game, remember he was an indie developer doing this for fun, he never expected MC to explode into popularity, you can't about their company being unprofessional at times because they are not "professional" game developers and they purposely run their company in a laid back way.
Well I mean, that is my biggest point, is that it is entirely unfair to let Notch of people color the expectations of the rest of the team, 3/4ths of which whom never even worked with the guy. Even before the whole API debacle Notch had a ty track record of randomly blogging about things he is planning on doing then never actually going about coding. The problem with Notch is that he has fully admitted that he likes working on projects until they either bore him or become serious work. Notch is best at smaller projects and impulse coding, when tasked with a complicated long term project, he falters, but that is just the way he codes. From a coding aspect it was pretty obvious when Notch was "working on the API" that he really wasn't. Nothing in the code base was changing to indicate that anything was being done and I feel a lot of his "reassurance" posts where just to get to stop spamming his twitter and email, though I couldn't say for sure. What he should have done is just admitted earlier that the API is being put on hold because of how huge of a project it was, but I feel he didn't because he knew there would be a lot of community whiplash from that, while stalling would put it the project off till later when they might have more people to tackle the issue, this of course didn't work out as we all know.
That said, I really personally don't count Notch's random claims as part of the API's development time because if you looked at the code it was obvious it wasn't started. Meanwhile when we look at Jeb, Dinnerbone, Grum and Evilseph, it is readily apparent that they are making major changes and moving towards releasing an API. That is why I got upset at the whole doubting the teams ability to actually produce an API since they are working on it and the patches at least since 1.3 have a lot of behind the scenes proof that they are prepping the game's engines for just that.
While I understand that you think the API should be given higher priority, this isn't something they can just quickly push out because the game itself isn't at a state where they could make a functional API for it without immediately breaking the API. While some people argue they should hold off content and just release the next patch when the API is ready, I think that is a poor decision. With the amount of engine changes that need to be done, you need open testing of the systems to make sure they are fully functioning. If you push out a ton of major engine overhauls at once, your risk an increase in the amount of bugs compared to smaller release pushes. This is a major issue because tracking down what caused a bug can be a lot harder when so much of the system changed at once compared to smaller bite size parts. Content also allows the devs to take breaks from from heavy engine work so they do not burn out, remember the current dev team has had a rather brisk release pace if you subtract time for things like Minecon where they are not available to code, they've been doing about one patch every 3-4 months. Another aspect of pushing out contents is that it also helps give them opportunities to open up bits of the code to be more accessible. Take horses for example, the player mounting code has been drastically altered as of 1.6, it affects not just horses, but pigs, minecarts and boats. All that random NBT data that Dinnerbone pushes will be fully accessible for the API, allowing for a lot of extra flexibility that would not exist otherwise. The last major reason why they should continue pushing out content is that the API will not sell more copies of the game, however shinny new content will. Not everyone uses mods and the API is only really useful for mod developers, not your average day players. Hell the ability to keep mods from breaking with each patch is more of a convince for players, and a time saver for mod developers and they could probably figure a way to do that without the API. Even the new launcher has changes that are both necessary for the API, but also make mods easier to install, they can't just sit on that they need people to openly test it.
Also, let us not forget that there are four members on the MC dev team. Jeb is dedicated to content additions, bug fixes and overseeing MC Pocket. Dinnerbone does content, bug fixes and works partially on the API. That leaves two full devs, who are not as openly vocal because updating engines is boring to talk about compared to new content, who are working on the API. We know that Grum is the guy who did the rendering rewrite that will be pushed some time after 1.6, so they are busy at work doing it.
Maybe it is a matter of opinion on this, but I learned very early on in Beta to take anything Notch said with a grain of salt, however the current Dev team has been incredibly reliable about getting work done and not making empty promises. They also know (or rather have learned more recently) how to keep their mouths shut on certain subjects.
Thank you kind sir for explaining all of that to poor heartless souls. But unfortunetly it will never get past there thick skulls. They will always need something to complain about. And when proof comes it will go through one ear and out the other. Click the link in my signature for those reasons why jeb and than have been working on the API for a long time now.
In the Registry? Some file in the .minecraft folder?
True, and that is your valid opinion, but I would almost shrug it off since the game was still in active beta at that point. They didn't drop the announcement that the API was not ready until the game was released.
I mean, here is the really weird thing about MC's development. The player base treated the beta in a very odd manner, a lot of people got into the habit of treating it as a finished game with ongoing content addition (which it is at right now). The other really weird thing about MC is that people were writing this major mods for a game that was in beta. The only other game I can think of that the community did this to is DwarfFortress, but DF is in the most bizarre development I have ever seen. Still, the point that people were actively modding a game in beta and complaining about mod support for a game that wasn't even finished has always been extremely odd to me. :V
Now that said, I would hazard a guess that the reason they've been quiet is because they are still working on engine stuff and there isn't much to talk about. However, a lot of the engine stuff they have been blathering about. Dinnerbone over the past few months has been talking about Grum's rendering rewrite and how it will provide better performance than Optifine, during the Redstone update I think it was DB who talked about how rewriting RS was an important step, and DB has been very open about the importance of the new launcher in regards to the API and what it will provide for modding. I think that when all the behind the scenes stuff is done, and they actually begin working on features of the API (not the framework, not much to be said about basic stuff like that), then you will start hearing stuff out of the Dev team.
I am sure they will have a system for multiple mods, I think the OP was just giving a basic understanding on how the version folder system works. Forge will still work since it modifies the jar file and you would just have something like "versions/Forge Jar" or something like that, can't say for sure until the feature is fully released.
Forge will still be around for a while, since it is at its core a library. What you will probably see after the Plugin API is released is that Forge becomes a Plugin that expands the API to include the massive amount of very specific hooks that only a handful of mods use.
1) 1.6 doesn't keep mods from breaking, it allows you to maintain an older modified jar version that won't be overwritten if a new patch comes out. So if you have a modified 1.6 jar and 1.7 comes out, you can choose to play the modified 1.6 or a vanilla 1.7 from the launcher.
2) I really do not think you understand what an API does or provides.
3) Forge, despite its name, isn't an API. Forge is more along the lines, at least nowadays, of an extensive library. Forge cannot do what the official API would provide. Forge would be better off becoming a plugin that extends the library of hooks and calls that the API will open up. They discussed this exact thing at the 2012 Minecon.
Thats really stupid I like forge Minecraft Forge mods are way more awesome then any API mod you can do anything with forge mods so I don't give a damn about any stupid API compared to Forge the API is really nothing why should it be a plugin anyway? I mean how can you improve something that doesn't need to be improved in the first place?
You are being angry for no reason.
What Forge is, is a library, or collection, of various calls and hooks that modders use to do things that normal vanilla MC doesn't really allow to do to anyway, such as .obj importing and additional liquids. It is also a collection of specific additional code for things that don't exist in vanilla minecraft to begin with. This is all fine and dandy, this is the mod community making a tool to expand upon the main game. This also has nothing to do with the API.
Right now Forge directly modifies the game's jar file. In the future, the game is going to be broken up into several segments (the various engines, various jars that dictate the game, etc). When I said that Forge will have to become a plugin for the API is something the Devs themselves said. I do not think you understand what this means. Again, Forge directly modifies the game jar. With the API, Forge will talk to the API and go "Hey, I need access to these files for modification" the API will then present hooks for those files. This allows Forge to interact with those files, or code, without actually overwriting them. This is a good thing because this means that other mods or code library can go "Hey, I need to interact with those files to". Right now it is all about who was installed last because the current method of modding requires overwrites of essential files, at least in the case of most mods. This issue is why you cannot just throw Forge and MCpatcher onto the game at the same time, instead you have to install Forge through MCpatcher's installer, otherwise there are major installation issues and either MCpatcher or both it and Forge break.
The added benefit for this is that since the API is working as a go between between mods (which as the Minecon 2012 API conference talked about, will be restructured as plugins like most games with APIs do) is that mods will no longer have to worry about obfuscated code, will not have to worry about changes in patches breaking their mods and it will make modding a hell of a lot easier. Your statement that Forge can do anything anyway is also completely false. The API will be able to do a lot of things Forge isn't able to do. For one, Forge is still reliant on MCP being updated with each patch, and even then MCP isn't a true unobsfucation of the code, but rather the best guesstimate of what the code would look like without the obfuscation. The API will provide direct access without MCP and Forge would never have to wait for an update from MCP again.
Forge is great and all, but do not get it confused with an API.
That all said, you as an end user will not be affected by this outside of mods being easier to use and install (hell, the OP talks about setting of ways for mods to automatically update without manual installing each new version). The API is only truly important to mod developers, any developer who truly understands anything about code knows how important a well made API is.
I may just be a tad bit confused, I don't know.
You got it right. Right now on the Dev launcher, you can switch between the snapshot and 1.5.1. The plan is that it will keep a library of each new patch and you can switch between them when you log in. I don't know if they will backdate to patches before 1.5.1, but I think I remember some talk of doing so, cannot confirm right now.
Oh, good. Right now I hope they go just far enough back to 1.7.3 because of the simplicity and all the people who miss old Minecraft. That version might be the best to insert in because it had lack of as many changes that came with 1.0.0, the full version, and Beta 1.8, with all of the generated structures. That would also be good for server owners so they can make servers easier with the file and other people having it then rather looking everywhere on the web for it. Nice, and easy.
You have no idea what an API is and that Forge and all mods will keep breaking every update without one do you?
It will be interesting to see how far they can go back. With all the overhauls to the engine, going further back then Release 1.3 might be difficult, but who knows! I do agree that Beta 1.7.3 were good times (but I do love all the new stuff added since ).
I doubt they'll store it in the registry, but I'm not sure where exactly.