Game Progress Update #41

Game Progress Update #41

Hello world, Welcome to the forty first Dev with Dave Game Progress Update!

Screen capture of my phones weather app showing the temperature to be 30 degrees.

Summer time is well and truly upon us this week. My phone is saying it’s currently 30° outside, and the car agrees. It is definitely a very hot day today.

I’m currently sitting at my desk in front of the fan as I write this and I’m still an unpleasant sweaty mess.

I got a good few hours of work done on the game this time around. Mostly more Daily Missions stuff.

Daily Missions

All the work I’d done on the Daily Missions in the last Game Progress Update had introduced a couple of new bugs. I worked on these things first

Daily Mission Selection

I’d made a rather simple error with this. There are 5 mission types currently, which range from 0 to 4. When I’d coded the bit which selected new missions at random, I’d simply set the maxMissionTypeCount constant to 5, the number of actual mission types currently. However when I used this in the Random() function it ended up returning values ranging from 0 to 5! This is the cause of the occasional blank daily mission.

I fixed it by simply changing the value to 4 and making a note in a comment above the constant.

Daily Mission Reset

Another problem with the code turned out to be with the way the new reset time was calculated. I found that if you ran the game after the reset time that day, every time you clicked the game icon you would get a new set of daily missions.

Dave sat in the garden with pen and paper working on Flappy-vaders daily missions

This was one of those problems which I had to sit down and think about with a pen and paper. I worked out that the problem was that the game was choosing the new reset time to be 8pm on the same day. Meaning that when you started the game after 8pm, the game would decide the timer was over and refresh the mission list.

To fix this issue, after the existing code. I added a check to see if the hours component of the time was 20 or greater, and if it was then to add 24 hours to the reset timer. I’ve tested this and it appears to work.

Targets and Rewards

The other thing I’ve gotten done with the Daily Missions is decide on a way to determine the target values and reward amount for the missions.

I decided to expand on the missionTotals[] array data, by changing it from an integer array to a typed array and adding variables to store the minimumTarget and the maximumTarget, as well as the step value. As well as the minimumReward and maximumReward also.

The system record the number of times a mission type is successfully completed. This value is used with the step value to determine how far between the minimum and maximum values the target value and the reward is.

These values don’t change and will be stored in the array but not saved to the missions save file.

The Alpha test

I also have officially launched the alpha test. This is an exact snapshot of the current build of Flappy-vaders so some of it doesn’t work and some of it doesn’t work very well.

Those who have provided me with an email address will be receiving an email with instructions on how to download and play the game.

Don’t worry if you haven’t, there is still time! Just let me know either by email or social media, what google mail address is associated with your android and I’ll add you to the list of testers.

I’m actually excited to get some new perspectives on the game.

That’s all folks

And that is all I have to share this time round. I’ll as always be back in two weeks with another update for you.

Game Progress Update #40

Her majesty the Queen

Game Progress Update #40

Hello world, and welcome to the fortieth Dev with Dave Game Progress Update!

It’s been a fairly strange time the last couple of weeks. Two of my children celebrated their birthdays, and the whole country is celebrating the Queen’s platinum jubilee with two extra bank holidays yesterday and today.

Despite this I feel like I have had hours to work on the game, which I have thrown myself into. So much so that I completely forgot to post any social media on Dev with Dave the last week. (Oops – will do better next week I promise)

Anyway, I’ve mostly been working on the daily missions this update, and have made loads of progress which I will tell you about shortly.

but first, a slight change in the hardware I’m using.

A slight change

Although the tablet still works, I’ve been hesitant to use it with the cracked screen. I’ll try and get it fixed as soon as I can. In the mean time I’m using my laptop instead.

It’s a few years old, and isn’t the most powerful. I’ll find a list of the actual spec of it for the next update.

Daily Missions

The first thing I did was to create the array to store the number of times the player has completed each mission type. I will use this value to determine the difficulty of the next mission by increasing the target value in relation to the number of times the player has previously completed a mission of that type.

