Game Progress Update #51

Game Progress Update #51

Hello World! And welcome to the fifty first Dev with Dave Game Progress Update!

Winter is most definitely here now as December has arrived, and for the first time this year the car bleeped at me to say it was less than 4° outside. As my sister said the other day, its two jumpers weather outside, lol.

Its been a fairly busy time here what with one thing and another. One of the children and their family were moving house and as I have a large car, I was volunteered to help.

As always though, I have managed to find a few hours to get some work done to Flappy-vaders.

Let me tell you what I have done.

Trophies!

Trophies were the last thing still to be started on the Trello. And since I needed to get trophies working in order to finish off the Unread Notifications card, I thought It was a good place to begin for the week.

Screen shot of the Flappy-vaders trello showing all the cards are finally started.

Now, the GDD was more than a little vague about what the trophies actually are. It describes the process of awarding a trophy and getting the reward, but just says the list of trophies will be determined later. (Super helpful, thanks a lot me.)

I started off by sitting down with a nice hot cup of tea and my trusty pad and pen. It didn’t take me too long to decide on what the ten trophies were*

For some of the trophies, I decided to simply use existing mechanisms that the player is already familiar with because of the daily missions. But for others I’m going to have to create new code to do.

Here is the current list of trophies for those who are interested..

  • Travel ‘x’ distance 1
  • Travel ‘x’ distance 2
  • Collect ‘x’ coins 1
  • Collect ‘x’ coins 2
  • Play ‘x’ games 1
  • Play ‘x’ games 2
  • Watch credits to the end
  • Unlock all upgrades
  • Unlock all pickups
  • Come back to life

Not all of these trophies will be visible. I’m thinking the credits and the come back to life trophies will have the descriptions hidden.

* I say decided, I am tempted to remove one of the “unlock all” trophies and replace it with something different; but I have a list of ten trophies to work with.

Trophies Script

I created a script for the trophies, then used comment first coding to sketch out all the variables and functrions I would need.

Once I had a basic framework laid out, I started to code the functions. I created functions to setup the trophy names and descriptions, and to load and save any progress made.

I also made a function to set the UI text for the trophy names and descriptions. This code will ultimately also change the image on the trophy panel. To help write this bit, I also (rather hastily) whipped up a locked padlock icon to use.

The next job was to set about implementing winning a trophy. I gave some temporary values to a couple of the trophies so they could be won quickly and easily.

The first trophy i attempted was the distance one. I was initially having problems getting a value for the distance travelled, but soon resolved it. I need to check if the result matches the distance for the daily missions as well.

The trophies relating to coins were the next ones I wrote. This was mostly a simple case of copy and pasting the code which handled the previous trophies.

Lastly I added code to play the same fanfare effect from the daily missions, and to set an unread notification for the trophy in the UI.

An image showing two trophies which have been completed and have unread notifications showing.

At this point I had four out of the ten trophies working properly. I found a problem where I had accidentally used > rather than >= which threw off awarding a trophy or two. But that was easily fixed 🙂

Out of time

And that was pretty much all I have managed to achieve for this update. No matter what card I pick off the Trello they all seem dependent on another unfinished card.

I’m hoping I can get the remaining trophies done and get that card checked off by the next update. That will also mean I can finish the unread notification card as well. The daily prize scratch cards still need finishing. But after that I think all that’s left to do is the In App Purchase stuff.

I’ll be back with one last update on Friday the 16th. It’s update #52, which marks 2 whole years of working on Flappy-vaders and creating these fortnightly updates so expect something special. 🙂 Then I’ll be taking a few weeks off to spend Christmas with my family.

Catch you all later

Dave 🙂

Game Progress Update #50

Game Progress Update #50

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

After checking the Trello It seems that its only really the trophies that I still need to start. I have four things which have been started but remain unfinished in the in-progress list. So, my goal is to get as many of the in-progress things checked off as possible 🙂

Whether I’ll succeed or not is another thing. I wish I had included an IAP section in the GDD, and I may still add it. The adverts card would have been moved to the under-review tab by now if the IAP stuff was on its own card. Oh well, lol

Anyway, Let me tell you about what I have managed to get done this time round.

Advert Consent Dialogue

Thanks to privacy laws and regulations, like GDPR etc. It’s important to give users of your app the option as to whether you show them targeted ads or not.

