My latest project: a 3D drag and drop programming environment for BlueJ

Hey guys, just thought I’d share what I’ve been working on recently, and also thank you all for a wonderful 3D engine and community!



My primary project is an educational 3d engine (http://env3d.org) designed help teach Java to first year university students (intro to programming type courses). At its core, my “engine” is really a wrapper of jME, with lots of tools built around the BlueJ IDE so students can get up and running very quickly.



Generally, students respond well to this way of learning how to program, and other schools have also incorporated env3d into part of their programming curriculum – many of these are high schools. So all you awesome monkeys can take pride in the fact that the next generation of programmers are learning with, and being inspired by jME!



Ok, onto the new project. I was really impressed by all the work you guys are doing with the SDK, especially with the scene composer. A good “drag-and-drop” tool can help developers create a great looking game quickly. I wanted something like that for my students also.



Using the scene composer as my basic idea, I took cues from both Alice (a pure drag-and-drop 3D learning environment), and Greenfoot (a 2D Java programming tool) to come up with the env3d scene creator:



http://youtu.be/8DoFoD6Kw9Y



As you can see, it works very much like a simplified version of the scene composer, with a generated framework suitable for learning OOP.

Well that's what I have so far, let me know what you think!

EDIT: Now also available on NetBeans:
http://youtu.be/hunI41JR_SI
5 Likes

That is very, very cool :slight_smile:



Some questions,

You must like it or you wouldn’t base a project around it, but what are your thoughts on the way students learn with BlueJ? As someone who started out programming with Notepad, I tend to be a bit suspect of such tools but have read interesting things about the way newcomers respond to the visual nature of programming.



Expanding on the aforementioned visual nature of programming, how much of the core 3D concepts are being taught to the students? When people occasionally show up on the forum saying “I started taking a Java class last week… I’m here to make a game!” we usually respond with something along the lines of “become comfortable with Java and programming before diving into jME”.



You introduced this as a tool to “help teach Java”, so it seems that teaching the concepts of programming to them are foremost… Have you found out whether or not students are further engaging in programming at an extracurricular level? From my own experience, and I suspect that of others as well, I needed to work on a project that I was able to enjoy and see a real purpose to before I got bitten by the programming bug.



Again, great work you’re doing!

Super Cute!!! :smiley:



I have the same questions as sbook.

Thanks sbook, here are my answers:


You must like it or you wouldn’t base a project around it, but what are your thoughts on the way students learn with BlueJ? As someone who started out programming with Notepad, I tend to be a bit suspect of such tools but have read interesting things about the way newcomers respond to the visual nature of programming.


My first computer was a 5Mhz PC-XT (yes I am totally dating myself!). I learned to program with BASIC on DOS, and then moved on to Pascal and C, all in a text-based environment. So I was naturally against fancy tools also when I first started teaching. The reality, however, is that the goal of a modern introductory computer science course is more about programming "concepts" rather than using tools like a proper text editor / command-line (these are more "advanced" topics for students that want to continue on with computer science). Therefore, intro courses often rely on more visual programming environments to shield students from the "behind the scene" details, and focus on topics such as variables, loops, conditionals, list processing, etc.

Expanding on the aforementioned visual nature of programming, how much of the core 3D concepts are being taught to the students? When people occasionally show up on the forum saying “I started taking a Java class last week.. I’m here to make a game!” we usually respond with something along the lines of “become comfortable with Java and programming before diving into jME”.


Computers are so powerful and pervasive nowadays that kids going into introductory programming classes expect to achieve great programming feats (like creating their own 3D video game!) after just one course. In a traditional intro computer science course, kids soon realized that programming is hard work and that they would not be able to do anything "useful" for a long time, so they lost interest and abandon the field altogether.

What I am trying to provide is the illusion of power ;). I actually don't cover any 3D concepts at all (nothing beyond high school level math). The added value of env3d, in my opinion, is the fact that students can start doing "3d stuff" right away -- all they need is to understand is the cartesian coordinate system to get started. Of course they'll hit a wall eventually if they decided to do more complex stuff, but by that time, they would have learned enough Java to cross over to jME. BTW, env3d exposes certain parts of jME so programmers can have full control over the scene graph and have access to many of the jME features when they are ready :)

