80 Sprites - Beat That!
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(?)