Mobile User Interface Design

Mobile User Interface Design

The User Interface, or UI, is a really important part of game design. Whether you are planning a game for a Console, a PC or a Mobile game.

Obviously it varies depending on which platform you are developing for, but because the game I’m developing for this project is a mobile game, here are a few thoughts, hints and tips to guide you in creating your own.

Immersion

It’s quite important that the UI does not break the players immersion into the game. It’s no good creating a dark gory horror game and then creating a UI for it which consisted of default grey panels and Arial font.

This kind of jarring of attention can lead to a poor user experience, which in turn leads to uninstallations and poor reviews, and nobody wants that.

During the game play itself, any UI on screen should not obscure the game area, so ideally should be around the edges (virtual joysticks and buttons) and across the top of the screen (non interactable UI elements, for example scores and health bars etc.)

When your designing the layout, consider where feels natural for your thumbs to press when your holding a device. The more frequently used controls should be larger and in easier locations to reach.

With the UI for Flappy vaders, I decided to keep the first page of the UI the player sees fairly simple and unobtrusive. The large logo fills the top of the screen, and the lower half contains only the two buttons.

The player needs only tap the play button from this point to immediately start the game.

The menu and subsequent pages are only accessible before a game, so the elements are more centrally placed on the screen.

During the gameplay itself, the UI will again be minimal and unobtrusive, currently there is only the score and coins collected displayed, but there is also going to be a pause button as well.

All UI elements match the graphical style of the rest of the game, and the sky and scrolling background are visible throughout.

Intuitive

One way of describing an intuitive user interface is that “It works the way users expect it to”. In other words, it must be clear and simple to use, so the user doesn’t have to think about using it.

Each platform has it’s own standard and expected way of doing things, so be sure to consider what is “normal” for your target platform when designing your games UI.

Icon design is another factor to consider. An icon’s meaning should be immediately obvious to the user.

Also the different UI sections should be logical in their design, so the user can easily go from one section to the next without having to think too much about it.

I have found creating icons which are both easy to recognise, and fit with Flappy vaders graphical standards to be one of the hardest parts of creating this game so far. I’m sure I’ll feel differently once I’ve started on the music and sound effects though, lol!

Clarity

There can be quite a range of screen sizes for mobile devices, so it’s important that your UI is clear to see on smaller screens.

Try to avoid using small text sizes, and consider how the font looks when displayed.

Try not to pack all your UI elements too close together. And again, make sure that the icons or text are just as clearly visible on a 5″ phone screen as on a 12″ tablet.

Other things to remember!

Here are some other quick tips to remember when making User Interfaces for mobile platforms..

  • Although Google Play is OK with having a Quit button, Apple will reject your app out right if they find one.
  • If you’re using banner adverts, be sure never to put buttons or controls close to or overlapping the advert.

And that’s all

That’s everything for this topic I think. If you have any questions regarding anything mentioned in this post, then feel free to ask on the >Forum<

Game Progress Update #12

Update #12

Hello world! Welcome to the twelfth Dev with Dave Game Progress Update. At the end of the last video I said I was going to be working on getting the power ups functional, this needed a little extra work to be done on the UI to allow unlocking the rest of the power ups, as well as purchasing the single use items pre-game. So this update is mostly about changes and additions I’ve made to the UI store pages.

Main menu

I’ve reconsidered the layout of the main menu page, as part of the rethink on how the powerups are going to work.

I have changed the icons in the square buttons, and added an extra two buttons at the bottom for the Settings and About pages.

Upgrades page

I’ve added a section at the bottom of the page to enable the player to unlock and upgrade the boosts, which are single use power ups to use in the next game.

These will work in the same way as the previous items in the upgrades page.

Boosts page

The player can buy the boosts from the next store page. I’ve only created the layout for this page so far, and none of the buttons do anything yet.

The grey box on the right displays how many of the powerup you have.

I’ve not decided as yet how to show that the items on this page haven’t been unlocked, but I imagine it would be something like removing the price/coin icon, or maybe greying out the entire button.

Coins

The next page is the coins page where players can earn coins by watching a rewarded advert, buy coin bundles for real world money, or pay to have the full screen adverts removed between games.

Again nothing in this section is functional yet, and I’m using the grey rectangle as a place holder. Each button in this section will ideally have it’s own icon to replace the grey square.

Trophies

The next page is the trophies page. This page will show which trophies the player has already unlocked, and which trophies still need completing.

Next time

I’m now quite happy that I have enough of the UI done to allow me to write the remaining systems to handle the powerups and boosts. I’ll revisit the UI at a later date and do some more work there.

