Haruka Engine

The Haruka Engine (Japanese: はるか・エンジン) is an in-development 3D game engine intended to be used for the future Ways of Darkness game.

Name
The name of the Haruka engine comes from the Japanese feminine given name Haruka - the usage of this name was originally inspired by the Japanese band fripSide's song Only My Railgun, where Zsolt Tóth misheard the first few words of the song for the given name, being inspired to use that name for the engine.

History
Zsolt Tóth intended to develop his own 3D engine ever since 2014, being disappointed with existing freeware, open-source 3D engines and how they were either a combination of bulky and unwieldy (such as the Ogre Engine), lacking in features (Irrlicht Engine), or simply inflexible (all freeware engines in existence) - plus, he deemed creating his own engine from scratch easier than learning how to use an existing engine. After 2016, with the release of the Vulkan API, Vulkan support became a coveted feature too. Using a properitiary engine such as the Unity Engine was simply not - and still is not - an option.

The first traces of the Haruka Engine appeared in 2016, with Zsolt Tóth developing an OpenGL-based engine with the support of the SFML framework. Eventually, with Tóth learning about Vulkan, concerns came with SFML's inflexibility - he ended up dropping SMFL in favour of the SDL framework, which gave him cross-platform windowing and input-controlling abilities. For sound, intiailly, OpenAL was chosen, until it was dropped on the May of 2018 in favor of his own sound system developed with the help of PortAudio.

Features
As the game engine isn't released yet, only intended features and ambitions can be listed:
 * Support for the following platforms:
 * GNU Linux and Microsoft Windows on PC
 * Android
 * Support for at least three rendering APIs: OpenGL, Vulkan API, Direct3D
 * Windowing, input-control (mouse, keyboard) supplied by SDL
 * Audio support supplied by Harudio Engine, an engine built on PortAudio
 * Support for both skeletal and keyframe animations.
 * Support for the OpenGL Shading Language via a combination of GLSLang and SPIRV-Cross.
 * Support for the DDS and GIF image formats via manual loading, and various other image formats via FreeImage.
 * Support for animated textures (GIF-only).
 * Usage of PhysFS to support loading of data from archives.