Code Monkey home page Code Monkey logo

minecraftmods's People

Contributors

bskinny129 avatar joedean avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

qaisern

minecraftmods's Issues

Minecraft pre-setup requirements

I just wanted to list the things that I could remember that we talked about after the 1st minecraft mod session. Here are some ideas thrown out. Busybox on Win8 it seems caused the majority of issues. It seems that setup is routinely one of the consistent issues in the sessions.

  1. Have a script that runs on every platform (windows/mac/linux). It would output verification of the setup. Only when it has passed would they be able to get a ticket. Would be good to have a list of OSs, etc. It could redirect the output of the script running the craftbukkit server. They would email the outputted file for verification.
  2. Have a linux server running, so that everyone would ssh into to get a command line. Linux/Mac have ssh. Mobaxterm http://mobaxterm.mobatek.net/ or putty can be used for windows. This way everyone would have the same environment. The server would have to be beefy, but still a pretty inexpensive computer (ie 8-core CPU/48GB RAM), and it would run all the users's minecraft servers. Everything would just work. The only thing different is that we'd have to use different port numbers, instead of IPs for the servers. Users would still run minecraft on their own computers. At the end of the session, we could have them run a script that would copy their work to their computer. If we are using Xwindow applications (sublime), we'd have to have Xserver running on the client. Linux has Xwindow included, Mobaxterm for Windows, XQuartz for Mac OS X. Not sure how well Mac is covered with different versions tho. The other option, is that we run vnc sessions, and have everyone connect with a vnc client. The VNC is the easiest for the client-side, but could tax the network.
  3. Bring a bunch of 4GB flash drives with linux pre-installed with all the necessary environment included. Works on most PCs and Macs.
  4. We could do a mix of 1 & 2. Meaning you could use your own computer if you pass all the tests of the script, otherwise you would use the server. I really like this idea, because if something goes awry with someone's setup, they just jump on the server.

We also talked about grouping users by OS. Linux/Mac/Windows. I think that would make it easier for mentoring, and likely get people with the same problem near each other so they can be helped at the same time or even just overhear the solution. I find it difficult to switch very quickly between Linux, Mac, & Windows, and esp. Win8.

I probably missed some stuff.

Maybe we could put a large sheet taped on the back of everyone's laptop, with their port#, so others would know how to connect to their server.

Also, I did get a Win8 laptop working with Cygwin tonight. It's a longer download, and some programs are not installed by default, but you can re-run setup to add programs (ie wget).

One last thing, is that I could not download that zip file off of github, even manually in a browser. When I finally got wget working, I could tell it was the SSL certificate. Not sure why, cause other https sites were working. For downloads, it might be good to not be on ssl (https), if possible.

Creating a Minecraft track

Apologies for the formatting, but here is an email exchange about planning the Minecraft track:

Excellent! Please don't take my slow response for a lack of excitement on this - holidays and planning for the immediate CoderDojo events has kept me busy.

I went ahead and created a repo (private for now) in our CoderDojo section: https://github.com/CoderDojoSV/MinecraftMods/. Can you start making the progress there so our other mentors can chime in and help? What we do is just create an issue for an questions you might have. (I added your GitHub username to our mentors group so you have access to our private repos).

Joe Dean is planning on creating a Minecraft mod track for the San Jose dojo. He has posted about it here: https://github.com/CoderDojoSV/mentor-discussion/issues/20. I think it would make the most sense to have the two of you combine to come up with a curriculum.

When developing a curriculum, I want to point out our main learnings from past sessions. A lecture with lead-follow doesn't work very well. Kids move at different speeds and once someone is behind, it is really hard to get caught up (and it becomes frustrating, which is the opposite of fun). How can you structure it so they can more go at their own pace? Think 5-10 minutes of kids off doing their own thing, and 2-3 minutes of the presenter talking, repeated for the whole 1.5 hours. See the https://github.com/CoderDojoSV/beginner-python track for a good example of materials that allow this format.

Session 1 can be exclusively setup. There can be a mentor training day where you go through the whole course. Both of these are a good idea.

I see the age group as kids with some typed programming language experience - mostly 10-13. Classes, object oriented, dot notation, all of this will need to be covered (but I like your idea to keep it as simple as possible at the beginning and add from there). Things like loops, arrays, function inputs should be familiar, but certainly not mastered (so reviewing them would help).

