Look up here!
Don't look there! Look down here!

๐ŸŽฎ Pros & Cons of Blu-ray Java: For Decentralized 2D Gaming.


Did you know that Blu-ray is also capable of playing 2D video games? 

Blu-ray uses this graphical user interface and advanced content called Blu-ray Java (BD-J), it's a lot more advanced than the primitive and basic DVD menus.

The technology used to create Blu-ray menus and games has been around since 2003. It's called Blu-ray Disc Java, often referred to as JavaME BD-J. All Blu-ray players run BD-J as part of the Blu-ray specification, which in turn means that PS3, PS4, PS5, XB1 and XBSX all run Java games simply because they all feature a Blu-ray player. The whole idea with BD-J was exactly to offer games (among other things) on Blu-ray players. The BDJ community calls this Blu-Play. 

BD-J mini game for Disney's Ratatouille.

Trivia Game from Fantastic Four: Rise of the Silver Surfer

BD-J takes the best of both worlds of game consoles standards and the openness of PC. 

Blu-ray also borrowed and learned the success and mistakes of the CD, DVD, and Laserdisc, and its variants and what made them successful (CD-ROM, CD-Text, DVD-Video, DVD-ROM) and what made its variants failed (CD-I, CD-Video, DVD-Audio).

To let you know, all pressed Blu-ray discs are officially called BD-ROMS, since it's an all-in-one format, regardless if it's for a movie, album, or BD-J software. All of those Blu-ray movies and albums you see in stores are BD-ROMs.

Screenshots from Batman: Death in the Family Interactive "Choose your own Adventure" - Image: Blu-ray.com

Blu-ray Java based games and the BD-J platform itself are quite underrated and unique. But why? I can't really answer that because we don't really know; some say it was over the confusion of the HD format wars (movie equivalent to the console wars) or because it got overshadowed by graphically impressive PS3 and PC games.

All of Don Bluth's FMV games were ported to Blu-ray - Image: Videogameobsession.com.

In this article, we'll be discussing the pros and cons of Blu-ray gaming and its advantages and disadvantages over console and PC gaming.


๐Ÿ‘๐ŸปThe Pros


Simplified standard

BD-J has a simplified standard, the platform has limitations yes, but those limitations can create creativity.

This standard is similar to fixed game console standards, unlike PC gaming there's little standards and all over the place as it's constantly evolving.

Here's an overview:

  • Video Codecs: AVC, VC-1, and MPEG-2
  • Audio Codecs: PCM, DTS, and Dolby Digital
  • Image Codecs: PNG, JPEG, and GIF. (Static or Animated)
  • Subtitle Codecs: PGS (Presentation Graphic Stream) (.SUP)
    • Font Codec for Subs: OpenType (.OTF)
  • API: Java Version 1.3 - Java Me
  • Programmable Languages: Java (Mandatory) Other Languages such as C and C++ are optional.
  • Max Resolution: 1080p@30 FPS video. * 
  • Max Channels: 8 sound channels
  • Memory: 6 MB (Official) 96 MB (Unofficial MAX)
  • Disc Storage: 25, 50, 100 GB.**
  • Local Storage: 256 MB (Profile 1.1) 1 GB (Profile 2.0)
  • Internet/LAN: Optional
  • Picture-in-Picture (PiP): Yes
  • Blu-ray 3D: Optional (Requires a BD 3D player)

*Ultra HD Blu-ray offers HDR and 2160p 4K content @60 FPS, it has the same programable standards but it's a different format and not compatible with normal BD players.

**50 GB discs can store up to 9 hours of HD video.

Screenshot of The UFO Game for BDJ


Platform-independent and not complicated to develop.

Just like normal Java, BD-J is platform-independent and portable, it follows the feature of WORA (Write Once Run Anywhere). Blu-ray runs on a Java Virtual Machine similar to ScummVM or DOS Box. The Java programs written in a system can be run on any other system that has Java in it, as well as does not require any special hardware to run. This makes BD-J literally compatible with almost every possible Blu-ray player. The compatibility of BD-J does not depend on the OS or hardware, this makes the BD-J platform-independent and super flexible. Due to its simple build, it's cheap and easy to develop and maintain as it can run on any machine regardless of the hardware of the system, this reduces the cost of development significantly without having port the games on specific machines using the "Write once, compile Anyware" philosophy like most programmers do with C and C++ language. One single Blu-ray game can run on a x86 PC, an Arm-based BD-player, or a CELL-based PS3, it will run on all 3 platforms with a BD player virtual machine regardless of their architecture.  


Open and free

Java is an easy to learn - high level language, since BD-J uses Java 1.3, it's free to use. Anyone can make their own Blu-ray video game without a license or face censorship similar to PC. *

*The disc itself is patent but the platform is open and non-restrictive. It's like making a CD-ROM game for DOS.


Gameplay of Ukko's Journey for BD-J


Decentralized online capabilities

Just like PC, BD does offer decentralized internet and LAN capabilities. Blu-ray likely borrowed influence from the CD-i's CD-Online feature and PC CD/DVD-ROM game online features. Anyone can make their own decentralized server for their game. Online capabilities require a BD-Live enabled player (Profile 2.0).


Mods

Yes, you heard me right, mods. You can allow your BD game to install community-made mods via Internet or LAN on your BD player's local storage just like PC.


DRM is optional and offline.

Blu-ray optionally supports offline DRM. You can make your BDJ game DRM-free and allow people to burn it the game's ISO on BD-R and play them on any BD player without a hassle. Just like burning PC games on CD-R or DVD-Rs.


