An Introduction to Programming with Minecraft at the Oklahoma City JUGTuesday, June 30, 2015 |
On Monday, July 13, I will be leading the monthly OKC JUG session, whose topic this month is "An Introduction to Programming with Minecraft Mods". We’ll be using a modified version of the curriculum Arun Gupta has developed for this Devoxx4Kids program, with examples taken from the book he and his son wrote, Minecraft Modding with Forge: A Family-Friendly Guide to Building Fun Mods in Java.
Here is the announcement sent to the Oklahoma City tech community. If you’re in the area, come check it out!
Greetings, Oklahoma City tech community! Do you have a son or daughter (or niece, nephew, grandchild, super-friendly neighborhood child) who loves Minecraft? Does said Minecraftian have an interest in learning how to program? If so, this is your lucky day. The Oklahoma City Java User Group would like to invite you and 0 or more of your pint-sized and precocious progeny to our July session where we’ll be offering an introduction to programming using Minecraft modding as the goal.
What will we be doing? We’re going to be getting an introduction to various programming concepts (types, variables, loops, conditionals, classes, etc) using the Java programming language. Having a concrete, usable goal is always more interesting, so we’ll learn these concepts as we develop (and RUN!) simple Minecraft mods.
Will my CHILD<Relationship> be an expert programmer or modder when we’re done? Probably not, but the hope is that this session will be enough to flatten the learning curve a bit, leaving each child well-equipped for further study, either self-directed or with you, as well as with a taste for how fun programming can be.
How old does you mini-me need to be? That’s entirely up you. If you have, say, a 6 year-old who’s comfortable with compilers and API docs, then that’s old enough for us.
Is there anything we need to install before we come? There certainly is! Our time will be limited, so it would be extremely helpful to have a basic, working environment already set up. While you are free to use any IDE you want, I will be using NetBeans, the Free (and TOTALLY AWESOME) IDE from Oracle, which can be downloaded from http://netbeans.org. You will also need a working Java environment, as well as a relatively current copy of the Minecraft Forge plugin development kit. I’ll have detailed instructions at the end of this email to help you set up your environment.
This sounds great? When and where is it?! In a departure from our normal schedule (which will be significant only for normal JUG attendees), we will be meeting on Monday, July 13 at 11:30AM at Prototek, which is located at 10th and Hudson in Oklahoma City (https://goo.gl/maps/tD26c). You can park in the dirt lot Hudson, just north of Park Place. Do not park ON Park Place, as I own both that and Boardwalk, and my improvements there are guaranteed to ruin you.
That’s right during lunch. What’s wrong with you people? Nothing that some free pizza can’t solve, so bring your appetite!
What should we bring to the session? To participate, you will obviously need a laptop to work on, with one per laptop per child (no government organizations/programs, please) being ideal. If you are bringing multiple wee ones and need to share, that would be fine. If you don’t have a laptop and just want to come listen, that will work as well. :)
Do I need a Minecraft license? For this session, you do not. The game will run just fine without a license. The only caveat is that you will not be able to connect to any servers without a valid license from Mojang.
Is there anything else we need to know? That’s about it. Come prepared to have fun and learn. And don’t forget your questions!
We’re pretty excited about this session and hope to see LOTS of kids come out for a fun time.
I made that really large for two reasons: I really wanted to use that formatting bar in Thunderbird that I’ve ignored for so long, and I wanted to make sure you don’t miss this part. :) You can come and set up your laptop at the meeting, but we won’t have time to do that as a group, so we’ll have to keep moving while you’re setting up. If you have to do that, that’s fine. I hope to conscript a few of the JUG leaders to act as workshop assistants in case anyone needs help installing the various pieces. Another issue is bandwidth: Prototek will let us use their wifi, but regardless of their bandwidth, when two dozen people start downloading all of the dependencies, it probably won’t be very fast. :)
What do you need to download then? These three things:
Java - http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html. You will need the Java SDK, and I would suggest the latest version, which is currently Java SE 8u45. Download the installer appropriate for your platform and install it.
NetBeans - https://netbeans.org/downloads/ - You will need the Java SE version. Again, get the installer appropriate for your platform and install it.
Minecraft Forge - http://files.minecraftforge.net/maven/net/minecraftforge/forge/1.8-126.96.36.1991/forge-1.8-188.8.131.521-src.zip - There are platform-specific installers, but I’d just get this zip
With those downloaded and installed, extract the zip file (using the tool of your choice) in a directory. Mac and Linux users can do this:
$ mkdir MinecraftMods
$ cd MinecraftMods
$ unzip $PATH_TO_ZIP/forge-1.8-184.108.40.2061-src.zip
Wherever you’ve extracted the archive, you will need to open a shell (or command prompt) and run this command in that directory:
$ ./gradlew setupDecompWorkspace --refresh-dependencies
(Windows users can leave off the leading ./)
Once that is done, open up NetBeans, then click File | Open Project and navigate to this directory. Hopefully, this directory will show up as a Gradle project. If it does not, you will need to install the Gradle plugin ( Go to Tools | Plugins and install "Gradle Support".) After a few seconds, you should see the project open in the Project view, with several nodes beneath it in the tree. To test things, click on the project node (it should be called MinecraftMods), click Tasks, Run, and runClient. After a few seconds, you should see Minecraft start up. Congratulations, you should be ready to go.
Whew! That’s kind of hard to follow! Well, yeah. If you’re like me and like to see pictures, you can see these same instructions on the NetBeans blog at https://blogs.oracle.com/geertjan/entry/seamless_minecraft_forge_in_netbeans.
But I don’t like NetBeans. I like pain! There may be some Eclipse fans out there. If you just have to use Eclipse, you can generate the
Eclipse project files by running
NetBeans is nice and all, but I prefer to buy things. Can I use IDEA? Sure! Just run
gradlew idea to generate the project files.
Is that "all"? Should be. Pretty simple, huh? :P If you run into problems, try to do as much as you can before you come, and you can either ask for help on the JUG mailing list (http://okcjug.org/contact-us) or, worst-case scenario, wait until the day of the JUG and get help there (though it would help to arrive early ;).