Thursday, 8 November 2018

Swabbin' the Decks

To many game developers, front-end UI is one of those necessary evils that gets put off as long as possible. It's basically all the menus, options and other bits that are an absolute must-have, but are not actually part of the gameplay, and therefore perceived as "not as fun to program".

Regrettably, game front-end developer Ben P falls firmly into this category. But we decided to just go ahead, bite the bullet and, after two years of scraping by with placeholders and cobbled-together hacks, put together a UI that would not only fulfill all the game's setup needs, but also bring some consistency to places like the pause screen or when the round ends.

Updated title screen mock-up
For a long time, we knew we were going to have to provide a means whereby players could  not only select their own characters, but configure those driven by AI as well. But it was actually something we had observed at the various shows we had demoed at that prompted the decision to go ahead: if two players join the game at the same time, how do we know which player is selecting which character?

Needless to say - this would involve planning... and post-it notes.

The first big change was to ditch changing the appearance of the option buttons to indicate which was currently selected, and have a cursor instead (in the shape of a pirate's hook, natch). This greatly increased the clarity of the UI, as it removed the problem of "is this option disabled or just not selected?" We also took the opportunity to revert back to having one of the islands in this opening screen, greatly enhancing its colour and thereby its impact, and reinforced the bull's-skull-and-crossbones motif from the ships's flag by using it as a background in the options and game setup views.
Options view mock-up
We also reversed the sequence in which the game is started - previously, all players joined, and then any of them could alter which island was selected on the map. This had proved to be rather chaotic at shows, so in this new UI it was decided that only the player starting the game can select the island (and round time/game mode), with other players joining in after this - although they do have the option to cancel the game setup, should the original starting player not be able to finish the job.

Once through stage selection and setup, the view then pans through to the crew on the ship in much the same way as previously.
Updated character selection view
So we're now back to that old chestnut of what happens if two or more players joining at the same time - which we solved by stopping it from happening!

When a player joins the game, their character set-up cursor (marked "P1", "P2" etc) appears - at the same time, their controller now vibrates and a message stating "Player [n] has joined" is displayed. Following this, there is a half-second block on other players joining - hopefully not so long that it becomes annoying, but long enough for the successfully joining player to realise which cursor they are in control of.

Will this work? We'll find out at the next show!

There are also a number of other enhancements, most important being the optional random setup of AI players, and the game being blocked from starting until all human players have selected their characters - again, driven by feedback at shows where we had to restart several times following players not joining the game in time!

There's still a lot of fine tuning to be done, but the whole team agrees that this is the polish that the opening and game setup screens needed...

... but that's not to say that Ben has changed his mind about coding front end UI...