Game Progress Update #14

Update #14

Hello world! Well, here we are at the 14th Dev with Dave Game Progress Update.

I know last update I said I had written enough of the UI systems to complete the powerups and boosts, but I had completely overlooked the fact that I hadn’t yet created the Missiles zone, so creating the missile jammer boost effect was unfortunately not possible.

I did however get the Head start and Self destruct boosts working, although neither is as polished as I’d like them to be.

The unlocking boosts works the same way as the unlocking the other powerups, but I had to write some extra code to handle the purchasing of boosts, managing the stock level and updating the text on the Boost store page buttons.

Head Start

The Head Start boost gives the player an initial burst of speed and a shield to protect them for a few seconds.

Code wise, the pre-game section checks to see if the player has a head start boost, and sets the headstart.isActive flag to true.

The main game section checks this flag, and if it’s true then it initialises a head start by setting the variables for the speed# etc. The game then runs at the boosted speed until the duration is up where it slows back down to the normal speed and the shield ends.

It has shown a bug in the way the score is incremented though. The score is supposed to increase faster when the boost is active due to the increased speed of travel. I’ve added this to the Trello and will look into it next time I’m fixing bugs.

Self Destruct

The self destruct boost gives the player an extra burst of speed at the end of a game by exploding and propelling the ship back up into the air.

The force of the explosion and the number of times the players ship bounces is determined by how upgraded the boost is.

Again, implementing the functionality of this boost was a fairly simple case of adding to the existing systems.

I added a check to the PlayerCollision() function to see if the player had a self destruct in stock when they crashed, and if so then move to the self destruct section instead of the usual game over section.

The new self destruct section initialises the self destruct by giving the player a massive boost of yVelocity# which is directly related to the level the self destruct boost is upgraded to.

It uses the same gravity calculation as the other game sections, but instead of triggering the game over when the player hits the floor, it gives the player another boost of yVelocity# as long as the maximum number of bounces hasn’t been exceeded.

The maximum number of bounces is also dependant on the level of the upgrade. Higher levels give more bounces, and therefore more distance and more score.

This will probably have an explosion sound effect, as well as a similar flash effect to the Smart bomb power up, and possibly some extra particle effects as well.

Next time

And that’s that. I’m still kicking myself that I’d forgotten I hadn’t written the missile zone handling system. I also have one other game zone system to write before I have finished all the planned zones and can move on to a bit of level design, creating some more zone sub sets to make the game less repetitive.

On the next update I hope to have not only added the system to handle missile zones to the game, but also have completed the last two boosts!

As always don’t forget to follow @devwithdave on social media if you haven’t already, and I’ll be back in another fortnight with the next exciting game progress update!

See you then

Dave.

Six months in

Six months in

It’s been six months since Dev with Dave launched. I really can’t believe how quickly the time has passed!

This landmark does feel like the ideal time to just recap on the project, and to go over some of the highs and lows.

What we’ve learned so far

During the first few months, the main focus was on planning, writing your own Game Design Document, a few example GDDs from games, an introduction to Trello, and access to the Flappy-vaders trello board so you can see for yourselves how it works.

After planning, came programming. Now I deliberately didn’t want to go to deeply into coding on the blog, so instead it was mostly theory based stuff which would be applicable to any language you’re using.

Flappy-vaders

Flappy-vaders has come on a long way in the last six months. From developing the basic systems with place holder art, to adding some of the visual effects, and adding powerups and upgrades. It’s starting to look like a halfway finished game, although there is still a way to go yet.

The bad bits

Now when I originally planned Dev with Dave, one of the things I was hoping to do was to spend time in various coffee shops and cafes (and McDonalds.. πŸ™„) but unfortunately the global pandemic happened and for large chunks of this year we have been in lockdown and all these places have been closed.

Because I am only working on Dev with Dave in my free time, I have struggled occasionally to keep up. This has shown in delays to the weekly progress update videos, and quiet periods on the social media. I’ve also found keeping the Trello board up to date to be tricky at times.

The good bits

I really enjoyed reading through the old game GDDs in the planning stage, and I have to say that Flappy-vaders has reached the stage where testing something quickly can turn into playing the game for 20 minutes! lol.

I’ve enjoyed the few times I managed to get out with the tablet and get some of the game written whilst having a nice cup of tea.

What’s coming next

I’ll be wrapping up the Programming theme soon, and moving onto promotion, where I’ll be talking about using social media and paid adverts to promote your game.

I’ll also be finishing off the last of the Flappy-vaders systems required for things like powerups and the store before moving on to level design.

I’m also hoping that the lockdown will end soon, and I’ll be able to go out and not only return to the cafes to write the game, but also get my hair cut! πŸ˜‚

Dave

Game Progress Update #13

Update #13

Hello world! Welcome to the thirteenth Dev with Dave Game Progress Update. Since the last update I have managed to get three more of the powerups working, those being the magnet, smart bombs and the score multiplier.

Score Multiplier

Implementing the score multiplier was fairly straight forward.

When the player collects the Score Multiplier power up, a flag is set which indicates that the powerup is active.

When the game gets to the “increase score” part, it simply checks this flag and if it’s active then the score is multiplied by the multiplier level x 2. This gives the player the following multiplier options, x2, x4, x6, x8 and x10.

Smart Bombs

The next powerup is the Smart bombs, collecting one of these will destroy any enemy object on screen. It is intended to not work against structures, so it will leave the pipes intact.

When the player collects the smart bomb powerup, the game calls the SmartBomb() function.

This checks through all the sprites being used to display the current zone, and if they are in range and of the correct type then the sprites are disabled and moved off screen.

Because simply making the meteors disappear looked a little boring, I added a blinding white flash of light effect.

This was achieved by positioning a screen sized white sprite over the game sprites but beneath the CRT overlay effect sprites, and then decreasing the alpha value of it.

Simple but effective πŸ™‚

Magnet

The last powerup I’ve done is the Magnet. Once collected this powerup makes coins within range fly towards the players ship.

In a similar way to the smart bomb, to create this powerup the game checks through all the current zone sprites to see if any of them are coins. Although it does it every update until the duration has expired.

If a coin is found in range, then the game calculates the angle the coin needs to move in, which is a simple bit of trigonometry. It then moves the coin towards the player.

I say a “simple bit of trigonometry”, but this is what happened the first time I ran the game after coding the magnet systems.

I’m pretty sure that’s not how physics is supposed to work! πŸ˜‚πŸ˜‚πŸ˜‚

I would like to add a visual effect to this as well, to give the player more indication that this powerup is active. It will probably have an active sound effect as well.

Next time

And that’s all I’ve had chance to do this time round. I’ll try and get the Trello updated this evening to reflect the changes made. In the next update, I’ll endeavour to get the boosts working.

As always, don’t forget to like, follow and subscribe to @devwithdave on social media to keep up to date with the project.

And if you have any questions, feel free to ask them on the >forum<.

See you in another two weeks.

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 πŸŽ…