Bink 2 - video codec Oodle - data compression suite Telemetry - profiling toolkit Granny 3D - toolkit for building 3d games Miles Sound System 10 - sound authoring toolset in 2D and 3D
Bink 2 - video codec Oodle - data compression suite Telemetry - profiling toolkit Granny 3D - toolkit for building 3d games Miles Sound System 10 - sound authoring toolset in 2D and 3D
Their stuff is very well regarded and widely used.
At least that is the impression I have got, watching from outside the industry. It's always possible that I've got a distorted view as an outsider.
Unless it was a DOS game from the 90s, in which case it may have used its 256 color predecessor Smacker.
It's amazing how this tiny company has managed to stay relevant through decades of huge technological shifts.
Bink 2 - video codec
Oodle - data compression suite
Telemetry - profiling toolkit
Granny 3D - toolkit for building 3d games
Miles Sound System 10 - sound authoring toolset in 2D and 3D
I've seen their logo on tons of games. I never knew they were a local company (Kirkland, WA near Seattle).
GStreamer with its ridiculous threading architecture and lock-heavy approach? You think that's going to run on a console CPU? ffmpeg / libavcodec? Yes, we can hook that up, have it crank out YUV buffers and display those on the GPU, or we can just use Bink. Yes, it costs a ton of money, but based on when I evaluated it last, it was almost twice as fast as libvpx on our target platforms, it was well-suited for games (worked well with custom allocation strategies, didn't start a bunch of threads by itself, integrated well into our renderer), was easy to integrate, the toolchain was lovely, and when we needed help with a bug, we got an email back the same day from Jeff. RAD's support is top-notch.
Multimedia is not too big of a problem that a company like Epic can probably spend a few days integrating libvpx and opus to make a custom video solution, but big enough that most smaller studios with custom engines don't have time to spend on that, and those are the sort of problems that RAD likes to tackle.
When Bink was released and the PS2 and Gamecube were on the horizon this kind of thinking was needed. When you get to PS4/Switch you're just running consumer PCs. The exact same Nvidia SoC used in the Switch is actually used by Nvidia for their Shield Android TV boxes whose literal purpose is to play audio/video streams - it's quite capable of doing so.
"The Switch uses NVDEC along with VIC (Video Image Composer) in the GPU for video decoding. Games are exposed to higher level APIs by Nintendo which abstract the configuration of these modules."
If you're using a custom engine which does not want to use these APIs you're of course free to do it yourself (and deal with how you're going to syncronize it and the higher resource utilization) but most major titles use the built in hardware decoder provided via the API.
That said, yes, Bink certainly is a more turnkey solution, which can definitely make business sense to use. This is a byproduct of consoles being closed platforms.
This is not a biproduct of consoles being closed platforms, multimedia is a challenge everywhere; cross-platform, usable multimedia playback lacks a high quality product even on open PC platforms.