Yume Engine: gamepad support, options, and more particles
Making steady progress on my 3d game engine, which is codenamed Yume (夢, meaning "dream" in Japanese).
Among minor technical fixes there are a few major additions, including Gamepad support.
Thanks to Lime, I can easily read input from any DirectInput or XInput device. I did something similar for Hypnorain and some players reported that the game works fine even with these things, which I've never even seen in real life.
The only problem I had with gamepad input is that controllers' analog sticks loosen up over time, and some degrade faster than others. This leads to what is known as "stick drifting", when the game controller sends input even when nothing is touched.
I fixed this in Hypnorain by adding a slider for adjusting deadzone, and implemented the same thing in Yume engine's options menu.
The video below demonstrates how the control mode can be switched from keyboard to gamepad, the deadzone of the analog sticks adjusted, and the player moved using the controller.
I've made the menu system a while ago, but until now the settings were lost after closing the game window. This week I've implemented actual saving of the settings into a local file.
In the process, to make things easier for myself, I used Metadata identifiers - a Haxe feature that I've never used before, but can be somewhat comparable to annotations in Java. I marked some fields in my Settings class with appropriate metadata to determine which fields will be serialized from and into the save file.
And finally, I made some new graphics and added trails to enemies and moving platforms.
The next thing on the ToDo list is adding new enemies, props and gameplay features.
You can find all the development videos of the game in this playlist.