6 ms·
Minecraft shows how bedroom programmers can create global hits (2013)
- chillacy 10y ago> Coded in Java, a general-purpose programming language that emphasizes speed and lightness over the grand capabilities of more powerful tools I stumbled a bit while reading that. There is a comment to be made about notch's use of java, both good and bad, but I don't think speed and lightness when I think java, especially in the realm of 3D games. I do think it was a good choice for cross platform play and modding though.
- Zekio 10y agoGlad I wasn't alone in thinking Speed and lightness seemed odd especially when talking Java
- uola 10y agoWhile it's obviously questionable from a technical perspective you can argue that Java, as a fairly good trade-off between abstraction and power, is faster (in terms of development iteration) than a lower level language and lighter than using a full blown engine (like unreal engine). I don't think he chose Java so much as that was simply what he knew at the time.
- kpil 10y agoI wonder what are the grand capabilities it lacks? Is C++ a more powerful tool filled with grand capabilities? It does not feel right, although it sure is a Swiss army knife full of sharp and pointy tools in a "Don't look into laser with remaining eye" sort of way. Is C a more powerful tool? Absolutely not. It's powerful but not that expressive. Both languages are relatively low level and uses application memory management. I think it's only the latter that really matters when writing 3d games and other low-latency programs to be honest. But I think the slow part of minecraft is the terrain generation, and I think it's mainly because the world is rather large and the algorithm is complex, not because java is slow or that the gc is a bad idea. I don't think that the Windows 10 version run noticably faster, but I'm not completely sure that it's C++ and not C# and gc:d.
- pshc 10y agoJava has quite a bit of memory overhead which exacerbates Minecraft's inherently high RAM requirement. That plus frequent GC pauses make Java a suboptimal choice for Minecraft long term. (But it may have been the right choice for Notch back in the day.)
- chillacy 10y agoYea it's a vague statement for sure. Maybe "more powerful tools" means Unity or a game engine, but it's not certain, and that sentence will just keep looking strange to me.
- MichaelGG 10y agoMy kids run it on their X201s. The Windows 10 version is massively faster, providing really fast rendering. Minecraft 1.9 doesn't even seem to support setting the fullscreen resolution, so it's always pushing 720p. I'm not kidding when I say it's literally unusable: 1 frame per several seconds. Unfortunately the W10 version is very cut down, lacking lots of things. It's possible the main difference is OpenGL v DirectX on the Intel integrated cards. But the graphics are basic enough that there should be some way to render them quickly regardless.
- kpil 10y agoI must admit that I have not played Minecraft on any computer without a fast nVidia card. It could be the OpenGL driver that makes it slow in your case actually. I am not sure that the graphics are "basic" in the technological sense - Yes, the graphics have a retro-pixel look and no fancy shader-tricks, but there are a lot of large views and a lot of surfaces, and no cheating with a world box.
- matt_m 10y agoThe biggest thing compared to C and C++ (or even C# and Go) is probably the lack of user-defined value types. So if you want to create an array of Point2D objects, in Java it will be an array of pointers to heap-allocated objects (each with additional per-object overhead), which is really bad for cache misses, memory consumption, GC pressure etc. C# is a pretty similar language that is popular for game development (with Unity) but unlike Java it supports value types.
- pcr0 10y agoThe point may have gotten lost in translation. I think the point here is that a lightweight game engine was used (written in LWJGL which is a wrapper for native graphics APIs), rather than something full blown like Unity/Cry/Unreal.
- georgeecollins 10y agoKeep in mind, Notch didn't write the java library that did his rendering, the light weight java gaming library or lwgl. It has reasonable performance and, as advertised, is lightweight. The key to minecraft is that it stylistically embraced a really blocky rendering style with low resolution textures. That made a game that could be very open vistas, be malleable and run on any modern device.
- KhalilK 10y agos/Minecraft/Stardew\ Valley/ and you get the 2016 version.
- pedrosorio 10y agoWow. I wasn't aware of this Harvest Moon clone. Brings back memories.
- LCDninja 10y agoIMHO Markus Persson wasn't a "bedroom programmer" in the pejorative sense, he programmed as a professional for King.Com for four years before venturing into the land of indy dev. https://en.wikipedia.org/wiki/Markus_Persson https://en.wikipedia.org/wiki/Markus_Persson
- kpil 10y agoYes. I think he was a rather creative developer that managed to create the game that he wanted himself as a kid. Maybe we can just sort this article under "slighly uninformed opinons" and carry on with our lives...
- ionwake 10y agoI am interested in how he learnt about back face culling issues though
- deleted 10y ago[deleted]
- deleted 10y ago[deleted]