PixelPerfectEngine v0.11.0-alpha release
solidstate1991
laszloszeremi at outlook.com
Sun Jan 21 01:24:22 UTC 2024
https://github.com/ZILtoid1991/pixelperfectengine/releases/tag/v0.11.0-alpha
Two major changes are:
1) Implementation of the M2 format. Due to the lack of any proper
MIDI2.0 formats, I decided to implement my own, and also added
some additional function which allows it to be used for adaptive
soundtracks via scripting. Sometimes I call it a "Turing-complete
MIDI file" as a joke. Some functions are missing, such as most of
the macros that would allow it to function as a de-facto
high-level scripting language, with a syntax similar to Lua,
alongside with a lot of assembly-like instructions.
2) Removal of the Lua scripting engine. It had hard-to-debug
errors, issues I resolved previously reappearing even though the
fix were still in place, etc. It'll be replaced with something
better, likely a VM that will allow it to execute scripts written
in various languages. I'd prefer to use a preexiting VM, with
QScript's VM being a potential candidate, especially since I have
other things to work on. M2 technically has a VM, and reusing the
experiences with it would be useful for implementing my own, but
I have limited time and other more important features to
implement.
The final 0.11.0 version will have:
* A better file dialog (a major headache inducing bug were
already fixed).
* Resizable windows.
* Resampling to higher sample rates.
* Better path handling (currently it's very fragile, and tries to
look for assets in whatever folder the user runs the engine from).
* Logging.
* I'll try to replace SDL with my own solution, iota. It already
has some preliminary x11 support, legacy Windows IO works, but
it's really hard to look up stuff, and many instead suggest
people to use either some bloated libraries that feature stuff
even the C standard library has, and/or has a very legacy-style
input/output handling (DirectInput and not rarely DirectAudio use
instead of their more modern counterparts, etc). SDL has a lot of
issues with documentation, bloat, etc.
* I'll also try to finally get the file compression for assets
working. I created the format DataPak, with has some tricks to
both speed up and lower the size compared to other solutions, by
using the dictionary compression mode of ZStandard (requires the
use of uncompressed bitmaps: compressing PNGs would be really
slow and ineffective, since they're already compressed with the
older ZLib algorithm).
More information about the Digitalmars-d-announce
mailing list