You introduced this as a tool to “help teach Java”, so it seems that teaching the concepts of programming to them are foremost.. Have you found out whether or not students are further engaging in programming at an extracurricular level? From my own experience, and I suspect that of others as well, I needed to work on a project that I was able to enjoy and see a real purpose to before I got bitten by the programming bug.


Every term, I have students that got so motivated by the whole 3d programming experience that they spent hours and hours of extra time working on their final project, way beyond the requirement of the course. You hit it right on the nail -- programming enjoyment comes from having real projects to work on. Kids (and adults like me) like video games, so programming games gives them the motivation to keep going even when the programming gets hard.

Thanks for the questions and feedback.

hehehe ^^



That would have been nice in school, ^^

Instead of doing what i was told to, I spend the time in Greenfoot trying to attach a poorly drawn lasercannon to the back of the ant’s and let them fight ^^ XD

@batkid said:
My first computer was a 5Mhz PC-XT (yes I am totally dating myself!).


You youngsters with your "modern computers". :)

In my day, I had to envy my friends IBM PC while programming on a little TI-99 4a. And I felt lucky to do it! Finally, my dad got a Compaq luggable and I got to envy my friend's PC-XT. I used to write programs in BASIC and give them to my friends on a 5 1/4 " floppy so they could try them out because my machine couldn't run them properly.

http://www.youtube.com/watch?v=Xe1a1wHxTyo


Later, I got an Amiga and thought "Now I'll show them." Then watched as Commodore frittered it away. I'd have to wait almost 10 years for Windows to catch up. :)
@pspeed said:
You youngsters with your "modern computers". :)

In my day, I had to envy my friends IBM PC while programming on a little TI-99 4a. And I felt lucky to do it! Finally, my dad got a Compaq luggable and I got to envy my friend's PC-XT. I used to write programs in BASIC and give them to my friends on a 5 1/4 " floppy so they could try them out because my machine couldn't run them properly.

Later, I got an Amiga and thought "Now I'll show them." Then watched as Commodore frittered it away. I'd have to wait almost 10 years for Windows to catch up. :)


lol, I remember those compaq luggables when I was working on my first IT job. Those were so awesome back then. For those of you who don't know, the luggables were basically a huge desktop with a handle and an integrated 5 inch monochrome screen, very cool back in those days. But don't ever tried to actually use those handles for longer than 5 minutes, it'll break your back :)

My friends were playing with Amigas and I really envy them! Those were really cool machines with amazing graphics -- and they had the best games! I think they actually have a project that is suppose to bring the Amiga OS back to life...
@batkid said:
I think they actually have a project that is suppose to bring the Amiga OS back to life...


Here's where a reference to Duke Nukem 4ever used to work but oh so recently doesn't anymore... ;)
1 Like

Nice job

The Scene Creator is now available on NetBeans as well!



http://youtu.be/hunI41JR_SI

1 Like

Nice, does it work in the SDK too? lwjgl cannot create two opengl contexts in one application… But it looks like your editor is a separate application?

I haven’t tried it in the SDK. Would be interesting to see…



Yes, the env3d plugin launches a second instance of Java… a little trick that I used to get around the 2nd opengl context problem :slight_smile:

@batkid said:
lol, I remember those compaq luggables when I was working on my first IT job.


YES, i started programming Q-basic on those things back in 5th grade... Superb graphics :)

Although to add some meat to the thread i think this is a good idea... at least giving people an understanding of object oriented design is very beneficial because it can be kind of a harder concept to grasp if you are just looking at a textbook. Although giving someone the illusion that they can create 3d models with their "supreme coding knowledge" is a little risky...

these are the people who flood the forum with "JME problems" for their MMO's...
you gotta learn to walk before you can run
@kbender88 said:
...Although giving someone the illusion that they can create 3d models with their "supreme coding knowledge" is a little risky...


Yeah I thought about that too... a little knowledge could be a dangerous thing. However, as a teacher, I find students way more motivated when they are programming 3D video games than working on temperature conversion :)


these are the people who flood the forum with "JME problems" for their MMO's...
you gotta learn to walk before you can run


This gives me an idea... For my next project, I will work on a one-click MMO generator...