
Microsoft's forthcoming Minecraft Education Edition is written in C++ - ingve
http://www.zdnet.com/article/minecrafts-new-education-edition-written-in-c-will-outrun-the-java-version/
======
sheepdestroyer
Micro optimized by John Carmack himself who volunteered (he was like a free
consultant for while) for the task because he believed that's the best that
could be done to help VR. He first had to personally persuade both hierarchy
at FB & MS. So bold.

From : [http://venturebeat.com/2015/09/24/how-john-carmack-
pestered-...](http://venturebeat.com/2015/09/24/how-john-carmack-pestered-
microsoft-to-let-him-make-minecraft-for-gear-vr/) :

“I was willing to do just about anything,” he said. “On the phone I said that
if this doesn’t happen, I’m going to cry. This will just be so terrible. This
will be the best thing that we can do for the platform. But there are some
problems that compilers can’t solve.”

It turns out that the solution was to get the top executives from Facebook and
Microsoft together.

“Mark [Zuckerberg] and Satya [Nadella] were able to sit down and make sure
that the deal happened,” said Carmack.

~~~
Almaviva
I think he may be the best refutation against people who don't believe in 10x
engineers. Imagine you want to create a VR prototype and get to hire 100
average programmers with some experience in the industry, and you're up
against Carmack with a month until your demo...

~~~
untog
I don't think people disbelieve that 10x engineers exist. Just that 98% of
those who claim to be one are wrong.

~~~
espadrine
I disbelieve.

That said, I don't contend that some people are not at some point 10 times
more productive than others. I contend that anyone can be just as productive,
and often are, were or will be, although the manner in which they should be
productive is absolutely not clear-cut. Society as a whole shapes how we act.
Diversity in its composition allows what we rely upon.

For instance, I would not be as productive at work if I had to take care of a
few children on my own. Similarly, I am extremely unproductive while
gardening, and don't intend to spend the time to improve.

~~~
eloff
You're practically coming out and saying that all humans are equal and the
only productivity differences can be attributed to other factors. That's a
ridiculous position to take.

~~~
adventured
And _extremely_ easy to disprove at this point with brain scans vs
capabilities. We know enough about the brain now to understand that some
people are born with advantages (or disadvantages), whether that's in memory
or social skills.

------
ChuckMcM
I chuckled at this: _" In schools and colleges that use Office 365, students
will be able to log on to Minecraft using their Office credentials."_ Because
everyone things "how can I log into this game? Oh yeah, with my _office_
credentials." :-)

That aaid, one of the more interesting debates I participated in at Sun was
Bill Joy's insistence that interpreted Java would be "faster than C++." From
what I recall of his argument, it was that understanding the semantics of the
program and just in time compilation would allow the JVM to run only the code
that was needed in a smaller resident set with fewer context switches. At the
time I was arguing against that, saying that a compiled version of Java could
be a useful systems language but the interpreted version would not.

And even with some really really amazing hotspot technology on the JIT
compiler, I don't think Java was ever faster outside of a few synthetic test
cases that did no useful work.

So it really doesn't surprise me that a C++ version of minecraft would out
perform a Java version, but it would be much more interesting if they included
a JVM for the mods, so that the core was fast and the mods were portable.

~~~
pnathan
To be honest, a lot of people have slammed the Minecraft codebase, claiming
it's badly written and kind of a slow mess. I can't recall the citations, but
based on the discussions when I read those aspects, I wouldn't put aspersions
on Java alone in this case.

~~~
Macha
It was a one-man hobby project turned into one of the biggest video games. I
doubt many codebases would work well after growing so far past their original
aspirations.

~~~
TazeTSchnitzel
It was never well-written, though. It was good enough to work, but it was
never good code.

~~~
JustSomeNobody
But it got the job done. That means way more than whether he used a factory or
not.

------
jdmichal
As other people have pointed out: "Modding" in Minecraft is literally
replacing the original Java bytecode with your own. This is why the idea of a
Minecraft launcher took off; replacing binaries with modified versions is very
dirty and very difficult to do if multiple things are touching the same file.
I hope that this C++ version is the impetus needed for the forever-promised-
never-delivered modding API to finally take shape. Then I don't even care what
the underlying technology is.

~~~
madaxe_again
One would hope so - I predict however that many end users will be slow to
adopt as modders will probably start by rioting, and then replatform (if
indeed there is an API) - but there will be a substantial time lag. There's a
potential for a vicious underadoption cycle there, however, and bifurcation of
the community into "classic" minecraft and "new" minecraft.

~~~
kuschku
Oh, don’t worry, we are already rioting.

Mojang already announced that "deep modding" won’t be supported. They’ll
extend the stuff current resource packs can do, but they want to avoid modders
replacing or extending any game mechanics directly.

For example, modifying the rendering pipeline will be impossible.

What modders expect: Minecraft as a whole engine, similar to the API Unity
presents to developers.