I see this as a potential track for our spring session. So starting the first week of April for 6 straight weeks. We won't have a Java specific class before then, but will have Python which will teach them the fundamentals of variables, loops, arrays, and functions.

What else am I missing? Let's take this discussion over to the issues on the repo so that everyone can view....

-Brian

On Thu, Jan 9, 2014 at 12:00 PM, David Huntley [email protected] wrote:

Happy New Year!  I hope you guys have had a great holiday
FYI: I’ve started putting together some sample code in a Github repository.  Nothing ready for prime-time, but just so you can see that progress is being made.
https://github.com/dhuntley1023/ForgeMods
Any thoughts on the below?
David.
Sent from Windows Mail
From: David Huntley
Sent: ‎Friday‎, ‎January‎ ‎3‎, ‎2014 ‎3‎:‎39‎ ‎PM
To: get2greg
Cc: Brian Skinner
Hi Brian,
Sorry to delay in getting back to you.  Been crazy with the holidays.
I’d love to try to help out putting something together for Minecraft modding, but you should know that I’m not a modding expert.  That said, I think I have enough experience and/or motivation to at least stay ahead of the curve for a basic set of introductory classes. 
My experience is with creating mods using Forge (www.minecraftforge.net).  This seems to be the modern-generation modding framework that many mods are moving to.  One challenge right now in term of putting together a class is that Minecraft and Forge are both going through some pretty significant changes as they move from the 1.6 to 1.7 MC versions.  I’ve been playing with the pre-release 1.7 Forge the past couple of days and it’s not at all ready for prime-time yet.  I expect it’ll take a month or two to solidify.  It’s even somewhat difficult to verify how compatible the 1.6 mod code will be with 1.7 because the 1.7 Minecraft method names have not been remapped to their unobfuscated forms yet.  (i.e. with 1.6, a core Minecraft method of “setBlockHardness()” for example right now looks like “funca45675_a()”.  Everyone has a vested interest in ensuring as much compatibility as possible, so I think it should work out ok, but it will take a bit of time for the devs working on that to crank out the changes.
I predict that from an intro-class perspective (creating new blocks, items, crafting recipes, some simple world mod, etc.), that the actual mod code will be largely the same, and that the biggest difference will be in dev and tool environment setup.  Forge has moved to a new, gradle-based build system so the setup is different.
Based on the above, my recommendation would be to start development on core curriculum materials using 1.6, and to then convert it to 1.7 prior to delivering the class itself.  This would put it out a few months.  What do you think of that?
A Minecraft class will also have some other complications:

    Environment setup:  To start modding, you first have to install and configure several pieces of software: JDK, Eclipse Java development environment, Forge, etc.  This is not hard, but it’s the kind of thing where if one person mis-types something in a path, or misses a step, then it will derail them and there will need to be some debugging done to get it working correctly.

    How have you dealt with this kind of situation in the past?  One possibility that might be good would be to send out instructions in advance of the class, and then to hold a “Session 0” as a drop-in class for people that need additional help getting their machines setup.  Alternatively, we could just do this as part of the first class… but would need some experience mentors available to help people when they get off-track.
    Java experience:  To your point in your previous email, Java coding experience will be required.  Fortunately, for the basic stuff I think we’d cover, students won’t need to create new code from scratch using any really tricky concepts, though they’ll be exposed to some of them through the Forge framework.  For example, Forge uses annotations and reflection to gather meta-data from the mod to simplify linking it in to the minecraft core.  So we’d have instructions that say “Create an annotation that looks like this.. XXXX”, which is easy for students to follow, but would get complex if someone wanted to drill down onto what was actually happening there behind the scenes.

    Net: I do think that we’d want to cover some basic Java concepts for the students, but I’m undecided yet on what needs to be covered as an independent “intro to Java” kind of session (or part of a session), vs. an approach where we do something very straightforwardly at first, and then introduce key Java concepts as we go along.  (e.g. If we provided a template for a base mod, we could have kids adding new blocks very quickly without having to have them create a new class, for example.  We could then introduce that concept later.

    Question: Have we had Java classes in CoderDojo before?  If so, what levels were they targeted at and what did they cover (can you point me to materials for one?)    One approach we could take would be to say that taking the Java course is a prereq…
    Mentor experience:  A lot of adult mentors have work experience with various language, web development, etc., and can easily drop into a course and help kids out when they have questions.  I’m guessing that relatively few of them will have had experience doing Minecraft modding, which will limit their ability to effectively answer questions or help kids out when things fail.  If we want to do this really well, I almost think that we need to get all the materials out to the mentors in advance, and get their commitment to actually do the work themselves before the class.  I’d even go as far as to say that we should have a special mentor-training session prior to the class to allow people to ask questions as we go along.  If we can’t effectively get the mentors up-to-speed, I think we’ll have to limit the number of kids we include in these classes.

    What do you think?
    Curriculum development/tuning:  I’m going to reach out to the group you pointed me to below, and also to people online that have done some good tutorial development to see if there are some existing curriculums that we can lean on.   

    Also, I do see this as a multiple-session thing.  We can try to design the sessions to keep them as independent as possible, in case people miss, but that’s probably not going to be completely possible.  For people that miss, I think we can provide a template project that they can use to start the next session that will provide the base they need to proceed from.

    Do you have other people with experience that are interested in developing a class?  I think it would be interesting to bounce ideas around with someone…

    Also, what age group would you see doing this class?  I have a 9-yr-old that I do modding with, but she really can’t do it independently.  How much do we need to target ages and curriculum so that kids are able to do the work with minimal assistance?  Or, is it ok to say that we expect that parent assistance will be required?  The challenge with creating mods is that ground-zero still assumes that you have some development experience (experience w. dev environments, languages, etc.).  I know we could develop a class that would let kids do some basic (and interesting) things if they follow the instructions we provide, but they’ll need to fall back on some real development skills if they go off-roading…. and I don't think that many pre-teens would have that level of experience.  (I may be wrong here… you’d know better than me.)
    Github:  I have a Github account.  Are you putting all CoderDojoSV materials in a single repository, or have class developers all created their own.  How can i get involved with the other mentors/class developers?  Are there aliases or other means you use to communicate?

I’m sure there are things I’m missing.  I’m interested in any and all thoughts at this point. 
Looking forward to working with you,
David.
Sent from Windows Mail
From: get2greg
Sent: ‎Monday‎, ‎December‎ ‎30‎, ‎2013 ‎6‎:‎27‎ ‎PM
To: David Huntley
Cc: Brian Skinner
FYI…
David,
Might be too easy for you and your daughter, but curious what you might think of it.  Assuming they will do hacking of Java code?
Let me know if you have any ideas in mind for a CoderDojo version, and if you are thinking of a one session or multi-session model.
Hope your holidays are going well.
@Brian, perhaps one of our first 6 week sessions should be on Java, then follow with a Minecraft modding session??
Marcy
Begin forwarded message:

    From: get2greg <[email protected]>
    Subject: Fwd: Invitation: Minecraft Modding Workshop - Afternoon Session
    Date: December 30, 2013 10:58:20 AM PST
    To: jamie heston <[email protected]>, aileen mosig <[email protected]>
    Begin forwarded message:

        From: Devoxx4Kids-BayArea <[email protected]>
        Subject: Invitation: Minecraft Modding Workshop - Afternoon Session
        Date: December 30, 2013 10:54:01 AM PST
        To: [email protected]

            Meetup  

        NEW MEETUP
        Minecraft Modding Workshop - Afternoon Session
        Devoxx4Kids-BayArea
        Added by Arun Gupta
        Sunday, January 19, 2014
        2:00 PM
        Hackerdojo
        599 Fairchild Dr
        Mountain View, ca
        Price: $10.00 per person 
        Pay online
        Will you attend?
        Yes

        No
        3 Devoxxians attending, including:

        Kevin Nilson
        "I love coding and teaching kids to code."

        Arun Gupta
        "Technology enthusiast who loves to teach computer science to kids."

        Menka Gupta
        "Parent of a 11 yr old who loves to mod Minecraft in Java, Robotics and much more."
        Minecraft is a multi-player game about building and placing blocks in a three-dimensional environment. The game was originally built in Java but has been ported to Android, iOS, and XBox 360. The game allows modifications (known as “mods”) that c...
        LEARN MORE
        Unsubscribe from similar emails from this Meetup Group
        Add [email protected] to your address book to receive all Meetup emails
        Meetup, POB 4668 #37895 NY NY USA 10163
        Meetup HQ in NYC is hiring! meetup.com/jobs

Brian Skinner
Founder, Breakout Mentors
Teaching Kids Programming with a Focus on Fun
650-669-8789 | BreakoutMentors.com

Minecraft Modding Educational Resources

There's a whole slew of existing Minecraft modding text and video tutorials, many of them quite good. Let's use this topic to capture those that could be especially useful in setting up a Minecraft modding curriculum, or for giving out to students as reference material or recommended follow-on exercises.

  • Bob Frietas' Minecraft Forge tutorials. Bob has put together an excellent set of written tutorials that take readers through modding many of the basic object types using Minecraft Forge. [Edit: Just discovered that he also contains a PPT (click "vew raw") that indicates it may have been used for a session in the Dublin CoderDojo. Val, would love to talk to Bob. See prev. email]
  • Vswe's "Forging a Minecraft Mod" summer course. Vswe has invested a great deal of time creating courses and training material not just for Minecraft, but also object-oriented thinking, basic Java programming, etc. (see Course page for list of courses)

    These are unique in that they are designed as formal online self-study courses, complete with video lectures, end-of-unit study materials and exercises (e.g.), and an end-of-course project (e.g.) that he will actually grade for you. It's entirely free. If anything, the idea of having additional study materials is something we should consider for all of our series courses.
  • How Minecraft (and Forge) Work. This author has filled a gap by creating a set of posts on conceptual topics about Minecraft modding using forge.
  • Index of Minecraft Forge tutorials. Index of available tutorials. Varying levels of sophistication.

South Bay CoderDojo Minecraft Sessions

First session is planned to happen next week on the 28th of Jan.
Overview:

Session Title:
Learn to Program with Minecraft Plugins (1)

Description:
If you enjoy creating in Minecraft, but sometimes feel the built-in capabilities of the game are not enough and you want to do something more? Then this Coderdojo session is for you. Since, Minecraft is based on the Java programming language this session will introduce you to Java, so you can code your first Minecraft plugin. Unfortunately, programming in Java can feel hard and confusing. This session will try to avoid the complications of the language and focus on the basics to get a simple plugin working. We'll start with setting up your own CraftBukkit server and then code a simple plugin using Java.

For beginners, there is a lot to learn and limited time. Beware that this session could turn into multiple sessions depending on how far we get in an hour and half.

Session prerequisites:

  • Must have purchased Minecraft

  • Download and install latest Sublime Text editor: http://www.sublimetext.com.

  • Install Java programming language: http://www.oracle.com/technetwork/java/javase/downloads/index.html
    And make sure the two commands work in a new shell. (Note: results may be a little different, but make sure it's version 1.7.x)

    javac -version
    javac 1.7.0_25
    java -version
    java version "1.7.0_25"
    OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
    OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

  • Download CraftBukkit: http://wiki.bukkit.org/Setting_up_a_server

  • Windows users must install BusyBox by downloading from ftp://ftp.tigress.co.uk/public/gpl/6.0.0/busybox/busybox.exe and create the following shell.bat file on Desktop.
    ;shell.bat used to start shell
    C:\Windows\system32\cmd.exe /c sh.exe -l

(1) Note: Material based on the book "Learn to Program with Minecraft Plugins" by Andy Hunt

Basic schedule
(1) 6-6:30 - Env help, play, pizza arrives
(2) 6:30 - 7:00 - Install CraftBukkit and learn how to start server and connect into a server. If they get this easily have them connect to each others servers and have fun! Maybe teach them about finite state machines.
(3) 7:00 - 8:00 - Code simple plugin (begginers - hello world, intermediates - flying creepers, gurus - Cow Shooter or surprise us!)
(4) 8:00 - 8:30 - Q&A and/or show and tell

Note: not going to get to much into details of the code during this session. Will be breaking down coding details in future sessions. I'm working on getting handouts together with all the details so parents/mentors can help the kids that fall behind.

Also, would like to record this session so others can view it that can't make it. For those that missed this session and want to attend future sessions will know what they missed and can easily make up the information so they are not behind others that were able to attend. Does anyone have knowledge or ideas on best way to record / stream these sessions?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.