This array was also added to the daily mission save data, as well as new values to record the players progress with each mission, as well as whether or not the challenge had been completed.

Next I tweaked the layout of the Daily Missions panels in the UI. This involved repurposing the second line of text to contain the reward, realigning it to the right, and adding the coin icon.


While I was making changes to the UI I also added a countdown to the divider at the top of the daily missions page. Fortunately AGK has commands to return the hours, minutes and seconds from UNIX time so it was quite simple to implement.

The next thing I did was create a function which could update the text on the daily mission page of the UI. Ultimately this function will also change the daily mission icon as well, but for now it’s just the text and a grey square.

New Bugs Introduced

As with any bit of prolonged coding, I have of course introduced a couple of new bugs.

Firstly, the bit where it counts down the daily mission timer works perfectly, however it does not reset the time properly. This results in the missions resetting every time you play the game instead of daily.

Secondly I think I have miss understood how the Random command works in AGK as instead of returning a 0 to 4 when choosing a new random mission type, it’s returning a 0 to 5. Which means occasionally that there is a blank mission on the daily mission page.

Both these bugs have been added to the Trello and the bugs page here on the website.

That’s all for now

And that is about all I have managed for this update.

I’ll be back as always in two weeks (give or take the odd day) when I hope to have the Daily missions working properly. I also hope to get the test build updated.

Anyway, until next time

Dave 🙂

Game Progress Update #39

Game Progress Update #39

Hello world! And welcome to the thirty ninth Dev with Dave Game Progress Update!

By my reckoning this update marks around 18 months of working on this project, and looking back at how far it has come makes me feel quite proud 🙂

This update I have mostly been working on the Daily Missions again.

But first, I have to start this update with a spot of bad news..

Disaster strikes

Yesterday I was sitting out in the garden under the gazebo, enjoying the evenings coolness and working on Flappy-vaders with the tablet perched on my lap.

Suddenly and for no particular obvious reason, the tablet slipped off and fell onto the concrete floor 😭

Image showing the damage suffered by my Linx tablet when I dropped it off my lap.

It still works fortunately (for the time being), so I am able to carry on with the project. I’m hoping I can get it fixed at some point though.

Daily Missions

I have spent most of the time this week carrying on from the last update and the work on the Daily Missions.

The missions themselves were broken down into a mission type, a mission target, and a variable to allow alternate texts.

The first thing I did was create a couple of types, and a variable to contain the types. These were to hold data relating to the three missions as well as the reset time.

I decided to use unix time to track the reset time of the daily challenges, as it is simpler to work in seconds than to convert a regular date and time.

Once I’d created the variable responsible for tracking the three daily missions, it was time to flesh out the functions which would Load and Save the mission data.

I also created a function which generates three new missions, by choosing a mission type and target value at random.

Lastly I created a function which returns true if the reset time has passed, or false if not.

I still need to make some improvements as I’m not happy with the way that the reset time works. I’d rather it be a fixed time every day, where as currently it’s 24 hours after the missions reset.

I also need to create an array which will store how many missions of each type you have done before. This will be used to determine the target value for new missions. This array will also need to be added to a save file somewhere as well.

I’ll try and get these working if not completely finished in time for the next update.

Bug list

I’ve also managed to get the bugs from the Trello board added to the bug board on the website.

Doing this has shown that I still have a few things to set up with the bug reporting, lol.

I’m just waiting for a couple of email addresses from people who have said they wanted to join in the testing before I launch the testing. (So if you want to join in there is still time..)

Reporting seems quite straightforward though.

Image showing the Add bug dialogue

To help prevent spam and abuse of the bug reporting, there is a captcha style test required, and all bugs are moderated before being made visible.

That’s all folks

And that’s all for this progress update! I’ll be back as always in two weeks time with hopefully more news about the progress of the game!

Until next time!

