[00:46] I completely disagree with what you said earlier about users all being Mojang users and not being Technic/FTB/ATL, etc users. This is not true. [00:46] I, like many other people, haven't used vanilla in well over two years. I ran bukkit servers. I've played forge. And now I run an MCPC+ server. But vanilla? Nope. [00:47] Why is that? Many people have different ideas about how they want to play games and spend their time. [00:47] That should not be limited by YOUR vision of how a game should be played. [00:47] Or your intepretation [00:48] This fear campaign has been plainly dishonest and unecessary. [00:48] And mostly it just shows for people with deductive reasoning skills that Mojang is being lazy. [00:48] If you don't want launchers to do a certain thing, but poeple don't like Mojang's shitty launcher, either provide a better launcher or provide a better system for the existing launchers so that they don't do that thing you don't want them to do. [00:49] Instead, you guys are throwing a damned tantrum. [00:49] Because people are working with the system that was presented to them. [00:49] This is illogical. [00:49] I doubt you will respond to me. I don't expect it. But you might read this. And given that I don't know you or your personality, you may as well just ignore it. But it might show you some reason. [00:49] And it might help you to see the other side. [00:57] it was ripped out of context [00:57] Here is your chance to clarify. [00:58] the users are our users, if they use something else they are obviously users of those things. However, if you want to send data around do that based on whatever *you* have created for the users, do not send data around that is only at the users' computer so they can log in to servers [00:58] it's that simple [00:59] Alright, then let's move to my second point. Many systems provide an API for third party authentication. I can use Google/Facebook to log into websites all over the place without sending any actual auth info. [00:59] You have no business 'having' the tokens so a user can log into a game-server on *your* servers, they should only be local and used for the purpose they are created for [00:59] Instead of punishing 3rd party launchers for using the system that was put in front of them, can we provide an alternative? [00:59] Do you understand that we have a limited amount of people working at Mojang? [00:59] Yes. I do. [01:00] I also understand that 15 million copies were sold for the PC, many millions more for other platforms. [01:00] Do you understand that we're not going to build things that we know we're going to have to deprecate in the future? [01:00] Mojang is not an indie company anymore. By definition you publish your own games and do so much more. [01:00] It's time to mature. [01:00] All of that matters nothing [01:01] The amount of sales, the amount of money -- if it was less or more we'd be having the same discussion [01:01] With more sales, you have more resources at your disposal. [01:01] so now answer my question [01:01] With that, you have more purchasing power. More ability to hire more people. [01:02] should we waste those resources on something that we *KNOW* we are not going to want to have around in the future? [01:02] Does Mojang have a defined roadmap? [01:02] Is it publicly available so that people can look at it and know what is going on? [01:02] Or are people left in the dark intentionally? [01:02] It is pointless to create things you know you want to get rid of. [01:02] Ah, so google tells exactly what they are going to do to everyone? [01:03] let us not derail this. [01:03] Google is one example, but google doesn't have the same type of community. [01:03] Again, that doesn't matter [01:03] Road maps are necessary for user input and feedback. [01:03] But that implies we want feedback on these issues [01:03] Otherwise you end up with a lot of frustrated people. [01:03] You don't want feedback from people who use your systems? [01:03] Do their opinions not matter? [01:04] That is a terrible attitude. [01:04] Can you imagine there are some subjects where 'user input' actually doesn't matter at all for the course of what is going to happen? [01:04] Like for example the skin system [01:04] we had no choice but to change it, it literally *broke* under the weight of bad design and millions of users [01:04] Ahh yes, but in many cases, user input is very important. [01:05] yes, but who are you to decide which cases that applies to? [01:05] Shouldn't we decide this? [01:05] You are implying that this is black and white. You have to think intelligently about how you would receive input and on what things. [01:05] Which is what we're doing [01:05] I think your community should decide. [01:05] Rather than 5 guys. [01:05] Yeah, design by community doesn't work [01:05] The people who play the game. [01:05] and its more than 5 people [01:05] and this is not about gameplay [01:05] 5 was an arbitrary number. [01:06] happens to match the size of the team working on MC [01:06] but hey! [01:06] I'm leading to something really important here. [01:06] I work with linux systems. Open source development is incredibly important. [01:06] But we're not opensource [01:06] so it doesn't really apply :) [01:06] And not just working with it, but also for education. [01:06] also opensource doesnt mean 'flawless' -- remember heartbleed? [01:06] Well many of us feel that Mojang should change their stance. [01:06] Neither does closesource. [01:06] 'their stance' on what? [01:06] There will be bugs either way. [01:07] yes [01:07] But open source allows for user generated feedback and input. [01:07] Also, if you don't like something a user wants, you don't accept a pull request. [01:07] Simple as that. [01:07] Ah, and it takes no time at all handling pullrequests [01:07] Come up with standard practices. [01:07] Rather than everyone coming up with their own unique system. [01:07] Which is what we're doing [01:07] Making it impossible for the end user to work with these things without a 3rd party launcher. [01:08] we're changing the codebase to something that is modifiable [01:08] I heard mod api was cancelled in favor of a plugin api. [01:08] But again, this has nothing to do with launchers [01:08] sigh, modding is not something that is 'sustainable' [01:08] I don't see a problem with it. [01:08] even most of the forge things are more in a the style of plugins than mods nowadays [01:08] It's a matter of design. [01:08] and lex is going to great troubles limited the ease of doing actual 'coremods' [01:09] it's not. [01:09] Modding implies taking something, changing it, putting it back [01:09] two people cannot mod the same piece of code at the same time [01:09] which is why shit like modloaders etc exist [01:09] Actually that is also a matter of design. [01:09] <--- making a game in Python, PyPy, etc. [01:09] they 'abstract' the common pieces people want to do changes to [01:09] Can inject modded code while it's running and update immediately. [01:10] So... matter of design. [01:10] Not sure how any of that matters? [01:10] Modding is building tightly coupled things, in the tightest way possible, actually changing the class in a non-dynamic language [01:10] I haven't messed enough with Forge to say with enough certainty, but I'm relatively sure it's not possible in java. [01:11] Again, not sure how it matters [01:11] you drag in python, it has nothing to do with this :) [01:11] You were talking about different mods altering the same classes. [01:11] the language is not part of the design [01:11] I know it isn't... I was using an example from something else that is designed differently. [01:11] the language is the thing you use to implement a design [01:12] If the design is broken the language doesn't matter [01:13] Which goes back to my original point. [01:13] I'm stating the current design is broken, or rather, there was no design to allow trivial extending [01:13] Yes it is. [01:13] we're slowly fixing it [01:13] but again, this all has nothing to do with launchers [01:13] And that process can be sped up. [01:13] it cannot be sped up [01:13] Some to do with launchers. [01:13] because people have no fucking clue what needs to happen [01:13] maybe 5 out of 10000 do [01:13] That is the wrong attitude. [01:13] I know some incredibly talented programmers who play the game in their spare time. [01:14] but finding those people between all the cruft is not worth it time wise right now [01:14] Oh i know some too, I actually got some on the team [01:14] They come to you. All you need is people to filter out the bad ones. Again, thats what community support is for. [01:14] Crowd source your work, speed it up. [01:14] again, right now we're not at a point where it is remotely comfortable to take MASSIVELY large patches from the community to fix the issues we're having [01:15] even for ourselves, with 5 people, we run into eachother all the time [01:15] because its a huge pain in the ass tightly clustered ball of spaghetti code right now [01:15] that has to be untangled [01:15] Alright. Well until you do open to your community, your community will continue to be incredibly frustrated. There is a lot of it going around. [01:15] and for a simple frikking change like 'not having the code decide which texture goes where on a block' you end up hacking at the code for two weeks, doing changes in over 100 files [01:16] Yeah I know how that is -.- [01:16] those things are not even compatible in our team right now [01:16] So I can understand your side. [01:16] I spend a significant amount of time rebasing our major branches ontop of eachother [01:16] And I'm glad to actually talk to someone. [01:16] Not on Twitter. [01:16] twitter sucks [01:16] Yes. [01:16] fuck char limits, fuck mentioning people counting to those limits [01:16] Because.. I've used Minecraft a very long time now. And there are a ton of people jumping ship right now. [01:17] And that makes me sad. [01:17] people jump ship all the time [01:17] I mean a lot of people. [01:17] nothing significant is happening at all :) [01:17] One thing that is incredibly important. [01:17] I talked to Ryan Holt, I think is his name? [01:18] Holtz, yes [01:18] We really need to implement a proper job queuing system. [01:18] yes [01:18] I work with TickThreading and got Nallar back to working on it. [01:18] But that's really a tiny bandaid for a big wound. [01:18] you dont thread things in mc haha [01:18] Yeah.. [01:18] world access is the unsafest thing *EVER* [01:18] It breaks things.. [01:19] (as in multithread unsafe) [01:19] Well I was thinking of different methods to implement a job queuing system. [01:19] But that isn't my area of expertise. [01:20] neither are they mine [01:20] I found something called Gearman, and some people said it could work. But it might be better to write a new system that is designed to work with MC. [01:20] but just having an executer queue that you can submit jobs which then get handled on the main-thread during a certain moment of a cycle should be plenty [01:21] for now at least [01:21] also, what sort of 'ticking' are you talking about? [01:21] Well, modded servers (and I know modding isn't supported) deal with a lot of issues because everything is coupled to the main thread. [01:21] https://github.com/nallar/TickThreading [01:22] that says very little about what it is actually doing [01:22] So when you have a lot of tile entities that update a lot, it causes a lot of lag because that update thread is overloaded. [01:22] I like: Code should be self-documenting - when possible meaningful names and good design should make comments unnecessary [01:22] written by someone who 'gets it' :) [01:22] I agree. [01:22] That's how I write. [01:23] 'a lot of tileentities' ... well there we go [01:23] i dont think any of the tileentities we have in the game actually have to tick [01:23] Well, TT spreads the update ticks over as many threads as you have cores. [01:23] Hoppers. [01:23] I've seen them do a lot of updates in conjunction with pipes. [01:23] ok maybe that one ;) [01:23] They were never designed to work with pipes. [01:24] or pipes were never updated to work with hoppers? ;D [01:24] For vanilla, this isn't a problem. But it is a HUGE MAJOR HUGE problem for modded servers lol. [01:24] afaik also fixed? [01:24] There are ... I think 5 major pipe mods? They all work like that. [01:24] In what version? [01:25] i assume you are talking about opis reporting hoppers taking a relatively long time? [01:25] Modded servers for the most part can't progress past 1.6.4. forge 1.7 is a buggy hellscape. [01:25] Yeah. Was that a bug? [01:25] yes [01:25] and has been fixed [01:25] probably 1.7 [01:25] Disregard that statement haha. [01:25] no idea, we don't care for old shit :P [01:25] I understand that. Which brings up another point. [01:25] but wait! [01:25] shouldn't the whole 'collective of the opensource internet' be able to make Forge stable in minutes? [01:26] lol what [01:26] People are generally lazy and are fine with expecting someone else to do something. [01:26] Also lex has a bad attitude, so no one will work with him. [01:27] Otherwise, I'm sure it would get updated faster. [01:27] He has an attitude, often the right one :) [01:27] he's just separating the cruft from the non-cruft [01:27] I meant, he is really mean to people. [01:27] mean? no, people are stupid [01:27] they get angry when you say they are stupid :( [01:27] That isn't true either. One person might not be an expert in computer science, but could be a complete genius in their field. [01:27] And you have no way of knowing that. [01:28] obviously [01:28] but everyone is stupid in something :) [01:28] Obviously there is a 50% chance that someone is below average ;) [01:28] therefor everyone is stupid [01:28] LOL [01:28] statement holds perfectly stable ;) [01:28] But you must forgive that for the things people are good in. Instead of stupid, call it ignorance. [01:28] but that implies i want to spend time on making that difference [01:29] anyhow! [01:29] The difference between stupid people and JUST ignorant people is that the stupid ones won't understand something when you explain it to them plainly. [01:29] Yes back to my point. [01:29] RIght now the codebase is in no shape at all to either be 'opensource' or 'taking pullrequests from random people' [01:29] really what I mean about being open source.. ther eis a middle ground. [01:29] You don't support older versions. [01:29] But the code is still obfuscated and hard to work with. [01:29] however, we are taking pullrequests from 'select few' [01:30] So why not release open source versions of old releases? [01:30] Say open source 1.6 so people can finish patching the bugs on their own. [01:30] lol [01:30] And if someone comes up with good ideas, it can be pulled to the newest version. [01:30] it's java, it is opensource [01:30] don't pretend that short names are a problem [01:31] It causes code to break on every update. [01:31] When it has to be remapped. [01:31] And then it has to be updated again. [01:31] But what if the mod didn't have to be updated? [01:31] it only has to be remapped [01:31] i dont see a problem [01:31] should be trivial to do that [01:31] It's tough on the userbase. [01:31] Not so tough on the dev to remap. [01:31] People waiting and waiting for things to work properly again to see new features. [01:31] They don't want to abandon what they already made. [01:32] you do realize that you are making an argument that people should work together to make something, yet no-one has started to make a sane api for the things they want to have abstracted out of the game so they just have to collectively update said api? [01:32] Well that is kind of the argument that other people are making is that they want to fork forge and take care of it themselves. [01:33] so why don't they? [01:33] just dont bother lex with it :) [01:33] And stick with 1.6.4, backport new things from newer versions, and never update because updating is always such a nightmare. [01:33] and we'll shut down access for 1.6.4 eventually then [01:33] because we actually do not want this to happen [01:33] Which is my point. [01:33] I don't want to be stuck on 1.6 [01:33] I don't want to depend on it. [01:33] modders are just lazy [01:34] they sign up for: "LETS HACK AGAINST OBFUSCATED CODE" and then "OMG THE OBFUSCATION, WHIIIINEEE" [01:34] Why does it have to be obfuscated? [01:34] it's like a mac-user not buying a new mac every 2-3 years [01:34] and then complaining 'stuff gets slow' or 'stops getting updates' [01:34] (release deobfuscated version for development after some time) [01:34] *you know that when you buy a bloody mac!* [01:34] who buys a mac? [01:34] o.o [01:34] I do [01:35] i hate windows as a dev os, it's a piece of shit [01:35] Yes it is. [01:35] And I guess mac is in *nix now. [01:35] mac is bsd based yes [01:35] it at least has a 'proper core' [01:35] or at least something with a fucking shell on it >.> [01:35] So better than windows I suppose. [01:35] and a concept of ssh >.> [01:35] right [01:36] OMG GIT SO HARD ... no .. windows is just retarded for not having a sane shell/ssh ability [01:36] no-one on linux or mac ever complains about it :P [01:36] But this is a serious request. Why not release deobfuscated code after a certain period of time specifically for development? [01:38] because that would get people stuck on certain versions? :) [01:39] and obviously it would be absolutely retarded to just give out the source to a sold product [01:39] There are people that still play 1.5, 1.4, and 1.2 [01:39] Hmm, I work with android from time to time to. [01:39] Android is a sold product and it's 100% open source. [01:39] You can just download the whole thing. [01:39] yes and those people playing those versions 'because they are so stable' (or whatever -- have redpower2?) are going to be better off if we have custom versions floating about based on different sourcecode? [01:40] they dont sell android :) [01:40] Hmm. Well then a compromise. [01:40] the compromise is that we let you decompile ;) [01:40] Release the source to a select group of people that work with modding that you can trust. MCP, Forge. [01:40] That's not a compromise. [01:40] who says that is not the case already? [01:40] People can do that anyway whether you like it or not. [01:41] MCP gets the full mapping of the obfuscation for a loooong time now [01:41] Then why doesn't forge come out fully mapped? [01:41] and Forge works closely with MCP [01:41] because they choose not to? They use it as reference? [01:41] also, we'd stop giving it :P [01:41] Is it that they need specific permission? [01:41] So if they can figure it out themselves, it's fine. [01:41] But not if you give it to them. [01:42] they asked for the mapping to assist them, based on that they get it [01:43] I just want more support for the community as a whole. A lot of us feel like modding doesn't receive much of any support, like Mojang is strictly anti modding. [01:43] Obviously we don't support it [01:43] again goes down the lines of the 'not doing stuff with things you know you don't want to have around in this shape or form in the future' [01:44] Which then brings me back to having a roadmap. [01:44] You don't need to explicitly say EVERYTHING you plan on doing. plans change. [01:44] But some generaly direction. [01:44] the roadmap is 'working towards the api' [01:44] That's a start. [01:44] which is what we're doing :) [01:44] all the snapshots show you which direction we're currently tackling [01:45] so there, you have your information [01:45] I usually see new features that most of us aren't all that interested in. When biomes were added, we said "We have bop, extrabiomesXl, Highlands, etc." [01:45] Slime blocks. [01:45] These things can be added by mods. [01:45] And usually do. [01:46] The adventure map stuff for command blocks was interesting. [01:46] Yes, but why would we care you already have a mod for something? [01:46] Because you should care what your users use. [01:46] granted not everyone uses mods. [01:46] ooooh really?! [01:46] Nowhere near everyone. [01:46] ;) [01:47] Buut. Features should be secondary to fixing and patching things. [01:47] also, 99% of the 'features' added to the game are 'spare time'-things [01:47] which they are [01:47] Alright, I can take that. [01:47] 4/5 people are working almost exclusively on hacking the code clean [01:47] jens adds stuff and splits time between PC and PE [01:47] Why is it only a team of 5? [01:47] so in fact its 4/4.5 people almost exclusively cleaning up the code [01:48] because it is? because more people would not make it better [01:48] I understand not wanting too many people on the same thing. [01:48] So split it up into different sections and farm it out to different teams. [01:48] *if you had those teams [01:48] lol [01:48] what sort of teams do you envision? [01:49] every change we need to do touches ~40% of the codebase [01:49] there is HUGE overlap even in our team of 4 working on cleaning up [01:49] This is true. [01:49] But the entry point might be different. [01:50] I don't know how your internal system works. [01:50] But there is always room for improvement and efficiency gains. [01:51] we could perhaps use 1 extra person [01:52] but even that will mean i'll have to spend 50% of my time making sure everyone is doing what they should be doing in the way they should be doing it while not creating a new mess or causing conflicts [01:52] Being a project leader... not an easy task. [01:53] i'm not a project leader -- thats the thing [01:53] A lot is expected of you. [01:53] I know you're not. [01:53] but i am the one who is by far the most critical of 'how code looks' [01:53] Which makes you the key player. [01:53] Not technically in charge, but definitely in authority. [01:54] yes, i make people rewrite their code plenty of times a week :P [01:54] That certainly slows everything down needlessly. [01:54] needlessly? [01:54] I mean [01:54] if i cannot read the new code they've written they are writing shitty code? [01:54] Yes, I'm agreeing with you. [01:55] remember that thing i liked so much? "Code should be self-documenting - when possible meaningful names and good design should make comments unnecessary" [01:55] As in, having to write something twice is slow. Would be better to have it done right the first time. [01:55] yes, but i cannot pair-program with everyone [01:55] and people are also depending on me to write core systems ... at which i sortof suck [01:56] Should have a seminar on best practices that everyone can fall asleep in. [01:56] but then again, anyone who says they do not suck at that ... well probably get surpassed by someone else who still believes they can learn [01:56] ;) [01:56] yes, actually already sosrtof considered making everyone watch all the episode of cleancoders :P [01:56] Is that a youtube thing? [01:56] I like to brush up a lot. [01:57] But you could institute mandatory practices and required reading. [01:57] i could, but you know things do not work like that [01:57] Yeah.. [01:57] In a perfect world. [01:57] if you do not know cleancoders, imho you cannot *EVER* be a good java-dev [01:57] <--- not a java dev [01:57] :) [01:57] I can read it and write it a bit, but I do other things. [01:57] its more in general [01:58] if you call yourself a java-dev you are supposed to know about that [01:58] Then I will look into it for the sake of knowing it. [01:58] http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882 [01:59] Thank you. [01:59] Also, thank you for taking the time to actually talk to me. [02:00] You have heard my concerns and you can think them through and talk to others about them. But one last thing needs to be talked about. [02:00] This twitter war needs to stop. [02:00] It's kind of funny, but it's also not. [02:01] So as people, we need to have a rational conversation about where to go.