Sure, but nonetheless submissions containing "java" in the title will get less upvotes then many other submissions with language names in the title, i think.
Java as a langauge is generally uninteresting to talk about. There are vary few "wow, that's a clever hack" constructs to be made in the language. But certainly, that doesn't mean software created with it can't be great.
I think you actually wanted to say something like "most of javas libraries are uninteresting". The language itself is interesting, i think. It lacks some modern and no-oop concepts for sure, but that don't make it actually bad.
The verbose libraries and configuration addiction of many java library vendors, including nearly all Sun libs i know, is the real problem.
You can, on the other hand, find a massive amount of really nice and concise libraries that make java feal great for many tasks. Even custom compiler extensions for language simplifications or cross breeding with groovy etc. aren't uncommon.
Also if you look at the JVM as a platform and java as the beginning of learning to work with a platform, you've got a great pool of languages to choose from, too. That wouldn't be possible without java.
I sometimes dislike java myself, but then i abstract the verbose parts behind some static builder methods, for example and write a lot less with great outcome in java.
The real shortcomings in the language design itself can suck hard. By ignoring these parts and using libraries for it and knowing what to watch out for, you can really get proficient with java. Keep Blochs "Effective Java" in reach and everything will be fine.
Actually i'm not programming in java that long. But I've written some desktop apps and some little JSP pages.
Besides that i enjoy learning and following frameworks like the Play framework, because i think it's really promising and valuable for web development.
Also getting to know many open source libraries is nice.
To the extent that's actually true (and I'm not convinced it is, because Java can mean a few different things) that's largely because there's not a whole lot that's interesting or new in the Java Language compared to many others, and Java does not lend itself well to "cure heart disease in 20 lines of Python" style blog entries.
But the JVM is an important platform and Java is the native language. There are lots of interesting applications written in Java.
Well, it's more that Java lacks certain functionality that's intrinsic to more sophisticated languages. It's often harder to express ideas in Java because it has a more limited vocabulary (to stretch an analogy).
If you want to do 3D but aren't up for writing OpenGL, check out OGRE3D. Open-source and former Diablo 2 developers from Bizzard North released a game called Torchlight with it recently. http://www.ogre3d.org/
I am just using this now. It seems very nice - cleaner than SDL.
One thing to watch out for if you use the unreleased 2.0 branch of the library, is that the OS X port is not quite there yet. So if you want to target that platform it may be better to use the stable 1.x branch.
If you get the ball rolling on a crossplatform game project and don't want to go public, private gitfarm it and I'm sure you could find some HNers to join in.
It's a well written library, however it's not an engine or a framework. All it does is enable OpenGL, OpenAL and game pads in Java. The LWJGL team just calls it an "enabling" library.
Derelict is an enabling library for D which provides more bindings than LWJGL, on Linux, Mac OS and Windows. You get native code and no plugins are needed. Just sayin'.
Thank you for pointing this out, I had no idea. I've always been curious about D and at the same time am looking for the ideal toolset for cross platform game dev. Definitely going to look into this.
Color me unsurprised. I dislike Java as much as the next person, but for a certain class of problems -- particularly in game programming -- it is a tool I often reach for.
Java is a painfully verbose language that does not trust me with any power tools. When I work in it I wind up cursing its name approximately twice per hour. But the combination of Extreme Portability and Libraries For Absolutely Everything and maybe a little bit of Everybody Understands It often draws me in anyway.
I don't love it, but sometimes it is the right tool for the job.
For using Java. The joke being that Oracle are suing Google for the Java in Dalvik/Android -- next they'll be after Minecraft.
Dear HN: If someone asks a serious question in the comments -- there isn't a need to downvote them. Downvote crap like "f1rst p0st" - leave questions as they are.
I don't think there is another language out there that could have given Minecraft the kind of success that it's had (The same applies to Runescape). Many Windows users have a JVM + the Java plugin installed already, and the only other widely-known plugin that gives the kind of 3D performance that you can extract out of Java is Unity3D. While Unity is easy enough to install, it's been around for a lot less long and it's less widely known and developed for. Most users would have experienced a jarring "please install this plugin" moment before they got to play, and I'm pretty sure that the immediacy with which players have been able to get into Minecraft has been a big part of its success.
Contrary to what you repeatedly hear about Java, it actually has very decent performance. Sure, the ME edition is horrible (if that was somebody's only exposure to Java game programming I'd forgive them for never wanting to touch the language again), and some years ago applet performance was awful (which seems to have left a bad taste in the mouths of a significant number of hackers), but these days if you avoid Swing (and why would you want such a toolkit for a 3D game like Minecraft anyway?) and use a library like LWJGL then you can produce a game with decent performance and graphics. Minecraft is a bit of a mixed bag when it comes to scaling down to older machines, but it still runs reasonably well on quite a lot of older hardware (up to about 5 yrs old, or thereabouts). That leaves you with a very large potential userbase.
Also contrary to what you might hear, Java's actually not that shabby of a language either. Sure, you sacrifice some of the features and syntactic sugar found in higher-level languages like Python & Ruby (in return for performance), but garbage collection and higher-level features like reflection that are not found in C/C++ mean that development speed is still pretty good. There are a wide variety of available libraries to help you out too.
Lastly, much of Java's reputation for verbosity doesn't apply to games development. You don't have to use any of the libraries that require XML-heavy configuration like Spring or Hibernate, nor any of horrifyingly verbose stuff like EJBs or JDBC (actually there's nothing forcing you to use those for enterprise stuff either). Once you've taken care of the performance-intensive graphics stuff, you're "only" left with the core game logic. While a higher-level language like Python, Ruby or Lua could reduce the amount of code you need to write by a certain amount, the difference is not as pronounced as it is between, say, C++ and Lua, due to Java's automatic memory management.
And seriously, who gives a toss about whether something's dorky and uncool? I didn't care back in high school that people thought I was a dork for programming or even just for using computers (this was before the internet and Apple made computers cool!) and nobody should have to give a shit what programming language snobs think of their choice of language either, as long as they're getting the job done.
I wonder if this will get more people doing 3d games in Java. It certainly is a ringing endorsement. Java has some nice features over C and C++ and the performance is good enough as demonstrated by the game. Plus it has a very good collection of libraries.
In this case Java also greatly simplified distribution. Want to serve an OpenGL game over the web with Python, Ruby? Until HTML 5 Audio and WebGL take hold - good luck with that.
The main problem with Java for games is that you have to do graphics through a wrapper written in another language (AFAIK Minecraft uses LWJGL's OpenGL wrapper) and working from a language like Java, you lose some fine control of memory management.
On the upside, it allows him to do rapid development, and you can even try Minecraft in the browser.
While I agree that this should be downvoted, just be aware that there is some truth to this: Minecraft makes my current generation (well, technically last, but the 13" model barely changed) MacBook Pro run hot enough that I cannot leave it on my lap. The only other thing that makes it do this is encoding video; I'm not really sure why, exactly. There is a decent amount of background processing going on, but it's limited to a 300x300x128 (I think? in Z? 300x300 XY for sure) block area, so...
You wouldn't be able to guess this from the graphics style.
EDIT: Upvotes for both responses. My love of command line is showing; I know next to nothing about graphics and what it takes to make them perform well.
It's pretty difficult to do language performance comparisons based on a single game. Dwarf fortress, another great indie game involving mining and crafting, is written in C++, has no 3D (it's simply a 2D grid), and uses up a lot of CPU.
That doesn't mean that C++ is slow. It means we have no idea how much these custom indie game engines have been performance tuned, and how much logic is being performed in the background (DF is a hugely deep game). They are both written by a single programmer, not a team of game engine developers.
Edit: I don't doubt that performance tuned C++ is faster than Java. But for a small development team, who aren't building a graphically taxing game, performance optimisation is well down the list of priorities. They are usually better off spending the time expanding their game.
Dwarf Fortress simulates a 3D environment just like Minecraft, though it has much more advanced fluid flows, amongst other things. Most of the CPU use appears to be down to pathfinding, which ends up recalculating a lot when the environment changes.
Caveat - I've not played minecraft - but I suspect that the graphics are not the problem, but the simulation (the atomically destructible environment and also AI).
Modern 3d games involve using both the CPU and GPU, and most intensive graphic computation is done on the GPU.
Graphical elements like having complex models, shader effects, filter passes etc. all put strain on the GPU, but don't touch the CPU too much.
Game logic elements like destructible terrain, AI, pathfinding, physics, and generally extensive game rules all put strain on the CPU.
Different games have a different balance between the two (but eventual framerate and performance is determined by the slowest side), a highly detailed FPS (say, Halo) is likely to be GPU-bound, whilst a complex strategy or simulation (eg. Minecraft) is more likely to be CPU-bound.
4. Shock-value asks- How do you like Java as a language? In what ways is it a positive and in what ways is it a negative compared to a lower level language like C/C++, especially as related to the development of Minecraft? Alphakamp asked a wonderful followup question- Do you think you will stay with java or will you ever restructure the code base with a different language?
I love java! I'm a bit worried now that Oracle owns it, and they haven't exactly shown any great interest in the client side of it. Sun used to speak to me all the time, even way back when me and Rolf made Wurm Online, but Oracle hasn't said a word to any game developer as far as I've seen. The biggest technical advantages with java is that the development speed is extremely fast with almost no compilation times and an excellent code hot-swapping in debug mode. The disadvantages is a slightly lower speed than C/C++, and less than perfect support for OpenGL. The LWJGL guys have done a great job with the binding, but java still suffers from rather large per-call overhead in JNI. Or in English; OpenGL calls are slow in java.
Meh, Java is just fine, and if you really like it, I'm happy for you. (I find it an interesting but somewhat cumbersome language. Still, if it's the right tool for the job ...)
Maybe this guy's amazing success will serve to change some minds here, tho.
Eh, a good programmer can just treat Java as an object code format, compiling it in their heads from something like Scala or Clojure.
The real problem isn't that Java is spent, it's that (most) Java programmers are dorky. I avoid the language mainly to avoid associating with the community.
I didn't mean to imply that Notch doesn't program directly in Java—just that, like a C programmer writing assembler will write assembler with C conventions (like almost always passing parameters on the stack, etc.), a programmer who knows [any other non-Blub language] writing Java will think of things in terms of higher-order functions, duck-types, etc., then just type it in in a way java understands (many small anonymous classes, wide hierarchies supporting simple interfaces, etc.)
Let me restate the problem another way: there are many more programmers who only know Java, than programmers who only know [other language X]. Single-language programmers usually aren't familiar with very much theory, and don't know any design-pattern-like abstractions, borrowed from intrinsic features of other languages, that they can put in place instead of just writing tedious, repetitive, dorky (er, I mean, "enterprise") code. 90% of Java's libraries are very, erm, "enterprise."
> 90% of Java's libraries are very, erm, "enterprise."
Are they? Apache's Commons collection of libraries such as ArrayUtils, StringUtils, IO, and the like, along with JSON-Simple/jvYAML, the servlet API, any database driver, Log4J, and just about every other library I use on a daily basis has a clean, focused, well-designed, and impeccably well-documented API.
I'm sure there are no shortage of "enterprise-y" libraries and APIs, but could you offer a few examples of common, popular libraries used in a large portion of J2SE (not EE) projects whose APIs are poor on a level beyond that which may offend your aesthetic sensibilities? Some that come to mind for me might be Swing (I don't write GUI apps), but am curious to hear what you've encountered.
Let me restate the problem another way: there
are many more programmers who only know Java,
than programmers who only know [other
language X].
Is this little bit of personal opinion by any way confirmed by evidence?
I know many more programmers who only know php, actionscript, or perl than programmers who only know java.
I know you're not one of the cool kids around here if you don't build compilers in haskell, erlang or some dialect of lisp but this unsubstantiated anti-java sentiment is ridiculous.
I've programmed in a dozen+ languages (including scheme and python, which seem to be considered acceptable with the cool language crowd) and consider myself proficient with 4 of them (as in - I would have no problem starting a new project in those languages and will not often need to look up language docs) and for many uses I still prefer Java.
I suspect I am not the only one who shares that sentiment.
Again, I'm not saying Java-the-language is bad. Java can be the best tool in a programmer's toolbox for many things. But, overwhelmingly, Java schools make Java programmers that only wield the Java hammer on every nail they find.
If your first language is PHP, or ActionScript, or Perl, it is very likely that you picked it up on your own—and thus are interested in the topic of programming in general, and will continue to learn from there, picking up bits of programming theory and new languages as you go. However, if your first language is Java, you learned it in school, because that's what they taught—you didn't yearn for anything more—and then there was a big bubble of EE employers ready and waiting to insulate you from the rest of the programming universe. Straight out of school, you start work for one Java company, and then transition to another, and pretty soon you're 32 and don't know what a combinator is or how you could possibly implement something like the JVM.
Having attended one of these Java schools for a semester, I can guarantee you that no one who graduated from there will ever learn another language. They know what they know, and they're happy with that. That what they know is Java is immaterial, except that that means that only knowing Java, by Bayes' law, becomes a positively-weighted-feature in the detection of these work-a-day programmers who need to be avoided at all costs if one wants to hire in a startup.
You know, lately I've been thinking about the languages I learned this past few years. As of now, I'm nowhere nearly good in any environment thanks to my stupid brain following the "language love boat" preaches.
Couple days ago I decided to shut my eyes off articles that compares programming languages and decided to stick with Java and Ruby. I don't plan to learn 10 different programming languages for the rest of my life unless I happen to get an offer in a company where they would want to train me in their technology. I have no plan to be a software developer for the rest of my life because that is a bottom-line job. It's useless really. Especially when there are too many effing opinions in our industry such as:
- We prefer young people (remember, y'all going to get old at some point, you'll be out of the game soon)
- We prefer TDD, Scrum, and Agile (those of you who dislike TDD will be crossed out from this list)
- We only do games (those web developers are out)
- We only do web-development (don't know HTML/CSS/JS? get out)
- We only do internal IT (you're a software product guy, you won't last long here)
- We do "Digital Social Media Marketing Branding SEO" (you're just a PHP developer, go make something)
- We do SAP, PeopleSoft, and Oracle Financial (you're not qualified even though you know .NET)
- We do embedded (web developer and enterprise developer, the door is right there)
- We only use Apple (not an Apple fanboy? doesn't worship Jobs? out please)
I'd rather spend my time learning the business domain, leadership, management, networking and how to live a life and achieve happiness than learning LISP, C, C++, HTML, CSS, Python (I know a few things about Python but by no means I can be qualified to work in a startup that uses Django).
I don't want to be 50 years old hacker unemployed (due to age) and have no social skill to convince people that I'm still worth. Besides, I want to have a retirement that doesn't bother my kids's financial situation.
Do you have any idea how long it takes to learn and master a programming language and the ecosystem (libraries, tools, the community, etc)?
It's a life choice that I decided and I don't think you should look down at other people choices.
I don't know how you're managing to read this as any form of language-prudishness. I'm not saying "startups should not hire Java programmers." I'm saying "startups should not hire programmers who have only ever programmed in one language," because they will either be inexperienced, or remaining willfully ignorant of the breadth of the field available to them.
By coincidence—not by any flaw of Java or the generalist programmers who happen to know it and like it—the language that will most frequently appear on the resume of a single-language programmer is Java. This means—in the same way that given races of people get tested for given congenital diseases because they are statistically more likely to be afflicted by them—that if you're interviewing a programmer and all the previous projects listed on their resume are Java projects, it becomes more important to ascertain whether they know any other languages, because they are statistically less likely to.
This point is just a combination of the famous and well-received "programmer vs [language X] programmer" rant, and a bit of Bayesian analysis to determine which people applying for "programmer" jobs (i.e. generalist jobs, of the kind needed in startups) are most likely to actually be "[language X] programmers" instead. If you trained a spam filter on generalist-y-ness, it would flag Java as having a high correlation[1] with non-generalist-y-ness—that's all I've been trying to say.
[1] ...which is very explicitly not causation, I think I have to remind everyone at this point.
I quote: "if your first language is Java, you learned it in school, because that's what they taught—you didn't yearn for anything more".
That's language prudishness, right there.
I also find your assertion that if someone learns PHP as a first language they're likely to end up a "better" programmer than someone who learns Java as a first language absurd. There are good schools teaching Java, and smart, inquisitive people studying it. Many of the best programmers I know still use Java for pretty much everything since it allows them to get their jobs done. Some know other languages, some don't. It's a purely pragmatic choice, but to say that those people would not be valuable to a startup is crazy.
Maybe the process you use when interviewing is good enough to separate these people from others who really don't know how to program, but it seems like they're going to be starting at a significant disadvantage if you're interviewing them.
Most of the pain of java comes from its library and developer culture. It tends to so much verbosity and unnecessary stupidity. Look at the nightmare of the Java Calendar/Date classes. If you got the right libraries and code base it isn't that horrible. The game industry standard is mostly C++/C with content scripting in lua/python.
A plumber climbs out of a manhole, and his arms are covered with - guess what? - excrement! A beautiful little girl in a beautiful white dress happens to pass by. The plumber seizes the opportunity and quickly, but firmly sweeps his hands over the girl’s white dress.
Little girl (appalled): AAAH!!
Plumber (outraged): Oh yeah? I bet you love to take a shit though.
I'm not sure 'huge traction' is really accurate. While this is definitely serious cash for an individual, most successful big-budget games earn orders of magnitude more. And with AAA budgets approaching 100mm, you couldn't sustain even a small team on these profits.
Notch - please don't blow your money on trying to rent a fancy office and hire a lot of people. You'll be surprised at how quickly that money goes.
Apple created iOS because lightweight devices with a touch screen demand entirely different solutions and paradigms than mouse driven desktop applications do. They're not converging any time soon.
Adding multi-touch to the trackpad is one thing, assuming OS X will become touch-oriented is quite another.
iOS isn't just about touch, it's first and foremost about direct manipulation — touching the very thing you want to interact with. This paradigm does not translate well to OS X, which is mouse driven — there's a pointer between you and the thing you want to manipulate.
As for patterns, well, most of the stuff they patent never sees the light of day. Some of them are probably just red herrings, Apple prefers when nobody knows what they're doing.
But hey, let's check back in June of 2011. Looking forward to it!
* No iOS apps coming to the Mac, instead bringing some ideas and concepts over.
* iOS and Mac OS X stay separate, ideas converge.
My take on the future of OS X; not converging with iOS. Direct manipulation touch interfaces demand different solutions than mouse/pointer-driven interfaces do.
Love the ideas they're bringing over to OS X from iOS; like instant-on, apps that resume from the state you left them in, autosaving, etc. Also love the new way you manage apps as previewed in Mac OS X Lion.
I'm curious as to why this has been downvoted so much?
It seems clear to me that if iOS device sales haven't already outsold Mac OS X computers, they will shortly, both in terms of both dollars and # of units.
It also seems pretty clear, and insiders everywhere seem to agree, that the paradigms introduced in iOS will (and already have, see multitouch) trickle into what is now known as Mac OS X.
Apparently, there are some people who strongly disagree, so what's your viewpoint?
Actually it's based on a somewhat stripped down and ARM-ized version of Mac OS X with additional frameworks (UI*) that aren't present on what's currently known as Mac OS X.
...which is exactly why the "iOS Development Environment" metaphor works! Think of it the other way round: OS X is just iOS with a lot more exposed to the user.
I think we're going to see Xcode for Windows before we see iOS running on Macs. In other words, I wouldn't be surprised if there was no more Mac in five years.
So, I know Apple is making a lot of money off of iPods, iPads, and iPhones, but they still had 33% year-over-year growth in Mac sales last quarter.
I don't think the Mac is going anywhere soon. I do think we'll see substantially changes to Cocoa with a lot of things (coughbindingscough) being effectively deprecated in 10.7. I expect the next revision of AppKit to look a lot more like UIKit.
Amazing stuff. Honestly, when I saw this post I thought man I should have been a games programmer (and the desire to learn how to create games started to surface). Then, I went searching on Google and it seems that this guy has found his luck after working hard as a games programmer for around 10 years (http://www.mojang.com/notch/). After reading this, I smiled & felt happy for the programmer and went back working ;)
He's been actively developing Minecraft since March 2009, and back then he was getting only "tens" of sales per day, not the avalanche he's seeing now.
The best day (9/23) had 25663 sales, or about $255k. This came on top of the server being down (0 sales) for 3 previous days. The recent average is around 10k sales ($100k / day).
EDIT: As pointed out by bananaandapple below, the price is in euro not USD, which brings the best day to $347k. The recent average works out to about $136k / day.
His company (Mojang Specifications) is a sole proprietorship, so the tax situation is interesting (i.e. most of it is taxed as personal income, and Sweden has a progressive tax system, and he has to pay insurance contributions as well). I can understand why he's scrambling to establish a real company :)
Indeed, a quick glance at online calculators indicates it's pretty horrific, i.e. that he'd be lucky to see more than 35% of gross, assuming that sole props get whacked for employer taxes too, which I'd expect to avoid a simple loophole.
c: valve likely has profit sharing of some variety, which could be quite substantial
d: likely valve wouldn't just hire him but would purchase his company, giving him a several million dollar lump sum payment
Factor that in with the temptation to use valve's resources in developing your game, it's not such a bad deal. Nevertheless, if one is making even $10k a day and feels they can continue to support and develop their work independently then any offer of full-time employment is going to be an uphill battle.
You still don't need many of those $350k days before you can comfortably "retire" (or whatever we're calling it when you have enough money to live off it forever)
I understand that it definitely isn't the case, was really just making a joke about the fact that someone who strikes it rich turns down a normal job right after.
1) Health care, taxes, payment processing fees, development tools... There are a lot of expenses covered by an employer, especially when you're a game developer.
2) It's not $350k/day versus $50k/year, unless he can somehow sustain his current income indefinitely (he can't).
3) The value of games publishers and platform developers being willing to talk to you (and having access to development kits, etc) is hard to put monetary value on. Working at a studio like Valve gives you that, too.
Public health care doesn't mean that nobody pays for it. Since he's not employed by anyone else, it's part of the ~15% in mandatory fees that he'll end up paying in addition to the ordinary income tax.
1) The grandparent argument that being employed would be great because of health care benefits assumes that the creator of Minecraft lives in the US. If he had bothered to read the first sentence of the actual article, he would have discovered that this is not the case. In this place, we read the articles before commenting.
2) What 15% fees? Health care in Sweden is financed through regional income tax.
No, health care in Sweden is not solely financed through regional income tax. Large parts of the social security system are financed through payroll taxes and corresponding mandatory contributions from self-employed people (the latter is called "egenavgift" -- feel free to Google it).
But looking again, he's in fact born before 1983, which means that he has to pay pension contributions as well, bumping the total contribution up to nearly 30%. In addition to income tax, that is.
I'll trust you on taxes and fees for small companies, and I actually had no idea that employment fees went to healthcare, I thought it all went to pensions and unemployment. Thanks for correcting me! :-)
Anyway, I can see how the grandparent comment could somehow be right because of the technicality of how Markus' current company is set up, but his assumptions were still flawed, and he still didn't read the article. And 3 million € is still gonna be a pretty nice sum even after Swedish taxes.
I think the parents point was that health care in Europe is substantially cheaper than in the US. We pay similar rates of tax to in the US, but get Healthcare in that as well.
I would venture that if (as someone else suggested - I have no idea if its true) this developer will end up paying for healthcare as a fixed percentage of his income his healthcare would actually be substantially cheaper in the US.
Of course that doesn't necessarily extend to less successful developers.
There is more value in having a large quantity of money at once then that same quantity over time. If he is smart with the money, I would say he (and his children) are set for life.
He'll be fine if he gets a financial planner and keeps running a business. He should start a business or foundation. Healthcare concerns are done away with because all your company really gives you with it's health care is the fact they've purchased into a group-policy with some company... you could do the same with your extended group of friends if you can organize the thing.
350k/day = 7 years of 50k/year. If he pulls 10 days of 250k/day he's made 50 years of income, or $2.5 million. |I'm really worried for the guy.|
That's a great sentiment. I'm not interested in getting super rich, I'd just like to do interesting work and have some freedom in my life. Hopefully that's not too much to ask.
I'm not the most amazing software developer in the world, nor am I the most astute businessman, but after a little more than decade of work and persistence, I'm in a position where I can do pretty much everything I've always wanted to do. Part of that time was spent figuring out what I actually always wanted to do (age brings clarity of focus, I think). I travel full-time (I'm in Bozeman, MT right now, on my way to Yellowstone), I run a company that builds stuff I'm really proud of and millions of people use, I work with two guys that I really enjoy working with, I occasionally get to meet up with our users and customers and they're awesome, and I make enough money to live on without having to think too much about money, and the revenues continue to grow at a modest but steady rate. I'm definitely not rich, and the subject of this story has made more in a couple months than I've made in four years of running Virtualmin, but I've got nothing to complain about.
Most importantly, I have as much freedom as anyone I know, including several millionaires and a few billionaires.
Your story is my goal. I don't need cars or giant houses, I just want the freedom to solve interesting problems and the responsibility of making the business decisions.
Depends on your definition of "pretty good living". Anyway, I would not count on it.
Jason Rohrer [1], programmer and indie games developer, author of recent award-winning Sleep is Death [2], manages to get by on around $10K/year. From what I hear, lifestyle this can support in the USA is frugal to the extreme.
He lives that way by choice. He could make more money than he's making, by charging for more of his products. Though it sounds like he's about to begin having an overnight success any day now, since he seems to have started making products for sale on a more regular basis, and he seems to have become pretty good at what he does. He's smarter than me, it took me a good ten years to reach that point, and he's only ~five years into his chosen profession as a game maker.
I currently live on about $40k/year, but I've had years where I lived on credit cards for months at a time (I don't recommend it; too much stress; but I had the house with mortgage and everything and thought all that stuff was important; I know better now, and could squeak by on $15k/year if I was willing to live like the regular folks and park in one place for the whole year). In the past decade, my best years tax return showed income of $85k and my worst showed income of about $8k, with most years being closer to the low than the high. I've been on a very steady upward trajectory for the past four years (with the first year running Virtualmin being the $8k year, where I lived mostly off of savings from the $85k year, which was the year previous).
My definition of "pretty good living" is that you get to do the things that matter to you and you don't go hungry or go without medical care, and don't have to think much about money. My definition of "pretty good living" does not necessarily include a McMansion in the suburbs, an SUV and a sports car and a motorcycle in the three car garage, 52" television in the "media room", etc. I know plenty of those guys, and I'm way happier than they are. You can make more money working for others, in the short term (and sometimes even in the long term, though I suspect my net worth will cross those guys by a dramatic margin sometime within the next five to seven years).
Yeah, this guy is making a stack of profit but the problem for everyone else is that there can be very few, if only one indy game in this class at a time to get this much attention and be top of mind for such a diverse group of people.
This feels like even more luck than hitting the top lists in the app store. One particular example relevant to hacker news would be Jeff Vogel (http://jeff-vogel.blogspot.com/), I'd wager that in the long years he has been in the indy game industry nothing has taken off like this, sure hes games aren't really aimed at these type of novel concepts that have to potential to take off but it somewhat illustrates the different between a successful indy games producer and something on the level of success of minecraft currently.
Probably almost none. It's very rare to find a gaming-related story on HN that gets any popularity, because the HN community overwhelmingly focuses on web development and getting/being filthy rich, which are both uncommon things in indie gamedev.
It's kind of frustrating sometimes, because a lot of these web apps are so trivial technically, compared to games.
OTOH one clear business lesson that experience has taught me is that it doesn't really matter how hard something is to do. What matters is how many people will pay for what you've done, and how much they'll pay.
Difficulty can be a moat to deter competitors, but that's about it.
Still, sometimes the "I wrote web app, I'm teh hot programmer!" can be annoying to us systems types.
This may be a good thing ultimately, but if there was a gaming company I'd consider working for, it'd likely be Valve. They seem very community focused, and I imagine they'd give this guy the freedom to run the game how he likes, considering its his 'baby'. Plus, they'd give him some risk-free (to him) resources to build a second game if he needed it, and they probably have way more experience handling multiplayer side stuff that he could benefit from. But this is pure speculation. As it is, him keeping it is probably a good thing for the community.
Just look at the game that the team they purchased made: portal. The indie game was very ugly. The final game was polished, funny, and fun. If he were to bring his game to valve they could probably improve it a lot.
More successful (assuming a sales-metric): quite likely, given a guaranteed advertising budget. But less of it (%-wise) would go back to Notch.
Better: depends on your metric. Fewer customers = less feedback = more likely to get your idea implemented. More customers = more employees = more code backing the game (overall better), and likely more bugfixes and better-performing graphics. More control in the hands of one person = more personality-driven design decisions = ? (and I wish to point out that Apple works largely this way with Jobs - though again, "better" is still subjective)
But, at an absolute minimum, being part of Valve will put more pressure on sales than there currently is. Even if they explicitly say "do anything, we won't even look", there's an implicit push in that direction. He's now made enough money to do literally anything he wants with this game, with no pressure to make more sales. I count that a purely good thing, because there is no game for everyone, and without pressure to appeal to more people it's more likely (IMO, also still subjective) to become better in its niche.
"being part of Valve will put more pressure on sales than there currently is"
Valve seems like one of the companies least pressured by sales. They could push out HL2: Episode 3 tomorrow and it would sell a million copies, even if it were dreck (but they wouldn't, of course). They've always had a huge bankroll (even at the beginning), and have taken the time to refine each and every one of their products before release. It's no surprise, then, that every single thing they've release has been a huge success and considered among the best games ever written.
With that said, I don't necessarily believe Minecraft is "Valve material," but I would definitely be curious to see how it would turn out with Valve's energy, artistry, and pure talent behind it.
> But, at an absolute minimum, being part of Valve will put more pressure on sales than there currently is.
Really? Do you know anything about Valve? If they had so much pressure on sales, why no ep3 yet? Why no new Counter Strike? Why no Half Life 3? Why a free Alien Swarm? Why Portal to start with (it was released as a pretty minor freebie of the Orange box, there were few things hinting at it getting such a cult following)? ...
Valve is Gabe's company, and as long as Gabe is there Valve's main focus will not be "pressure on sales" but "pressure on good games". They know sales come from that.
I wouldn't see Minecraft fit in Valve's universe and structure well, but I don't think it would change anything to Notch's control of his baby.
Which is entirely unsustainable, so not much of an argument against working for another company. If they can offer, say, a million per year, what will the ultimate amount he gets be at 20 years from now? 40 years? Reliability has its uses.
Really, there's no way he's going to accept a job offer in the month where he makes $100+K a day. All Valve has to do is sit around and wait three months or six months or a year or however long it takes for the revenue stream to dry up, and then say "So, how about that job, then?"
Of course he'll probably be rich enough to never have to work again by then, but an offer of his own uber-well-funded development team working on whatever the hell he feels like might well be tempting if he's the kind of guy I think he is.
Then again maybe he'll take the money and retire to bonk supermodels in Tahiti. Who knows?
Does that actually happen in the game industry? Admittedly, to some extent that's the treatment Will Wright got from EA when Maxis was acquired (they weren't 100% hands off, but he could win basically any concessions he cared enough about), but there aren't very many people with Will Wright level freedom at big studios.
There's also the advantage of them taking care of the business side. Reading some of his recent updates seems to indicate that the past few weeks have been spent dealing with administrative duties like lawyers, servers, and hiring. Were he to take them up on their offer, that could all be taken care of for him, if we wanted (I'm guessing).
I'm happy that he's decided to stay independent, but I think Valve could actually handle a hire such as him correctly. They've got a great reputation with most of the gaming community for doing things right, and I'd be surprised if they screwed something like that up.
The entire reason Minecraft is so successful is because there IS NO HUGE INCREDIBLE STAFF. The game spawned from the thoughts, dreams, and abilities of just a single mind. Add more minds and the game becomes something it was never intended to be.
Not necessarily. And even still, that doesn't have to be a bad thing. Look at what Valve did with Portal. Compare it to the original game it was based around.
I'm not saying he should have taken the job, but Valve has earned my faith that if they take on a project, they will do it justice.
When you put it that way it makes sense. It all depends on what he wants right? Does he want the freedom of being able to do whatever he wants WHEN he wants or does he want to do a huge dream product w/ the dream team with all the bells and whistles.
I don't know where this website pulled their numbers from, but I think they're incorrect.
According to Minecraft's stats[1], in the last 24 hours 12,025 people bought the game, times 9.95 Euro = 119,499.50 Euro, which is a bit less than $163k/day in American dollars.
Even if it were "just" $50k/day, that's not far off from how much some programmers make in a year, working for someone else. He's much better off on his own. With that kind of cash, he could pay other people to help him realize his dreams.
One thing working for him is that to play the survival version, you have to pay. If there was a free trial, I probably would've given that a shot and then escaped from the potential clutches of addiction. But it was paid only, so I paid. And I rarely pay for anything.
I bought it a few weeks ago but only played twice (no time). My first time playing the demo I immediately was struck by several opportunities
1) converting 2D images into 3D minecraft world for artists and lazy people
2) Connecting 26 adjacent worlds to have a fluid adaptive minecraft universe. As users move from one world to the next it pulls in the data from the next set of adjacent worlds (no crossing lag). Folks can host their own worlds and pay for virtual real estate (hosting) or lay claim to a parts of a big cube, Thematically clustered worlds would be fantastic (hell worlds, water worlds, sky citiies, shopping districts, space worlds.. etc).
There's something oddly beautiful about building your own game world.
Seriously, we had that exact idea implemented around 1997 -- and it even supported multiple authentications (anonymous worlds, versus worlds with user accounts) all transparently. And it could even do VRML, crowd control, dynamic downloads (so you could link to new worlds), and a built-in world builder.
It seemed that we had thought of everything... And then management took over.
As someone who is quietly lurking on HN, and working on my own product nights and w/e, this gives me hope. I think the ISV model just feels right...at least for me. I've been wavering on quitting the day job. Kudos to this chap. Long live the ISV success stories.
I wonder what the potential market size is for this game, and if he will reach a large part of that while the game is in alpha and on special.
Something tells me he is selling it for too cheap, especially with all the buzz it is getting. The license is also a lifetime license, so he has ongoing server costs for the next 5+ years that need to be covered with what he is bringing in atm (minus the huge tax bill he will be hit with).
He is selling what is a recurring service at a flat one-off rate, a subscription at $20 year may have sold just as well.
Server costs are minimal; about what hosting any other website with similar traffic would be. He is not hosting the game servers for it, just an authentication server.
Ask the Portal team? Or the guys who made Team Fortress? Or the guys who made Counter-Strike?
To be more precise: Working at a larger studio like Valve means you trade some creative control and (in notch's case) some short-term income for reliable long-term income and access to things you could never get in the short term as an individual, like access to devkits for consoles, access to well-trained, highly skilled QA/art/programming departments, decades of design and programming experience from leads and senior developers, etc.
The Portal team was scooped up from Digipen. If their game was netting them over $200k/day, something tells me they wouldn't have been so eager to join Valve.
Hey I f'ing love Valve, my all time favorite game company. No one is trying to suggest working for Valve is a bad thing. But a little perspective is needed here.
their math is a little bit off, a copy sold every 3 seconds = 28,800 sales a day.
Or 10.5 million copies a year. To tell the truth its pretty shocking how minecraft has taken off...the guy will probably end up making 100 million off the game. And if he sticks to iterating it, it might end up making over a billion over it's lifetime(say 40-50 years).
Which may seem like a huge number, until you remember that World of Warcraft is making close to a billion a year.
The reason the number looks that shockingly high, is because he is a one man show.
My guess is that he is going to end up using his new found fame/resources to start his own game development company.
You have two distinct directions here, though: World of Warcraft's gameplay is rather complex (compare the image of WoW with this image from Minecraft: http://imgur.com/lQdye.png), is about killing monsters and obtaining the best equipment, showing off how much time you're able to spend in-game. I think showing your personality to others is really hard in WoW, at least without talking to them.
Minecraft, on the other side, is about you, your personality and creativity. You're able to modify the game as you like: First off all, you're making your own world! Second, texture packs are available, in order to change both the world and your own character. By making the game less complex, it is also very easy to get into, compared to WoW.
(I'm sure there are other reasons as well, but I'm no professional game developer.)
There's a refreshing vibe working its way through the game community where alternative graphic styles and alternative game concepts are given more acceptance. It's becoming a great time to be a game developer.
It's called a 'backlash'. It's been happening for a while now, minecraft just dragged it into the spotlight.
The current demand is for games that are fun, not games that are pretty or push your gfx card to the limit. It doesn't have to look polished, but the look has to fit the gameplay.
Minecraft's blocky graphics allow the player to use their imagination a bit. Don't underestimate that.
I don't know why he'd change the graphics. $350k/day is a pretty resounding confirmation that people don't mind or even like them. (I personally think it's a really nice style, it's got a certain flare to it)
The graphics are simple on purpose - because the game is essentially infinitely scalable (theoretical max map size is 3x surface of the Earth), simple graphics are super important for not lagging servers and clients to hell.
He's said in interviews that the improvements he wants to make are improvements that make the game more fun. He's not going to add features that won't somehow add fun, and if he finds that something isn't fun, it's out.
Because the graphics are purposely so simplistic, people are okay with that. As soon as you upgrade them and start to make them more modern, you start getting compared to other modern games like WoW, etc.
Keep it simple, people won't worry about the graphics.
I also think he avoids any issues with the 'uncanny valley' of near-realism in games. If something isn't going to look exactly like a pig wandering the mountain slopes, why not make it look like a Lego pig and be done with it?
The graphics are fine. I'd rather see improvement made in speed of rendering (even on a decent machine, setting "fancy graphics" and a "far" viewplane is a recipe for low framerates and lag) before trying to change the look.
I think he'll be ok. Right now he is only selling to the early adopter crowd who doesn't mind the crappy graphics. Once he spends some money on graphic designers, he'll be able to get mainstream appeal.
Once he has mainstream appeal, he can release it for the stores to sell. Which will boost his sales.
But yeah...either way he has already made a ton of money off this game....at least a couple million. Which should give him plenty of room to perfect his product.
The real early adopters of Minecraft largely overlapped with the 8-bit/lo-fi enthusiast community, which consists of active forum goes and very connected social gamers. I think a lot of people overlook this when they comment about the graphics of the game; the ones that hold the most credence in gaming are the ones who have a nostalgia further back than anyone.
just by way of illustration, see the difference in graphics between civ1 and civ2, which were both basically square tilemaps with a limited number of different terrain squares.
If he's already sold hundreds of thousands of copies, it seems like he's made significant inroads into the market. Not sure how much more the marketing faucet could do.
His business model is very appealing to the customer: pay only once and receive all future versions.
The "downside" is that, once market saturates, you have to come up with a completely new product.
That's basically how almost all games work tho (with a handful of exceptions) - most people eventually get tired of playing the same game and move on to something else.
I get the impression that this game was built because he wanted to build something he himself would enjoy, not something he could become rich off. Maybe there's something to that philosophy ;)
Maybe. On the other hand, people do things every day for the love of it that get little traction in the market place. It seems more likely this confluence is just a coincidence.
Malcolm Gladwell writes books about "success" where he uses many anecdotal (albeit fascinating) stories to come to a very vague conclusion of how people can be "successful". GP was referring to "qualities of success" (passion, writing something for yourself), which don't necessarily cause success.
Not just coincidence. I've bought quite a lot of indie games the last few years but Minecraft is one of the few I recommend, no, urge my friends to buy.
I agree, and I think that's a lot of it. Minecraft isn't a very typical game, nor a game that you would ever see out of a blockbuster publisher. It seems like its success is because of this, not despite it. Rather than be a formulaic FPS, RTS, RPG, etc, it's something (fairly) new that leaves it up to the player to have fun with. I've heard the comparison to Lego frequently, and I think it's an apt one. Most videogames today play more like movies, but sometimes it's nice to have a game that you can play with how you like.
(This post started out about being about being willing to ignore conventions, but drifted somewhat into the nature of gameplay, sorry.)
He's also really awesome at coding. I had a similar idea several years ago after seeing how horrible all the MMORPG crafting engines were. In fact I may have even posted something to that effect on HN. I would have loved playing it, and even started sketching some designs. But I gave up pretty quickly, distracted by other things, and even if I had stuck with it, it probably wouldn't have ever been much more than a proof of concept to anyone but me.
I love Dwarf Fortress to death, but it will never have the success or mass market appeal that Minecraft does. Minecraft I managed to get a complete non-gamer playing in about 15 minutes. Dwarf Fortress has hardcore gamers shying away from its brick wall learning curve and obtuse interface. Toady One could be a marketing genius, and DF still would never sell like Minecraft.
Not that there's anything wrong with that; he's making a game he loves and he's lucky that enough people agree with him to donate to him that he can survive on just those earnings. It's a great and fascinating game, but it's one that most people won't like.
Not sure if it's business savvy. While Dwarf Fortress is a great indie game I don't think it has the wide spread appeal of a game like mine craft. Mine craft's 3D world and game play is more intuitive to your average person. Not to mention Notch's luck with going viral certainly helps as well.
Agree. I played a bit of Dwarf Fortress, and there was definitely a learning curve. Minecraft has, essentially, no initial "how to play" learning curve.
Crafting is the biggest part of the learning curve right now, although Notch has some ideas about how to address it. One way might be by having the player unlock "recipes" as they gather resources and experiment.
Redstone is the other part of the game with an epic learning curve. It can be used to craft functional logic gates. Some guy on YouTube made a massive ALU using it...
Shows that exceptional indie products can get huge traction on a traditional platform, sort of like Braid on XBOX / PC / etc.
That said, also excites me for the future when MSFT's & Apple's standard OS come with a servicable app store baked in.