jMonkeyEngine in a High School Classroom?

Hi, I'm a high school technology teacher who teaches programming among other things. At my high school we have two programming courses. In intro we use a program named Alice to learn about the concepts behind object-oriented programming. In the advanced course the students learn Java (we're using Bluej for an IDE).



Now, I would love to add some 3D Game Development in there but unfortunately most of the 3D game programming material I had found was using either using custom scripting languages or C++. That was until I found out about JMonkeyEngine. Now what I want to know from you guys is:


  1. Do you think JMonkeyEngine would be suitable for a high school classroom?
  2. Also is there a centralized location where I could find step by step tutorials or anything along those lines?
  3. We use Mac's and are currently using BlueJ. Will either of these present a problem. I did some searches and I saw some recommendations to use Netbeans or Eclipse. I actually have Netbeans installed on the Macs as well so should I go with Netbeans?
  4. I was thinking of going with Blender for 3D modeling,  what are your opinions of that?
  5. My students will all have experience with Photoshop and GarageBand, would those be suitable for any 2D and audio assets?
  6. What other software or utilities would it be helpful for my students to know?

This is a very interesting idea, though I think it's success depends largely on how well the students are able to understand programming concepts and conventions after relatively little exposure to it.


MrVargas said:

1) Do you think JMonkeyEngine would be suitable for a high school classroom?


That's dependent on how well they understand the concepts behind OOP and how quickly the class is able to pick up Java.

2) Also is there a centralized location where I could find step by step tutorials or anything along those lines?


The wiki and jmetest packages in the source code are great resources.  There's been a push over the last few months to boost the level/quality of documentation for the engine.  There's always been quality resources scattered about, but finding it has been a bit of a problem.  We're re-organizing the wiki, making sure articles are linked rather than just hidden somewhere, etc.


3) We use Mac's and are currently using BlueJ. Will either of these present a problem. I did some searches and I saw some recommendations to use Netbeans or Eclipse. I actually have Netbeans installed on the Macs as well so should I go with Netbeans?


If I recall, I've heard of one or two people using BlueJ..  If you have Netbeans though, I'd highly recommend going with that.  Not only will it be easier to follow tutorials with regards to setting up projects and make it easier for students to get involved in the forums asking questions, but it will also provide them with experience using a respected Java IDE.


4) I was thinking of going with Blender for 3D modeling,  what are your opinions of that?


Blender's an incredible piece of software.  The fact that its open source coupled with jME's open source nature is an important thing for students today to be aware of.  As far as using jME with Blender models, it works well.  You can export COLLADA, Wavefront OBJ's, or just use blaine's hottbj exporter (ok, the name may cause some problems with high school students :P)


5) My students will all have experience with Photoshop and GarageBand, would those be suitable for any 2D and audio assets?


Photoshop will absolutely be a huge help.  Frankly, not enough people are proficient with that application, visually inclined or not.


6) What other software or utilities would it be helpful for my students to know?


A good knowledge of the way Java works is key.  Many tutorials use third-party libraries, so a knowledge in what exactly a JAR file is, what it means to be on the class path, etc is important to working with jME [or any Java library] effectively.  Audacity is also an excellent open-source sound editor that will provide more 'editing' capabilities than Garage Band offers.

I once got jMonkey onto BlueJ, just to see if I could it (as someone posted a thread asking about it). I posted the steps I followed somewhere on the help forum, so you should be able to search for it.



Honestly, I wouldn't recommend it though. It's rather cumbersome to navigate the source, so if you have netbeans easily accessible, go with that. If your students ever continue with computer science in college, it'll definitely give them a bit of an advantage too.

BlueJ-Instruction:

http://www.jmonkeyengine.com/forum/index.php?topic=9134.msg70582#msg70582




Well, since you can manipulate objects in BlueJ through mouseclicks, it would be some good entry point for Programming.



You have all your object in a View, i think, and then you could easily change locations of Spatials through custom-method invocations. That would mean you just created a editor by using blueJ + jME.

(I use blueJ extensivly for Prototyping, but I improved BlueJ in a way, that i can generate Scripts out of custom-method invocations.)



Would be nice to hear, how jME will be accepted by your students :smiley:

Well JME is kinda nice, however depending on the skill level of your students it may be hard (Depends on knowledge of vector,angle math)



Since you use BlueJ already it may worth a look here http://www.greenfoot.org/, it's a modified BlueJ with a 2d graphic engine, wich may be a good point to start with game programming.