Game Progress Update #53

Game Progress Update #53

Hello world! And welcome to the fifty third Dev with Dave Game progress update!

This is the first update since I’ve been back after Christmas. I’m happy to tell you that my girlfriend has made a complete recovery after her stay in hospital.

We had a brilliant Christmas and the best New years party I’ve been to in a long time!

I hope 2023 has had a great start for you guys as well!

Anyway, lets get on with the update..

Tidying Up

It had been a few weeks since I’d last turned the PC on to be honest, so I took a little time first off to refamiliarize myself with what I’d done already and what I was working towards.

It seems I had been quite sloppy when I had written the trophy functions. They were ambiguously named, and didn’t have comments 😕 So fixing this felt like a good place to start.

//********************************************************************************
//	void = FunctionName(value as integer)
//********************************************************************************
//	A few lines to describe the function, and explain its usage
//********************************************************************************

I prefer to comment at the top of the function as shown above. The first line shows the syntax of the function, and the second block of text details what the function does, and how it’s used.

I left the three function names as they were as once I better understood what each function did, the names became a little clearer. Lets hope the comments I’ve added prevent this confusion in future.

Trophies

Next off I did some more work on the Trophies. I’d previously got the first four trophies working. Two for distance travelled, and two for coin collecting.

I worked on the ‘Play x number of games’ trophies next. This simply involved adding a line in the play game button function, which increased a counter. Once this counter reached the target, then the trophy was rewarded.

The next two trophies were the ones relating to unlocking all the powerups and upgrades. Again this was a fairly simple job of adding a line to the button functionality of each purchase upgrade button. This checked to see if the item had been upgraded before, and if not to add one to the counter.

Once the counter reached the required value, then the trophy was awarded.

The last trophy I completed was the one relating to the player coming back to life using the “Second chance” boost. Again, I achieved this by adding a line of code to set a flag indicating the player had resurrected. This flag was checked for and the trophy awarded.

This left one trophy remaining, which is the one relatiing to watching the about text. Which currently doesn’t work so I was unable to do the last one.

More trophies

I did notice a new bug. I reached 25 distance and won a daily mission, but I didn’t get awarded the trophy for the same thing. This leads me to believe that the two systems are measuring distance differently some how.

I also managed to win several trophies at once when I wrote all the functionality but had neglected to set the target values to anything. Lol!

As you can see in the screen shot above, I also have decided on some better names for the trophies rather than “Test trophy 1” etc.

About Text

Since I needed to have this working in order to finish off the trophies section, I decided to get this working next.

I had already programmed a working example of what I wanted and Included it as a separate source in the game. So in theory it was a simple case of calling the function.

In theory…

What actually happened was slightly different. I called the function, and nothing happened! Nothing at all.

I managed to fix it in the end, but it took my remaining couple of hours time yesterday and I was unable to get the final trophy working. I still need to code a bit to signify the end of the text and to award the trophy, but that’s a job for another day.

The problem was caused by a depth issue, the about text was appearing behind the paralax scrolling images. And was resolved by hiding all the assets while the text was being rendered.

I did actually record some videos of the about scroller working badly or with unintended results, but I wanted it to be a surprise, so I won’t reveal too much just yet.

That’s all for now.

That’s all I have time for this week. I’m happy in the knowledge that at least this blog post will go out on time (It’s about an hour away from deadline now as I’m writing this last paragraph or two)

I will be back in a couple of weeks with another update.

Until then, good bye 🙂

Game Progress Update #52

Game Progress Update #52

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

I’ve been doing these updates more or less every two weeks now for two years it seems! (Or by my reckoning anyway, lol). I was hoping to have some brilliant news, some video of the more or less complete game running, or that kind of thing. But sadly, that’s not how the last two weeks have panned out.

Unfortunately my girlfriend was once again taken ill and had to spend most of the last week in hospital.

A photo of Dave sat at the hospital

This meant whatever time I had spare for working on Flappy-vaders was spent sat at the hospital instead.

She’s better now. Well, not a hundred percent, but she is back home and recovering well.

Two years of progress updates

I know I missed a few updates, so I’ve been working on Flappy-vaders for a little longer than two years, but I was still hoping to do something a little special to celebrate the fifty second update.

Instead I will try and do something when I get back to work after the Christmas Holidays.

Christmas

Talking of Christmas, that’s right round the corner. It’s a week tomorrow I think, which means this will be the last Flappy-vaders progress update for a while.

After last year’s fiasco of getting the date wrong, I have checked and double checked to make sure the following is correct! lol.

I’ll be back with the next Flappy-vaders game progress update on Friday, the 20th of January.

Until next time

And that’s it I’m afraid. I’ve had little to no time to do anything else.

As I said above, I’ll be back with another update on the 20th of January.

Until then I wish you all a very merry Christmas, and a happy new year to you all.

Dave 🎅

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. 🙂

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.