For this I simply used the default text that we always use when creating a privacy/consent page for an app or game at Warriors of the Cucumber.

Scrolling down the page takes the player to three buttons, which represents the choices available. To use your data to show you more relevant adverts, or not; or to purchase the removal of the ads all together.

Right at the bottom there is a link to the privacy policy. Again, I am using the standard policy which we use for every release.

The yes/no buttons are now completely functional, as is the privacy policy button. I made a start on the Ad removal buttons functionality but couldn’t do too much as I haven’t written any IAP code as yet.

In App Purchasing

Starting from the Google Play Developers console, I added the first of the IAP products.

The game will ultimately have five in app products for the player to purchase. These are to remove the adverts, and for each one of the coin packs.

Image of the Google Play Developers Console IAP products page.

I created the advert removal product so I can write some more code in the game to setup and handle IAP purchases.

Next I wasted thirty minutes creating an In App Purchase script for the game, not realising that I had already made one earlier in the development and simply didn’t notice it when I created the new one.

*Sigh* These late nights are catching up with me it seems, lol.

Then I added a function to the script to Setup the IAP Products. This will be expanded upon when I create the other IAP Products but is done enough for now.

I didn’t have time to write any more for this, but the next bit is to write some functionality to the buy Ad removal button and make a start on the IAP process.

Daily Prizes

Last of all I managed to carry on from the last update get some more work done to the Daily prizes screen.

This involved optimising some functions which were specific to the daily missions count down timer, to allow them to be used for the new scratch card count down as well.

I also created functions to load and save the countdown data and number of cards the player holds, and to update the countdown timer on screen.

Now the player receives a new card every day when the timer expires.

And that’s all for now!

There we go, that’s all I have managed for now. I’m super happy that so much of the game is almost finished.

I will be back in two weeks with another update. I’m hoping to have most if not all of the current started tasks finished, and maybe even have made a decent start on the trophies! But we’ll have to see, lol. It entirely depends on how much time I have to spend on this.

Game Progress Update #49

Game Progress Update #49

Hello World! And welcome to the forty ninth Dev with Dave Game Progress Update!

I definitely get the feeling that I underestimated the amount of time that getting the rest of the scratch cards working. Although I have made great progress this time round, I’ve not managed to complete the scratch cards entirely.

I had hoped to get done a few other things done for this update, but sadly I didn’t get to touch on these too much.

Anyway, let me tell you about the stuff I have managed to get done.

Scratchcard Progress

Carrying on from where we left off in Update 48, the first job this time round was to take my pen and paper sketch of the Daily prizes screen and mock it up in an art package. I do this so I can work out the exact size of the UI elements

The important elements on this page were as follows

  • The total count of scratch cards the player has
  • Time remaining until another free card is awarded
  • Play scratch card button
  • A list of fruit combinations and prizes

Which I think I have managed to do quite well.

(Sorry the font looks funky, I couldn’t find the correct font details and rather than delay things by having a proper hunt for them, I just pressed ahead using something similar from memory)

Creating the screen

Having created the graphics and saved out the individual sprites I needed, it was time to start creating the screen inside the game.

I cannot state enough how handy the Percentage Resolution Tool was for loading and displaying the sprites correctly using AGK Studios percentage resolution system.

This looks great so far I think. Once I had the buttons and stuff in place it was time to make them all functional.

When I implemented scrolling to the page I found a minor issue with the ui element depths, but that was quickly sorted out.

All the other UI pages need the top bar sprites to have the depths adjusted otherwise the rest of the page elements appear over them when scrolling. This has been a thing since the beginning and I have a function which sorts it automatically. I just needed to add the new page to the list of sprites to have the depth adjusted.

I could not decide whether to create the prize list in the art package or to create it programatically, so instead I just created a temporary graphic so I could get a feel for the size of the image. The current temporary image has a 16px margin, 32px for text at the top, then twenty 32px panels of alternating colour. This will do until I can decide how best to do this. (I’m leaning toward programatically at present)

New Functionality

I created a few new variables in the scratcher type. These are to store the number of scratch cards that the player currently owns, the time that the next free scratch card is to be awarded, and another timer which is to limit the number of rewarded ads the player can watch in one day.

