Hacker News new | past | comments | ask | show | jobs | submit login
Minecraft to run artificial intelligence experiments (bbc.co.uk)
179 points by sjcsjc on March 14, 2016 | hide | past | favorite | 125 comments



The fact that they want to use it as a teaching platform of sorts has very exciting implications. Minecraft is really huge with kids and that's an excellent way of getting more young people interested in AI and programming in general. To this day I think the Berkeley intro to AI class[1] on edx is the best I've seen because it uses Pacman as the running example which makes everything more approachable. It would probably be interesting to turn some of the examples from AIAMA into Minecraft examples as well.

[1] https://www.edx.org/course/artificial-intelligence-uc-berkel...


I am personally very uncomfortable with introducing children to programming using Minecraft---sure, it has some benefits, but it's teaching them to embrace a proprietary platform that tells them that they cannot study or modify the source code. Support for modding does not count. What children need to be introduced to is software and an operating system where you can "mod" _everything_, and expect to be able to! _That_ is a practical skill and a powerful foundation.

Children should be encouraged to adopt free software. Replacements like Minetest exist, and they also have a strong modding community. I'd recommend people instead invest their time creating excellent mods for Minetest and bring it up to par with the features of Minecraft. I will be introducing my son to Minetest soon (he's four) before he gets into Kindergarten and his peers start talking about Minecraft and pressure him into a world of proprietary software. I would rather him talk to his friends about Minetest and encourage them to play with him.

There are also many other projects that aim to teach children programming.

Proprietary software is incompatible with education. rms has talked at length about these issues; I encourage others to consider his perspective:

https://www.gnu.org/education/education.en.html https://gnu.org/philosophy/free-software-even-more-important...


The most important thing for education is simply getting the attention of the kids. Once you have their attention, you can get them to tinker and play and learn. But until you actually have their attention, it's all "you can lead a horse to water but you can't make them drink." Free software is important, but explicating GNU orthodoxy to kids is about the worst possible way to actually get them out there playing with technology.


> Free software is important, but explicating GNU orthodoxy to kids is about the worst possible way to actually get them out there playing with technology.

The that sentence should end before "but". Free software is _essential_, and any software that would deny those freedoms is, we believe, unethical.

You are operating under the premise that there is not enough free software out there to serve as a foundation, and that proprietary software is necessary for children to get "out there playing with technology". That is simply untrue. By accepting that and avoiding discussion of freedom, the problem perpetuates. People simply don't think about these issues---when I begin having discussions with my kids' school district about free software and education, do I expect that more than perhaps one or two people---if any---have even heard of free software or given thought to this? I do not.


It sounds blissful, yes, but then there are many serious problems with that when applied to the concept of someone growing up: All their friends are most likely using websites running propietary client-side code to communicate, enjoying their time playing propietary games on propietary operating systems. This approach reminds me of how very conservative parents bar their children from anything which might corrupt them due to not being right with their beliefs - the problem with that, however, is by barring them from potentially going in that direction, you also bar them from ever figuring out on their own what's wrong with the things they say are wrong. In other words, they're, in my view, more likely to not understand the issue with propietary software if they never experience it first-hand.

Orthodoxy is one way to live life, but for a growing organism it might be more harmful than anything. I mean, at a young age, are they going to understand that they can't play with their friends because the software they're using is not available under a freedom-ensuring license? Or that they can't talk to them on propietary websites? Or are they, instead, going to rebel - and potentially develop a lifetime grudge against the whole idea of free software?


I buy proprietary software all the time from respectable entrepreneurs many of whom are independent developers. Personally, I find people accusing them of being unethical for doing so rude and mean spirited about something that's frankly none of their business.

I buy music from artists that don't release the scores for their music free and without copyright. Yet nobody seems to have a problem with them. It's unfathomable to me where this righteous sense of entitlement comes from. But that's just me.


> Personally, I find people accusing them of being unethical for doing so rude and mean spirited about something that's frankly none of their business.

When you say "none of their business", I assume you're talking about meddling in the business of the developer(s). But when you write proprietary software, you aren't affecting yourself---you're affecting the _users_ of the software. The point of the free software movement is to protect the freedoms of the users of software, not the developers; the developers are the ones that take advantage of users. Perhaps not intentionally.

Free cultural works are a different issue entirely; that's not a useful comparison.

I encourage you to take a look at this essay:

  https://www.gnu.org/philosophy/free-software-even-more-important.html
> Freedom includes the freedom to cooperate with others. Denying people that freedom means keeping them divided, which is the start of a scheme to oppress them.


If I choose to buy proprietary software because I like the software and agree with the terms of the sale, it's nobody else's business.

I do accept that there is ask issue of protecting customer's and users rights, e.g such as the role for regulation in markets. I'm not a free market fundamentalist. Fitness for purpose, basic minimum quality requirements, etc are reasonable and fair constraints for society to impose to protect the rights of customers. But I don't accept that access to source code comes anywhere close to that level of significance to make it a right.

Regulations like that primarily exist to serve the needs of society. They are practical compromises, not fundamental. So for example there are minimum quality requirements for commodities traded on the commodities markets. But if I know a shipment of e.g. Heating oil is below market standard and that's fine by me, I can still buy it. It just can't be marketed to me as heating oil. The merchantability requirements aren't fundamental to whether it's ethical to sell the oil at all, only to whether it can be sold as heating oil.

So I believe it is with software. I don't think you can make source code availability a fundamental requirement, as you would expect for an ethical issue. It's nice to have, and you can make it a quality standard, but assigning it ethical status and implying that this makes it a fundamental issue of merchantability or fitness for purpose at all is going way too far.

As for cooperating with others, you can't force people to cooperate against their will, either vendors or customers. If you want to share your source code and cooperate with others nobody is stopping you.


I am not pro-proprietary-software. I am pro-software. Software and technology are empowering and fascinating, especially to bright young kids.

Now, free software is more empowering than proprietary software. And kids need exposure to software they can tinker with. But if you meet a kid who is a little intimidated by the thought of learning coding, but loves playing Minecraft, then you're really going to tell them to stop playing Minecraft and use some weird GNU programs? Versus getting them going on Minecraft Portable Edition on a Raspberry Pi and working through some Python tutorials so that they can make something awesome?