Already established Java games and community

Most of the major studios stopped making BDJ games and content, but there's already established Java games and a community. But most are unaware that Blu-ray Java even exists and never thought of creating games and homebrew for the platform. There are already open-source games programmed in Java that can be ported to BD-J with modifications. (BD-J games is based on Java Me and uses Java 1.3 only).

Java Phone games: Ghost Stories, Abracadaball, and Worms 2011 


Players are cheap

Blu-ray games can play on any Blu-ray player regardless if it's a cheap low-end potato player from LG or a $500 high-end player from Oppo. If you're on a budget, low-end players can perform just as well as an expensive one. And BD players are cheaper than game consoles and PCs.

Image: Techdee.com


No GPU required

Some of you might gripe that there's no 3D card support, but it's not about the fancy graphics, it's about portability. BD-J's 2D graphics is based on software rendering, not hardware**. All BD-J needs is a simple CPU that a potato machine can run it. 2D games are timeless and future-proof and they can be just as good as a 3D game like Fallout, X-Com, and Donkey Kong Country. Pushing the limits, the closest thing to "3D graphics" is pre-rendered 3D graphics using PNG, JPG, or GIF images, which ages very well.

**There are Blu-ray players (and machines such as computers) that are compatible with Video and Sound hardware decoding that will take pressure off the CPU.



PC games like Sacred (above) and Myst 4 (below), are examples of games with pre-rendered 3D image graphics that doesn't require a GPU. It's all software.



๐Ÿ‘Ž๐ŸปThe Cons


No GPU support

It might be silly that I just said No GPU required for Pros, but I just wanted to point out that Blu-ray players does not offer optional 3D hardware acceleration like OpenGL or Vulkan. Everything is based on software. You could make your Blu-ray game have optional GPU support, but you must have a Blu-ray Player-Virtual Machine that supports stuff like that. And there is none. It's best not to worry about 3D and stick with 2D because 2D is awesome.


Slow and Poor Performance

It's not as bad as people think but Java does consume more memory compared to native programming languages like C and C++. Java is also slower compared to them; this is due to the additional work of the interpreter to convert the code into machine language. The JVM performs various backend functions that decrease the speed of the program. As java supports automatic garbage collection, it runs in the backend continuously, hampering the performance.

However, you don't have to write BD-J content in Java, you can write your Blu-ray games in C using Cibyl MIPS-to-Java compiler to run C code on BD-J by transpiling it into Java. The Cibyl transpiler may aid in porting C games to Blu-Play, however the transpiled code is a bit slower that the same code written directly in Java. 

But I'm sure talented developers will work something around; popular game emulators are also known to be slower than running the original hardware and managed to make them faster.


Most players support a remote control

The majority of Blu-ray players support a remote control, remote controls only let you press a clickable single button at a time, and they are holdable. Suitable game types for holding one button include simple arcade games like Arkanoid, or space shooters with auto-fire. Suitable game types for clickable single buttons include most puzzle games, like Tetris, Pinball, Bejeweled, and "auto-moving" arcade games, like Snake and Pacman and turned-based games like Chess and X-Com.*


Pinball mini-game from Surf's Up 2007 Blu-ray. This game is suitable for both a remote and controller. (It's fun.)


However, there are Blu-ray players and game consoles that have full controller support*, especially older ones from Sony. It is also "possible" to connect a game controller via USB-to-Ethernet cable to your Blu-ray player, but you must make your game to allow it, so it will recognize it. 

Games like Tetris are suitable for a remote. Image: Tetris for CD-I


Verbose and complex code when written Java

Java may be one of the easiest programmable languages to learn, but it has many verbose and complex syntaxes. Sometimes, it becomes hard to remember those complex syntaxes. Due to these reasons, many programmers prefer python or C++ over java, as they have relatively simpler sentences. But remember, you can still use the Cibyl MIPS-to-Java compiler, if you're not comfortable with Java.

For example:

A simple input would require us to write two lines of code:

  1. BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  2. int num = Integer.parseInt(br.readLine());

Whereas the same thing can be written in C using 1 line:

  1. scanf(“%d”,&num);

You can see how java codes can sometimes be a little too complicated due to this reason.


Only uses Java 1.3

Blu-ray Java is based on Java Micro Edition (Java Me), and it is restricted to Java 1.3 features. Only Java programs that are programmed using Java 1.3 or below can run BD-J games. The good news is that Java 1.3 is open and free to use. 


Low Device Storage Space to install Big Stuff.

Almost all Profile 1.1 "Bonus View" Blu-ray players have a mandatory 256 MB storage to install ANY content off the disc. You can install mods, updates, DLC, or the game itself without it depend too much on the disc or install the game and let the disc play music, video, or other things.

But there's a lot of Profile 2.0 "BD-Live" Blu-ray players that have 1 GB storage (sometimes more).

Additionally, depending on your player, you can install more storage space such as a USB or a Hard Drive on your player to expand space.



Well, that's the list of advantages and disadvantages to the Blu-ray platform when it comes to video games. The BD-J community is growing and in its infancy. In the coming years, we'll probably see more community-made BD-J games in the future (if the community grows). If your developer and want inspiration for a 2D disc-based game, take a look at these CD-based systems like the failed CD-I, Sega CD, DOS, FM Town Marty, and PC Engine CD.

For more information about Blu-ray development check out these useful links

BD-J - Wikipedia

Blu-play.com

Blu Play Dev Wiki (playstationdev.wiki)


Updated: 10/1/2022

Leave Us External Links for Your Mother...