Game Progress Update #38

Game Progress Update #38

Hello world! And welcome to the thirty eighth Dev with Dave Game Progress Update!

It feels like its been a good couple of weeks this last fortnight. I’ve managed to spend a reasonable number of hours coding the game, although I think the social media side of things has suffered a little.

Daily Missions

By far the most work I have done this update has been on the Daily Missions. This has been mostly planning and fleshing out the Daily Missions script with functions.

The basic plan is to have an array which stores the Daily Mission data as a type. This will contain the type of mission it is, the target value, the reward, etc.

I have also planned and started writing functions to handle loading and saving, updating the UI display and achieving missions, adding an unread notification, and collecting the rewards.

Above is a shot of me developing the Daily Mission Panel. The grey square will be an icon to reflect the mission type. I also need to put in a coin icon and a prize reward value, as well as a button to collect the prize when the mission has been completed.

I would also like to put in a divider (either above or below the three daily mission panels) which shows the date/time that the missions will reset.

Social Media

As I said above, what with me spending almost all my time this update working on the Daily missions stuff, I think the social media side of things has suffered a little.

I seem to be really busy with my day job, and not having as much spare time to work on Flappy-vaders as I would like. I’m sure however I will find some kind of balance again.

That’s all for now

And that’s the end of this update. I’ll be back in another two weeks with another. I’ll hopefully have the Daily missions working next time, and have the first test build pushed to Google Play for you guys to test.

Dave 🙂

Game Progress Update #37

Game Progress Update #37

Hello world, and welcome to the 37th Dev with Dave Game Progress Update!

As I said on social media earlier this week, I’ve been quite ill recently with a nasty cold (Not Covid 19 however, so I’m thankful for that)

So sadly I’ve been wrapped up under a blanket on the sofa instead of working through the Flappy-vaders to do list.

I have managed to get some work done on the game as well as hopefully fixing the website, so it’s not all doom and gloom, but I’m afraid that this probably isn’t going to be the longest or most in depth update in the world.

Website Security (Again!)

One of the biggest time consumers recently in this project has been managing the enormous number of user accounts which have been created on the website.

I have recently changed the way new accounts are created using the “Email verification for WooCommerce” plugin by WPFactory, which I have used on other websites to prevent similar spam attacks.

I hope this will be the last time that I need to mention this in the blog! lol

Unread Notifications

All that was really left to do with the notifications was to get the loading/saving to work, so that any unread notifications were transferred from one game to the next.

Everything was going swimmingly well, and I was quite happy with the code until it was time to compile and run it…

Unfortunately it took whatever little time I had remaining to work out where I’d made the mistake (it turned out I was using the wrong constant in a for-next loop, for those who were wondering)

However, the rest of the code worked more or less as intended. There is always a few small tweaks to make along the way, lol.

The program makes use of two new functions I wrote, one to LoadNotifyData() and one to SaveNotifyData(). The data isn’t important to game play in any way, so for the time being I am simply storing it as a plain text file.

Loading the Notify data is done when the game is run while the rest of the user data is also loaded.

The game calls the SaveNotifyData() function when the player presses the back button from the main menu. This seemed to be the most logical place to call it from.

Uploading to Google Play

Following on from the >Last Update< where I failed to upload the compiled .aab file to Google Play because they took umbrage at me using the same keystore file that I used for .apk files previously.

So the first thing I did was to create a new Keystore file using AGK Studio. This was done easily from the Tools drop down menu.

Next was to create the .aab file itself. Fortunately AGK Studio had retained all of the data I’d previously entered, which was a pleasant surprise. Things like Ad Mob ID, The Firebase details etc.

Once the aab file was compiled, it was time to upload it (And cross my fingers… lol)

This time the .aab was accepted without problem, and all I need to do now is press the “Roll out to internal testing” button! If you want to be a tester, then it’s not too late, drop me a message or email or whatever and let me know!

That’s all folks!

