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.

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 🙂

Game Progress Update #43

Game Progress Update #43

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

This updates disaster (as it seems I have a new one every time I write this blog) involved Kirk, my PC which took much longer to upgrade than I thought it would. This did eat quite drastically into the time I had free for writing Flappy-vaders.

Regardless of this I have got a fair chunk of coding done for the game. Carrying on from update 42, I have been mostly working on the daily missions.

Keep reading to find out more 🙂

PC Upgrades

I decided to spend my weekend off the other week upgrading my main PC. I had purchased a new SSD, 8Gb of extra ram from Crucial, and a fancy back lit gaming keyboard.

Photo showing parts for the upgrade.  An SSD, A stick of RAM and a mounting kit.

Fitting the parts wasn’t too challenging. The Ram and keyboard were a breeze to fit, but the SSD data and Power wires were a bit of a squeeze as my case around 15 years old and wasn’t designed with such a huge graphics card as the one I have, in mind.

The problems started when I tried to clone my existing copy of windows onto the new drive. No matter how hard I tried, I just could not get the PC to boot from the cloned copy of Windows.

Now bearing in mind this is the computer I use for work most days, so I can’t really afford to have it out of action for long. But It didn’t take long before I had used all the time allocated for the job with no success at all. 😞

In the end however (after wasting another couple of days) I decided to just give the PC a fresh install of Windows, even if it did mean having to waste even more time reinstalling all the apps as well.

Daily Missions

The first thing I did when I managed to get AGK Studio open on the laptop, was add code to add a little bit of polish to the daily missions pages in the UI.

This involved greying out missions when they were completed, and hiding the coin icon when the mission is set to done.

When I tested the new additions, I noticed that the daily missions done and progress values weren’t being reset when the missions refreshed.

This was fixed by adding a couple of lines of code to reset the two variables in the RefreshDailyMissions() function.

The last thing I did towards the daily missions was adding functionality to some more of the daily mission types.

The “Play n games” mission was done by adding a line of code to increase the progress . Everything else was handled by code written previously.

I also added functionality to the “Collect n coins” mission. Again all this needed was a simple line of code. This time in the function which checked player collisions, when colliding with a coin.

Uploaded new test build!

The last thing I have to say is that I have uploaded the third test build of Flappy-vaders to Google Play for testing.

I’m preparing to send out the initial email to the testers with the link so they can enroll in the test and download the latest version of the game. So if you have told me you want to be a tester then keep an eye on your inboxes.

And thats all for now

I’ll be back as always in two weeks with another update. Hopefully it will involve lots of improvements to the game, and slightly fewer general life disasters for me, lol.

Thank you as always for following the project.

Until next time

Dave 🙂

Game Progress Update #42

Game Progress Update #42

Hello world! And welcome to the forty second Dev with Dave game progress update!

I’m sure it’s no coincidence that the update who’s number is the same as the answer to life, the universe and everything, falls (almost) on the same day as my birthday!

In this update, I’ve mostly been working on the Daily Missions, which has not only been a much bigger task than I anticiptated, but has also been a huge pile of fun to write.

The laptop

As I said last update, I’m using my laptop for the foreseeable future after I accidentally dropped the tablet and smashed the corner of the screen. I will take it to the shop to find out how much the repair will be soon, but until then I’m using the laptop.

It’s not the greatest piece of kit in the world, but is a significant step up from the Atom powered tablet which I had been using. I couldn’t remember the exact model and spec last time, so here they are for anyone who is interested.

It’s an HP 15-bs158sa, with an Intel i5-8250U cpu, a 1Tb HDD and 8Gb of ram.

No duplicate missions!

The first thing I did was fix a bug which occasionally caused duplicate daily missions. This was a simple enough fix. I simply added a check to see if any of the Mission Types were the same, and if they were then to regenerate the list of missions.

It’s possibly not the most elegant solution, but it works 🙂

Daily Mission Functionality

The daily missions are a lot closer to being finished than they were before. I still have quite a way to go, but I’m definitely making progress.

When the game generates a new list of daily missions, it now also provides them with preliminary values for the target and the reward. Ultimately these will be generated using a formula based on the number of times the player has completed the mission type before, but until then, it is just using single fixed values.

I have also added a function which updates the daily missions progress value, and created a function which checks to see if the daily missions progress is greater or equal to the missions target value.

Completing Missions

Originally I simply had the game freeze with a message on screen, when it had detected a daily mission had been completed. This was fine for development, but wouldn’t be well received by actual players no doubt. lol.

Designing UI with pencil and paper

The first thing was to decide what information needed to be put on the revised game over screen.

I decided that the player needed to know their score and coin count, so they were copied and pasted from the game ui screen.

Next was the daily missions themselves, which was decided to be a text description and a reward value (with a coin icon)

Lastly was resizing and repositioning the existing Game Over and Tap to continue texts.

After several hours of planning and sketching, then editing code etc. The final result looks like this.

I added the code to update the daily missions listed on the game over screen to the function I had already created which set the text on the missions page of the ui.

A whole load of new rough edges

A lot of the daily missions stuff I’ve written about above only works for two of the five daily mission types at best.

The last time I played it I noticed that the missions weren’t always being completed when the progress reached or passed the target value.

Sadly I have run out of time for this update, but I will be back at it soon and hope to have Daily Missions done and dusted for the next update.

That’s all for now

That’s all the time I have for now. I’m actually super impressed that for the first time in absolutely months I have got this update finished and shared on time! lol

Anyway, I hope you enjoyed the blog. I’ll be back in a fortnight with more news about the game, including how well the first round of testing is going.

If you want to be involved in the testing, it’s not too late, just drop me a message or email.

Until next time

Dave 🙂