What Mojang is willing to deliver: A modding API that’s glorified command
blocks.

~~~
Lawtonfogle
>Oh, don’t worry, we are already rioting.

Any chance of modders swapping to an opensource minecraft clone?

~~~
Teckla
Minetest is very good, and can be modded with Lua.

------
ergothus
Assuming MC does move to a C++ main version:

I wonder if anyone is studying this and drawing parallels to the Python 3 or
Perl 6 efforts. There seems to be a lot of similarities.

* Existing product is great, but limitations are being encountered

* Decision is made (or reality admitted, depending on your view) that you have to make a dramatic change

* Community is split, progress is slow

* ???

I'm a huge Minecraft fan (it's about the only computer game I regularly play),
and while the community has lots of grump people, it's also fairly adaptable.
This would be a huge shock though, and I'm more interested in what happens
over, say, 6-12 months than I am in initial reactions.

~~~
detaro
On the other hand, this potentially could unite XBox, mobile and PC versions
of Minecraft, which would make quite a few people happy.

As most of this thread discusses, mods are going to be a critical point, even
though it is surprising how much people manage to do with command blocks,
ressource packs and other vanilla tools.

------
madengr
As a frustrated parent, Minecraft itself isn't compatible with it's own mods.
The whole ecosystem is a frustrating mess, or at least my having to perform
tech support for my 7 year old.

~~~
ganeumann
Words I dread hearing when I arrive home from work: "daddy, can you install a
mod for me?" Usually the first half hour is getting rid of all the crapware
they were tricked into installing as they tried to get the mod themselves.

~~~
Lawtonfogle
Tekkit client, Curse client, and FTB client. If the mod isn't on one of those,
they aren't getting it.

I use to do custom installs of mods and even a little bit of patching to make
mods play nice together (namely recipe conflicts), but the time it takes just
isn't worth it when you can grab a Direwolf20 or Tekkit pack and play right
away. I do kinda wish Mo Creatures was still included in packs because my
little sis loved the horse breeding to get endgame horses.

~~~
mjevans
You forgot about the atlauncher. It has some interesting packs like
TechNodeFirmacraft (a TerraFirmacraft based mod pack) that actually somewhat
educate users about rising up from caveman to industrial era technology (real
metallurgy names and semi-believable progression; at least until the end game
where you make fantasy alloys to move blocks of non-finite water and lava
about).

------
xd1936
Sad for the modding community. The entire ecosystem is based on recompiling
and editing/inserting Java.

~~~
tshannon
And for any platform that isn't windows.

~~~
cptskippy
Ah yes, the dread C++ lock-in to Windows.

~~~
thescriptkiddie
There might as well be if you don't have the source code.

~~~
Sanddancer
People are already making mods to the C++ versions even without source code,
doing the same thing that was done to make mods with the java version.

[https://github.com/byteandahalf/MCPE-
NativeMods/wiki/1:-Maki...](https://github.com/byteandahalf/MCPE-
NativeMods/wiki/1:-Making-native-mods-for-Minecraft-Pocket-Edition)

~~~
thescriptkiddie
Disassembling and patching a binary is a completely different thing from
porting software to a different OS without access to the source code.

~~~
cptskippy
Yes, it is very different. I'm not sure what that has to do with Minecraft
though since it's source isn't freely available.

~~~
thescriptkiddie
The Java binary can be run on any system for which a JVM exists. If Microsoft
ports the entire thing to a native language like C++, we are at their mercy to
provide binaries for non-windows systems.