That's making the perfect the enemy of the good. I'm all for software freedom, but you need to hook a fish before you can reel it in.


> But if you meet a kid who is a little intimidated by the thought of learning coding, but loves playing Minecraft, then you're really going to tell them to stop playing Minecraft and use some weird GNU programs?

I'm not going to tell them to stop playing, no; that's not going to work.

What I am going to do in that situation is explain what free software is, its social benefits, and the problems with proprietary software. I'll introduce him/her to a free operating system like GNU/Linux and introduce him/her to the world of free software. Maybe hack a few programs, and show him/her how transparent the operating system is.

Hopefully then he/she will continue to explore that. If not, that's unfortunate, but hopefully it provides some benefit.

By allowing children to grow up without recognizing proprietary software, you are setting them up to be okay with a world where sharing is a privilage, companies and developers are in control of everything they do. Companies make effort to lock in children and get them dependent on their software---e.g. Windows providing their software gratis to educational institutions. Free software in this case serves a broader social cause.

You might argue that this is teaching them reality. Yes, that's a reality that others permitted to happen. The goal is to _change_ that.

https://www.gnu.org/education/edu-schools.html


It's not the goal of most people, because most people don't agree with you. Including most of us developers who love and use free software. This idea that we have to infantalize users by "protecting them" from developers who "deny them their freedom" is radical, to most of us silly, and to many of us offensive.

Most of us will teach our children about free software while not demonizing proprietary software or its developers.


What do you consider to be the benefit of free software then? If it is freedom, then why are you watching a child give away their freedom? If it is any other "practical" reason then I urge you to reconsider your ethics. Given the fact that we know free software companies exist, then there's no valid justification (on a level of "there's no other way to survive selling my software") for selling proprietary software. The ethics questions become important when you consider the fact that most proprietary software developers do mistreat their users and the users are powerless to do anything about it.

Now, I'm not sure what the right way of introducing a child to this concept is (I'm still a teenager, so I have no parenting experience). I believe that topics like this should become relevant when the child is much older, mainly because social interaction is much more important than ethics about software at a young age.