It was quite easy to hook the play scratch card button up to the code I had previously used to start a scratch card as I had simply commented it out.

I also added code to update the scratch card count on the display, and to decrease this value whenever a scratch card is played.

There was a little difficulty getting the rewarded ads to work properly, but this turned out to be a case of me needing to RTFM.

I also added functions which loaded and saved the data relating to number of scratch cards and rollover times.

Lastly I added the code necessary to complete the daily mission to get a daily prize (play a scratch card). This was straight forward to add because I had already written most of the code and simply needed to add a line of code to call a function.

As an encore (and so I could move the card from the in progress column to the completed column of the Trello board) I found and implemented a chip-tune style fanfare to play whenever the player completes a daily mission.

Things I didn’t manage to do..

As I said above, I fear I underestimated how long this would take to get working.

I couldn’t decide on the best way to determine winning combinations of fruit in time. The fruit are currently chosen at random, and the IDs are stored in an array in the scratcher type, and there is no code to determine if the card is a winner or what the prize will be.

I still need to devise and implement some method to notify the player of what they won. This will probably be a panel which appears over the scratch card when the player scratches 80% (ish) of each panel off.

And I didn’t get the timed stuff working with the scratch cards. Although this should be straight forward enough to copy/adapt from the code which resets the daily missions.

Thats all for now

Sadly, I’ve run out of time. I was hoping this update would be done for the 4:30pm deadline I aim for every time, but today had other plans! Still I’m only a few hours late today 🙂

I will be back as always with another update for you, where I’m hoping to have finished the scratch cards, and maybe even made a start on getting the IAP of currency to work.

See ya

Dave 🙂

Game Progress Update #48

Game Progress Update #48

Hello World! And welcome to the forty eighth Dev with Dave Game Progress Update! 🙂

After Update 47, there is not much to report this update, but after some dogged perseverance (it’s my specialty, lol) I have finally managed to get the scratch cards working!

Unfortunately, I’ve spent almost every hour I’ve had to work on Flappy-vaders, working on the scratch cards so other than this progress update, I’ve not done much else.

Fixing the scratch cards..

The first thing I did was to remove all the existing debug from the screen. I have a terrible habit of printing debug info straight to the screen and not removing it when I’ve solved the issue. There was quite a buildup of debug info at the top of the screen, lol.

A screenshot of the scratch card test program showing the debug inforation.

Then I decided which values I was going to compare between the working test program, and the code in game.

This result showed me that the image size of the panels was the only difference, which made sense. The test program uses the GetImage() command to create images. Where as the actual game loads the images from file.

I then added a line to the code which loads the images in the game which resized the image to the specified width and height. But this caused some unexpected/undesirable effects in the other graphical assets. I’m not entirely sure why this was, but as I only need the silver scratch card images resizing, I used the filenames in a conditional.

I’m happy to announce that this worked fine. 🙂

https://youtu.be/ddPiMIMkIqU

Adding to the scratch cards

I think I need to add some code cleanup though. Repeatedly doing the daily prize thing causes slowdown, probably due to creating new images/sprites/memblocks etc.

I downloaded some free fruit images which were about the right size to use as placeholder graphics. Then I wrote some code to place them randomly behind the silver panels.

I still need to write a system which records the selected fruits and checks how scratched the cards are before going on to the next bit.

I need to create a UI page to show before going straight to the scratcher screen. This is planned out on paper but haven’t had chance to actually code it yet.

Thats all for now

And that has been all I’ve managed to do this update. I’m hoping to have the scratch cards finished in time for the next update, and maybe get some other things ticked off the trello as well.

I’ll be back in next fortnight with another update.

Game Progress Update #47

Game Progress Update #47

Hello World! Welcome to the forty seventh Dev with Dave Game Progress Update!

It’s currently gone 3pm on Monday the 10th of October, and this post is 3 days late already! Which is not ideal, especially as I had other stuff to be doing today and now will probably end up stuck in the office till gone 11pm tonight again *sigh*

How did this all go so wrong? I was feeling super positive come Friday afternoon, and had made some great progress with what I was working on. Let me tell you all about it…

Daily Prizes

So, for this update I was hoping to have modified the Scratch card code and have got that working inside the game ready to be shown off on Friday.