And that brings us nicely to the end of this update. I will be back in two weeks with another one!

In the mean time, don’t forget to follow Dev with Dave on social media.

See you soon.

Game Progress Update #36

Game Progress Update #36

Hello World! Welcome once again to another Dev with Dave Game Progress Update!

In this update, I’ve spent some time thinking about how best to do the daily bonus screen, I’ve created and tried to upload another build of the game, and as always these days I’ve been battling suspicious activity on the website.

Daily Bonus Screen

When I originally planned the Daily bonus, I was thinking of a spinning prize wheel, but I don’t think this idea translates too well into a low res pixel art style.

Instead I decided to try and implement a scratch card style bonus, where you are presented with a six panel scratch card and you win a prize if you match 3 symbols.

I’ve seen the scratch card approach in a few games, but the most memorable one is from Dice with Buddies by Scopely.

The video at the top of the page shows an attempt at creating a scratch card effect. This is based on code from the TGC forums posted by Kevin Cross.

Uploading to Google Play

After the promising start I got off to in the last Game Update, I’m afraid I’m still no further along to getting Flappy-vaders uploaded and ready for testing.

As you can see from the screen grab, when I went to upload the .aab, it threw up an error because I had used a key store which I had used to publish other .apks.

This is the first time I’ve tried publishing using an Android App Bundle (aab) rather than the old style Android Package Kit (apk) files.

Still, It’s a fairly easy task to create a new keystore file specifically for this.

Website Security

I’m still finding I’m getting a few hundred sign ups to the Dev with Dave website which are suspicious at best. I was hoping that the reintroduction of the reCaptcha on the signup form would have been enough to stop it, but sadly that has not worked.

I did try a different approach, with a new security plugin, but again it seems to have not made a dent in the spammers signing up.

I’m going to try and add email verification next. Where you have to authenticate the account by clicking a ink in an email which the website sends to new signups. This has proven effective on other websites I’ve been involved with recently.

And that’s all for now

I’ll no doubt be back in two weeks with another Game progress update. I expect I’ll have the test build uploaded to the play store, so please, if you haven’t already joined the test program, drop me an email or message and I’ll let you know how to join up.

Dave

Game Progress Update #35

Game Progress Update #35

Hello world and welcome to the thirty fifth Dev with Dave game progress update!

In this update, I have managed to get a tiny bit more done to the unread notifications.

I’ve also made some more headway into getting the compiled Flappy-vaders build ready to be uploaded to the Google Play Developer console.

Unread notifications

In the Last Game Progress Update I had more or less got the unread notification system working, all that was left was to create a list of which events would cause a notification to appear on the menu.

After some thought I came up with the following list

  • When a boost is unlocked
  • When there is a new daily challenge
  • When there is a new daily prize
  • When a new trophy is awarded

However, since I haven’t written any code for awarding trophies, and I’ve not even created UI pages for the daily challenges or prizes, the only one I can actually write is when a boost is unlocked.

I would still like to add a load/save function for the showNotify properties, so that the data can persist from one session to another.

I will try and create the two pages above ready for the next update, so I can at lease set the notifications even if the missions and prizes don’t work as yet.

Compiling the Game

Compiling the game ready for upload to the Google Play store is surprisingly easy with AGK Studio. There is an option to Export to Android from the menu, which then presents you with the following dialogue box.

AGK Studio Export to Android Dialogue

The first thing I did was find a suitable image to use as an icon for the compiled game. I just used a screen capture of the Flappy-vaders ship against the gradient sky.

Next I went to the Firebase Console and created an entry for it. I use Firebase to monitor analytics data from the game. Doing this gave me a config file to include in the build to set up the analytics.

And lastly I headed over to Google AdMob to create an Interstitial advert to show between games, and a rewarded advert which the player can watch to earn free coins. Setting these up gave me the AdMob App ID which is also needed in the compilation process.

Once all the data had been filled in it was time to press the Export button.

