Klik n Java?

Ok…so what do you think? Was surfing this morning and ran across a few Klik n Play sites. I remember messing around with this years ago (before it became The Game Factory). So here is the question:

What about a similar tool that outputs Java code to help visually teach object oriented programming to students?

All comments/rants welcomed!

-ChrisM

Ok, so some more thoughts…

I just got done playing a game called “Super Ken Senshi” http://www.faind.com/file.asp?id=17. For all of you who are twitch gamers, this game was SO much fun to play! It is like Raiden or Xevious and really fast. Again, built with the point and click interface of The Games Factory.

There is a lot of emphasis right now in the games industry on development tools. One area of tools that currently falls down is focusing on kids in school. I’m sure that most of us here got our start in grade school (my first full game was on a VIC 20) so what is available today that allows kids to make games like SKS but in Java?

-ChrisM

I remember Klik 'n Play. The problem was that it wasn’t all that great of a tool. It more or less allowed you to assign basic AI and trigger events to a 2D board. IIRC, it didn’t even do scrolling, and there was no way to dynamically create objects at runtime. Thus you ended up with a lot of “Pong” or “Breakout” type variants where a bunch of objects bounce around and trigger events.

Now a successful product was that 3D game toolkit that was advertised in PC Gamer for a while. I don’t remember what it was called, but it let every Tom, Dick, Harry and his Grandmother create a first person shooter that was slightly more sophisticated than Wolf3D. I actually saw quite a few creative games come out of that toolkit.

Unfortunately, it was always easy to tell that they had used the toolkit. The toolkit developers had decided (probably for performance) that only half of the vertical space would be visible at any give time. The rest of the was required to be your health and ammo panel. Most games had a very nice skin for this panel, but it still took up too much screen real-estate. Not to mention that Wolf3D (from years before!) had used floating statuses instead of an obscuring panel. The result was that the games actually looked older than Wolf3D itself!

Edit: Here’s a whole mess 'o game creators: http://www.ambrosine.com/resource.html

Thanks for the reply JB. I have seen this list before. The question isn’t if there are dev kits out there but, rather, ones that provide a really simple interface for students. Most of these kits are designed from the developer’s personal perspective, not from a n00b looking in from the outside.

For example, while it is becoming quite sophisticated, DarkBasic still leaves a lot to be desired. Likewise, ask the GarageGames folks about Torque and they will tell you how difficult it still is for even seasoned developers to use/port.

What I am looking for is somethign in the KnP style of interfaces that teached concepts in a very visual way for grade school kids.

With regard to game sthat look like the tool kit, you should really check out the Super Ken Senshi game I mentoned below. It is pretty good :slight_smile:

-Chris

BTW, the discussion around a toolkit for children is one that Scott McNealy and I have discussed and there is great personal interest here…

What’s needed is BASIC, basically… with some simple sprite engine in it.

Cas :slight_smile:

[quote]What’s needed is BASIC, basically… with some simple sprite engine in it.

Cas :slight_smile:
[/quote]
NNNoooooo…:slight_smile: What is needed is a graphical, point and click interface that presents object oriented programming in a visual way. Not easy to decipher languages but a visual game creator. The idea is to introduce these concepts to people just starting to learn about programming.

-ChrisM

[quote] NNNoooooo… What is needed is a graphical, point and click interface that presends object oriented programming in a visual way. Not easy to decipher languages but a visual game creator. The idea is to introduce these concepts to people just starting to learn about programming.
[/quote]
A point and drool interface, eh? These can actually hurt programmers quite a bit, as they can encourage laziness in dealing with logic. That being said, they can be very powerful when they allow the user to produce bits of code that interact with the system. A perfect example of such a tool is the Robocode “game” which allowed players to write AI routines to control the battling robots. (Robocode is really a Java port of an old Logo game.)

[quote]Thanks for the reply JB. I have seen this list before. The question isn’t if there are dev kits out there but, rather, ones that provide a really simple interface for students. Most of these kits are designed from the developer’s personal perspective, not from a n00b looking in from the outside.

What I am looking for is somethign in the KnP style of interfaces that teached concepts in a very visual way for grade school kids.
[/quote]
Yet flexible enough to produce most forms of 2D games, right? Hmmm… I think that’s doable.

[quote]With regard to game sthat look like the tool kit, you should really check out the Super Ken Senshi game I mentoned below. It is pretty good :slight_smile:
[/quote]
I can’t play the game since I’m on my Mac at the moment, but the screenshots do look impressive. I wonder how much more advanced “The Game Factory” is over its predecessor “Klik 'n Play”? If I can snag some time at some point, maybe I’ll look into that.