Converting the code was fairly straight forward. I created a typed array to store the data in, and then created a function to create a scratch panel, and another to update them.

I further optimised the code by ensuring it was only checking the panel the mouse was over, instead of all the created panels which was causing a considerable slow down as it was using a For loop.

Above is a photo of the scratch card experiment program running on my Samsung Galaxy S20, I’d scratched off three of the panels and realised I needed a way to tell if the panels had been scratched off or not.

I did this by adding two new variables, one which stores the total number of pixels in the panel, and another which stores the number of pixels marked as clear by the code. Using these two values I can work out a percentage of how clear each panel is.

Creating some assets

Earlier in the week, I’d decided to research some scratch cards and had spent a little while gathering images from the internet.

Next I opened up Paint.net and started creating an image to use in the game to represent the scratch card.

(Actually at this point my mind started wandering, and I imagined having a range of half a dozen different scratch cards, each with its own panels and background art. But this was definitely feature creep and not in the remit for today, so I just made the one card for now.)

Putting it all together

By now it was about lunch time, and all I had left to do was copy the new script into the game, make sure it worked ok, and then write this blog post.

This is where the first disaster struck. Because no matter how hard I tried to get the code to work inside the game, I couldn’t.

I wasted hours making tiny changes here and there to the code, but to avail. Everything seemed to be working looking at the debug, but the panels wouldn’t scractch correctly.

Had I been thinking clearly, I’d have just written the blog post about the modifications I’d made to the example code, but sadly I was feeling unstoppable because of how well I’d done that day and I was convinced that I could get it working in time.

However, come 11 pm that evening, I’d had enough and went to bed, planning to finish off on Saturday and have everything published by lunch time.

This however was not to be, as I had family stuff to do all weekend.

The results

Ok, so here is a quick video which I made demonstrating the scratch card example effect, and then the same code working in game. (Ignore the black spot, it’s usually an invisible sprite. whose job is to act as the coin and remove the silver panel as you scratch)

As you can see, there is definitely something wrong with the way that it works in game. I have a few ideas as to what, and hopefully will have it working next time round.

Thats all for now

I’ve sadly run out of time for this update (especially considering it was due Friday! lol), but I’ll be back in two weeks with another update which will hopefully be slightly more on time.

Until next time..

Dave

Game Progress Update #46

Game Progress Update #46

Hello world and welcome to the forty sixth Dev with Dave Game Progress Update

You might have guessed from the lateness of this blog, and general quietness on social media that I’ve not had a great deal of time again this fortnight to work on the game.

This has not been helped by my laptop deciding it was going to install the latest Windows 11 patch today (Which it has done 20% of over the last THREE HOURS!!)

I have managed however to get some work done, so let me tell you about it now

Graphics

The first thing I did this week was to set about optimizing the graphics.

A couple of people who have been testing the game had commented about the graphical asset used in the explosion not matching the resolution of the rest of the game (which was true), so I changed this out for one which followed the design scheme better.

I still think there is room for improvement here. The new sprite feels a little large, and I’m not sure the particle emission settings are quite right.

The only other graphical asset which was left over from the original prototype was the Zone start marker. I have removed this from the couple of zones which still had it.

Play Testing

During my many (many) hours AFK this week, I have at least managed to rack up a few hours of play testing Flappy-vaders on my phone.

I’m happy to announce that I have yet to find any new bugs! I’ll try and get some new ones added to the next build! ðŸĪŠ lol

About Page

I can’t remember if I’ve said or not before, but I have an amazing idea for the about page. It’s really retro and works quite well with the graphical scheme I’m using for the game. I’m not going to say too much about it.

I was hoping to have had more time to finish this bit, but unfortunately that’s not been the case.

I have managed to create a blank page in the UI to display the about information on and have included the standalone script I created for the about page in a separate project.

I think all I have to do now is create a check to see if the specific UI page is being displayed where I can call the UpdateAboutPage() function; I also need to create the text for the about page and set the properties of the text.

That’s all for now

I’m afraid that’s all for this update. I’ll be back in a couple of weeks with the next update.

Game Progress Update #45

Game Progress Update #45

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

Things have been a lot more normal this week it feels. There has been no drama, no apocalyptic weather, and I feel like I’ve actually had a reasonable amount of time to work on Flappy-vaders.

I even managed to get a few quotes for repairing the tablet! So fingers crossed ðŸĪž I’ll be able to get that fixed soon. As much as it’s higher spec, my laptop is a lot heavier and less fun to carry around.

Adverts

I made a start getting the adverts working in Flappy-vaders.

I had already created an AdMob app and a couple of Ad Units, an interstitial advert and a rewarded video advert.

I created a script to contain all the variables and functions related to adverts, and started fleshing it out.

I didn’t bother as yet with asking for GDPR permissions as I’m only using test adverts for now, but I will be adding this at some point in the future. Nor has any consideration been given to IAP advert removal, but this should be a fairly straight forward thing to implement later.

I did however create a function to show an interstitial advert, which is now called when the player has finished reading the Game over screen.

I also created a function to show a rewarded advert, as well as code to check if the video was watched in its entirety or not. If the player successfully watches to the end, they are rewarded with some coins.


The eagle eyed amongst you might have noticed that the button says 100 coins, but the video only rewards 10. This is another thing that will be corrected once I work more on the in game currency and its value.

Bug fixes

The video I shared in Progress Update #44 showed that the code I had written to check each daily mission was different when generating new daily missions was flawed and not working properly.

A closer inspection of the code revealed that the code was only checking missions 1 and 2 and 2 and 3. This of course allowed missions 1 and 3 to be the same.

I fixed this by adding a third check to ensure that 1 and 3 were different as well.

I noticed also that I had added Adverts to the GDD (And also the Trello) twice, once in 4 UI and once again in 7 Monetization. I thought monetization was the best place, as I have little to no direct control over presentation or interactions of the adverts. I’ve updated the Trello and GDD.

Daily Prizes

The last thing I’ve been working on is the Daily Prize scratch cards. Or at least experimenting with their appearance in Paint.net. I find drawing over the actual game elements to help speed up the design process.

I may add a title to the card with an appropriate graphic, but this would mean adding a scroll to the page as the scratch card would be too tall to fit with a title.

Once the card is scratched (all six panels removed), then the game transitions to another screen where the player can either collect the reward or double it by watching a rewarded video.

That’s all for now

And that’s all that I’ve had time for this time round. I’ll be back in two weeks with another update, and hopefully another sizeable chunk of the game done 🙂

In the meantime, don’t forget to check out Dev with Dave on Facebook, Instagram and Twitter.

Game Progress Update #44


Game Progress Update #44

Hello world, welcome to the forty fourth Dev with Dave Game Progress Update!

I’m really sorry about the last update being cancelled. It really has been a roller coaster of a time here and that has obviously affected how much time I have to spend on this project.

As a result not only has the Dev with Dave social media been awfully quiet the last few weeks, but I’ve once again not had much time to spend on writing the game.

Worst of all, I got more than a little side tracked at the beginning of the week when it came to recording the video above.

The Dark Mode Conundrum

Now, those of you who read the last update will know that I upgraded my PC with a new SSD and RAM, but I had to install a clean version of Windows as backing up and restoring was proving to be an issue.

Because of this, I had to reinstall Hitfilm Express, which is the free video editing software I use for doing post production with on the clips from flappy-vaders you see here.

Unfortunately (for me at least) the new version no longer has the option to switch between dark and light UI modes. I find dark mode to be really difficult to read, so I immediately fell down the google hole trying to find out how to change Hitfilm to Light mode.

Looking back, I can’t believe how much time I wasted trying to sort this problem out.

A few new bugs

Just watching the video above I managed to find at least two new bugs ðŸ˜ē

Firstly, the system I wrote to make sure that none of the daily missions is of the same type as the other two doesn’t seem to work. This is unfortunate, but I think it’s because I only compare Mission 1 with mission two, and mission two with mission 3.

Secondly that there is definitely something screwy going on with the targeting lasers on the missiles. As well as there being a transparency issue but the lasers sometimes seem to appear where they aren’t supposed to be. They are possibly legacy positions from previous uses of the laser sprite which haven’t been reset properly.

I’ve made a note of both these things on the Trello board, which is public so you can check it out for yourself. And will try and get the changes made to the bug board on the Dev with Dave website tomorrow.

That’s all for now

That’s all for this update I’m afraid. I’ll (try and) be back next fortnight with another update.

See you then 🙂