Since there's not much info on this, and since I missed the relevant thread last week, I'll just note here for the record that Mojang's other recent release, a browser-based retro game called Minecraft Classic, was built on my voxel game engine.
Interesting note indeed. I remember there being a different Minecraft Classic mode from somewhere around 2009-10 that just ran on Java and you could play it through a browser (Java applet I guess) or download a Java client. The server was in Java too, of course. So perhaps they decided to rewrite it in JS?
I used to be an admin on one server and split my time between building stuff and banning griefers/undoing the griefing on the main worlds to make everything pretty again. Great memories.
It would have been friendly, but FWIW they seem to have forked my project in mid 2017, so I'm guessing it's an experiment and got shelved and later revived.
So it's easy to imagine a scenario where the people who ultimately released it last week weren't really aware of how much it uses external libraries - mine, and also a 3D engine called Babylon.js (who also weren't contacted).
Amazing - you are given the power to choose your own license and choose how you want people to view your source code, yet people are STILL unhappy and surprised when you comply in the exact way you wanted them to.
Having trouble controlling classic.minecraft.net on Win10/Firefox (with uMatrix but everything requested whitelisted). Anyone have a discussion site / advice?
Edit: got the mouse to switch by invoking 'b' to choose block. Going to be a learning curve, a near newbie in Minecraft.
Word to the wise: they have the mouse sensitivity set very low and there's no option for it, but you can open the JS console and twiddle "noa.cameraControls.rotationScale".
and now the reason for the GNU GPL license becomes apparent. If some unfathomably wealthy corporation founded by one of the richest person to have ever lived isn't going to pay you for your work, at least you can get something out of it by making them open source their work.
As a maintainer of several OS projects with millions of monthly downloads I'm entirely fine with them using it for free. I get too much compensation and recognition for those projects as is anyway IMO and the swag is nice.
There are plenty of ways to monetise MIT like consulting, career building, training and so on - at least for smaller scale but popular projects. Plus OP can now say that a big game studio used his project and it could be a great conference talk :]
I think that the micro-celebritism is tiring and toxic for our industry, most of my open source stuff is stuff other people could write and I'm just glad I have the privilege to help.
I'm literally writing this comment from an airport at a country I wanted to visit and was flown into because of open source I wrote (they paid for a vacation for a conference). I'm having a hard time complaining :]
It's not like maintainer burnout isn't real and there aren't issues in open source but we also really need to fix the culture around it IMO.
It's only that simple if it's all written by the same person.
A maintainer can't just re-license the whole project unless all other authors agree (or already agreed to that e.g. by accepting some contributor agreement).
Or did you mean a price high enough to just ignore the existing license?
That's an interesting dilemma. If your goal is to get your source code to be used by lots of people, then it seems logical to use an as permisive license as possible to "compete" with other open source projects. But it might be short-sighted, because then if your code gets incorporated in proprietary projects it may become used a lot, but it won't propagate, it won't generate new projects that might get even more use. If on the other hand you want to get your source code into the hands of as many people as possible (that is not only users but empowered ones), that's different, and a licence like the GPL that is inherited (I don't like the term "viral" very much, it seems too pejorative) seems better, but then they can't compete against more permissive licences, so they can't "reproduce" that well either !
This is a "tragedy of the commons" of sorts. If all open source projects could collaborate and choose a single license, what would it be ?
It's not a dilemma at all for those that explicitly choose the GPL over MIT because they believe in Free Software (others might choose GPL for other reasons....).
Being Free and having every user of the software retain their Freedom is the literal point of the GPL. Saying "hey, your software would be used by lots more people if we make a proprietary product out of it" is undermining the entire point of the Free Software movement....
So it's more ethical if 10 people use your software and they retain their Freedom, then it is for 10 million to use it bundled in a proprietary product.
> If all open source projects could collaborate and choose a single license, what would it be ?
I don't think this is possible really. Even the FSF who IMO are some of the most vocal supporters of user and developer empowerment created the LGPL to solve this very problem. Some of their software (like glibc) is licensed under the more permissive LGPL instead of the GPL to foster adoption[0].
An except from [0]:
> This is why we used the Lesser GPL for the GNU C library. After all, there are plenty of other C libraries; using the GPL for ours would have driven proprietary software developers to use another—no problem for them, only for us.
This sort of thing is the entire purpose of the MIT License, though. It’s like saying “Hey world, I made a thing. You’re free to use it for whatever you’d like if you’re interested”
Classic is offered over the web, so only the AGPL would be relevant (or well, I'm not actually sure how GPL applies to JS apps served over the web but run in browser), and anyway, it's not like MS is making money from Minecraft classic, for a lot of people they did get something out of it: a cool game.
Chris, you know better than this nonsense. No experts know the answer, but the FSF strongly advocates the position that JS running on your computer is just like any other software running on your computer. The AGPL was written to require a server operator to free their patches to software running on their server, not in your browser.
The AGPL exists to close a loophole for code running on the server. Code being served to the client obviously needs the permission of the code’s copyright holder. Otherwise, all those movie piracy streaming sites wouldn’t get constantly shut down.
This is a cynical and wrong viewpoint. Companies are made up of people, and people don't always act in the absolute for-profit interests of the companies. Further, companies can, and do, sometimes take actions that aren't directly profit oriented. And the trope about shareholder liability making it illegal for a company to not act in a directly profitable way is wrong.
It's a cynical and mostly correct viewpoint. Companies that don't make their workers act in their profit interests exist, but they aren't successful. Microsoft is not among them.
When the market works, at least. So it's actually quite possible that Microsoft is being nice and "inefficient" here.
Also, I think there are probably sufficiently small decreases in expected profit ithat many large companies would tolerate.
And even aside from that, there is the possibility of a choice between options which does not have any large-enough-to-predict-or-evaluate-its-direction impact on the bottom line, and in these cases, the decision will likely be made in accordance with how some people working there prefer.
No model is perfect. I guess I should prioritize rhetorics in the future lest someone use my honesty against me.
> Also, I think there are probably sufficiently small decreases in expected profit ithat many large companies would tolerate.
There aren't. A company that accepts decreases in profit does not become large, it fails against its more psychopathic competitors.
> And even aside from that, there is the possibility of a choice between options which does not have any large-enough-to-predict-or-evaluate-its-direction impact on the bottom line, and in these cases, the decision will likely be made in accordance with how some people working there prefer.
If a company cannot predict whether an action is profitable, it will always decide against it and instead invest its resources in something that is.
When I said "sufficiently small" I was including stuff on the order of "an average of .01 cents total as the result of the policy".
> it fails against its more psychopathic competitors
I see no reason why choosing to lose an expected value of .01 cents total, would result in failing against a competitor which does not do so. That just doesn't make sense. It isn't like there is a ranking of "what company in this field made the most profit", and then all of them other than the top 1 or 2 are immediately destroyed each month. No, a company runs out of business when it is not sufficiently profitable. Now, if something results in their products being more expensive, or something like that, in a way that significantly changes their profitability, or other things which might slightly change their per-unit profitability, then yeah, that could make them non-viable.
But, like,
have you worked in a large company? There are certainly inefficiencies in large companies which are the result of the continued choices of individual employees, even among large successful companies. This is obvious.
Companies are not able to perfectly optimize for profitability, even if they wanted to.
All of that is just companies making errors, not intentionally foregoing profits.
> It isn't like there is a ranking of "what company in this field made the most profit", and then all of them other than the top 1 or 2 are immediately destroyed each month.
The process is not that quick, but in principle, this is exactly how markets work. The most profitable companies undercut all others, which then go under. Provided markets work, that is.
Like I said well upthread, this is a cynical and wrong viewpoint. The real world doesn't operate as an efficient market, doesn't operate over infinite timescales, doesn't have ways to exactly calculate the proftabilitiy of a decision or action.
It is overly cynical, and mostly wrong, to take microeconomics 101 theory and try to apply it to a world that doesn't fit any of the microecon 101 assumptions.
On the other hand, you can make a profit-driven motive argument for practically any action a company takes if you try hard enough, even literally giving money away.
Sure. Doesn't change the _hope_. There are lots of good things in this world that happen for reasons other than legal requirements.
And it doesn't have to be charity either - MS could recognize a good chance to spend an insignificant (to them) amount to get good PR in an open source community they've been trying to warm up to.
The best compensation they could do is reach out to Microsoft/Mojang for a job. Being the author of the game engine for a company's product is probably #1 in qualifications.
Funnily enough, it looks like noa is built on the Babylon.js engine, which was the side project of some Microsoft employees, released under the Apache license, written in TypeScript. So it seems that open source software has stimulated some mutual benefit to all involved -- and rather more directly than usual.
Yes, Babylon does the 3D rendering while noa does meshing, physics, entities and such.
Curiously, the Babylon people also didn't hear about the minecraft game until after it launched, even though their engine is being used and they're all under the Microsoft umbrella.
Not sure why the negative points here. The game plays extremely laggy and with input delay on my Surface Pro 3, yet the FPS counter shows always above 40fps, usually over 100.
The FPS counter is horribly off and does not represent real life.
I agree, the counter is certainly odd. That bit of code is Mojang's, I'm not sure what it's measuring.
That said, I take no responsibility for it being laggy - the version of my engine they're using is from 2017 and I've done some performance stuff since then :D
Thanks for the reply! Not blaming you (you've done awesome job here!), just bringing up an interesting point and was hoping to get insight but apparently not so much :/
I hear you. FWIW I think they might be measuring how long the render takes and then showing the inverse of that as the FPS. If so, that would equate to a kind of theoretical maximum frame rate. The code is minimized though, and I didn't look very carefully.
[game] https://classic.minecraft.net/
[engine] https://github.com/andyhall/noa/
if anyone's interested. It's pretty weird waking up one morning to find out that Mojang built a game on your tiny solo project...