Imagine being able to create a game that you can run on both the Playstation 3, Playstation 4 and Xbox One, using the exact same source and the exact same disc - without requiring your players to do any trickery such as jailbreaking or modifying their consoles. And also without having to go through a voting or approval process in order to publish your game. Sounds a little bit too far fetched, doesn’t it? Yes it does - but it’s actually true!
“Wott?!?! How?! How is this possible???”, you might ask.
It’s very simple: Use JavaME!
All of those 3 gaming consoles features a Blu-ray player, and Blu-ray players has been able to run Java ever since the very first one was released back in April 2003. Being able to run Java is a requirement of the Blu-ray specification. It’s called “Blu-ray Disc Java” and is abbreviated “BD-J”. (https://en.wikipedia.org/wiki/BD-J)
While this technology is mostly used to code cool menu interfaces for Blu-ray movies, it was also designed to be used for games - and is therefor quite capable as a game-platform.
Unfortunately BD-J never really caught on as a game-platform though. Only two titles were ever created as pure BD-J games (as far as I know): “Dragon’s Lair” and “Space Ace”. (https://www.youtube.com/watch?v=ptztPSq4vyE)
The list of supplemental BD-J games for Blu-ray movies is also rather short. “Bolt” had “Bolt’s Be-Awesome Mission”. “Ratatouille” had “Gusteau’s Gourmet Game”. “Pirates of the Caribbean” had “Liar’s Game”. While those games are all great examples of what you can do with BD-J, it’s just a very short list, isn’t it?
There was a lot of developer interest in BD-J back in 2008-2010, but it seemed to die suddenly for unknown reasons. Forums got archived and a lot of the links you can find are dead now.
So I think it’s safe to say that BD-J never became a hit, neither with game-developers nor with the gamers. And having personally tried playing “Bolt’s Be-Awesome Mission”, I am convinced that the main reason for this failure has everything to do with the games being targeted movie-watchers rather than gamers. Because movie-watchers use a normal Blu-ray player, which means lousy remote controls instead of an actual gamepad, and that makes the games very difficult to play. It would probably have helped a bit if the controls in the games had been re-definable, so that a gamepad could have been used instead, but no such luck.
Since the PS3, PS4 and XB1 all feature a Blu-ray player, developers could easily choose to target these platforms instead of standard Blu-ray players, and thus eliminate the downside of the remote control. As a bonus, we also get a much faster CPU on these consoles. Adding those things up, we end up with a rather wide target group of gamers, fast platforms, good controls, plenty of features, in short; everything you need to create a good 2D homebrew game.
Considering how long these gaming-consoles has been on the market though, you must be wondering why then haven’t we ever heard of any homebrew BD-J games. And that is indeed a good question. I think it’s mainly because of two issues:
The 1st problem is that there’s still a widely accepted misconception about BD-J that you can’t really do anything with it. During my research, I’ve stumbled across statements like: “You can’t use audio” and “You can only use 2 action buttons on the PS3 gamepad”, and “There’s no button-hold functionality”. But there’s just no truth to any of those statements. Also, when I mention BD-J on various forums and chatrooms, I’m often met with “Why would anyone wanna do BD-J dev? You can’t do anything with it!”. And I very much disagree with that.
The 2nd problem is that BD-J games never had any branding of its own. Something to set apart BD-J games from the rest of the content on the Blu-ray disc. Or just something to emphasize that the disc contained a game for this platform. Instead, BD-J games were kind of hidden in plain sight. Nothing on the “Dragon’s Lair” disc or cover indicated anything about the technology used. It just said “Dragon’s Lair (Blu-ray) For PS3” - which kinda indirectly says “Nothing to see here folks, move along”.
This “secrecy” also appears to have had another stupid consequence: A surprisingly big group of people today are convinced that BD-J is all about hacking and exploits - and any attempt at explaining real world facts to this group just fails. So the misconception about BD-J is somewhat of a multidimensional entanglement, all inevitably resulting in a complete lack of interest with both game-devs and gamers.
To address the 1st problem, I will release a simple proof-of-concept game soon called “Ukko’s Journey”, to demonstrate that it’s absolutely possible to create a decent homebrew game with BD-J with lots of various functionality, and run it on all three gaming consoles using the same ISO/disc. Xbox One owners can simply burn the ISO onto a DVD. PS3/PS4 owners need to use a BD-R though. (So a Blu-ray burner is required).
The game will demonstrate 50+ fps on all 3 consoles, ingame music + sound-effects, remembering settings between disc-ejects, 11 buttons on the gamepad usable, internet uploads/downloads of highscores to UkkosJourney.com, and finally; installing a JavaME MIDP version of the game onto your JavaME enabled phone directly from the console via Wi-Fi.
That ought to be a decent first demonstration.
To address the 2nd problem, I think it’s pretty clear, that if BD-J homebrew is to become interesting for both game-devs and gamers, then it needs a new label and logo. So I have gone ahead and invented a clever one (if I should say so myself): “Blu-Play”.
I trust I don’t have to explain it to anyone? This label should be described as “Small-scale homebrew games you can play on PS3+PS4+XB1 out-of-the-box” by news-writers.
“Ukko’s Journey” will be released as the first Blu-Play game to demonstrate Blu-Play to both gamers and game-devs, hopefully breathing new life into BD-J development and resulting in a lot more homebrew games for these gaming consoles.
I have written this post because I’d love to see more interest in Java homebrew game-development targeting these consoles. (As a Java coder, I also think it’s kinda cool to “show off” Java in this way). BD-J is obviously limited compared to native stuff, but it should be plenty sufficient for 2D stuff. Most homebrew games I’ve seen (by selling music at IndieGameMusic.com) is abolutely possible to do with BD-J.
So what do you say? Any JavaME developers out there finding this intriguing?