Could Minecraft be that little thing that teaches kids about logic? Maybe Jeb and co. should consider adding even simpler logic based building blocks, more akin to Lego's Mindstorm as an alternative to relays and switches.
I find it fascinating to think in 10-20 years many will be looking back fondly on how they learned to hack with an unassuming little game: Minecraft.
There is an unbelievable amount of potential in Minecraft that is completely untapped. It's really an amazing environment and I'm surprised it hasn't spawned "sandbox games" as a completely separate and significant genre, especially since a big reason Minecraft remains "untapped" is Notch's reticence to open the platform up and push the game forward.
Just thought I'd mention CraftStudio (http://craftstud.io/), the multiplayer game-making platform I'm working on. You could say it's a Minecraft-style engine but you get to make your own models, paint your own map blocks and (soon) write your own game rules (so you'll be able to make any kind of games, not just first person stuff).
It is steadily becoming a lot more open - Jeb's the lead developer now and a big focus has been put on adding mod support. They've hired the guys behind Bukkit (a popular third-party mod manager for servers) to help with that, I believe.
Clones have also started to appear but it's still small indie companies making them, meaning it'll take time before many are at the same level as Minecraft.
However, the bigger companies do seem to be paying attention (an EA bigwig spoke about Minecraft in a Gamasutra piece the other day [1], though he was saying fairly obvious things), so it'll be interesting to see what the genre's like in 5-10 years' time.
Have a look at Spout[0]. Its an open source server that generalizes the minecraft concept. They are actually supporting 'minecraft' as a plugin called vanilla which communicates with the stock minecraft client. They also have an improved client which is currently a modded minecraft client but I believe the eventual plan it rewrite the client from scratch also.
I'm surprised it hasn't spawned "sandbox games"
as a completely separate and significant genre
Maybe you haven't noticed, but "minecraft-like" is a a burgeoning young genre - every week I see a new one on the /r/gamedev subreddit or tigsource forums.
And there are already a dozen or so commercially successful ones on steam and XBLIG.
Buildcraft[1] and Industrialcraft[2] are also good for teaching automation, logistics, and resource management. For example, buildcraft+redpower will let you build a machine that digs a giant hole in the ground, smelts the ores, incinerates the useless cobble, and sorts everything into the proper chests for easy access.
I am really afraid that although this 16-year old (I don't like the patronizing kid word) has made something of immense creativity and of intrinsic value, he'll face such a drastic world that limits a lot of creative potential by the idiosyncrasies of mature reality.
I really hope talented people like this guy be given full-throttle. They are the real capital, not the tools.
I think this would be one of the few cases to list video games on a college/job application. I'll be honest that I didn't watch all 10 minutes, but it seems like he's using some complex methods, especially for a 16 year old. Props to him, one hell of a hacker!
Not really, it was always largely figurative. The famous Mark II logbook with the moth taped to it had the note "First actual case of bug being found." - so that clearly indicates that A) the term had been in use for a while (a very long while, there is a record of Edison using it) and B) Real insects were typically not involved.
There was a article on HN a few weeks back, the link escapes me. But there was the first ever bug, an actual moth. It was taped to the error log i believe.
Edit: Brazzy explains it better and indeed seems more informed :)
It would be neat, but honestly the complexity of a modern CPU is not something that any individual would be able to recreate in a life time if they were building it piece-by-piece. I imagine that's true for any CPU capable of running recent Ubuntu releases or even something light like, I dunno, Puppy.
Actually, the complexity of a modern CPU is mainly in making things run fast. Building an in-order, no-cache, single-issue ARM capable of running uClinux doesn't seem all that difficult. The cycle time would be horrible though. You might not live long enough to watch it boot.
In the game there is a resource known as redstone. It can be acquired underground when mining in the game or made available in the game's creative mode. With it you can build various kinds of circuits. The game also includes various input and output blocks, such as buttons, switches, lights, and pistons. Put together, the player can do anything from as simple as a button opening a door to as complex as the article describes.
So... did this kid assemble the whole thing manually brick-by-brick, or did he use some kind of compiler? Does minecraft have macros? Stored procedures? Hard to believe every individual brick was placed by hand.
No macros or compilers per se. There are map editors that allow you to make copies of existing groups of blocks, like replicating seven-segment displays.
There are not really any repositories of existing designs, so the logic was probably all done 'by hand'.
He probably either used Creative Mode (unlimited stuff), peaceful difficulty (no enemies) + a superflat world (don't have to mine things out of your way) or mcedit, which lets you edit map files out-of-game and place whole sections of stuff based on schematics.
Most likely he used an out-of-minecraft editor to put together logic gates that can be copy/pasted, and then larger structures. The map format for minecraft is pretty easy to edit, and there are CAD like programs that'll build out an environment you want.
There is a Lua-based scripting mod but I doubt it is commonly used for things like this. As another commenter mentioned the use of copy-and-paste mods is much more likely.
You can build any logic gate you want, with layout being the hard part (just like IRL...). You can build a computer in Minecraft if you want to. I believe that several people have [1].
To be honest, I think it's a great way to learn about electronics. I know what all the gates do from having taken EE classes, but Minecraft has made some of them a bit more intuitive. Maybe it's just because you can see the things being energized/de-energized, but it does help me think about the different gates/latches/etc. and their interactions.
[1] This is but a small sample of things that might be called computers that have been built in Minecraft:
There’s a redstone resource, which you can lay down as wires. These behave like electronic circuits. There are some special blocks like redstone torches and repeaters.
Some other blocks can be powered or triggered by redstone, for example pistons that push blocks, doors and item dispensers.
There are a variety of switches and buttons, wire, NOR gates, and a small handful of mechanical devices, the most important of which are pistons that allow you to move blocks around.
It's not necessary. But it does make a difference to the story. Some one who'd had years of education and gone through a good college and has worked in the industry could have made this, and everyone would have been impressed. The fact that this young person created this without all that is impressive.
And, depending what media you have access to, there's not often good news about young people.
I honestly love seeing stuff like this -- it's really cool.
But part of me always wonders, "I wonder what this kid could've built if he had a more meaningful project in mind?"
I understand that you need to have a certain amount of "fun" before you can do "serious" things, but I can't help but feel a little disappointed that he didn't "dream bigger."
It's not really a criticism. This kid is probably really smart, but I wish it was easy to create environments for such people to really flourish to their full potential.
What do you mean by 'more meaningful'? I think it is fantastic that he managed to be so creative that he managed to turn a game into a calculator, something it clearly wasn't intended to be.
That shows a lot of skill and resourcefulness, it also shows quite a bit of dedication and stamina. All of those are great traits and I'm sure the experience improved on these.
This impresses me very much.
Can you give an example of what you would consider to be a more meaningful project? Something that you would consider to be approaching full potential?
I only now realized that my comment was a bit unnecessarily patronizing! I meant it as a wish that programming could be as fun as Minecraft, but also remain as efficient as something like Python.
Imagine what that kid could build if a tool existed that was as interesting as Minecraft, but tailored toward making iPhone apps (or another very specific type of application). In the same amount of time, he could've probably made something even more impressive.
I was trying to express a slight disappointment that the tools were a limiting factor to the ability of people (like this kid) to build amazing things.
Instead of building a calculator, would he be able to do more in the same amount of time?
In that case, could he build a game? An app? Really, it doesn't matter what the end product (or the project) is. I was only trying to express a little disappointment that there wasn't a more efficient way to channel his energy into a final product that would allow him to accomplish an even more ambitious goal.
I understand that, but are there opportunities to improve upon the "fun" of Minecraft that lead to an actually useful product? I'm sure the main motivation for building a calculator was the complexity of the problem -- not the usefulness of a Minecraft calculator. Imagine if the tools were tailored to keep the same level of fun while also empowering him to create something he could use!
That's what I meant by "think bigger" or "serious" -- the Minecraft calculator was fun and challenging, but is there something equally fun, equally challenging, but more useful? Can we make tools that empower kids to have more fun solving complex problems that lead to a useful result?
Many softwares have confusing interfaces. They are aimed at professionals who work with them all day and who will be trained to use them. Either they should have a "New to this program? Click this and we'll hide everything but the essential tools while you work through some tutorials" feature; and perhaps that could be a free version of the software.
What ideas do you have for tools to empower people?
Don't look down on a project just because it is done with low-level tools. Building a scientific calculator from logic gates may not put you on the track for a career in web programming, but it's still an impressive display of what can be made into a very useful set of skills.
As I said elsewhere, I think Minecraft provides a great environment for prototyping for someone who doesn't have a background in electronics. I don't see anything wrong with this at all. I reckon the builder probably does "dream bigger", and uses Minecraft as an exercise and/or sandbox. Is there a reason he shouldn't do that?
I am curious why so many people interpret this as a sign of an addiction and wasted time instead of a purely awesome accomplishment in self-education. Few people keep "build something cool in Minecraft" as their only aspiration in life.
He is sixteen. "Meaningful" has a different definition for someone that age. I am in awe of the achievement not only because of the stupendous scope and complexity, but the sheer willpower and colossal amount of time it must have taken.
I hope the kid gets a lot of mileage out of it and goes onto great things. At the very least, he has earned his geek union card for life.
My mistake -- my wording was a little poor. Minecraft is an environment that allows people to be very creative, but it isn't efficient in that process. When I say "meaningful" I meant it more as a comment that I wish a development environment would exist that was as engaging as Minecraft (like a game!) but as efficient as a programming language like Python.
Because Minecraft is purely a game, it limits what a kid can accomplish from the start. A kid can only interact with their creations through the game itself, which is fine, but could it be better?
It limits nothing just because it's a game. In World War II a guy was held in solitary confinement (a small wooden box) for 2 years. In that time to keep himself sane he designed and built 100% in his mind ... a complete working clock despite never having built anything like a clock or watch.
How would one decide what their full potential was? Or perhaps, deeper, who would decide what their full potential was?
Seems like a massive achievement to me, and that such effort and focus will translate well into the real world and if it doesn't for him personally, it could well spur others on.
I mean it this way (and the way I worded my comment was really poor, and the miscommunication is completely my fault!): Minecraft allows for very creative outcomes, but it isn't a very efficient tool for developing something complicated. Is it possible to create a more efficient tool that is equally engaging?
But wouldn't it allow the kid to be more imaginative? Instead of building a calculator inside of a game, perhaps he could make his own game? Instead of building something that's already defined, wouldn't he have more opportunities to be creative?
Almost 500,000 people have watched a video of his creation. What is not meaningful about attracting the sort of crowd many artists dream of attracting? Technical aspects aside, what is not meaningful about entertaining 500,000 people?
This is today's version of building your own computer on wire wrap in your garage. I don't think you'd go back in time and tell Woz/Jobs that the Home Computing Club or the Apple 1 weren't useful. If a 16 year old understands in detail how a graphing calculator works from a raw bit-logic level, then I think it speaks that they'll have a much more interesting career in store for them than 99.99% of 16 year olds.
This. This is what people who critique the kid fail to understand. He built a processor, from scratch, with a solid understanding of binary math, at age 16.
I'd knock him too.. if I were intimidated as opposed to impressed.
I don't think HardyLeung understand that this kid had to handle every bit. Had to build his own integrated memory. This young man obviously has an incredible understanding of binary math. Beyond all this He had to deal with the weird physics, and rules of circuits in Minecraft.
If I was this kids parents, I would let him play Minecraft all he wants. In fact, don't stop playing Minecraft.
Since you call me out, I need to point out that you are wrong. I do understand what it takes to do that, and that he needs to handle every bit and memory and all. You're passing a judgment based on a shallow interpretation of what others wrote.
And I said I am very very (doubly) impressed. When it comes to the freaking next project, branch off, do something else, don't constrain yourself in the Minecraft world. Instead, this kid should use his immense talent/patience/creativity that he/she has and applies to something more substantial. That's what I said. I don't understand why I got downvoted for saying that. You see it as a criticism; But what I gave was a constructive criticism. If you don't see it, pay more attention to the words "very very impressed" and especially the word "next".
Minecraft is awesome because it provides a convenient and ready simulator for this kind of work. It gets people interested and involved. It just seems much more accessible than downloading a "real" simulator somewhere online. I think MC provides a great mechanism for exploration in electronics/circuitry and something like this proves it. What do you want this person to do instead?
I get that Minecraft is fun, but wouldn't it have been more practical, in the long run, to have built something equally cool in a real CAD/HDL/etc. software?
It'd be really cool if someone could build a CAD/HDL/programming "IDE" that was as "fun" to "play" as Minecraft, but still as "useful" as something used in "the real world." But I suppose this is the same desire that drives all of those "programming language for kids" projects that never really seem to catch on.
true story. when I was 16 ( way back in the early 90s), my parents enrolled me in niit.com (presently a billion USD company that was at the time a tiny 3-room outfit ). niit taught cobol. I hated everything about cobol. I thought it was a shit language and the people who taught me cobol were shit. We were supposed to build an inventory control module in cobol. I didn't know what an inventory was, so they gave me an econ book about manufacturing & inventory. I thought it was absolutely dumb to keep track of nuts & bolts & accounting & money & suchlike. So I wrote a cobol program to calculate the fourier coefficients of complex exponentials, since that's what I was studying at school. So my cobol program would painstakingly calculate the first five fourier coefficients of sawtooth waves & square waves & then using the partial sum, it would reconstruct the expansion by printing out the series on a dot matrix printer. All of this was running on some processor called intel 80286 xt and it would take 10 full minutes to just compile the code. One day I was standing by the dot matrix when the instructor walked in. He thought I was some precocious kid who had coded up a whizbang inventory module for acme corportation, so he expected nice tables with rows & columns of data on optimal number of nuts & bolts. But when he saw the printer slowly rolling out sawtooth waves and square waves of various frequencies, he completely lost it & yelled at me for wasting the precious resources of the dot matrix printer to do frivolous nonsense. I got a F on cobol.
> I hated everything about cobol. I thought it was a shit language and the people who taught me cobol were shit.
Well you probably weren't that far off on the former point.
>But when he saw the printer slowly rolling out sawtooth waves and square waves of various frequencies, he completely lost it & yelled at me for wasting the precious resources of the dot matrix printer to do frivolous nonsense. I got a F on cobol.
Maybe, but you get an A in my book. Because the image you just put into my head is magnitudes of awesome. The IBM-type manager yelling at this 16 year old hackerish kid for taking a computer joy ride. The same sort of computer joy ride that probably comprised the whole reason he had a job in the first place.
The irony is sweet (With a bitter aftertaste.), and I'm sorry you had to go through that.
> I get that Minecraft is fun, but wouldn't it have been more practical, in the long run, to have built something equally cool in a real CAD/HDL/etc. software?
I find it all the more impressive because he used an environment that was not meant to be used like this.
That's like running the marathon with a handicap and still winning.
And if he can do it in minecraft I think that he'll take like a fish to water once he gets his hands on other, more powerful tools. That's mostly a matter of access, 16 year olds are more likely to have minecraft on the machines they have access to than CAD/HDL software and the hardware to go with it.
I absolutely agree that the hackish (you know what I mean) aspect of this feat makes it impressive, but I'd really like to see him work without the handicap.
Given his/her choice of tools, most people would probably be more expressive with Photoshop/GIMP than MS Paint, or AutoCAD/Blender/Poser/HDL/etc./etc. than Minecraft.
Programmers debate the expressivity of programming languages all the time. We're impressed when some genius kid re-implements Doom in TI-BASIC, but at the same time, I want to see that genius applied with the full leverage of the most expressive tools available.
Minecraft doesn't quite pass the Arc challenge. :)
I don't think this is quite true. I see minecraft as a good stepping stone into more advanced things.
When I was his age, I was using the Lego Mindstorms heavily. At first I started with the built in GUI language, which was extremely limiting. After that I moved to progressively more advanced languages and IDEs until I was using Not-Quite-C, a version of C compiled for the Mindstorms.
These things tend to work as stepping stones. Had the kid started on something like CAD, he may have gotten stuck at an impasse that was too difficult for him, lost motivation and went back to playing Call of Duty.
Perhaps his next project will be in a "real" application, instead of Minecraft, because he has the motivation and knowledge to move forward.
I find it fascinating to think in 10-20 years many will be looking back fondly on how they learned to hack with an unassuming little game: Minecraft.