A quick summary of this week’s development
Accessibility
I tested a “one handed” mode, using only the mouse. It’s just an experiment for the moment.
I posted the video on twitter and I got some great feedback and tips. I noted things down and I’ll work on it more in the future. I got told to have a look at Microsoft’s accessibility guidelines, which is a great resource and very well written. Special Thanks to Antonio I. Martínez and Adam Kosakowski for the help.
I also improved the way the high visibility and alternative font is handled, now it’s much easier to switch between the two (or any other style). There is no visual or mechanical change.
Settings
I thought I’d make the settings and menus in 3D space. So instead of having a regular menu, the player is spawned in a corridor. You can go inside the “graphics” or “controls” or “level select” rooms, or just start/load a game by interacting with the appropriate object (can be a button, screen, computer, lever…etc). This uses the already existing dialog and interaction system, but with an added function that executes console commands depending on which option you pick.
Here is a working proof of concept
The settings are stored in the game instance and set up when the level loads. The only requirement is that it’s a console command, but creating custom ones (eg. for the high visibility font) is straightforward.
Proximity fading:
I added proximity fading to the player material, to hide the model if it gets too close to the camera. This is especially useful when the player is close to a wall and obstructs the view.
This also helps when the player is talking with an NPC while standing in front of the custom camera.
I used dithered masking instead of actual blended transparency because it’s more reliable, more performant, and doesn’t cause rendering issues with other transparent objects. The downside is the visual effect, especially with TAA, but it can be improved by switching to MSAA instead, which is exposed in the settings.
Player character
I worked a little bit more on the player model, and this time I imported it to Unreal and replaced Manny with it. It looks decent, but there is still a lot of work remaining on it.
The animations and skeleton don’t look great, they’re too “actiony”. So I think I’ll scrap those and start again from scratch with my own rig and animations.
Misc:
I fixed the few bits of code that remained, and then fully tested the demo with the new interaction system. Everything works correctly.
I made new builds to test on the Steam Deck. Everything looks and works correctly.
More minor bug fixes.
That’s all for week 32. Thanks for reading, and I’ll see you next week!