My goal for the next update is to have all of the powerups and boosts working. I’ve already got one done, which leaves seven to go.

And that’s all for this update, I’ll see you in another two weeks with the next one!

GDD Update #2

Click the above button to view the revised GDD for Flappy vaders.

The bulk of these updates relate to an overhaul of the upgrades/powerups system. The previous plan was deemed overly complicated, so it’s been simplified a little.

The plan for using rewarded adverts is also included in this revision.

For those interested, the modified/addition sections are as follows.

3.6 Powerups/Upgrades

Power ups are split into two categories. Pickups, which are collected during the game, and Boosts, which are single use powerups which are purchased before the game.

3.6.1 Pickups

These power ups are activated by the player collecting an icon during game play.  The icons float across the screen using a sin wave pattern.  They require unlocking from the upgrade store before they will appear in game.

Shield:
The shield power up encloses the player in a protective bubble, preventing the player from crashing into other sprites.  The top and bottom limits are enforced to stop the player passing through them, but the ship will not be destroyed while the shield is active.  The duration of this powerup is affected by how many times it’s been upgraded.

Magnet:
The magnet draws coins towards the players ship to make collecting coins easier.  The higher the upgrade level, the larger the range of the magnet.

Smart Bombs:
The smart-bomb pickup will destroy all the enemy sprites (missiles, meteors etc.) but will not destroy buildings.  The range and effectiveness of the bomb is determined by how upgraded it is.

Score Multiplier:
Increases the base score rate.  Needs to be unlocked first with an initial purchase, and case be upgraded a further 4 times to increase the value.  Starts at 2x score, 4x score, 6x score, 8x score, and finally 10x score.

3.6.2 Boosts

Boosts are Single use abilities which are purchased before the game starts and are only active for the next game.  They also need to be unlocked in the store and can be upgraded a further 4 times to increase their power.

Head start:
Whooshes the player at massively increased speed through the first couple of zones.  Upgrade increases the distance travelled.

Self-destruct
The self-destruct causes the ship to detonate and progress a little extra distance.  The size of power of the explosion is determined by the number of times it’s been upgraded.

Missile Jammer:
Stops some of the missiles from attacking.  Needs an initial purchase to unlock, and then can be upgraded a further 4 times.  The number of missiles blocked increases with the upgrades.

Once fully upgraded it will block all missiles from appearing that game.

Second Chance:

Once purchased gives the player a chance to continue the game once they have crashed.  It starts with a 1 in 5 chance of re-spawn and increases to 100% chance when fully upgraded.

3.7 Daily Bonus

To encourage player retention the game should include a daily bonus system.  The more days played consecutively, the larger the reward. 

Rewards can be either in game currency or powerups.

Powerup rewards cost in the store determines there value here.

The actual type/style of the daily bonus will be determined later.

I would like to use rewarded adverts to allow for an extra re-spin or double the prize or something similar?

4.7 Adverts

Flappy Vaders will use a full screen interstitial advert which will be displayed at the end of a game, between the game over/summary and the return to the main menu.

Rewarded adverts are also used to allow the player to earn a few free coins from the coin purchasing screen, as well as increasing the reward from the Daily Win thing.

4.8 Options Screen

The options screen contains whatever options are available to the player.  This includes things like music and sound effect volume etc.  It will also contain buttons to open the help and about texts, as well as a button to return to the main menu.

4.9 About Screen

Shows the game credits and shout outs in a auto scrolling text scroller, similar to TV credits.  This needs to include all the Dev with Dave links.

Advice on Mobile Adverts

An introduction

Having adverts on your mobile app or game is a great way to earn money from your project. The global revenue from mobile adverting has grown year on year, and shows little sign of slowing down.

However, it’s not as simple as just slapping some adverts willy-nilly in your app and hoping for the best. In fact having too many, or badly placed ads leads to a poor user experience, which in turn means lots of 1★ reviews, and poor user retention.

The first thing to decide is who’s adverts to show. There are many ad providers out there, each with their own benefits and downsides.

My personal favourite is Google Admob, it’s one of the largest Advert providers in the world, with 31% of all adverts seen being theirs. They have a large global reach, and are quick to implement new privacy settings, like GDPR and the New Apple iOS privacy rules.

Mobile Games

Having chosen your provider, and installed the SDK etc. It’s now time to decide what type of ads to show, and where to put them.

The best type of adverts to use for mobile games are Interstitial ads and Rewarded ads.

Rewarded ads work best when used in conjunction with free in game objects or currency.

