It’s the week end, so lets discuss what I’ve done so far. Last week I set out the goals of making input keys rebindable by users, recreating some icons and completing the intro portion of the game. Unfortunately, I only got 1 out of the 3 goals completed. Let me explain my pain.
So as it turns out, unity’s original input system doesn’t have the ability to (easily) allow for key rebinding. Ok, so I switched to unity’s new input system which does allow for key rebinding. Except I couldn’t get the damn thing to work properly with the framework. How frustrating to waste an entire day researching methods just to get a basic feature every modern game has. I was left with two options, continue to use unity’s new input system and struggle to put together a basic rebind system or use a separate, but well established input asset that just works out of the box.
Both keyboard and controller rebinding works flawlessly.
I chose to save time and got the asset. Finally, things just worked again and in little time I was able to get a functional input and rebind solution up and running. At this point it was already half week and I was running into other small problems as I was wrestling the input system. I realized I hadn’t put together a solution for resolution and window size. Since the entire game is in 2d at a fixed ratio of 16 by 9, any screen resolution that is not 16 by 9 will see more information I didn’t intend thanks to the 3d nature of unity’s camera.
Check out the immediate top and bottom of the game screen to see objects (the daughter’s legs on the bottom and particle effects at the top) sticking out of the intended viewable screen.
Oh boy, another problem I get to beat myself over the head about. I thought of quite a few solutions, originally I was going to force all screens without 16 by 9 resolution to be in windowed mode instead of full screen. This would have worked but I realized a player could just press Alt+Enter to go into full screen, and I was still bothered by the fact that objects were visible outside the 16 by 9 ratio. So I decided on a much more simpler approach. I just covered the gaps with all black images. With this primitive method, any resolution can be windowed or full screen and only what I intended will be visible to the player. It’s not elegant, but it works.
With that decided, I had to create the setting menu from scratch since the framework (or unity for that matter) doesn’t offer a pre-made solution out of the box. Yeah, that was fun and not time consuming at all.
Despite how simple it looks there are a lot of things going on in the background. Good news is the resolution change works quickly and smoothly.
Finally, after going back and forward testing the resolution changes I now have a working resolution control that will work on any screen offering you the best image for your screen size. As far as the other options go, I’ve tested decreasing the image quality and it didn’t do anything of worth, so I didn’t include it. There are no real 3d elements in this game so I didn’t include a lot of other options like depth of field, bloom, and POV. But I did include options to disable effects such as character animation and particle effects during exploration and battles. This should help people with weaker systems run the game better. I’ll probably add more options at some point down the line but this list should cover the most important ones at the moment.
Now that all of that is done, I can finally get back to the two goals from last week. Recreating the icons and completing the intro. What an annoying week this was. I did not like it. 1/10 week, I fart in it’s general direction.
I will have this damn intro complete next week. Believe it!