Markus "Notch" Persson, creator of Minecraft, blogs about the game's origins, development, patents, piracy, and personal matters.
Commenters point to it as a detailed early log of Minecraft's development and cite his posts on patents and his late father.
If you are serious about programming and have the resources to go to a university for a CS degree program by all means do so, there is a hardly a better way to get at the same time:
A) broad overview of the existing knowledge related to computers
B) evaluation of your own skills and knowledge as compared to others and as compared to what knowledge is out there in the first place
C) high-intellectual-quality contact with other people interested in the same things
I have a CS degree via evening classes, and have been additionally self-studying Mathematics and topics in Computer Science, based on that experience I would estimate that learning a given subject to a basic decent level is at least 2-3 times slower than at the university, and will only work at all if you have any existing basis to work from and assuming you will have the motivation to learn, which also is much harder to get if you are working on your own. I probably wouldn't be able to meaningfully self-study math if I didn't take a really good discrete mathematics class at the university (in parallel with "self studying" the discrete math class at http://aduni.org/, which I think is a really great way to get started with theory).
Working this way through 20-30 subjects, as what you would get in the course of a degree, is for mostly psychological reasons close to impossible, so I think the broad basis is best gained at the university. I personally do regularly reach in my work for things I have learnt in at…
People seem to forget, but Notch was miserable well before he sold Mojang. In 2012, it was a breakup [0] followed by the sad story of a father with a history of substance abuse and depression killing himself [1]. Given the ~50% genetic component of depression [2] and the well known fact that large monetary windfalls do not affect baseline mood [3] I think it's fair to say that the only surprise here is that anyone is surprised.
What I would do? I would stash the money away in low risk vehicles while I take all the time I need to study things I find interesting and/or potentially important, and assemble a prioritized list of topics and relevant people. Then, probably many years later, I would finalize a long-range plan to pursue the 1-3 top priorities I've identified, and maybe support a few more further down the list.
Yes, this is "to Musk [4]" (behold, Notch gave us a new verb!) and yes, it brings the risk of exposure to assholes. That's inevitable if you don't want to feel isolated [5], but having a few billion $ at your disposal does bring advantages like the ability to hire a personal assistant or ten to manage those assholes for you.
It would also help to stop trolling the interwebs with asshole-bait depicting you as a miserable, hence exploitable, walking wallet.
[0] https://twitter.com/notch/status/235746965823033345
[1] http://notch.tumblr.com/post/37823268132/i-love-you-dad
[2] http://depressiongenetics.stanford.edu/mddandgenes.html
[3]…
I created mineflayer[0] - software which implements the minecraft client/server protocol and provides an API so that you can create minecraft bots in javascript. So I followed minecraft development for a while, decompiled and analyzed the code, had to deal with the shitty protocol, and observed the way bugs are introduced and solved.
I've seen his posts about how git is too hard to learn[1] so he's going to stick with svn. I've seen him post that "we've started to bring in bug fixing into the development method"[2], and then the very next release is a "bug fix" release which causes more new bugs than it solves.[3]
I wouldn't hire him for a software development job that required any level of maintenance. He's good at creating original fun concepts but not at making it nice for people to read, modify, or maintain his code.
Also, I would argue that emulating a 16-bit CPU within the constraints of a game environment is easy and straightforward. For one, it's ridiculously simple to do test driven development without any overhead. And second, have you seen all the emulators that have cropped up after the specs were posted? There is already an emulator for almost every popular programming language.
[0]: https://github.com/superjoe30/mineflayer
[1]: http://notch.tumblr.com/post/2623477410/strategy-meeting-day-results
[2]: http://notch.tumblr.com/post/4423138657/11-11-11
[3]: http://www.minecraftwiki.net/wiki/Version_history (might have to view history)
The link is junk. If you want to bypass the Reddit image meme and ensuing inanity of Reddit, see Notch's actual statement here: http://notch.tumblr.com/post/13633493969/och-med-dom-orden-sa-passar-jag-micken
From the link:
As of yesterday, Jens Bergensten is the new lead developer on Minecraft. He will have the final say in all design decisions, so he will kinda sorta become my boss, I guess. I’ve promised him to not pull rank. ;)
We’ve been working together on Minecraft for a year now, and I’m amazed at how much in synch we two are when it comes to how to design the game. And when we don’t agree, we discuss it and something much better comes out at a result. He’s truly a great person to work with, and I feel very confident handing over the leadership of Minecraft to him.
If you want to contact Jens, he’s on twitter as @jeb_, or you can email him at jeb@mojang.com
Personally, I will now rest for a while, then get back to work refreshed and eager. I’ll be helping out with Minecraft, of course, but also starting work on some new project.
In practice you need a texture atlas (http://en.wikipedia.org/wiki/Texture_atlas) to reduce number of meshes. But if you use texture atlas you can't combine surfaces like in the article.
The solution is to create 1 dimensional texture atlas like this: http://manicdigger.sourceforge.net/webgl/data/atlas1.png. Then tile in only 1 direction. Minecraft does it and I first read about it in one of Word of Notch posts - http://notch.tumblr.com/post/176620207/i-rewrote-the-tesselator.
It's good enough. Manic Digger (http://manicdigger.sourceforge.net) has great framerate at Pentium 4 and Geforce 2 MX.
But there is one problem: in mipmaps there is bleeding between individual textures. The solution is to use:
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 4);
It's good on desktop, but there is no GL_TEXTURE_MAX_LEVEL on OpenGL ES and WebGL! I guess it must be done with custom mipmaps or with a pixel shader?
> Of course Zachtronics is also indirectly responsible for Minecraft, so there's that too :P
For those who don't know the story, Zachtronics had this game called Infiniminer[0], from which Notch apparently took the idea for block-based game[1]. From the words of Notch himself[2]:
"But then I found Infiniminer. My god, I realized that that was the game I wanted to do. I played it in multiplayer for a while and had a blast, but found it flawed. Building was fun, but there wasn’t enough variation, and the big red/blue blocks were pretty horrible. I thought a fantasy game in that style would work really really well, so I tried to implement a simple first person engine in that style(...)".
--
[0] - http://www.zachtronics.com/infiniminer/
[1] - https://minecraft.gamepedia.com/Infiniminer
[2] - https://notch.tumblr.com/post/227922045/the-origins-of-minecraft