For example, Rovio’s Angry Birds Friends uses rewarded ads to give the player the option for a double spin on the give away wheel.

Where as Elex’s The Walking Dead : Survivors offers players the chance to double the contents of reward boxes by watching a rewarded advert.

Rewarded ads are full screen adverts, which the player cannot skip through without losing the reward.

They are usually triggered by the player pressing on a button on screen.

You shouldn’t however try and trick users into watching rewarded ads by using them like normal interstitial ads.

For AdMob certainly, this is against the terms of service, and may result in your account being restricted or closed.

Interstitial adverts are full screen ads which may or not be videos. These are displayed by the game at specific points as specified by the developer.

It’s best to put these at natural break points in your game’s flow, like the end of the players turn, or after the Game Over message.

Putting them elsewhere, such as displaying an advert during gameplay, or having one appear every two minutes when the player is in the games main menu will feel jarring to the player, and break any immersion they may have in your game.

Applications

If your project is an app rather than a game, then I find it best to use a slightly different approach to using adverts.

Firstly, depending on what your app is, it’s quite likely that it doesn’t have the same flow as a game, nor natural break points. Because of this full screen interstitial ads aren’t so beneficial.

Instead I find placing a simple banner advert at the bottom of the screen is the best practice. Although ensure it’s not blocking any essential UI components or anything else the user needs to see or interactive with to use your app, again, this tends to lead to 1★ reviews and lots of uninstallations.

Depending on what your app does, it might be possible to implement a rewarded advert to unlock premium features for a limited amount of time, but I have found people are generally not interested in rewarded ads in applications.

Things to NEVER do

It is also quite important to make sure you never do any of the following with your adverts, or you risk being penalised or your account restricted.

NEVER EVER EVER click on your own adverts in your app. If you need to click on it to test the reward or for some other reason then make sure you switch to test adverts! Ad providers can 100% tell that you are doing this.

You’re also not allowed to ask users to click on your adverts.

And that’s about it

Hopefully you are now a little more knowledgeable about Mobile adverts and how best to use them in your projects.

I also find that it can be worthwhile to offer advert removal as an In App Purchase from inside the app or game, but that’s a blog for another day 🙂

If you have any questions, then feel free to ask them on the Dev with Dave forum (which is >here<)

Good luck 🙂

Game Progress Update #11

Update #11

Hello world! And welcome to the eleventh Dev with Dave Game Progress Update! It’s nice to say that I (think) I have done everything I said I would do at the end of the last update! It’s a good feeling 🙂 lol

Upgrades store

I managed to fix the problem of accidental purchases when scrolling the upgrade store. After trying many things, over a much longer period than I’d have hoped, I finally settled on recording the buttons position on release and comparing it to the buttons position when pressed initially. If these are the same (plus or minus 1% for accidental movement) then it’s a press, otherwise just ignore it. This was the best performing solution I tried.

Purchasing an upgrade now deducts the price of the upgrade from the players coin total, as well as changing the text and price of the next upgrade.

Powerups

Once a power up is unlocked in the Upgrades store, it can now spawn in the game. Only the shield power up currently does anything, but they are all now unlockable.

The powerups spawn at a rate of 1 every 15 seconds or so, which is more for testing than anything else. I expect in the finished game the initial spawn rate will be much higher.

Once the player pickups up a shield powerup, the game sets a few variables to indicate the shield is active, the start time, and the duration (Which is extended the further upgraded the shield is)

If the shield isActive flag is true, then the collision system simply ignores any zone objects which would otherwise cause the player to crash.

The shield sprite is also toggled to visible when the powerup is activated. This remains until the duration has passed, where upon the isActive flag is set back to false, and the shield sprite is once again hidden.

Next time

The next Dev with Dave progress update is going to be later than usual, because it’s Christmas in two weeks! (I know? I can’t believe how quickly the last few months have gone)

The next update will be on the 15th January 2021, which is a week later than expected. I’m going to be taking a break away from the keyboard over the holidays and it’s thrown the calendar off a little.

However, with the next update I hope to have the rest of the powerups working (Well maybe not the magnet? I’m not 100% sure how I’m going to approach this yet, lol), as well as making place in the store for the single use powers.

It still feels there is so much to do before Flappy-vaders is finished, but overall I’m really happy with what I’ve achieved so far, especially considering the limited time, hardware and resources I’ve been using.

I really need to bring the Trello up to date, and there are some revisions which need making to the GDD also. I’m hoping once the Christmas period is over I’ll be able to devote some free time to bringing these things up straight.

See you next time 🎅