The actual compilation process only took a few seconds (I used the main PC for the build, but I’ll do the next one on the tablet to compare the time taken), and I now have a compiled .aab (Android App Bundle) file sat waiting to be uploaded.

I have once again however ran out of time for this week! So I won’t upload it till next week.

Once again, If you want to be involved in the first round of testing then please get in touch either by email or social media. There is still time to get added to the list of testers.

Website Security Issues

I was completely wrong about having sorted out the website. I am still getting a steady stream of suspicious signups despite the registration form being protected by a reCaptcha. 🤔

I have a few other ideas to protect the website, but my concern is that securing the website will take time away from actually writing the game. I feel short of time enough for this project as it is.

That’s all folks

And that’s all the news I have for this update. I’m off out tonight to the MK Game Developers Meet-up, but I will be back with another Game Progress Update in two weeks.

Until then.

Dave

Game Progress Update #34


Game Progress Update #34

Hello world! Welcome to the thirty fourth Dev with Dave Game Progress Update!

As I said earlier in the week, unfortunately my girlfriend had to spend a week in hospital thanks to her diabetes so I have had very little time to work on the game and the website. She’s much better now and I’d like to thank everyone who wished her well on social media. You are all awesome <3

This time round I have just about got the unread notifications working on the menus, so the player can be informed when there are new menus to see. (e.g. a new boost being unlocked, or new daily missions to look at)

I’ve also managed to get the website back up and running, and have reinstated things like the forum and user creation etc.

Unread notifications

So carrying on from the last update, I finally managed to get the notifications to draw over every button, but when I went to the store pages I noticed that the notifications didn’t slide up and down with the rest of the icons when the player scrolled the screen.

So I added a line to the code to ensure the notifications moved with the rest of the UI elements on the page, compiled and ran the code again only to discover that the notifications were also being given to the store divider images. This shouldn’t have been the case as I was already testing to see if the elementType property was set to uiButton before drawing the notification sprite.

This turned out to be because the dividers were actually buttons *sigh*. I changed these to uiImages instead, which they were supposed to be in the first place. Compiled the code and ran the game once more.

This time the notifications were appearing only on the correct elements and were scrolling with the buttons on pages where the player can scroll. The problem this time was that the sprite depths were wrong and although they appeared above the buttons like they were supposed to, they also appeared over the top of the title bar at the top of the screen.

Having resolved all these issues it was time to make sure that the notifications were checking to see if the showNotify property of the button was set to true before placing and showing the sprite onscreen. This was achieved with a simple If check, and worked perfectly, resulting in no notifications being shown.

Just to prove that it’s working properly, I then went and manually set 3 of the buttons to show notifications, simulating the path of notifications that would guide a player to a recently obtainable powerup or whatever.

The very last change I made was to unset the showNotify property on buttons which have been pressed.

I still need to find all the events in game which will cause a button to display a notification and add the code to do so at each one, but that will have to wait as I’ve run out of time for now.

Website

After all the palaver with the website over the last month or two, I think I can safely say I have got it all back up and running now.

I’ve sadly had to delete all the accounts associated with the forum, so if you had one before then you’ll have to re-register. Sorry about this. But the forum itself is back up and working as before. Hopefully the reCaptcha will keep the spammers at bay this time

I’ve sadly had to delete all the accounts associated with the forum, so if you had one before then you’ll have to re-register. Sorry about this. But the forum itself is back up and working as before. Hopefully the reCaptcha will keep the spammers at bay this time 🤞

The eagle eyed amongst you may have already spotted the new “Bugs” menu. This takes you to the Bug library page which is just about working now, but still needs some extra polish. It will be ready though in time for the first round of game testing.

That’s all for now

And that’s all I have time for. I’ll be back again in two weeks with another fun packed and exciting (lol) Dev with Dave game progress update. Unless of course the universe conspires against me again and we’re invaded by Godzilla or something like that.