Indie platformer

Wednesday, August 31, 2016

An interesting lesson

2:03:00 AM Posted by Nikola Bulj No comments
The game has been in development for almost a year now. Not constantly, sometimes I release 10 versions in 3 days, sometimes there's no new version for two weeks or so, depending on what stage of development I'm at or if I have some important duties IRL. And during that time, I've had 2 or 3 reports from testers that, when using gamepad, pressing "fast forward" during intro would react in a weird manner and skip several "pages" instead. Mind you, the same thing works perfectly on keyboard, and I've decided to leave that minor annoyance for later. After all, the only story sequence where there's more than one page is the intro at the beginning of the game. Then, the other day, I've been watching a youtuber play pre-alpha version... and noticed that half the story screens are not showing. Suddenly, it wasn't just a minor annoyance, it was a problem.

This story has a tl,dr; but let me tell everything, it will be more funny. Or at least I hope it will.

How it all started? I had a single story screen with audio for both dragon and goblin. At the time, I added a skip intro command, which would simply go to the next screen. Simple solutions are the best, right?

Some time later, I replaced this audiovisual sequence with an old-timey typewriter text intro and static images, which is something I enjoyed back in the NES times. Then I added more screens. So, skip intro became skip "page" or "screen". And some screens got two or three lines of typewriter text. You see how it's getting complicated? I could have used a single screen for all of this, but found this way to be easier to control, so I don't make a mistake. And while it may not be the solution someone else would go for, it worked.

It worked perfectly on keyboard, that is. Just as it was intended. Screen would open with a static image and typewriter text would start appearing. If you held the space button, you'd rush it to go faster. If you pressed space again at the end, the next line of text would start. If you wanted to skip the entire screen, you'd press ctrl button and it would change to the next one, just as intended.

But couple of testers reported that pressing "space equivalent" on gamepad would skip "several pages". Just like that.

Now, mind you, I don't have a gamepad. Well, I have one of the old ones that are not X360 compatible, so it doesn't actually work with the game. I don't have a way to test this and reproduce the bug myself, have to rely on feedback from testers. I could get one... but X360 gamepad in my country costs a lot compared to the average paycheck, so I postponed that until it's really necessary, because I wouldn't use it much.

Instead, I took upon myself to solve this problem without actually testing it myself. And that was a huge mistake. Why? Because after everything I did and all the work I put into it, I realized there was no problem. Command keys were working as intended.

So, how come the game skipped a lot of story for some people? It's simple. They used the wrong button. Or more precisely, I used the wrong button, when I selected the keys for certain actions on gamepad. Let me explain this. There are two actions in game that have dedicated buttons on gamepad, jump and action (enter doors, turn the lever and so on). Jump was btn1 and action was btn2. Or call them X and Y, or A and B if you'd like. "Action" is controlled by space on keyboard. So... I used the same button to replace space in the intro, for consistency. Which led to btn2, or B on x360 gamepad, to be "fast forward" or "next line of text", and btn1 or A, to be "skip this screen entirely". This was documented in the quick started guide, of course.

You don't see the problem yet? Neither did I.

Then, while talking with two early adopters yesterday and today, I realized something. They have a very strong habit of pressing the first button (A) to advance through the story. Apparently, every other game does this, which I would know if I played any games on gamepad... or used common sense in the first place. I've used gamepads on NES, Genesis, PS2... I should have known everyone is gonna press the first button instinctively. Which did the skipping in my game!

Of course, add to that starting confusion another one with "page" meaning line of text for them and a screen containing any number of lines of text to me. Also, they didn't expect skipping intro would skip a single screen but the entire intro, so when it happened it looked like a bug to them. It was a feature, lol.

Lesson? Fixing problem you don't understand fully may be an opportunity to learn... but also a waste of valuable time if you're fixing something that isn't really there and not noticing the real problem.

Who's to blame in all of this? Well, me of course, who else. While trying to achieve some meaningless perfection by using the same button that imitated space in the game and space in the intro, I totally forgot to use common sense and ask my self if that is the button everyone would use without reading the instructions first. Because, who reads instructions for such a simple game... or any game except maybe very complex RTS? I certainly don't.

0 comments:

Post a Comment