New Release Preview - Stress Test

DCurrent

Site Owner, OpenBOR Project Leader
Staff member
I've been working on 64-bit pack support for OpenBOR, with the longer-term goal of producing a fully commercial-ready, sealed, and encrypted game app output.

So far, I have the following completed:

Completed​

Strict Image Types​

Support dropped for .bmp, .gif, .pcx, and interlaced .png formats. Only non-interlaced .png files are accepted as sprite assets. One right tool for the job.


Note - Don't panic, animated .gif is still supported for cut-scenes.

New Packing Tool​

The new packing tool supports two modes:

32-bit legacy mode
Default mode. Compatible with OpenBOR 3.0 pack creation.

This mode adds more robust internal data handling and strict error checking. It now catches common issues like improper file names, special characters, spaces, and exceeding data limits. Failures are handled gracefully with clear error messages instead of ambiguous shutdowns, or worse, allowing mistakes through that later become game bugs.

64-bit mode
Packs modules with 64-bit architecture, allowing total game sizes up to 9 exabytes - about nine billion gigabytes. Obviously, this requires the latest engine release to run.

64-bit mode includes all the error checking noted above, plus:
  • Individual memory-resident assets up to 2GB each, including images, sounds, text files, and scripts.
  • Unbounded streaming for WebM video. Want to put a few hundred Blu-ray movies in your game? Go ham! :)

Large Sound File Support​

As noted above, sound files can now be up to 2GB. This is perfect for use cases like running multiple music tracks at once, long ambient sound beds, or other oversized audio assets.

64-Bit Script Variables​

Script now includes 64-bit integer types, mainly for accessing internal 64-bit engine values and bitfields, though they are also available if you need massive number ranges.

64-bit signed integer
Range: -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807

64-bit unsigned integer
Range: 0 to 18,446,744,073,709,551,615

In Progress - Subject to Change​

Multi-Channel Sound Support​

Assuming I can get it working, OpenBOR will support up to 7.1 channel surround sound. I considered 8.1, but I do not know of any hardware on the market that can actually run it, and there likely will not be. I would like to support Dolby Atmos, but I am fairly sure we would run into licensing issues.

WebM VP9 Support​

OpenBOR currently requires VP8 encoding. In practical terms, VP9 honestly does not offer us much. The better compression is offset by much higher CPU cost, and the resolution ceiling is mostly academic - VP8 already gives us 1080p, whereas VP9 can go to a pointless 65K.

Still, VP9 would be nice as an option and for future-proofing.

Commercialization Tool​

I'm working toward offering an official pack-ready engine release and finishing tool that destructively encrypts and packages the engine and game data into a single ready-to-ship app. Nothing is foolproof, of course, but the output app will be secure as an end-user app can be - untouchable without specialized, professional-level knowledge and tools.

No more Moleboxing. No more script kiddies cracking open your projects and drawing dicks.

Buffer Updates​

Bottleneck limits that should not exist, like the allowselect 1024-character buffer, are going away. There are lots of unofficial forks that crank up these limits at the cost of memory residence, but that is not what I am doing. Official OpenBOR is eliminating these buffers entirely in favor of chunk reads that do not have arbitrary bounds at all. Ambitious projects with massive character counts from creators like @O Ilusionista and @ZVitor should appreciate not needing to rely on abbreviations and tricks.

Efficiency​

Some of the unbounded features I have put into place over the last couple of years, such as multiple collision boxes, rely internally on linked lists.

I will be taking advantage of the 64-bit architecture to move some of these back into bounded arrays for greater speed and memory efficiency. For example, attack and body boxes will go from unlimited per frame to 64 of each per frame. This should run several times faster internally and simplify script access.

Advanced Math Functions​

Several new math functions are planned to natively handle common game cases like range finding and arc calculation - things that currently require rolling your own solutions in script.

24-Bit Assets​

24-bit .png is currently supported for the background layer only. I am working on making it available for all layers, and possibly as an option for sprites.

Chroma Key Transparency​

I am working on an option to define RGB 0 0 0 and possible user defined RGB value as transparent for sprites, instead of position 0 in the color table. Subscreens already do this. That would allow creators to easily make physical changes to sprite shapes with smart palettes.

Stress Test​

Here is a stress test of the 64-bit pack support in action. I made a bloated, Blu-ray-sized WebM video, packed it into a module, and ran the game to play it back:


More to come,
DC
 
Last edited:
Very nice improvements!

Thank you! I have much more where that came from.

seems like raining

It was. The footage eventually gets to that point. I had been mountain biking all day in this...

1782156751521.png

...and just finished up early evening when a storm was coming. In my endless wisdom, I decided to take one more run on the 5Km ridge trail and figured I would be back before it really hit. I was... slightly off.

1782156591266.png

🚴‍♂️⛈️ :cool:

DC
 
Back
Top Bottom