[quote]BTW, the discussion around a toolkit for children is one that Scott McNealy and I have discussed and there is great personal interest here…
[/quote]
You should ask Scott if he’s willing to invest in developing such a product. The gears in my head are still turning, but I think that such a product would be pretty easy (if not a bit tedious) to develop. The idea would be to have a standard set of Java components that can be wired together inside the GUI. For example, a Sprite is an obvious choice. But how should it behave? We could place enemy AI objects on it, or we could assign it to the user. If it’s assigned to the user, then do the arrow keys move it up, left, right, and down, or forward, back and rotate? Again, two different components assigned to the object.

The tilemap could be assigned the same way. Does the user want the screen to scroll automatically, or does he want to attach it to the player’s position. (i.e. The difference between a shooter and a platformer.) Sprites could then be grouped into Collision Groups, with standard toolbox events being assignable to each Collision Group interaction.

The product could even allow the user to specify a “Custom” component for a given controller. This choice would then drop the user into an Editor that allows him to complete the methods for a given Java interface.

Hmmm… Darn you ChrisM! Now the idea is playing out in my head, and I seriously considering coding it! :wink:

Honestly, though. Find out how interested Scott really is. I certainly wouldn’t mind quitting my current job in favor of developing something like this. :slight_smile:

IBM’s been there, patented that, and got the kudos, about a decade ago. One of my friends was featured as a co-inventor on one of the patents to do with using beans as a basis for visual programming. My first introduction to beans was as a way of creating point-n-click IDE’s - it took me a long time to discover they were really a lot less focussed than that, and used for much wider purposes.

So. I would suggest you find out what happened to IBM’s work on point-n-click IDE’s. There were some promising demos around in the late 1990’s in the research lab, but I wasn’t particularly interested so don’t know how many ended up in products. I would be suprised if nothing at all came of it, though. Search through alphaworks, perhaps?

And … you need to be wary of the patents.

Who knows? Maybe those IBM people involved have already moved to Sun by now :). Cross-transfer of people seemed to happen quite a lot.

Maybe you’re thinking of AppletAuthor? It seems to have died a horrible death, along with the disappearance of applets. Or perhaps it was the grandparent of the Websphere applet editor? That thing was kind of neat, but I never really spent all that much time with it.

[quote]Maybe you’re thinking of AppletAuthor? It seems to have died a horrible death, along with the disappearance of applets. Or perhaps it was the grandparent of the Websphere applet editor? That thing was kind of neat, but I never really spent all that much time with it.
[/quote]
I believe the latter. I remember vaguely that a derivative ended up in a product that began with V or W (which, being IBM, means either a VisualAge or Websphere component).

Actually…Sun has developed the very first visual construction toolkit for Java back in 95. Was released as “sampleware” and never went beyond the demo stage. I remember using it to develop a small web cam application that we demoed around the tech centers. Was really cool and let anyone develop simple apps but it never really moved beyond the “isn’t that cool!” phase :frowning:

What I am talking about is something that is aimed at children, not seasoned developers.

-ChrisM

[quote]Actually…Sun has developed the very first visual construction toolkit for Java back in 95. Was released as “sampleware” and never went beyond the demo stage. I remember using it to develop a small web cam application that we demoed around the tech centers. Was really cool and let anyone develop simple apps but it never really moved beyond the “isn’t that cool!” phase :frowning:
[/quote]
I assume you’re talking about the BeanBox? I remember playing with that, but the idea of connecting beans never quite made sense to me. In fact, it had always seemed like an attempt to trump ActiveX, which itself was an attempt to trump Java Applets. Oh, the tangled webs we weave. :slight_smile:

[quote]What I am talking about is something that is aimed at children, not seasoned developers.
[/quote]
I think Blah’s point was that such a design is potentially a patent minefield. Truthfully, though, that’s true of just about any software. You never know who might have a patent that kinda, sorta might apply to what you’re doing.

Back on topic, I’m not really envisioning anything like a bean builder. I’m more envisioning something more like a standard GUI builder crossed with a Klik n’ Play type of interface. There would be various objects that you could prototype in the system, each with its own properties that could be modified. Some of those properties will involve making connections with other objects, or assigning behaviors from the toolbox. Add in a TileMap editor, and you pretty much have a complete system.

