The Source for Java Technology Collaboration
User: Password:



Simon Morris

Simon Morris's Blog

80 Sprites - Beat That!

Posted by javakiddy on June 13, 2006 at 09:41 AM | Comments (10)

Go make yourself a fresh brew. This could take some time. This is my first blog for java.net, and I'm gonna start with a biggie...

There's apparently an old Jesuit motto which goes "give me a child until he is seven and I will give you the man."

I suppose in a modern consumer orientated society this would roughly translate as "catch them young, and they'll be hooked for life." Certainly many popular brands seem to think so. Casting a glance back to my own childhood, I recall when banks suddenly started offering all manner of goodies to any passing ten year old who would open an account for the princely sum of one pound Sterling (with the Queen's head on, no less.) Why bother? It'll be years before they even get a job - let alone a mortgage, two point four children and an overdraft to feed. The idea, in case you hadn't realised, is to hook them as children and hope you can keep them on the line long enough to reel them in as adults.

(What does this have to do with Java? Be patient... I'm getting to that!)

I was always somewhat sceptical of just how loyal a customer would be at twenty just because you offered him a free t-shirt and a Debbie Harry or Sting poster at age ten. (I wish my bank would give me a Debbie Harry poster - I'd readily switch account to get junk mail like that!) But clearly there's some method in the madness, judging by the way companies vie to get their product in front of the faces of the young and innocent. Many years ago a friend of mine did a word processing course at night school. A few weeks in, she consulted me as to what computer to buy for her home, armed with a 'wish list' detailing pretty much item for item the brands and versions she had used in the classroom - despite the PC maker having gone bust some eighteen months earlier.

Right, time to go off at a tangent. I'm a child of the Seventies. And like many of my generation I wasted my teenage years playing video games on home computers with strange names like the Amiga, Dragon 32 and C64. Actually, that's only partially true. In truth I spent twenty minutes playing video games, got bored, and fired up a reset cartridge, poking around the code to see how it worked.

(Yeah yeah yeah, Java. I'm getting there... be patient...)

It was a golden age. (Cue sepia tint and hazy border.) A floppy disk the size of a house could store literally dozens of kilobytes of information, printers made deafening 'klakity klakity' noises, and you could impress your mates no end by throwing 80 sprites on a Commodore 64 screen at once. Yes 80! Yes, all at once! I can tell you're in awe!

(Y'see, the C64 only supported 8 hardware sprites, but by firing raster interrupts at positions inside the screen's side borders, one could... hey wake up! This is interesting! WAKE UP!!)

All over the World back bedroom coders (average age probably in their early teens) were hacking away at Sinclair BASIC, or 6502 Asm, or STOS/AMOS (or if you were REALLY brave, Blitz) and churning out wave after wave of small time games and demos. That scene began to die at the start of the Nineties. Games programming moved from the shadowy, sleep deprived, nocturnal world of the amateur, into modern air conditioned, open plan world of the professional. Now few kids who own a PC know the first thing about programming - that thirst for home brew creativity has largely gone. They ported Blitz to the PC and Mac a few years back, but the market for fun home made stuff is pretty much dead on desktops.

But is back bedroom coding due for a revival?

Perhaps not on the PC, but other content vendors are starting to wake up to the benefits of encouraging amateur contributions. We hear even Microsoft and Sony plan to open up the online communities created to service next-gen consoles to allow home brew content.

But what does this have to do with Java?

Tangent time (again!) Y'see while everyone in the Java community was busy yakking long into the night about "web apps this" and "enterprise that" ('Rails, Grails and puppy dog's tails') a quiet revolution was going on in the Micro Edition sector. Java got accepted as part of the official standard for Blu-ray content authoring. This means that every next generation DVD player based on Blu-ray (yes, even the very very famous one due for release by Sony at the end of this year) will support Java. If Blu-ray succeeds, it will create a huge beach head in this market, from which Java can push out further into other consumer devices. While all the desktop folks are fretting about getting Java on a few more million desktop PCs, Java ME is embarking on a journey which could very well see its installation base measured in the hundreds of millions.

Assuming all goes to plan and Blu-ray does what's expected, what will we end up with? A ubiquitous platform - readily accessible in every living room, bedroom, and office around the developed world. Games can be burnt onto BD (Blu-ray Disc), copied and played by simply popping them into a domestic BD player or BD equipped PC. And this platform is 'network aware' - it can download and run content from remote locations. And this platform uses a programming language which is modestly novice friendly (ignoring Generics, perhaps.)

Can you see where this is leading? No? Let me put it this way: if you were a young kid making his first steps into the world of programming, which would you rather be doing - writing desktop apps in Microsoft Visual Doo-dar, or coding games in Java for the Playstation3 and other BD players? (Hmm - slight difference in the glamour/kudos stakes there!)

If Sun can package Java such that it is attractive to home brew coders - in the same way that STOS or Blitz did two decades ago - then it could create an army of pre-pubescent Java programmers, and pump Java's 'kewl' rating up by a few dozen points. Yes, most of them will fall by the wayside - they'll write a few unremarkable demos and then loose interest. But some will get sucked into the heady world of coding, leave school with their thirst intact, and wind up in developer roles at big companies. And the language which nurtured them through their formative programming years will be.... JAVA!

For those of you who haven't had your caffeine fix today, let me sum it up in a nutshell: the likely upcoming influx of media-rich Java enabled devices into the home, coupled with the sudden interest (in high places) of supporting home brew content, gives Java an unique and unparalleled opportunity to generate a new community of young hobbyist coders. They may not generate much revenue by themselves, but getting Java in front of them at the start of their programming career could pay off big time in years to come.

Let me finish by throwing out a few ideas - completely off the top of my head - as to what needs to be done:-

  • We need to create a dumbed down version of Java suitable for complete novices. Perhaps stick with the 1.4 language spec (to avoid Generics), simplify the compiler error messages so you don't need a degree to understand them, and give it an IDE a 12-year-old kid would be able to master without supervision.
  • We need tutorials and books which don't assume the user works in a cubicle in some anonymous office. Keep it simple. Use eye candy. Make it fun fun fun!!!
  • The minimum kit spec should be low. Your average teenager hasn't necessarily got thousands to spend on a computer to write his stuff on.
  • We need to create an API for Java ME which REALLY makes it fun and easy to create games. Even if the API is a little limiting in what it can do, that doesn't matter. It's purpose is to allow said 12-year-old to get something fun up on screen ASAP which he can brag about to his 'homies'. (See, I can chill with the street talk, daddyo!) More advanced coders will progress to the underlying low level APIs anyway.
  • We need to put everything in one place. You shouldn't have to download multiple different bits and pieces to start coding. It should be one download for the IDE, compiler, emulators, graphics tools (sprite editors, etc) and hand-holding tutorials combined.
  • We need to start pushing Java as a friendly, safe, easy and fun way to create home brew content on phones, DVD players and Playstations. We need to really capture the desire (the spirit) of every young boy (or girl) to write their own games content. (Go check GameFaqs.com - there's millions of them who all "have a kewl idea for a video game".) So what if most will only write a Pac-man clone? At least they're having fun - but more importantly they're having fun USING JAVA! People REALLY must believe they can make these strange boxes underneath their TV sets dance and sing to their own tune - and that Java is the key to making this happen.

Anyway, that's my rant for today. If you survived this far, thank you for reading. Next time I promise I'll write something a little shorter - maybe a summary of War and Peace(?)


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • a quiet revolution was going on in the Micro Edition sector.

    quiet? Java ME has been hyped since 2001 or so ;-)

    i like your plan though....Java will be the main programming platform for all these cool devices - wouldn't it suck if the youn 'uns give up (or get a bad impression of java) because of the difficulty or tedium of programming? It's times like this when scripting languages (groovy?) can come into play....

    Posted by: asj2006 on June 13, 2006 at 08:16 PM

  • Nice idea, but not without its challenges. In the early 80s it was fun to see the numbers 1 to 9 racing across the screen (horseracing - place your bets). Maybe that would still be fun for a kid that created it , but there may also be a crisis of rising expectations. I remember trying to teach an evening class in BASIC when everybody was expecting to create full-featured games with moving graphics by the end of the course...
    Robocode seems to have done well in pulling in some beginner programmers, but that quickly got heavy on the maths, and was light on the programming, which I suppose isn't such a bad lesson after all. The devil is always in the business details.
    My daughters wanted to create a game where they could dress up dolls on the screen. I set them drawing everything in gimp and then puzzled it together in an html page. That was fun for them for a while. What they really wanted for the end was for the dressed-up doll to dance to music, but we never got there. An animation-lab would have been needed.
    In the end programming is just a means to go where you want to go. My brother learned programming from hacking (to cheat) the BASIC-game "cells & serpents" which I had input from a book or magazine. So where would these "victims" want to go?

    Posted by: tobega on June 14, 2006 at 01:33 AM

  • Nice article! I would argue though that I had more fun writing simple games on my Dragon 32 than I ever did with STOS, but as I have ended up a coder, maybe that was due to the type of person I am.
    I am just hoping with BlueRay that;
    It actually makes it into the final hardwareThey standardize the API NOW, and we don't end up with the mess that the mobile phone implementations are in now (though admittedly, that's improving greatly)And I still have my Griffin Savers dictionary...though not the account that I got it from ;-)

    Posted by: timyates on June 14, 2006 at 06:05 AM

  • As long as there is a stable published API, kids should have a blast! It doesn't even matter how good the API is: we made it through Apple ][ shape tables, they'll be just fine.Geez, I wish I was young again!

    Posted by: cajo on June 14, 2006 at 06:40 AM

  • You might want to take a look at www.simple.org.
    simpleJ emulates a simplified computer on your PC: a retro-style video game console that lets you understand how a computer works and write your own video game programs.
    The first microcomputers were quite simple. They had a few kilobytes of memory and couldn't run large programs. Many didn't even have an operating system. Yet they had something valuable: understanding everything about their hardware and software was easy. simpleJ aims to make this possible while running on modern PC hardware.
    simpleJ is free Java software (GPL) and a java.net project (under the name "ienjinia" in the GELC Community).

    Posted by: magoghm on June 14, 2006 at 06:56 AM

  • You know, why does everyone think coding in scripting languages is easier? With autocompletion and refactoring in all Java IDE's, I don't see how it could be any easier than that?

    If we were forced to use only vi, well then maybe you'd have something to think about...

    Posted by: ilazarte on June 14, 2006 at 07:29 AM

  • I don't much care whether Java is the key. I don't have a religious attachment to it. And I don't work for Sun. That said, I agree that it would be a big blast if Blu-ray and/or the PS3 and/or any other such platform could bring back the Amiga attitude. (I guess I admit I was an Amiga user.) And no strong need in the world for this. It would just be a lot of fun, I agree.

    Posted by: tjpalmer on June 14, 2006 at 07:38 AM

  • You don't NEED to put in effort to create a simple yet powerful API. The commercial world will do that for you!
    20 years ago, kids may have been happy to have some numbers racing on the screen, but nowadays, they fire up the 3D BSP map editor for Half-Life2. They won't bother learning a scripting language to create a game from scratch. They'd rather learn the scripting language that controls the AI in Counter-Strike.

    Conclusion: you don't need to draw in nerdy 15-year-olds. You need to draw multi-million dollar companies. The crowd will follow.

    Posted by: bahuman on June 14, 2006 at 07:47 AM

  • A great tool for getting people started having fun creating apps in java is processing. Check out processing.org.

    Posted by: liminal on June 14, 2006 at 08:56 AM

  • Way to go Simon,
    I spent a week teaching some angry young men about programming and Java using Robocode. Programming battle tanks to anhilate each other was the perfect "hook", and it got them engaged (although they mostly looked at the code to learn how to cheat).-JohnR

    Posted by: johnreynolds on June 14, 2006 at 09:06 AM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds