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 🙂

How to record video of your game

How to record video of your game

I was sat browsing through some game development groups on Facebook the other day (as I often do, lol), when I noticed that a friend of mine had shared a video of the game he was working on.  I couldn’t help but notice that the video had been recorded using a mobile phone held in one hand whilst playing the game with the other.  As you can imagine the video was shaky and really didn’t do justice to the game, so I’m writing this guide not only to help my buddy, but for anyone else out there who wants to record video of your game for free and with brilliant results.

There are several ways to record video of your game from a PC.  Depending on your operating system, both Windows and Mac have built in ways to record the screen with a few keyboard shortcuts.  There are also several programs, both free and paid for, available for all platforms.  In this tutorial I will be showing you how to capture video and sound using OBS (Open Broadcaster Software) which is available for free from https://obsproject.com/

Configure OBS

Once you have downloaded and installed OBS, and run the Auto configure wizard, then it’s time to get started configuring OBS to record game play from your game.

The OBS scenes panel in the bottom left of the screen is highlighted.

In the Scenes panel, press the + icon in the bottom left hand panel to create a “scene”.  The scene can contain specific video and audio inputs, allowing you to switch between them whenever you want.  However to record video from your game we only need the one scene.

A dialogue box in OBS asking for a scene name.

Enter a name for your scene in the dialogue, and press ok.  Your new scene should appear in the list in the scenes panel.  You can switch between scenes by clicking on their name.

Next comes adding the video and audio sources to the scene.

Add a video source

Locate the sources panel, which is usually next to the scenes panel in the bottom left of the screen.  Then press the + icon to bring up the list of available sources.

The OBS Sources menu is highlighted in this image.

Now depending on how your game works, you have a choice to make here.  For Flappy-vaders, which runs in windowed mode, I selected Window Capture from the menu.  But if your game runs full screen and not in a window, then the Display Capture is the one that you will want to select.

If you do choose Display Capture then please be aware that the next paragraph or two might be slightly different for you.

Select Create New from the next dialogue and give your source a name before pressing ok and moving on to the next bit.  I simply called it Window Capture, but you can call it whatever is most helpful to you.

Adding a new source in OBS

The next dialogue lets you choose which window you are capturing from, as well settings such as whether or not you want the mouse pointer recorded.

I left everything as it was and pressed ok.

You can return to this dialogue by right clicking on the name of the source in the sources panel, and then selecting properties from the menu which appears.

The next job was to stretch the video so that it takes up the entire space available.  This was a simple case of dragging the bottom right corner handle of the video.

Add an audio source

Adding an audio source in OBS

Once again press the + icon in the Sources panel, and this time select Audio Output Capture from the menu.

Give it a name in the next dialogue box.  I somewhat unimaginatively called in Audio Output Capture.

Naming a new audio source in OBS

The next dialogue allows you to select which audio device you want to use.  I left this on default as it was fine for this tutorial, then pressed ok to move on.

Record video from your game

Starting recording footage from your game using OBS

Now that OBS is configured to record your game, it’s time to run your game, hit the Start recording button, and record some game footage!

OBS will keep recording until you press the Stop recording button, which replaces the Start recording button.  When it has stopped, it saves the video to the format and location specified in the settings dialogue, which is located by pressing File -> Settings.

Hints on recording better gameplay

  • Record a few seconds of footage before interacting with your game, this makes it easier to cut or mix your video.
  • Hide the mouse pointer unless it is really important to your game.
  • Record much more video than you need, and edit it to be more interesting or better demonstrate your game afterwards.

Conclusion

I hope by now you have a better idea on how to record video of your game using your computer.  If you have any further questions about this then feel free to ask in the forum, or even just drop me an email or instant message.

The next thing I can recommend would be to download a Video editing program such as DaVinci Resolve or Hitfilm Express, which allows you to edit the videos you recorded with OBS and add post production effects and voice overs etc.

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