Video Game Development



When it comes to video games, Blu-ray takes a different approach.

A Blu-ray player is not a PC or a game console - it's a Blu-ray player. It only supports a remote controller by default and doesn't support fancy 3D APIs like OpenGL or Vulkan. It's a low-end embedded platform using old-school 2D graphics. But don't let that fool you as Blu-ray games are like souped-up versions of J2ME games because a developer can use the Xlets to take advantage of the video and image codecs with all nine image and sound layers to create appealing video games. 

Flint's Food Fight is a Galaga-Space Invaders-style mini-game included in the Blu-ray release of Cloudy with a Chance of Meatballs.

A Blu-ray player typically uses a remote controller with arrow keys for navigation, an enter button for selection/action, and colored buttons for interactivity, much like a Wii controller. However, due to the use of infrared signals, there may be a slight delay when pressing buttons, and only one button can be pressed at a time. Nevertheless, certain Blu-ray players, such as those from Sony, are compatible with the Dualshock 4 controller.

Using a mouse and keyboard on BD-J titles are not compatible by default, unlike HDMV mode. It's up to the developer if they wish to implement mouse and keyboard functionality for BD-J games. 


Here are the types of BD-J games that are suitable for a standard remote and a optional controller such as a gamepad, keyboard/mouse, or a second-screen device:

  • Turn-based RPG (Fallout/Wasteland/Final Fantasy/Pokemon)
  • Turn-based strategy (Chess/Final Fantasy Tactics)
  • Turn-based FMV FPS (Hijacker Jack/Resident Evil Pachinslot)
  • Turn-based FPS (Doom RPG)
  • Turn-based Rouge-like (Doom RL)
  • Hidden Object (I Spy/ Mystery Case Files/Nancy Drew)
  • Adventure games (Lucasarts, etc.)
  • Platformer
  • Puzzle (Tetris, Bejeweled)
  • Pinball
  • Casual games (Solitare, Minesweeper)
  • Arcade (Pac-Man, Snake, Space Invaders)
  • Telltale-style FMV game
  • FMV games (Five Nights at Freddy's/Interrogation Files: Port Landsend/The Isle Tide Hotel)
  • Virtual Board game (Monopoly)
  • Text adventure with graphics and sound
  • Trivia/party games
  • Linear or non-linear Visual Novels

    See: Controllers 

 

This Blu-ray video game, Painting the Roses Red, uses beautiful pre-rendered graphics with smooth frame-accurate animations. The background is AVC video, and the sprites use PNG images.
 

Unlike HDMV mode, BD-J games can save your progress (or install content) in the Blu-ray player's 256 MB local storage (or more). Depending on the game, loading assets from the local storage, like video, audio, and images, is faster than loading from the disc using a hard drive or flash drive.

A Pinball game from Surf's Up; the controls are suitable for the remote, controller, or keyboard.

Performance varies on Blu-ray players because they have different CPU frequencies, ranging from 300 MHz to 1 GHz. However, due to BD-J being an embedded platform for low-end devices, the Java Virtual Machine might be slower than the CPU. It is difficult to determine the recommended CPU frequency for BD-J applications, especially when it comes to making fast-paced/complex video games. Therefore, if a developer wants to ensure that their game runs smoothly on all players, I would recommend (as a hunch) targeting a CPU frequency of either 16 MHz or 27 MHz. This will provide a safe margin and help ensure optimal performance for the game. Just like Blu-ray movies, developers are also advised to optimize Blu-ray games for low-end to high-end players that use both software and hardware rendering to enhance performance compatibility. Remember, this is not PC, it's BD.

Screenshot of the Blu-ray version of Kanon, a romance visual novel. This is a complete game programmed in Java using many multimedia assets and features including fonts, images, video, and audio.

 

Pseudo 3D Graphics

As I said before, Blu-ray technology doesn't support true polygon 3D graphics. Instead, it only supports 2D (and 2.5D) graphics. This means that developers have to be creative when using image and video codecs if they wish to create the illusion of 3D. 

One technique they can use is pre-rendering, in which highly detailed graphics are rendered once on a powerful machine and then saved as video or image data to be played on a low-end device. Remember Donkey Kong Country and Toy Story? Those two classics made this technique famous. Pre-rendering is useful for making graphics "pop".

Who Dares Defy Galactus? is a 2-player turn-based strategy BD game that uses animated AVC and PNG codecs for its prerendered graphics.

Another technique is Axonometric or Oblique projections, which can create a sense of depth and perspective in a 2D image. 

https://cdn.akamai.steamstatic.com/steam/apps/38400/ss_6c578ed231f8320c003c9ca2684e5d00aa0dfc69.jpg?t=1572025441
Fallout, a PC game, is an example of a game that uses both pre-rendered graphics and an Axonometric viewpoint to give it a 3D feel.

Finally, parallax scrolling can be used to create a pseudo-3D effect by moving different layers of a 2D image at different speeds, creating the illusion of depth. 

Ukko's Journey, a homebrew Blu-ray video game, uses parallax scrolling using three separate 2D sublayers overlapping each other in the BD-J layer, foreground, middleground, and background.

By employing these creative techniques, developers can add depth and dimension to their content even without true 3D support from the Blu-ray format. However, the developer should be mindful of the 89.5 MB memory, local storage, and CPU limitations. As I said before, some players use either software rendering or hardware rendering. So, the data size and color bit of complex graphics like these should be as small as possible to increase performance speed and conserve memory. The developer should be mindful of the 8 MB sound memory, 4 MB font cache, 45.5 MB graphics memory, and 32 MB heap memory.

 

Audio

Speaking of audio, a game developer must also be aware of the audio limitations. Standard Blu-ray provides three separate audio layers, Primary Audio, Secondary Audio, and Interactive Audio. All three layers can be played at the same time. Interactive Audio is loaded to the sound memory and can play one sound at a time or multiple sounds simultaneously from user input. Primary and Secondary Audio is loaded (from disc or local storage) to the primary memory buffer and played linearly. For example, for an adventure game, Primary Audio can be used for the background music and effects, Secondary Audio for the dialog, and Interactive Audio for interactive sound effects.

When using Interactive Audio, the developer should be mindful of the 8 MB sound memory and it's 2 MB max file size of interactive sounds.

    See: Interactive Audio

The Xlet can control all audio playback like looping, muting, playing at a specific time, seamlessly changing tracks, changing audio streams, or activating by user input.

When it comes to audio codecs, it's always best to stick with the three compliant ones - Dolby, DTS, and PCM. These codecs are designed to be hardware-friendly and provide the best possible audio quality. However, it is possible to use other sound formats like MIDI or MP3, but the problem with these non-compliant formats is that they require software processing by the CPU, which can consume more resources and slow down the player's performance. So, while it is possible to use these formats, it's important to keep in mind that they may not provide the best experience and could impact the overall performance of the player.

 

Image Layers

The developer must be aware of the image layer limitations. The screenshot below is a mock-up of a Blu-ray version of 3D Space Cadet Pinball as an example of what you can do if you are making a game compliant with both Blu-ray (Profile 1.1) and Ultra HD Blu-ray (Profile 6) since UHD-BD doesn't support secondary video and audio. 

    1: BD-J Background can be used as a single color or image.

    2: Primary Video can be used for fancy video presentations.

    3: Presentation Graphics can be used for displaying information or declarations on top of the Primary Video. 

    4: BD-J Graphics can be displayed on top of all other layers, and sprites can overlap each with sub-layers (foreground, middle ground, background, or more).


Full Motion Video

Full Motion Video (or FMV) graphics are often used on BD menus and games for seamless video backgrounds. FMV games have had a bad reputation in the 1990s for their mediocre releases, but not all FMV games are bad unless done right. Pre-rendered video graphics don't need an expensive GPU but a video decoder. Dragon's Lair is an example of a Blu-ray game with FMV gameplay done right (mostly). 

Developers can use seamless video played from the disc if the primary video/audio files are close together in the disc's cluster/track. However, some players are slow when reading primary video/audio files that are far apart from the disc's sectors, causing short pauses. These short pauses/delays might distract the player. Dragon's Lair has video/audio files spread across the disc, so when a gamer is defeated there's a slight pause when loading the death animation or when transported to another room. On Disc 6 of the Alien Anthology set, the seamless video files for the menu's background are located close together on the same disc cluster, that's why there are no distracting pauses or delays when navigating through the menu.

The BD version of Dragon's Lair uses FMV sequences for gameplay.

In relevance, Lionsgate would sometimes put useless BIN files (dummy files) on the inner zone of the Blu-ray disc, so the video files would be closer to the outer zone for faster reading. Legacy CD-ROM/DVD-ROM games would sometimes do the same thing.

If a developer wishes to increase performance, they can allow the disc to install the seamless video files into the player's local storage, decrease the bitrate, decrease the resolution, and use only CBR. For the video's audio for dialogue and sound effects, the bitrate would have to be 256 kbps or below using CBR. This will be the secondary video and audio. The primary audio for background music will be played on the disc. Interactive Audio will be in the preloading sound memory buffer.

If one wishes, let's say, for example, to make a turn-based FMV first-person game, this is how the video/audio should be structured for standard Blu-ray players (Profile 1.1):

  • Primary Audio: Background Music (on disc)
  • Secondary Video: Seamless FMV Graphics/Sequences (on local storage)
  • Secondary Audio: Voice dialogue/sound effects (on local storage)
  • Presentation Graphics: Subtitles or Information (on local storage)
  • BD-J graphics: UI graphics (on graphics memory)
  • Interactive Audio: Interactive/menu sound effects (on sound memory)

This would be hard to implement if a developer wishes to make a complex FMV video game for Ultra HD Blu-ray (Profile 6) since it does not support secondary video and audio. The one benefit of secondary audio is 5.1 surround sound; Interactive audio only uses stereo or mono. So, this is how the video/audio should be structured for Ultra Blu-ray players (Profile 6):

  • Primary Audio: Background Music (on disc)
  • Primary Video: Seamless FMV Graphics/Sequences (on local storage)
  • Presentation Graphics: Subtitles or Information (on local storage)
  • BD-J graphics: UI graphics (on graphics memory)
  • Interactive Audio: Voice dialogue/Interactive/menu sound effects (on sound memory)

 


History of Blu-ray and Java TV video games

    In the United States, only a dozen Blu-ray video games were made by major studios. Most of them are mini-games to coincide with the movies. Stand-alone games were also released, including Dragon's Lair and Space Ace. But no one makes Blu-ray video games anymore (or even takes advantage of the BD-J technology) except for mature visual novels in the Japanese market from AsoBD and a small homebrew community called Blu-Play.

Blu-ray visual novels are popular in Japan. Visual Novels are like interactive narrative "books".

Blu-Play is a small homebrew community that mostly focuses on homebrew BD-J game development and demos. Very few projects are made including LuBlu Entertainment's Ukko's Journey, a platform game. 

There is a demo from Luis Gonzalez called Funky Fresh that pushes 3D software rendering to its limits, and uses EGL, a pure Java 3D graphics API designed for J2ME mobile devices and based on CLDC 1.0. It's really neat stuff, but making 3D games isn't recommended because most players are slow at software rendering 3D graphics. The demo runs fine on PS3 and PS4, but horrible on Xbox One with poor framerates. When I tried it on VLC media player, the animation was smooth but there were graphical glitches and missing assets.

You're probably asking, can it run Doom? Of course, it can run Doom! There's an unofficial port of Doom from Sleirsgoevy, this BD port of Doom works great on PS3 and PS4 but is a little slower on PS5 and runs 1 frame per second on VLC media player.   

Sleirsgoevy also made a way to boost  Blu-ray's memory to 96 MB, but I would recommend staying at the standard memory size because they're "might" be incompatibility issues with players. He also made an emulator for Commodore 64 games. In the late 2000's a Japanese developer made many BD-J mini-games and a Gameboy emulator.

 

Historically, Java was originally designed for interactive TV in the 1990s starting with the short-lived HAVi standard and then in the 2000s, it was turned into the international standard, GEM, which BD-J is based on.

From the 2000s until the mid-2010s, television companies like Sky TV and DirectTV provided casual video games primarily using DVB-J. This platform is equivalent to BD-J for terrestrial and satellite television. With a subscription, users could play games on their television set-top boxes with their remote, offering small but enjoyable casual games via transmission. These DVB-J games were more popular in the United Kingdom than in the United States and have since gained a cult following.

Game services like Sky Games provided casual games to play on Sky's TV box using the DVB-J platform. They often use colored buttons (just like BD-J) for additional interactivity.

Notable developers were Denki, Waterfront Entertainment, and Mind's Eye Productions. The developers stated that the Sky boxes were slow, and the DirectTV boxes were even slower. BD-J has more memory, assets, and processing capabilities than DVB-J and other GEM-based platforms. BD-J has over a whopping 89.5 MB of total memory, whereas standard GEM typically uses only 6 MB or less.

"Ed, Edd, and Eddy: Night of the Living Ed" is an example of an DVB-J game. Since DVB-J and BD-J are based on the common GEM-core, it's possible to port old DVB-J games on Blu-ray and preserve them.

 After 2015, these game services were shut down, which unfortunately led to many DVB-J games becoming lost media. Meaning they are forever gone and cannot be accessed or played again. However, there is some good news for fans of these games, as some have been preserved and can still be played on your browser through Denki's website. Despite this, it is still important to emphasize the significance of physical media, as it ensures that content is not lost forever in the event of digital service shutdowns.

 

Why didn't BD-J game development take off?

  • Most likely because the early games from the studios never made a good impression on gamers and moviegoers. And all of the good (lost) games were on DVB-J.
  • At the time, lack of documentation prevented indie developers and enthusiasts from developing on the platform, thinking it was only for movies.
  • Some developers weren't comfortable developing on Java. 
  • It was overshadowed by the AAA 3D powerhouses of Xbox 360, PlayStation 3, Wii, and Windows PC.
  • The rise of digital-only PCs and mobile games pushed the decline of physical media.


What are the benefits of playing and making BD video games compared to PC and console games?

  • 🔄 Platform independent
  • 🩹 No Patches & Updates
  • ⬇️ No Installation
  • 🌐 No Online Activation
  • 💸 No Microtransactions
  • 🧩 No DLC
  • 🚭 No Fear of Censorship (like PC)
  • 🕹️ Simple controls
  • 👍🏻 Easy to use


How is the Blu-ray format relevant to game development in the modern era of 3D gaming?

  • Blu-ray uses international standards for its technologies defined by the ISO, ITU, and IEC. Game consoles use private standards that change with each new generation and make a burden for developers because they have to throw out the knowledge from the previous generation. Not all, but the majority of BD's standards are royalty-free and open-source (x264, Dolby Digital, WAV, Java Language, BD-J/GEM APIs, PNG, etc.)
  • Creating 2D games is more straightforward than complex 3D games that use APIs like Vulkan and OpenGL, which require bone animations, 360-degree rotation angles, shading languages, surfaces, collision, physics, modeling, texturing, lighting, and vector math, making them more expensive and time-consuming. 2D games are more lightweight, easy, and cost-effective as they use layers, easy-to-make sprites, X-Y coordinates, simple directions (front, back, up, down, left, and right), and a single rotation angle.
  • Write Once, Read Everywhere was Java's core philosophy, instead of writing once and compiling anywhere to different hardware architectures and operating systems, which takes time and money. Writing Blu-ray Java games is cheaper and quicker as a Java program can be developed and compiled into standard bytecode and expected to run on any Blu-ray player.
  • Blu-ray players are a popular addition to households, which means that if you create a BD-ROM game, people do not have to invest in an expensive gaming system or a complicated PC. A Blu-ray player is usually simple and user-friendly, allowing users to easily insert the disc and start playing the game without issues. Respectively, Legacy CD-ROM and DVD-ROM games (both new and old) may not play properly on modern PCs, as they might need an emulator like DOSBox, ScummVM, or Proton to run, a graphics driver update, or a software patch. They are also prone to cause errors, unexpected crashes, and compatibility issues.
  • PC is no doubt more powerful than consoles and BD, but its technical requirements are not permanently standardized or fixed because it continues to evolve and grow. This causes compatibility and optimization issues with low-end or legacy computers to run newer games. BD's technical specifications are permanently fixed and standardized, meaning they cannot be changed.
  • People enjoy not only physical media of movies and music but games as well. While physical media of PC games are uncommon in North America, some gamers still prefer to own, barter, or trade physical discs.
  • Digital game stores sometimes remove titles from their catalogs because of licensing issues, censorship, changes in corporate policy, or they felt like it. With physical media, they can't take those discs from you. 
  • Retro game enthusiasts love porting/making games to old (or inferior) computer systems or consoles like the Sega Genesis or Amiga because they love old-school technology, especially when handling 2D graphics since it's simpler than complex 3D APIs. And Blu-ray is a 2D multimedia platform.


If I do make a Blu-ray game, what inspiration can I use to be creative to take advantage of the  technical  limitations?

  • Older and flawed Blu-ray games: If you have a Blu-ray drive on your PC, you can examine its file directories and view its Xlet source code to see how everything works and learn its game mechanic flaws.
  •  Java TV games from TV games services like Sky Games. Not all, but some of the games are preserved and can be played on the web browser. While DVB-J used smaller memory on hardware that's more limited than BD-J, it is still a great example of Java games to learn.
  •  Java Me phone games: While it's different and has more technical limitations than BD-J, developers have made impressive and fun games.
  • Legacy CD-ROM and DVD-ROM games: Glance at classic CD-ROM/DVD-ROM games from the 1990s and 2000s made with Macromedia Director like The Journey Man Project, Mystery Case Files, I-Spy, and Dark Fall, and learn their strengths and weaknesses. And see how well it will translate to the limitations of the modern BD-ROM.
  • 2D 16-bit and 32-bit era console games: Take a look at 2D games from classic consoles from the Super Nintendo, Sega Genisis, Sega Saturn, Neo Geo, and the Sony PlayStation since they have limited technical restraints like BD compared to today's game systems.
  • Modern Pinball Machines: It may sound silly, but contemporary pinball machines use FMV sequences on scoring displays that use fancy 2D graphics. They provide additional features such as "Video Mode" mini-games. They often use the P-ROC or P3-ROC boards that operate at 32 Mhz.
  • Video Pachinslot Machines: This may sound silly too, but modern Pachinslot machines also use FMV sequences with 2D graphics on scoring displays. Their additional interactivity makes them "sort of" act like modern FMV arcade games, e.g. Biohazard: Revelations.

If you're interested in homebrew BD-J game development and more information about BD-J video games, visit Blu-Play's website
 
 
 





 

 

 

 

Sources


Author(s) : Æ Firestone

on Sunday, June 16, 2024 | , | A comment?
0 responses to “Video Game Development”

Leave a Reply

Popular Pages