But I personally feel worried about the fact that many children are now growing up in an age when Google has always existed and they have Google accounts from a young age (it pangs of the children in 1984 that don't know a time before Ingsoc and that planes were not invented by the Party).


You're worried based on what? What is the concrete problem you're so worried about?

Using proprietary software is not giving away one's freedom, no matter what the free software prophets teach. When one joins the military one is signing away one's freedom (rightly or wrongly), because one cannot change one's mind after signing without being subject to penalty. When I use proprietary software I'm not shackled to it.

I wonder, when you eat at a restaurant do you demand to know the recipe? I can understand having a right to know the ingredients, because of health concerns, but do you insist that the chef publish his or her secret? If you eat a bite of that culinary delight, have you lost something?

The ethics questions become important when you consider the fact that most proprietary software developers do mistreat their users and the users are powerless to do anything about it

This is a ludicrous statement, unless you take the FSF's view that any distribution of any non-free software is in itself mistreating users. I'd ask for some kind of evidence for the claim that most software developers mistreat their users, but I know there exists no such evidence.

The restaurant/recipe example is a good one because health codes are important. Most people think it's important to have some rules and regulations in place to protect the consumer. But most people also think these have to be kept at a minimum, because overly strict rules and regulations take away people's freedom, in a real way. Any problems you think exist regarding software can be fixed in a much more judicious manner than a blunt and heavy-handed "MAKE IT ALL FREE!" declaration.

This is the sad irony of the FSF's position. They want to restrict freedom. They want to restrict my freedom to sell (or even give away!) closed-source software. They want to restrict my freedom to purchase (or even receive for free!) closed-source software. And in the name of the preservation of freedom! It's absurd!


> This is the sad irony of the FSF's position. They want to restrict freedom. They want to restrict my freedom to sell (or even give away!) closed-source software. They want to restrict my freedom to purchase (or even receive for free!) closed-source software. And in the name of the preservation of freedom! It's absurd!

I don't have the time right now to respond to much of the above, but I do want say that you are misrepresenting the FSF's stance.

https://www.gnu.org/philosophy/compromise.en.html

"The issue here is not whether people should be able or allowed to install nonfree software; a general-purpose system enables and allows users to do whatever they wish. The issue is whether we guide users towards nonfree software. What they do on their own is their responsibility; what we do for them, and what we direct them towards, is ours. We must not direct the users towards proprietary software as if it were a solution, because proprietary software is the problem."


> When I use proprietary software I'm not shackled to it.

Yes you are, since they often have vendor lock-in with proprietary formats. Sure, those formats are eventually reverse engineered by free software developers, but why not just cut out the middle man and use free software in the first place? .doc and .docx were proprietary formats that were reverse engineered so that you can use LibreOffice to open them (even though you still can't do stuff like fill in .docx forms using LibreOffice). How do you not see that as "being shackled"? Active Directory was a huge vendor lock-in for Microsoft until Samba came along, and Microsoft would every release make their proprietary protocol different so that Samba wouldn't work. How is that not being shackled?

> > The ethics questions become important when you consider the fact that most proprietary software developers do mistreat their users and the users are powerless to do anything about it

> This is a ludicrous statement, unless you take the FSF's view that any distribution of any non-free software is in itself mistreating users. I'd ask for some kind of evidence for the claim that most software developers mistreat their users, but I know there exists no such evidence.

Considering how many universal backdoors have been found in countless proprietary software systems, I'm surprised that you can't remember a single example. Cisco has universal backdoors. Windows has universal backdoors. NetGear had some too IIRC. There are far too many to mention.

For example: every single WiFi router that is owned by your ISP that supports WPS has a "feature" that allows the cable company to dump the entire configuration remotely (this is how the Reaver attack against WPS access points works). If that isn't a backdoor, I don't know what is. And you can't change the PIN on most of these boxes because they are proprietary and there's no option added to the web UI.

Not to mention that very many pieces of proprietary software send analytics to the software developers (which is usually hard if not impossible to disable).

Mobile phones have secondary CPUs that allow the phones to listen in on conversations and many other nefarious mis-features.

I'm not sure if you're trolling that you haven't considered ANY of the above "features" as being examples of software developers mistreating their users.

> The restaurant/recipe example is a good one because health codes are important. Most people think it's important to have some rules and regulations in place to protect the consumer. But most people also think these have to be kept at a minimum, because overly strict rules and regulations take away people's freedom, in a real way. Any problems you think exist regarding software can be fixed in a much more judicious manner than a blunt and heavy-handed "MAKE IT ALL FREE!" declaration.

I don't understand why you're talking about regulation. Without free software, you have no way of verifying that the software is actually what the developers say it is. Why is regulation necessary if companies could just release their code (under the 4 freedoms) to anybody who they give their software to?

> They want to restrict freedom. They want to restrict my freedom to sell (or even give away!) closed-source software. They want to restrict my freedom to purchase (or even receive for free!) closed-source software.

In the same (although more extreme) vein, the US constitution "restricts your freedom to become a slave". You are misusing the word freedom. It has a very strict definition. And I think the FSF wants to replace proprietary software, not make it illegal. If nobody has to use proprietary software, then the companies that produce will either have to liberate it or die on their own.


This is the sort of ideological nonsene that turns people off of open source software. Use it because it works not because you have some kind of quasi-religious fervor for it.


The "ideological nonsense" is the reason the free software movement came into existence in the first place. And it is important to recognise why user freedom is important, before talking about practical considerations (which are of a secondary concern).


I think you've missed the point entirely here. Minecraft is a popular game that kids would play anyway, so if they can involve the game in an educational sense then it's a win win.


I haven't, and I reject that premise---it is not a win-win, because I don't believe they should be playing it (and other proprietary games) to begin with, and I certainly don't want them to use it as an educational platform upon which they'll build their foundation.

That doesn't mean I'm opposed to kids learning something when playing games.

I'm proud that my kids play and learn from free games---an walk around the house repeating things from, say, gcompris. They're young (two and four), and I'll be challenging myself to keep up with their need for learning as they age and require more sophisticated games and learning tools.


People need money to live, people make money from proprietary games. People also invest that money and make even better games. It's not practical to only limit yourself to OSS.

When I went to school years ago they used to have us do computer assessments using custom built software that emulated excel, word etc. The result? All my class mates knew how to use this internal software that no company actually used. So they couldn't even say they knew how to use MS Office, and they really couldn't because the layout of the program was completely different.

You are mixing your OSS ideals with the reality of life. Your kids don't care that Minecraft is proprietary or not. Instead they care that they play the same games as their social circle, and can impress others by building things in those games.


> People need money to live, people make money from proprietary games. People also invest that money and make even better games. It's not practical to only limit yourself to OSS.

Of course it is. The whole point of the free software movement is to demand freedom for all users. If you are implying it is not possible to go through life without using exclusively free software for your personal computing, then that's simply false---many, including myself, reject proprietary software entirely.

Using proprietary software on behalf of your employer is different. You're not being robbed of your freedoms because you're not doing your own computing---your employer is being robbed of those freedoms.

The argument that it's not possible to make money developing free software is an often used one and is simply false:

https://en.wikipedia.org/wiki/Business_models_for_open-sourc...

(I don't endorse a number of the methods on that page.)


>The whole point of the free software movement is to demand freedom for all users.

No it isn't. It's to demand the work of others be free for consumption by anyone without compensation. Users have a choice - free software (there are very few categories of end-user tools that I can think of that aren't well served by open source these days), or commercial software.

If the free software movement cared about freedom they would recognize that preserving user choice is a more important and lofty goal than just saying free all the things.

A militant approach to demanding that everything be free is an entitlement that doesn't value the disproportionate investment of resources (time, money, energy, etc) that software developers invest in their work in contrast to the value that users extract from that expenditure.

Software developers should be free to release software for free if they choose to, and users should have the right to use software that has been released for free (for example, unencumbered by hardware manufacturer restrictions that exist strictly to prevent the end user installing chosen software), but demanding the work of others for free is nonsense.


The other guy is being dogmatic, but you're being just plain wrong.

It's to demand the work of others be free for consumption by anyone without compensation.

This is a monumental misunderstanding of what the FSF and the GPL stand for. (And they have only themselves to thank for muddying the word "free" but that's another rant).

Compensation is not something covered by Free Software.


> Compensation is not something covered by Free Software.

That's kind of my point. Free software, per the FSF and the GPL requires that the users are free to use, study, copy, modify, and redistribute software. There is no provision there to allow for the authors to extract value from their own investment through distribution of the outputs.

If you can't extract value from the distribution of that software, then you are left with building value through the delivery of services, support, monetizing the data you can collect from users, or access to your user (so far the the most prominent open source business models).

I have no objection to open source software, and quite enjoy using and contributing on open source stuff (software , documentation, gaming content, etc), but make no mistake, the free software movement demands that the work of others be free for consumption without compensation.


the free software movement demands that the work of others be free for consumption without compensation

You say this one paragraph after you listed a number of ways to get compensation. There are entire corporations, large ones, built around this model you claim doesn't exist. And then there's the fact that the overlap between people likely to buy your software, and people with the skill, time, and desire to build your software from source, is pretty small. A number of app store apps work on this model (off the top of my head, the Textual IRC client is one)


Those are in fact compensation, but not compensation for consumption which is a primary concern for any software which depends on novelty of experience, for example, video games.

Yes, I know how open source models work to generate revenue and earn money. I was employed by Mozilla for almost 5 years, so I clearly understand how open source companies make money, and it's not by consumption of the software. What they aren't is compensation for consumption. Have you ever wondered why there hasn't been a blockbuster, AAA open source game despite the fact that many other sectors are dominated by open source?

It probably has a great deal to do with the fact that entertainment is largely based on deriving value directly from the consumption. There are still ancillary revenue sources (merchandising, movie deals, etc) that can generate alternate revenue streams, but the bottom line, without generating compensation directly from consumption, not from alternate revenue streams, making a game would not be profitable.


I didn't mean to imply you don't know what you're talking about, so apologies if I came off that way.

But this..

entertainment is largely based on deriving value directly from the consumption

This sounds like a failure of business model rather than an intractable problem. Okay, a hypothetical:

Pretend for a moment that you write an open source game, distributing the source on Github or similar, but you also sell a complete packaged copy for real money on places like Steam and GOG. Do you think that the presence of the source-based copy will impact one iota the sales on the storefronts?

Before answering, consider that it takes less skill and less sophistication to download from a torrent site and apply a crack than it does to set up a build environment.

I don't think it does. And I think this is a normative assumption (can't sell open source!) about the industry that's been accepted without any real supporting facts.


> This sounds like a failure of business model rather than an intractable problem.

Not really, the business model is highly successful, even in the face of rampant piracy. The free software movement might consider it a failing of the business model, but unwinding that would mean applying the free ideology to all aspects of copyright and trademark, and not just the free software movement.

Moving past that, your hypothetical has some deeply flawed considerations.

First, you cite an open source game, not a free game. It is easy to sell open source software that is not free, and this is a well established fact (look at the id Software comments below). Also consider Oracle, which sells a large number of open source products, as does Google, and to a lesser extent Microsoft. Their open source offerings are offered under free licenses, but are backed and protected by extensive IP, including trademarks and patents, which essentially makes the products non-free.

Second, setting up a build environment and building the software is more technically challenging than pirating a copy, however, much like pirating a copy, that technical cost only needs to be paid by a single user who is motivated to share the software. I submit the entire history of the software protection mechanism / cracking scene arms race as evidence that such a cost will readily be paid.

Third, shifting the discussion back to free software, the sale of open source software is usually predicated on a license that prevents other sellers of the same software from competing on the consumption of that software - whether it is a trademark, or proprietary bits that are compiled, or hardware that requires that packages be digitally signed, or any other number of constraints. This even applies to GPL software - the original owner of the GPL content can sell a copy of the code under a different license, however anyone who forks or extends the GPL licensed code is obligated to propagate that license forward, which severely hinders a competitors ability to sell the software.

For software to meet the constraints of being free according to the FSF/GPL, these restrictions cannot substantially exist as the licenses provided allow a user to remove the technical constraints, or replace the trademarked content. It is certainly possible to release the software for free and retain control of the trademarked/copyrighted elements (for example, Quake 3, Doom 3, etc).

Do note that the companies that have released their game engines as free software have typically done so as a marketing move to allow developers and engineers to learn from their code / build on their code, and still offer commercial licenses - again, ancillary to the core release of the game. These releases rarely coincide with the release of the game since, again, the primary gain is capturing revenue from the initial consumption of novel content. I am not arguing that Free Software is bad, I am simply saying that the expectation that all software must be free is an untenable position given the cost (and associated risk) of developing some classes of software.


but unwinding that would mean applying the free ideology to all aspects of copyright and trademark, and not just the free software movement.

That's a feature, not a bug :)

But I'm getting a bit confused, here. We're talking about feasibility of license selection, right? If you use some third party proprietary blob like, say, the Unity engine for your game, why is it against license to still release your code for the game under a Free license (as the author, that's the limit of what you can do anyways), and just make the enduser aware that they'll need the same tools to actually make use of it? At the end of the day, you've released your code and given a third party all they need to build on it.

I'm trying to think of the worst case scenario for the exception you described. Let's say.. a Unity game (proprietary blob) running under iOS (requires codesigning) with someone else's IP (copyrighted assets licensed by a third party)

I still don't see what would prevent this game from being released under a free license (if not the GPL) in this scenario. The first two problems don't preclude releasing your code, and the last is solved by either getting permission from the rightsholder, or by including standin assets to replace the copyrighted ones (ala many a Quake/Doom mod back in the day).

Also, as I understand it, the GPL is not the only Free license. A compatible license is one that respects the 4.5 freedoms, and this would include the BSD/MITs of the world which are used, in part, because some developers don't like the must-propagate provisions of the GPL.

the primary gain is capturing revenue from the initial consumption of novel content.

Releasing the code does not prevent this in any meaningful way for one, and for two, even if it did, piracy would be a much bigger issue.


> >The whole point of the free software movement is to demand freedom for all users.

> No it isn't. It's to demand the work of others be free for consumption by anyone without compensation. Users have a choice - free software (there are very few categories of end-user tools that I can think of that aren't well served by open source these days), or commercial software.

SUSE, RedHat and numerous other companies make plenty of money selling free software (and selling support for it). This is is "commercial free software". You don't seem to understand what "free software" refers to. It does not refer to price. It refers to freedom.

> If the free software movement cared about freedom they would recognize that preserving user choice is a more important and lofty goal than just saying free all the things.

You are redefining the word freedom. Freedom refers to control over your own life. You don't have such control when using proprietary software. The only way to have such control is the 4 fundamental freedoms. Any other definition is just muddying the waters.

> A militant approach to demanding that everything be free is an entitlement that doesn't value the disproportionate investment of resources (time, money, energy, etc) that software developers invest in their work in contrast to the value that users extract from that expenditure.

Given that Linux and GNU exist, and are being sold and have funding from large companies, I call bullshit. Just because some companies have decided to sell proprietary software doesn't mean that suddenly it isn't possible to sell free software.

> Software developers should be free to release software for free if they choose to, and users should have the right to use software that has been released for free (for example, unencumbered by hardware manufacturer restrictions that exist strictly to prevent the end user installing chosen software), but demanding the work of others for free is nonsense.

Again, you're not understanding what free software is. It is software which respects your freedom. It does not have to be gratis (without price) in order to respect your freedom.


You show an awfully naive view of the games industry if you think that giving away games for free is going to generate enough income to feed yourself and your family.

I learned to program on "proprietary" software(quake, half-life) among other things while I was growing up and it didn't hamper my ability to be an effective software developer.


Just an obligatory post whenever the "feed your family" argument comes up http://ninapaley.com/mimiandeunice/2010/08/25/for-the-childr...

Not saying that the item in question is itself comparable to this, just there's lots of different ways to get by in the world…


It's more the fact that gamedev pays about ~40% of traditional developer work. Adding some sort of idealism on top of that means you'll probably do better flipping burgers than developing an open source game.


Oh, I didn't know game dev paid much less. Thanks for the info. Anyway, it remains the case that making a living as a game dev is far from the only way to get by, and making proprietary software isn't ideal, so "I need to feed my family" remains a sloppy excuse that doesn't justify ignoring the issue. Not that it's irrelevant, but it's not itself adequate.


"Free" refers to freedom, not price. There's nothing wrong with selling free software. In fact, most people get their games today from online "marketplaces", and getting other games on consoles is incredibly difficult; that's a separate issue. With PCs, those games are often downloaded illegally.

I understand how the game industry operates today; an ex-co-worker of mine used to work as a manager in the field.


Good luck getting a publisher or platform holder on board with that.

Seriously, there's enough barriers to being successful in gamedev as it is, I don't see any reason to add another one on top of that.


> Good luck getting a publisher or platform holder on board with that.

Yes, this is the long-standing problem with software freedom in general; not specific to game publishers. And I don't expect that to change any time soon; I'm hopeful for the indie developers.

But a recognized problem in our community is the inability to compete with games with multi-million dollar budgets; it's simply not possible at this point.


If you ask indie developers you'll find they're more concerned with paying their bills and building enjoyable games than opening up their software(and 90% of them use GameMaker, Unity or other platforms).

Like I said, you don't really have a good grasp of the industry. 9/10 indies don't make it, and none of them make it to the level of Notch. I'm talking about people who know what they're doing, burned all their savings from BigCo so they could work for ~1.5 years and still didn't make it.

Open source software is so at the bottom end of the scale, and you already have a bunch of frameworks out there if you want to know how the nuts & bolts work.


"I reject that premise---it is not a win-win, because I don't believe they should be playing it"

You're missing the point. Your opinion doesn't matter. They are playing it. Write a better game that's open source or whatever turns you on, and then, when millions of kids are playing it, use it to teach them.


What about once they are older and want to play online games with their friends? Whilst you may be able to suggest open alternatives - I know my kids still enjoy the odd game of Open Arena with dad - it's not necessarily the best decision to exclude kids from what can be a significant social interaction.


> it's not necessarily the best decision to exclude kids from what can be a significant social interaction.

And I struggle with this. Ultimately, I do not force my philosophy on others. I will do my best to raise my kids to value their freedoms, but I'm not going to go out of my way to prohibit them from playing those games, because that would be detrimental to their social development.

But those social pressures are a huge perpetrator of proprietary software. They need to be addressed, but forcing a single member of the social circle to invoke those beliefs is not an effective strategy.

I have long made the point that some have priorities that are higher than software freedom. The happiness and social well being (to a degree that I find reasonable, as any parent must balance) is higher on that list for me, because the well being of my sons are more important to me than my ideals. My wife uses proprietary software. I'm the sole earner right now in my household; we share money. She uses that money to buy proprietary software/devices. I'm not going to prohibit her from doing that, because that would be forcing my ideals.

But when it comes to me, I would sooner sacrifice my social well-being than use proprietary software.


> because I don't believe they should be playing it (and other proprietary games) to begin with, and I certainly don't want them to use it as an educational platform upon which they'll build their foundation.

Well that's just silly.


Get your kids to use a free version of it then.

The rest of us will fork out the small price to use the software.


Computercraft mod gives you LUA programmed turtles with impressive levels of programability.

Its fairly bare metal. Its not like you're running "mine.tunnel" and it does all the work for you, you have to program every little detail of movement or activity. Its not like LUA or LUA inspired, it is LUA so you get functions and real control flow.

I find it mildly amusing to program for my mining turtle to dig a large transport tunnel for me and line it with torch on the wall every X blocks and double tracked rails along the bottom and collect the goodies for me. This is not exactly the pinnacle of software development, but it is fun, which is all that counts.

Its also fun to emulate quarries and deep mining operations with programmed turtles. They come in handy for weird automations also.

My son watched the now ancient direwolf20 youtube mod spotlight on computercraft but had no motivation to run it himself. He's more an arduino kid, which is OK I guess.

(just to save time, insert here "LUA is not a real programming language", and insert here "I don't care its more of a programming language than watching youtube unboxing videos")

Computercraft is not unique, its just the oldest and most widespread of its genre. Personally I'd like a LISP in minecraft. Hoist out the guts of computercraft and toss in a nice jvm lisp like clojure ... in my infinite spare time... Assuming someone else hasn't already...

Minetest might be cooler sooner than you think. Its hard to speak for the community, but most see it as only a matter of time before MS kills minecraft modding a monetization scheme or abandonment of the java platform or who knows, at which point the mod authors and players will be salivating for something like minetest. The problem with minetest is nobody mods it so you can't program a turtle in LUA on minetest, only minecraft.


this is off-topic, but:

> What's in a name?

> "Lua" (pronounced LOO-ah) means "Moon" in Portuguese. As such, it is neither an acronym nor an abbreviation, but a noun. More specifically, "Lua" is a name, the name of the Earth's moon and the name of the language. Like most names, it should be written in lower case with an initial capital, that is, "Lua". Please do not write it as "LUA", which is both ugly and confusing, because then it becomes an acronym with different meanings for different people. So, please, write "Lua" right!

http://www.lua.org/about.html


>The problem with minetest is nobody mods it so you can't program a turtle in LUA on minetest, only minecraft.

Minetest has quite a lot of mods, admittedly - I even made a few. The problem with Minetest is that it has too many modders and not enough players. The problem with Minetest is that the voxel engine zone itself is fragmented: Minetest itself has three different maintained versions, and there's other clones like Terasology as well. The problem with Minetest is that the APIs are and will probably remain too limited for the most complex things, seeing as it's not the kind of modding where you turn the engine inside out for fun and it happens to work with most mods for some reason - and, even then, there's far too few developers on Minetest's core engine and far too many opened/unmaintained pull requests.


ComputerCraft is amazing, and OpenComputers even more so (although by default OC's computers require power, which is a bit of a drag).

I've been spending the past couple of years writing an operating system to run in a computer inside a game I play on my computer … I need a life:-)


Logo would make an excellent programming language for Minecraft (adapted to add a few extra base commands for digging - laying down a block would be equivalent to pen down). I wonder if anybody has tried to integrate the two of them!


That would be great.

Here's a "graphics turtle": http://www.stuffaboutcode.com/2014/07/minecraft-fractal-tree...

Here's Rust and LLVM in Minecraft command blocks: https://www.reddit.com/r/Minecraft/comments/37dkg4/sbbm_scri...

Here's someone hacking gnuplots into Minecraft worlds: https://metaphysicaldeveloper.wordpress.com/2011/07/31/hacki...


Minecraft doesn't even have any support for modding, external modding APIs are built by the community by reverse engineering the binaries' bytecode.


It will be a different edition on a new C++ code base. Presumably with ease of extending/use for teaching in mind too.

See previous discussion here : https://news.ycombinator.com/item?id=10974036


I wish there were more details about what the plans are for this grand new version that will make it better for use in the classroom. The FUD around this change is causing much hand-wringing among educators already invested in Minecraft in the classroom via MinecraftEDU. For example, the question of "will it even run on a Mac" has yet to be answered (that I'm aware of), a big risky unknown for all of the schools that swallowed the Apple educational marketing hook line and sinker. Then there are the licensing terms which are likely to be many multiples of the current Minecraft licensing costs for schools (just going to one license per named student will at least quintuple my school's costs)


To add onto that:

They used to say that they were in the process of making an API, but I think they stopped with that.


I tried making Minecraft-quality mods for Minetest and the API just wasn't there and... I stand somewhat corrected. Some of the features I wished were there are now there, but not all. So it is moving forward.


> Proprietary software is incompatible with education.

That's an astonishingly sweeping statement. I learned to programme over 30 years ago using the proprietary ZX-Spectrum basic. In what way was I not educated?

Meanwhile my kids taught themselves all about the creation of logic gates using redstone dust and pressure switches in Minecraft to control their roller-coaster layouts.


Please see the link that I provided; it's not that people can't _learn_ with proprietary software; that's obviously not the case at all.

I learned to program on a proprietary operating system with a proprietary language---Visual Basic---when I was ten years old. And I was taught that sharing was bad. I distributed some code to others, but when I wrote some actually useful software, it was proprietary, and nobody saw the source code.

I didn't know about free software until after I started using GNU/Linux; I noticed that a game's "binary" (Frozen Bubble) was the source code---a python script. It amazed me, and I didn't entirely understand why. But I loved that I could hack it and make changes to it.

I've lived on both ends.


I sometimes doubt the practicabilty and wisdom of this persistent drumbeat to get more kids to learn programming. Sure, there's value in it, but it's frequently posited as something all kids should be doing.

Yet, it's frankly not for everyone and the tendency is to diminish the value of other fields (especially if they are completely non-STEM). Worse, this is primarily driven by an economic rationale. Not only do we encourage a monolithic culture that overvalues tech; I also think the assessment of opportunities for pogrammers in the future is overblown. The tech itself will see to this.


The 'secret' is not to say "you should learn programming so you can be become a programmer", but rather "you should learning programming so that you can apply that skill to whatever you end up working with". Even someone working in completely non-STEM fields can potentially derive massive value from knowing some basic programming. Even just knowing some super simple MS Office macros that automate some basic administrative tasks is something that can be applied to basically any job out there where you att any point deal with a computer.

Programming shouldn't be just for programmers, just like writing isn't just for writers.


The objective and the value are not typically posited in such a restricted manner.


Learning about programming and how software / hardware works has the same value as learning about the basics of chemistry or biology. You might not use the knowledge in your day-to-day work, but it gives you a better picture of how the universe works.


That's part of the fallacy to which I'm alluding.


I think any simulation of a reasonably complex environment is an opportunity for AI research, but I am hoping that TrueCraft (https://github.com/SirCmpwn/TrueCraft) will do well so that researchers do not depend on proprietary Minecraft.


A version is minecraft that is forever stuck at 1.7.3 is not very appealing. If you want a game like Minecraft that's open source, check out Minetest http://www.minetest.net/


TrueCraft author here. I expect that at some point it will be forked and someone will add the features of newer versions.


I played with Minetest for a while. It feels like it suffers from a lack of identity beyond "it's Minecraft, but free and hackable!". This is not enough to build a unified playerbase, I'm afraid. Its API is much simpler, though, if limited (no client-side scripting, limited model options).


Here is a Minecraft my buddy pieced together with client side scripting https://github.com/teachthenet/pycraft/


Bukkit? This does not sound very client side. Even if it runs on LAN, you're still only touching the integrated server. Client-side scripting in Minecraft-esque modding would probably mean things like being able to create proper, interactive GUIs, HUDs, dynamic rendering, etc.


The stuff added after 1.7.3 isn't particularly interesting to everyone so opinions will vary :)


I dunno, explored the new end fortresses at the weekend and then proceeded to spend about 2 hours jumping off very high things and gliding around with the new wings.

(it was frickin sweeeeeeeeeeeeeet)

Next project is to set up some arkham style gliding challenges, although in this case missing the target by even a small amount is like to result in death...


> Next project is to set up some arkham style gliding challenges, although in this case missing the target by even a small amount is like to result in death...

Pilot wings in Minecraft?

Sounds awesome. I enjoyed some of the dropper maps, and that game where you jump off a high point into a pool and place a block each time, making the target smaller and smaller each time.


Bear in mind this is Beta 1.7.3, which came out in July 2011. A lot has been added in the last 5 years.


Can anyone elaborate on some of the things that are missing since then? I've got a 5-year-old who loves Minecraft and we've talked about modding but it just doesn't seem very approachable for a child that young. TrueCraft running on .NET would be considerably easier for me to introduce him to...


The "Adventure Update" and future updates in the same vein: hunger, enchanting, RPG-esque elements, etc.

Also, some of the major redstone additions from the later versions, which are the ones I'd miss most.


Version 1.7.3 has everything required for the classroom and a clean room implementation is https://github.com/SirCmpwn/TrueCraft


It doesn't. Many classrooms rely on ComputerCraftEdu, for instance. While OpenComputers exists, it is not optimized for education, but rather for gameplay.


Sadly, TrueCraft, due to its nature, has to lock out one of the most potentially interested groups - Minecraft modders, both former and current. This saddens me a bit, as I myself am a strong fan of the beta 1.7.3 design ideals.


One day soon, when the current generation that Minecraft courts is my age (mid-20's+), anyone who has never experienced Minecraft on a beyond-coursery level will have no true base from which to analyze concurrent trends. I count myself in the latter group at the moment, but as I see Minecraft become a greater cultural touchstone every day my desire to experience what it offers continues to grow.


Attempt to translate.....

"If you're over 25, chances are your peers don't play Minecraft. I'm over 25. Therefore, I'll play Minecraft when more players are established working age adults."

Good luck with that. In the meantime, my age 40+ wife and I have Minecraft mountains to craft into beautiful and creative castle homes.


That's not exactly what I meant. At my current age my social tipping point for delving into new games is very high. The last game I embraced was Battlefield, and that became an insane timesuck. That makes BF the only game I've accepted into my life in the last 8 years, besides a good Tetris sesh every once in a while.

Besides, my point is more a contemplation about what references, ideas, and concepts I'll because I might not ever dive deep into Minecraft. I didn't mean it in a snobby way at all.


"Minecraft on a beyond-coursery level will have no true base from which to analyze concurrent trends"

There is a literal reading of the post that's correct. The deobfuscation of the above line is something like you have no visceral hands on experience with concurrency issues until you try to build a massive automated manufacturing plant in modded minecraft.

Go ahead, try and build an optimized manufacturing plant to automatically hands off manufacture all the components for something complicated like the AE2 mod, without understanding concurrency. Everything in minecraft happens in parallel, not in a single threaded machine code or abstract object model. Its like real assembly line engineering, not like writing traditional code at all. Big modded minecraft systems are chock full of LIFOs and deadlocks and queueing and latency issues to work around and debug. Minimal successful production is one thing, but perfectly optimized higher speed parallel production is a whole nother challenge.

I will admit that trying to use a single printing press to make AE2 components often annoys me enough into just building assembly lines with five presses, but that produces interesting issues of its own relating to peak to average power requirements of the entire system, and minimal latency (how do you expect something 30 blocks on a side to be as low latency as something 3 blocks on a side?)

Any idiot can make a concurrent system work by using ridiculous top tier stuff and setting the goal low enough, but its a fun engineering challenge in the true sense of engineering to make it as small, reliable, fast, and cheap as possible (plus constraints added for fun, sometimes). Both in modded minecraft and in the real world.

At this time of morning, I can't think of a kids toy that teaches concurrency design concepts better than "beyond-coursery level" modded minecraft. "Here's a cheap FPGA now implement a working pipelined ALU" isn't really a kids toy although its got similar concepts inside, and its cheap enough for a kid to afford.


EDIT: Nevermind, I'm going to see what I can do to port my current server to one running AE2 and Computercraft. That stuff is just too cool not to have.

I would still love your suggestions on what mods are excellent though (there are so very many...). Cheers!

----

I gotta ask: do you cram mods into your Minecraft server, and if so which ones? If not, which do you keep?

And how the heck do you keep up with the version mismatching? Like, should I just not update the server, or should I stick with just one engine?

By way of mea cupla, I have tried to look into it and figure it out, and came away with that it's such a mess maybe I shouldn't bother. No reason to make my day job my fun time as well; hours of glitchy wonkiness ain't my way of destressing.

(I gave Aloglia's API a cursory try and haven't found you listing your favorites, but whenever minecraft comes up I recognize you seem to be in the know. I've been playing vanilla for a while enjoying the tedious relaxation of just being able to use command blocks, but it's getting to the point I think programming a robot to build my skybride and tunnels would be a wise investment of time :)


The advantage of a modpack like feed the beast FTB is they take care of all the incompatibilities and making sure Tinkers Construct Bronze is ore-dictionaried to be the same as forestry bronze same as all the other bronzes. Also tweaks to ore generation are important. Finally one important feature modpacks do is make the style uniform. It would be weird to have a 99% technology based modpack with 1% being terra firma craft. Or imagine a 99% magic themed pack full of witchery and thaumcraft and blood magic (not really my thing) but 1% AE2.

The role of a modpack group like FTB is almost perfectly analogous to linux distro. You could figure out all the dependencies by hand and namespace everything, but the Debian guys did all the sweating for you, so may as well use their metadata.

A long time when I was starting out I was a little overwhelmed by the modpacks having a hundred mods. So I'd start up with exactly one mod installed, lets say IC (the original) or just railcraft or whatever. But that leads to heartache and wasted effort (what, I need BC pipes to hook a railcraft boiler to a turbine?).

What seems to help is hard core quest mode packs. Crash Landing might scare people away, its kind of intense (but intense in a cool way). Agrarian Skies? Some HQM packs are so confusing they almost require watching youtube videos to figure out how to get past the first steps. Maybe FTB infinity evolved in NON-EXPERT mode?


Whelp, sounds like I'm using FTB and plonking mods in via a pack. That's exactly the answer what I was hoping for. I think a lot of my hesitancy was in regressing to an earlier version of Minecraft, but given the sheer depth you're describing, it wouldn't matter; it's a whole new game either way.

I really hope we eventually get something that is just about literally a Debian for Minecraft. That'd be even better for getting kids into the hacking spirit!


It's super weird to me that Minecraft is now seen as a "kids game". I'm sure kids play it, but everyone I know who plays it is adult or high school age.

It's really sad to me to see people turned off by it because kids play it. It was never that way when it first came out and when I was getting into it. Now I leave my Minecraft shirts in the closet because I know people associate it with childish things.


What are you waiting for? Try it already!


You build stuff out of low poly blocks. If your imagination can't comprehend that then you've missed out on much more than a game.


Just had a strange thought.

Say a sufficiently advanced AI agent is trained in Minecraft with the pixels on the screen as the only raw input (its 'eyes') and then trained to do simple tasks like building houses or hunting for rabbits.

Eventually, to us, these in-game players will seem to reason and 'think' about their world.

...which in my mind grants a few points to the "the universe is a computer simulation" paradox/thought experiment/theory.


They did do this with DeepMind [1], before they pointed it at Go. Simple 2d games though, like Space Invaders. They said 3d games would be their next phase after Go.

[1] https://www.youtube.com/watch?v=ePv0Fs9cGgU


You could let it run for a while, and then put up a sign in the world saying "This is God speaking: bad news pal, you're actually a bit of Python running on some kid's laptop".


Unfortunately, the "wishful thinking" (e.g. wild speculation) step in the thought experiment is the "eventually" step.


You might enjoy the book "Vehicles" by Valentio Braitenberg


Or Permutation City by Greg Egan.


Its seems that the current progress in AI pioneered by DeepMind is predicated on being able to measure progress by using a pre-defined set of rules (i.e. the game currently being played).

How will this work in a MineCraft simulation where there are no rules? Where will the feedback loop come from, e.g. a subjective evaluation by "humans"?


Minecraft survival has player health and player armour strength. It also has a hunger bar. And the player has an inventory of items collected.

And then there are a bunch of statistics. http://minecraft.gamepedia.com/Statistics

I agree this would make a player that has an unusual play style (never making a base, for example), but it might make for some fun Let's Play videos.

And increasing YouTube subscriber count, and video view count, and video thumbs up, while minimising video thumbs down would be an interesting experiment. ("I welcome our AI Clickbaiting overlords")


I'm much more interested in an AI that optimizes audience stats than one that optimizes in-game stats.


I predict a twitch stream of an AI playing various games. Watching it fail and succeed on various games and situations would be very interesting. Maybe a couple devs to do a voice-over.


If you haven't seen it already, you might be interested in subreddit simulator https://www.reddit.com/r/subredditsimulator which is pretty much that but for upvotes on reddit. It's at most kind of amusing at times for now


I would follow that channel and its devblogs assiduously


You still can create a set of goals within the game that count as "success" and others as "failure" to guide the reinforcement; and have the learning process try to figure out everything else in Minecraft in order to achieve those goals.


Indeed, a GA would work quite nicely here - but I guess you'd need a cluster of machines simulating (not playing) Minecraft for this to be a viable experiment.


This is something I discussed with some fellow AI enthusiasts 2 years ago. We tried to come up with some "reward function" that would encourage very general behavior and reward more generally intelligent AIs.

The idea I had was to reward collecting blocks of different types, with exponentially decreasing reward. So finding a block it's never found before is 100 points, the second it finds is 50 points, and so on. It encourages exploration and touching on as many mechanics of the game as possible.

The important part is that the AI learns on its own though, not programmed to do specific tasks by a human. However it should perhaps be given recipes and some other meta information, because discovering those by chance is highly improbable.


As in the limitations u have in minecraft = rules.


For those interested in more details, a paper using this system is here: http://research.microsoft.com/en-us/um/people/alekha/arxiv_g...


For some reason that PDF loads incredibly slowly for me, so here's a link to the abstract on arXiv.org: http://arxiv.org/abs/1603.04119


So skeletons will be an even worse pain int the future?

On a more serious note: I really hope they improve the mod mechanism, it's really painful to use mods as it stands. And mods are a very big part of Minecraft.

As I understand it, Minecraft will be reimplemented soon anyways?


> As I understand it, Minecraft will be reimplemented soon anyways?

That would explain why the extant Java version is riddled with years-old bugs and no hope of getting them fixed while they charge full speed ahead with additions to The End and hang-gliding and other shit nobody actually asked for.

Of course, there is no reason to think the reimplementation won't have annoying bugs as well, which also won't be fixed while they continue to add esoteric features out of the blue.

Yeah, I'm salty.


There has been severe refactors going on ever since 1.2 or so. Whether they are beneficial or not is still a large debate between modders, but from a stability and customizability perspective they most likely are.


What bugs are you talking about? I've played on and off from 1.2ish, both online and standalone. It's still an unoptimised mess but it's not too bad.


Here's one:

https://bugs.mojang.com/browse/MC-51053

Basically they tried to make some improvements to carts in general, fucked that up, then "reverted" that change and since then powered carts don't work. There's even a fix posted a year ago on the damn ticket itself - but apparently they are too busy adding attention-grabbing bullshit to even do a simple copy / paste job in order to fix major flaws in the game.

You'd think, in a game called "Minecraft", that minecarts would get more attention. Alas...

However, now that I've looked at this again, it appears they are finally planning to do something about this problem, where "something" is just removing powered carts altogether: https://twitter.com/jeb_/status/699241247391772672

And don't get me started on boats - though they did eventually fix that after a few years.


Right... Thanks for that. That's very disappointing. Still, there might be a remote chance that Minecraft is eventually open sourced. This is New Microsoft after all.


Any attempt at improving the mod mechanism will make many of the things mods now do impossible, as many of their features rely on things which would never fly in a sandboxed environment. This is probably why, instead of the modding API, we get Mojang hiring the developers of the Minecraft Coder Pack.


I thought Microsoft already rewritten it in c++ so they can run it on phones with decent preformance?


Only on Mobile/Console. Windows/Mac/Linux is still Java, likely because Java remains moddable by 3rd parties (via disassembly and reflection) where modding must be built into C/++ games from the outset.

The Windows 10 UA is a port from one of the C++ versions (mobile I believe), but has no modding capabilities whatsoever.


Actually, Pocket Edition does have a modding scene - they left all debug symbols in, which let a few willing developers build an API around it. Windows 10 Edition, however, does not, and is thus not moddable.


> which let a few willing developers build an API around it.

Wow. That must have been a feat. Even if you have the symbols an optimizing compiler is going to make this a nightmare with all the inlining etc.


Pocket Edition is a separate codebase, used for Windows 10 Edition which is not yet however a replacement for Minecraft.

There are, I believe, three distinct versions of the engine: the Java one, the C++ one and I think the console codebase is also separate.


A modding API has been in the works for a long time now.


Interesting that it's named 'AIX,' which is also the name of IBM's Unix-like OS. I guess it says something about IBM's AIX's prospects in the market when no-one associated with this project even thought about it.


Yeah, I'm wondering if they'll run afoul of trademark.

AIX is still around, but IBM is very much pushing Linux, even on the same platform/hardware, so even IBM sort of sees it as dated or offering very little that Linux doesn't offer. Probably more cost effective as I imagine they charge similar for support but have to put less effort into the code.


This sort of reminds me the experiment that some people ran on a custom Ultima Online server back in the day. They found some interesting behaviours came out from the monsters. I.e. which animals were afraid of which other ones, grouping etc.


If it wasn't possible to "cheat" by using xray or insta mining super tools ... it would be a fun experiment making mining robots etc.


Well, you can always limit yourself (assuming you're a dev) with what you're allowed to do


Orebfuscator is a pretty nice solution to X-ray. As for super fast mining tools, you can just not add any to the game.


I don't think there is a limit on how many "block mined" you can send to the server per second. Or they might have fixed that. Some cheats allow(ed) you to fly around while at the same time mining everything around you.


I think plugins like NoCheatPlus did something about it, but with more and more conservative cheat detection methods you start running into the edge cases of legitimate users.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: