Topic: An Introduction to Programming with Minecraft Mods
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. You can park in the dirt lot on 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.
Detailed Pre-Meeting Instructions
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 Wi-Fi, but regardless of their bandwidth, when two dozen
people start downloading all the dependencies, it probably won’t be
very fast. :)
What do you need to download then? These three things:
Java - 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 - You will need the Java SE
version. Again, get the installer appropriate for your platform and
install it.
Minecraft Forge - 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:
$ cd ~
$ mkdir MinecraftMods
$ cd MinecraftMods
$ unzip $PATH_TO_ZIP/forge-1.8-11.14.1.1341-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.
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 gradlew eclipse.
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 or, worst-case scenario, wait until the day of the JUG and get help there (though it would help to arrive early
;).
Speaker Bio
Jason Lee