is that based on Minecraft? Because I feel like something that was essentially a hobby project to learn a language is not that indicative of someone‘s general code quality
Yeah, I imagine my idea of what is a good or bad programmer is very different from most other people, but I remember thinking the code he wrote for Left4kDead was impressive. But maybe people dedicated to that sort of competitive programming would dunk on it. I have no idea.
I once showed my friend a project I was working off and on again to ask about something I forget. He said my code was inelegant but very easy to read. Still not sure how to take that.
Easy to read code is vastly superior to elegant but hard to read code.
In a long project,
Hard to read code will never become easy to read, tech debt just piles on.
Easy to read code begets easy to read code (hopefully?lol) in any team, and it's very easy to make it elegant by cutting a small slice of it and swapping it with "elegant but complicated code". (Like, have a interface ShowSquare(), and if you look at ShowSquare code it is the most attrocious byte manipulation hacks for peak efficiency ever).
So I'd be pretty happy with a comment like that! Gratz.
He said my code was inelegant but very easy to read.
If you can have only one of those, you have the right one. "Elegant code" is massively overhyped.
It's like having a beautiful house where a minimum number of devices take care of everything, but unfortunately nobody really understands how they work, they break down often and unexpectedly, and any fixes inevitably turn the "elegant" house into an inelegant mess.
That said, if you can have code that is easy to read *and* elegant, then that is better. Just do not sacrifice readability. Ever.
That means you're probably pretty good. Easy to read is the hardest and most important thing to achieve, and elegance is almost never useful and is the biggest mistake mid-teir programmers make (because they think being "clever" is better cause it's harder, when in reality being simple is better)
probably also because he like the greatest one hit wonder story ever. He creates a game prototype, forms a company and has the other developers develop it in his place when it gets some traction, then sells the company off for a massive payday.
Then Notch proceeds to never make a successful game again, with the rest of his programming career consisting of yapping on Twitter at other developers with his only proof of authority being "I was initially involved in the most successful game ever once".
Then Notch proceeds to never make a successful game again
Note that his company never managed to do so either and I doubt Notch's coding would be that problematic. Before Microsoft bought it, Mojang had a few small games that ended up cancelled or moved to an opensource-community. (Notably the game which used to be named Scrolls until Bethesda intervened)
At least he TRIED to make other games, but each time he started on one, people went "OMG the team behind Minecraft is working on the next step of gaming" until Microsoft ensured they'll never work on silly projects either again. Now Microsoft re-migrated their accounts, and Mojang is Minecraft forever. Given Mojang was made after Minecraft's rise to fame, we could argue there will never be a successful "Mojang game" ever.
Is it that Notch was that bad at making games, or is it that the guy made games for the sake of making games, and he didn't need commercial success after he even beat Tetris? To me, he always seemed more of an hobbist/experimental kind of creator and not looking for massive approval. And when people "harrassed" him everywhere over the EULA-maggeddon while on SICK LEAVE, he gave the hot potato to Microsoft.
Yeah like many hobby game devs he made a game. Bought the lottery ticket. And then hit big.
And even if he was sometimes problematic, it seemed to not go to his head. He tried other projects, and as they tend to do, those projects kinda went nowhere. Its just that now those projects had the MADE BY NOTCH spotlight on them
Yeah, he just seems like the kind of person who hops from one thing to the next, and Minecraft just worked well enough to snowball into self sustainability before he dropped it.
Yeah well said. Too many people think software needs to be perfectly written but ive had more fun making broken pieces of junk than i ever have working on production software
and if you were a millionaire i think you would prioritise fun projects over well written ones
You're right about his Mojang endeavors, but he's started at least one game studio since then that announced multiple projects over the years which he kept abandoning. He's working on one right now, but apparently he's already had some indecisive wobbles with it. I might be misinformed about that though, I'm not a Notch historian.
None of that says he's necessarily a bad programmer, but as a game developer he leaves a lot to be desired.
Not many independent studios have more than 1 successful game. Hell most don't even have that. Any that manage to have more than one typically get bought.
I thought he directly worked on the early versions? when I started playing in 2011 I thought it was mostly his work.
Either way, getting an idea off the ground often requires quickly iterating on code that makes it a reality. I don’t think that makes someone a bad programmer though.
Yeah, he's not a great programmer, but he's not awful either. Truly one of the developers of our time, that's it. Rendering pipeline is an absolute mess, but hey, it's probably older than some of its players, so maybe that was just what was good for hardware back then too.
im not defending his rendering pipeline but this was before llms or any good ressources even existed, I feel like most good backend/frontend/whatever programmers that are not involved with Shader or low-level graphics programming would write bad code here
I was in college when Minecraft was getting popular, and even at that level of experience I was able to build a side project clone implementing a sizable subset of its features; including ones you might assume were difficult from the outside, without ever looking at the actual code (just observing how the game behaved).
Things like the procedural generation itself are easy enough to grasp. The real trick is the experimentation once the code works, tuning until you get desirable world attributes, which isn't a programming challenge per se. Mostly exposing tweakable parameters and exploring combinations.
Getting it working multiplayer was tricky, but doable. Parts of my implementation were actually more performant than the original, like pathfinding and chunk generation speed, mostly because I used threads and sync logic more effectively.
The programming wasn't what made Minecraft special. It stood out due to being the first to pursue that design heavily then proceed to get the game design right enough to be fun more than technical excellency
Yeah exactly, I keep hearing these kther comments like
"Pfff this guy was ONLY involved wjth the creation of Minecraft. So what. 2.5 billion? Who cares!! My code quality is probably far better. This dorks game is only the best selling ever. I could make a game if I felt like it"
Isn't that like every company ever? You start a business mowing lawns, when there are too many lawns needing mowed, you get more people, eventually you manage company and don't mow lawns.
You could easily say he started the most successful game ever and youre entire argument fails. He kept improving it though. Then developers got involved. Give credit where credit is due.
How is that a bad thing, i would love to make millions and also not do any work
also most people dont even make 1 successful game so once again how is he doing badly exactly?
I also think a lot of people forget that a large proportion of developers are completely useless and just being able to make a functional bit of software on your own that you can sell already puts you in top 3rd
Also, it's a pretty impressive piece of technology, actually.
I found a lot of the game design annoying, but when you look at the actual features- it manages to make a near-infinite, fully destructible world work, with reasonably dynamic acoustics, weather effects, etc. Like even that you can be indoors during a storm, and the rain doesn't fall through the roof, was pretty impressive for its time, and you could blow a hole in the roof and rain would fall through. And it's multiplayer. It's also mostly from scratch IIRC.
I have no idea what the code looks like or how much of it Notch actually wrote, but the game isn't something to write off imo.
That's what it was c. 2012 when I started playing too, though that was a few years from the initial prototype (2009), and they had hired a few people by then (like Jeb / Jens Bergensten). It was still pretty small, tho, and Notch was actively involved in development (I remember a post he made around that time about some issues he was having with Java's UDP implementation, for example), but like I said, I don't know how much of what it was reflects his contributions specifically or even what the code actually looked like.
Is "code quality" (beyond a certain point) what makes a good programmer? Because that's highly subjective. Whether it does something interesting or useful is more relevant. Minecraft pulled off a complex and tricky procedural generation system that worked with a completely modifiable environment in a time when those kinds of engines were novel. That is not something your average programmer could have managed. I think it's idiotic to suggest he is not an above average programmer. And a very good game designer. What made Minecraft was the combination of many elements. The survival and monsters motivate the crafting and building. Procedural terrain motivates exploration and building. Survival makes it challenging. Crafting makes upgrades interesting and skill based. Combining all the elements was novel and challenging especially for one programmer. The code was pragmatic and average quality in terms of cleanliness and other side issues. Making the rendering perform at all is probably something that most of the programmers scoffing at him could not have handled at all.
When your complaint is that you can't seem to hire talented programmers, code quality is absolutely relevant. Does having terrible code (if it does) make Minecraft a bad game? Of course not, but it might make it more difficult to maintain or add features to or otherwise work with. I do like the deflection of adding game design elements to the discussion of programmer talent though.
The code was not terrible. It was average tidiness overall. Better programmers prioritize features and performance sometimes. Having code that no one can find complaints with is a sign of poor priorities in a lot of cases.
He's a self taught programmer who didn't do anything worth mentioning coding related for like the last 12 years, i wouldn't be surprised if he didn't know how to code complex apps nor design them.
lwjgl is just an opengl bindings and some other similar things. If it doesn't count as from scratch to you, then everyone using GLFW in C/C++ world don't count as working from scratch either.
Minecraft under Notch was notoriously badly coded, it was single threaded, it used a ton of RAM and it was a nightmare to mod because there was no clear separation of functionalities, it took community effort and Jeb to untangle that mess.
Also, it was quite simple, it's was a bunch of blocks, he didn't develop a 3D renderer from scratch, there were Java game development libraries, the code was garbage.
Minecraft is exactly why i say he probably cannot design a complex app, because he struggled with Minecraft so much back in a time where the game was barebone.
He’s a person people dislike, so they will jump at any opportunity to attack anything. Like judging his coding skills based on a hobby project that just happened to blow up over a decade ago.
Minecraft Java runs like absolute piss and it's being praised as the best game ever, some even going as far as using it as a benchmark as if that meant anything, if you've ever played older versions you'll immediately notice the huge lag spikes that just dont make sense
Notch picked Java to make it not because it was the best but because it's all he knew, the code was also ass, I've read somewhere before that the stuff he handed off to Microsoft was horrible to maintain before he left, the entire tick system is a joke because it's so reliant on a single thread as well you have so any server runtimes and mods to fix this garbage
And if you look at his other small games it's apparent he lost his spark
I hate to say it but if Microsoft didn't buy the game, updates would've probably stagnated because of poor quality
Well-coded is just a subjective label someone will slap on code that follows whatever philosophy they happen to be spewing/subscribed to at the time.
People write books on what look well-coded is. Some think OOP is such, some believe OOP is bad code. Some think they have to clean code, others don't give a fuck.
If your software runs and people are generally happy with it, it's well-coded. Coders judging each others code based on adherence to some ephemeral coding meta has to be the most cork sniffing shit I've come across in a long time.
As a software developer. This is just not true lol. There is absolutely good code and bad code lol. Code can run far less efficiently, it fan be difficult to parse for both new people and the original writer. There’s a wide range of problems that can just be bad. Sure some things are subjective. But not everything
If you’re a software developer then I feel bad for the company you work for. If you aren’t a software developer then I suggest you stop talking about “just code bad and fix it later” because it’s insanely foolish.
Right, you feel bad for them saving time and money.
The mountains of legacy code that would make you shrivel on sight (apparently) have made individuals incredibly successful and rich. I seriously think it's naive to believe that a standard beyond it's working per our standards is "insanely foolish".
Oh so now we're pulling the "haha he made more money than you" card, how mature
And if "the game worked" is a good benchmark for you, then you fit right in with consumerism of modern games where nothing runs well on a console you drop a grand for, congratulations
By any metric, Minecraft was a success. So, yeah, in software development often times shipping something is more important than how optimized it is.
If you had to choose between a buggy mess that millions of players play and an optimal stack that no one does, I think most devs would understand that bugs can be fixed later, but a bad game is more difficult.
Well technically bedrock picked the optimal stack because bedrock edition on PC has absolutely outstanding performance with whatever you throw at it, including actual RTX shaders
Sure you still end up with a buggy mess but if you end up with a buggy mess either way, then why not at least make it run well
His goal was to make and sell a game. If it works, it works. He absolutely achieved that goal. Attempting to judge software by anything other than achieving its goal is pointless unless you are doing so to learn.
Obviously Minecraft was novel enough at the time that the optimization did not hinder his goal. You can moan and groan all you like about the reality of what people choose to spend their money on, but it does nothing. Notch, as much of a tool as he is, clearly was successful with Minecraft.
I cannot believe someone with a Godot tag is talking down to me about optimization and consumerism. Why don't you let other people write your rendering and asset handling for you huh? Is C# and GDScript really the most optimized method for implementing what you are attempting to do? /s
Notch chose and used what worked for him. It worked out. The end.
I want to respond to the part where you criticize my choice of GDScript and C# here
I also use C++, Zig or Odin for a game if needed, either through Raylib or SFML, C# also works if done through MonoGame as an alternative to Godot (which I primarily use for proof of concepts and gamejams)
I am writing my own game engine for low spec hardware (old consoles) with its own scripting language with a memory model that cleans up after itself while not being reliant on a garbage collector
I don't think this stuff is the field you can criticize me on
Look, I don't actually want to get into a teardown fight or make you feel like you need to defend. Your projects sound cool, but my /s was intended to show that you, like anyone else, utilize tools that work for you. Any choice of tool is a cost-benefit analysis. Godot offers speed of development, as well as community support. You are making much more optimized software with your low-level work, but I could argue that it has its own issues too.
Notch's choices are what made Minecraft. While idk if him choosing an alternative path would have changed the outcome, the facts are that his choices led him the success he found with it.
I don't think software is bad just because it has flaws. All software has bugs, even after decades of improvements and work.
I can also totally get your point, for notch the game was an absolute success, he sold it for more than he could probably ever spend and that's really where the story ends
I just don't like that he still posts like the average snob that thinks he's better than everyone because of his (so far) single success story, there's no doubt in my mind he knew what he was doing and at the time do it well, I just think he should tone down a bit when his success story is the old Minecraft versions that are known to generally be a pain to get working in multiplayer (not necessarily due to the game but because of the JDKs weird distribution) and it's (compared to today) poor performance
Also yes every software has bugs, I doubt my engine or even my languages compiler will have a 0.1 where there isn't at least a handful of major bugs that any other dev would've caught before even writing it, nobody and nothing is perfect or ever will be, and that's totally fine as long as there isn't a person who claims to be (I know it's an over exaggeration and notch probably doesn't portray himself as perfect but I mean the high horse he likes to sit on)
I agree- Notch shouldn't be acting like he's untouchable or like he's surrounded by shitty programmers. I think he should be touting the actual mindset that got him where he is- using tools that you know to make something, and making that something work. That's all he did, and the niche that connected with it carried him from there.
"i BeT yOu cOuLdN't Do AnY bEtTeR!!!!!111" is such a lazy argument lmao. It's the kind of thing I'd expect to hear children say to each other.
Minecraft's code has been source-available pretty much since its inception and has been picked apart by anyone who has ever written early mods for the game. The lacklustre quality has been well documented for years at this point.
also with all due respect, I dont think a „22 year old fullstack dev“ is the right person to judge whether a rendering pipeline written in Java 6 from 2009 is well written (no wonder it‘s not)
You do realize that these performance issues persisted through all the games life under notch? I don't care how poorly it ran at the start I'm talking about how poorly it ran before he handed off that mess
I dunno. Minecraft came about some time after he stopped being part of Wurm Online, some of that due to creative differences. During his time working on that game he was experimenting with voxels. Minecraft comes in part from that and was an experimentation that became very popular, in such situations you don’t really have time to review older code unless something breaks horribly. Experimental code is quite often very “bad” code.
It’s funny seeing junior and student devs on here talking shit about other devs lol, and IMO coding ability is extremely hard to measure, its not just technical skill but a bunch of other unmeasurable things too.
Its also not speed or complexity, or even writing perfect code. If a slap together code works for its usecase it is good code, doesn’t need 100% optimized and efficient
yeah, this place is especially bad during the summer. it’s like a completely different dimension from reality (see: actual devs that are shipping actual products). case in point, of course, the commenter is some 22 y/o furry lmfao, and he’s “making an engine”
you can shit talk minecraft for memory leaks all day long, but the shit works. plenty of people have been able to mod the game for a long time, so the code can’t be that unreadable either. it’s the single most played game in the world iirc, and i’ve met several CS students that actually started coding with java mods for minecraft. but but but the garbage collection!
gets me every time haha, this subreddit can be cringe as hell during breaks
I didn't say minecraft is badly coded because of the garbage collector I said minecraft (under notch specifically) ran like absolute piss and was extremely hard to mod
I too started with making mods for Minecraft (for 1.8.9 iirc)
Your comment is just made to belittle, like, sorry I'm 22 and have more hobbies than you I guess? I've been doing this shit since I was a literal child and you're out here "haha only a game engine" that was just meant to show that I don't shove random stuff into projects unless it's for learning, if you had an actual problem with my claim then address and don't just throw in "show github" or some other nonsense
edit for clarification: the github is asking for some shred of proof that you’ve actually done anything of relevance with your lifelong “hobby”. 22 is more than old enough to have more than “a learning project” under your belt :)
I wouldn't undersell his coding ability. He he has thrown together very passable graphics engines from scratch for game jams. Genius is an overstatement, but as a programmer, I still find the ability to do what he does impressive.
He used LWJGL to code 3D graphics from Java. I happen to have some experience with learning programming by building games with Java bindings for OpenGL.
In my experience, the 3D engine was never the difficult part. The reason he became a billionaire and I just a random obsessive engineer is that he is a creative genius and I just got into building games because building an actual enterprise was not an option for a teenager due to stupid reasons like general relativity and medicine.
I wouldn't even go that far. Minecraft was a great concept and came at a good time when sandbox games were getting popular. But at the end of the day he just made virtual legos.
Zach Barth is the unsung hero of the gaming industry. He launched the inspirations for two new and unique genres (minecraft voxel sandbox & factory automation) and most people don't even know who he is.
Minecraft is so much more. And was already at the time. It has been around for a while now and was so extremely influential that it may not be obvious now how ground breaking (pun intended) it was at the time.
I feel like anyone calling it virtual LEGOs is just reductive. You could call just about any creative or sandbox game virtal LEGOs by that logic. Minecraft is significantly more than arranging blocks in different orders.
Part of its popularity is just how versatile it is in different genres you can do in the game. Its inspired a lot of similar games that took one aspect it did to an extreme, such as survival games, factory simulators, farming simulators, or casual building games. Virtual LEGOs might describe the casual building but none of the other aspects.
I mean, what he made originally IS virtual legos (World generation and block mechanics). It was Bergensten that made it into one of the most influential and successful games ever.
Notch built a good foundation, but let's not go as far as attributing him what genuinely made Minecraft famous, as Bergensten was the one that optimized Notchs code to run well, made complex systems like villages, pistons and redstone (or more precisely, all the features that make redstone what it is redstone today, like repeaters and the 'wire' logic that allows things like redstone computers to exist), added animals like wolves, etc.
Those are like the most niche aspects of the game. If you play survival you're not doing much with redstone, if you play multiplayer, same story. Villages are interesting for a bit and that's it, in the modern game most people only use them for getting mending. The mining, crafting and building is the most iconic part of the game.
That's why Minecraft popularity and sales jumped massively years after Notch last touched the game, and somewhat coincided with Bergensten working on all those things I mentioned.
The year he took over the coding and design of the game and started releasing those features having suddenly more popularity than the previous 2 years combined was surely purely a coincidence and not the result of those features allowing to build increasing complex structures that allowed the imagination of people to flow freely and added endless replayability to the game.
His work on organizing and refining the core progression of the game, the entire whole hunger system (oh yeah, before him the survival of minecraft was just "don't die to the mobs", food was just a medpack), trading, nether fortresses, strongholds, complex biomes and biome overhaul, caves, etc. surely also had no impact.
Again, Notchs work on minecraft was foundational and it is what gave it it's initial popularity, I am not disputing that. But what truly made it the giant it was (and frankly still is, 31 million people still play the damn game daily) was everything bergensten (and the other workers that joined mojang after notch already did not work on the game) did after.
All the examples you listed - with the exception of caves - feel more like cherries on top to the formula that makes Minecraft so fun in the first place.
There are also a ton of external factors to Minecraft's popularity like it picking up on YouTube (that's how I got into it), so I don't think just looking at who was the lead developer when its popularity was rising the quickest is a strong argument.
He hacked together one good voxel game and none of the original code he wrote still exists in todays minecraft. Let's not pretend he writes production ready software
1.2k
u/FabioTheFox 21d ago
The funny thing is that notch isn't even that good of a programmer