------
symlinkk
Worth mentioning to everyone who is complaining about the lack of mod support:
there has been an open source C++ clone of Minecraft for a while now called
"minetest", looks like their website is down right now but here's the Github
repo:
[https://github.com/minetest/minetest](https://github.com/minetest/minetest)

~~~
ghostDancer
And the fork called Voxelands:
[http://www.voxelands.com/about.html](http://www.voxelands.com/about.html)

------
ww520
A rewrite is usually faster than the original, especially one without backward
compatibility constraint. I bet a rewrite in Java will be faster than the
original, too.

~~~
kevincox
Yeah, but it is more work and you end up with a Java version :P

~~~
ww520
Why would it be more work? You've already learned what work and what don't
work in the first version. You can reuse a lot of the original code. A lot of
the experiment and exploratory code can be thrown out. Ending up with a Java
version can be a good thing.

------
nitrogen
Will this C++ version run everywhere Minecraft already runs
(Linux/Mac/Windows/mobile/etc.)? Can it connect to Java servers?

~~~
Narishma
The mobile version, as well as all other non-desktop versions, are already
written in C++.

------
ryanhuff
My 11 year old son is an avid Mincraft player. His favorite aspect is playing
team games on multiplayer servers.

When I told him that Microsoft bought Mincraft, he was quite upset, and was
confident that Microsoft would ruin it.

Change was bound to happen. Hearing their plans to go c++ makes me wonder how
it will impact the server ecosystem. Also, the "Windows 10" messaging in the
article does sound like a case of a big company trying to bend a community to
its own will (get people on Windows). In my son's case, if things go south, he
is going to end up hating Microsoft for ruining his favorite game.

------
mavhc
On one hand I'll be happy to not have to keep Java on the school machines,
with its terrible installer, and minecraftedu, which wants to write to the
install dir (same problem with kerbaledu, but that also has the additional
crapness of being licenced per machine based on mac addresses, requiring
delicensing, and internet access to check licence).

On the other per year per user fees for software is a terrible trend,
especially for schools. And I'd rather run my own server, and the kids love
the mods.

------
Lawtonfogle
Well, I was wrong. I was fully expecting the rewrite to be in C# to get the
Java people to switch to C#, not in C++.

~~~
leetNightshade
Switching from Java to C# doesn't offer any HUGE advantages to the end user.
Switching to C++ does, granted with some drawbacks depending on how mods are
handled, if they're going to be portable or not.

If Microsoft is only making a Windows version of Minecraft, then they don't
have to worry about the portability of mods, which would be a shame.

~~~
Lawtonfogle
>Switching from Java to C# doesn't offer any HUGE advantages to the end user.

I know C# doesn't offer much in terms of optimization.

I was thinking they would do a C# rewrite because getting modders to switch
from Java to C# is easier and it would give them a chance to show support for
C# on non-Windows systems. I also think it would reduce the chance for a
community split where modders continue modding the last Java versions.

I'm probably biased in favor of modding. I remember Notch mentioning most
sales came from systems where modding wasn't even possible, even though I
personally think modding is the greatest thing about Minecraft. That has
likely biased my view on the issue.

------
Kequc
If anything needed a re-write Minecraft needed one. With the resources
Microsoft has at its disposal I'm surprised to see it looks like a 1:1 remake.
They didn't update the visuals or anything.

This was an opportunity to release a slightly upgraded version of the product.
It isn't backwards compatible so why keep for example all of the redstone bugs
and so on, in it? This product could have been greatly refined. Maybe that's
only coming in Minecraft 2.

In true Microsoft fashion, there will now be Minecraft, Minecraft EE, and
Minecraft 2. Instead of just two major products.

------
Ezhik
I still don't really get what exactly Minecraft offers for education.

~~~
TranquilMarmot
Redstone can be a great way to introduce people to logic and circuits, but
that's about all I can think of.

------
balls187
How do mods work on the console versions?

~~~
jerf
"What are mods?", same as every other console game.

------
deepinthefall
Noooo.. How can I run it on my old SUN SPARC server if it's not in Java?

------
outworlder
That's cool and all, Minecraft has always been a pig.

That said, no mod compatibility is going to kill the game. Just check youtube,
it is difficult to find something about "vanilla minecraft".

------
hathym
I hope this ends the Java vs C++ performance debate.

------
Animats
C++, not C#. Why isn't Microsoft using its own language? It seems late to be
doing new starts in C++.

~~~
pjmlp
C++ support has always been quite strong in the games and OS divisions.

I would go so far as to bet it was the political C++ / .NET divide that caused
the Longhorn failure.

Also the Windows Vista victory that lead to the "Going Native" speechs,
sponsoring C++ conferences, support for C++ on the kernel, AOT compilation to
native of .NET code to mobile and the store and bringing back COM+ 2.0 renamed
as WinRT.

------
roghummal
Down the memory hole it goes.

~~~
halayli
I am not sure you are aware of C++11's memory management features.

------
kelvin0
Wonder how Markus feels about that ... I would be honored!

------
osullivj
Have they published the source? On github?

~~~
sheepdestroyer
No, as an outsider, the source is only accessible if your name is literally JC

~~~
sbd01
Jesus Christ or John Carmack?

~~~
flebron
Yes.

------
BeowulfCluster
Why didn't they re-write it in C#?

~~~
varjag
Probably the same reason: (lack of) performance.

~~~
BeowulfCluster
C# is _much more performant_ than Java.

~~~
namelezz
Link please.

------
benlower
10 PRINT "Knock, knock." 20 PRINT "Who's there?" 30 PAUSE 10000 40 PRINT
"Java" 50 END

------
exabrial
Ok literally a flamebait title... Carmack is involved in the rewrite.

Let's face if, if M$ rewrote it, it'd be in .net and only run on their
platform. Then support would be dropped in the next windows release

~~~
nickpeterson
I feel like MS will probably do well on this, it's essentially a developer
tool (for all ages), and MS makes plenty of those just fine. They clearly have
good people involved and are using C++ so you know it's a performance oriented
mindset (since Java vs C# is certainly close enough to make a C# version
passable).

I wouldn't be surprised if this is a success.

~~~
rasz_pl
reading [https://randomascii.wordpress.com](https://randomascii.wordpress.com)
Im not so sure. Microsoft has a habit of shipping unoptimized buggy crap in
every niche, including dev tools.