Game Progress Update #10

Update #10

Hello world! And welcome to the tenth Dev with Dave Game Progress Update! This week the work has continued with the menus and a few graphical updates.

Menu Graphics Updates

After what felt like an eternity of downloading and trying different 8 bit style pixel fonts I finally found the one I’m using in the picture below (With a little help from @Opkins from the MK:Game Dev discord, who sent me a link to it).

It’s certainly clean and stylish, but I’m a little sad that the zeros don’t have the line through them. This is the single most distinguishing feature for an 8 bit style font in my opinion.

The main Flappy-vaders logo on the title screen has also been updated. The original was too high-resolution and didn’t match the rest of the graphics. The new version fixes this.

I also have spent some time creating icons for the buttons, as shown in the picture above. These represent upgrade purchase, in game currency purchase, view trophies and about/help.

I’m not entirely happy with the icons tbh, but they’ll certainly do until I can get more time to update the graphics.

Upgrades store

The other main area I’ve been working on is the upgrades store section of the menus.

As you can see from the video, the player can now scroll this list by dragging their finger up or down the screen. And also purchase the shield upgrades by tapping on the button.

This is about as far as I managed to get this update due to some problems I’ve been having trying to differentiate between a tap and a drag with the UI system.

Currently if you start a drag by pressing on the buttons, then the purchase is made and the next box lights up to show this. Unfortunately this isn’t desired behaviour, as I do not want a drag to register as a purchase.

Upgrades

I have also spent some time creating a system to maintain the upgrade purchases the player makes. Currently this is just an array to store values in and a couple of functions to load and save the array to disk.

Next time

And thats all for this time round 🙂 In the next update, I hope to have the dragging bug fixed, and the rest of the upgrade purchasing stuff finished.

Once these are done then it’s time to actually implement some of the powerups in the game.

See you next time 🙂

Comment First Coding

Comment first coding

Comment first coding is a technique that I have used for many many years, but only today found out it has an actual name! (I had a jolly good Google before starting writing this post).

I find it especially useful when I am coding in a language which I am not overly familiar with.

The basic premise of Comment first coding, is planning out what you want your code to do using either plain English, pseudo-code or a mixture of both, in comments.

Then going through one comment at a time, actually writing the code proper.

	//db-jointeam.php - POST(team ID), find playerID from username ($_SESSIONS variable)
	//	If playerID = specified Team's ownerID
	//		Add player to teamlobbyplayers
	//		Set isActive to 1
	//	Else
	//		If isActive = 1
	//			Add player to teamlobbyplayers
	//		Else
	//			Error, lobby not active
	//		Endif
	//	Endif

Above is an example of some Comment first coding from a project I am working on which uses PHP to access a MySQL Database which holds the games player and team data.

Conclusion

And that’s pretty much all there is to Comment first coding. Like I said earlier, I find this technique to be extremely helpful generally, but more so when I’m using a language which I’m not overly familiar with.

Game Progress Update #9

Update #9

Hello World, and welcome to the ninth Dev with Dave Game Progress Update. I’ve not managed to get as much done as I’d have liked, but once again, the curse of tiny image resolutions has made creating the graphical assets take a fair bit longer than I was expecting.

The Menu

The first and most obvious change to this update is the inclusion of the menu button in the bottom left hand corner of the screen.

I’ve used a simple ham burger style icon to represent the menu, shown above with the red exclamation mark indicating that there is something to see in one or more of the menus.

Pressing the menu button opens up the main menu screen. There are currently three buttons, but depending on how things look, I may split the upgrades into two sections, which would require a 4th button.

I didn’t have time to finish the icons for these buttons so they have only simple text labels right now. Each one of the buttons opens up a new UI page.

Pressing the Upgrade button takes you to the upgrade page, where the player can unlock and upgrade various powerups,

All of the UI elements on the menus are created using the existing UI systems which I created earlier in the project.

Power Up Icons

I’ve also created icons for the power ups which the player collects. Below are the icons for the Magnet, Shield, Multiplier and Smart-bomb powerups.

I’ve not however managed to implement them properly into the game yet though.

Refactoring the UI Systems

I spent several hours refactoring the UI systems code after I noticed a much better way of organising the variables. It’s not really changed the way the code works, and there are no visible changes to the player.

Next time

In the next update I hope to have the UI looking a lot more complete, and be fairly functional as well. I’d also like to get the power-up collection a little closer to completion as well.

I also have a lot of updating to do on the Trello board and the GDD, I will try and get these done soon and I’ll update you via social media.

See you next time 🙂