The only time the user (perhaps a child) would need to touch code, is if they want to explicitly write their own behavior objects. In those cases, the user would be presented with a new copy of a class that implements the given behavior interface. By simply completing the various methods of the class, the user can quickly and easily code new components. It would even be feasible to allow users to upload their custom components to a central website. That way when another user runs into a component he needs, he can browse other possible components.

Am I getting close to what you have in mind, or not?

Sure. I only brought it up because:

  • I know IBM managed to get some patents on it, and I hate patents, and the existence of them is always something to be wary of - especially if you’re big enough for them to feel it’s worth the effort bugging you :(. As a Sun staffer, I thought you’d be better off pre-warned that over-zealous lawyers might tap you (the fact that their case is groundless, or that they have no idea what you’re really doing, rarely stops IP lawyers :()

  • it was aimed (at least by some people involved) at IBM’s corporate customers with their vast numbers of non-programmers. IBM back then still worshipped at the alter of REXX (the programming language developed many years previously by one guy in his free time that enabled untrained Joe Public (especially middle management) to program mainframes, and not only made a generation of managers feel more comfortable about the machines but also freed up a lot of time by letting them do the stuff that nowadays similar people learn to do with VB macros in Excel: they knew enough to be able to automate their own tasks). So…it may have some really useful inspiration in it.

(historical note: REXX’s author got the red-carpet treatment from IBM for inventing REXX. I think IBM had been looking for a modern-day replacement for REXX for a long time. Java wasn’t quite it (although no doubt the parallels were part of what made IBM so keen on java back in the early days - they’d been there before and immediately recognized a part of it’s potential))

  • was taken to production quality and included in commercial software that IBM was charging expensive per-seat licenses for at the time (hence it was more than just a skunkworks project; what I wasn’t sure of was how much of it got cut by the time it got to production)

If you want to look at who came up with the ideas first (ignoring patent decisions in the area) then it was really Smalltalk that spearheaded in this area (and IMHO was using the same paradigm as IBM’s use of javabeans - but decades earlier), and was specifically designed for this use-case. I haven’t worked for Disney, so I haven’t seen what’s been done with it except in demos.

So…if you were serious about wanting to do this best, I’d hazard that you have to take a Smalltalk derivative. It really is very good for non-programmers. FYI I cloned some of the ideas from smalltalk to use in the GrexEngine architecture to make it considerably easier to do certain programming tasks.

BINGO! :slight_smile:

-ChrisM

Sounds like a super generalized level editor or something.

Which reminds me, I need to get back to work on this jsgc thing down in my sig…

Good. Now convince Scott to shell out a $50,000 investment and I can have the software for you in six months. ;D

There are a wide varity of Logo based, a programming language designed for kids, applications which are more or less controlled through a graphical userinterfaces. Don’t have any good links though since it’s years since I touched the subject in a college course, shouldn’t be to hard to google for it though.

I always thought that Logo was just the best way to learn programming. Or at least, turtle graphics - the Logo language was a bit odd.

Imagine a turtle graphics system where you could steer the turtle around, and it wrote the commands for you in a script which you could then name. Then you could continue recording, and just click an existing script to insert a procedure call.

That’d be a great way to start.

Cas :slight_smile:

Have you guy’s seen the programming interface that LEGO did for their Mindstorms RIS block?

http://mindstorms.lego.com/eng/products/ris/index.asp

(I’m not sure how well supported it is theses days ut it did have a good following at one point)

Basically it worked just like lego you dropped logic blocks and sensor blocks on a screen and they fitted together in various ways like LEGO bulding blocks. This was really well aimed at kids as the blocks were big and chunky with bright colours.

The RIS block was then used to control real LEGO robots that you had built. Really cool stuff! (I’m a big kid really)

Am I right in thinking that you mean something similar in OO?

Dan.

[quote]Have you guy’s seen the programming interface that LEGO did for their Mindstorms RIS block?

http://mindstorms.lego.com/eng/products/ris/index.asp

(I’m not sure how well supported it is theses days ut it did have a good following at one point)

Basically it worked just like lego you dropped logic blocks and sensor blocks on a screen and they fitted together in various ways like LEGO bulding blocks. This was really well aimed at kids as the blocks were big and chunky with bright colours.

The RIS block was then used to control real LEGO robots that you had built. Really cool stuff! (I’m a big kid really)

Am I right in thinking that you mean something similar in OO?

Dan.
[/quote]
The Lego stuff was interesting but very limited. Logo, interesting but provided nothing useful. The idea behind a visual construction tool to teach kids is that it is open ended, something can be rapidly designed and executed immediately and is flexable enough to allow several different generes of games to be created.

-ChrisM