Game Progress Update #22


Update #22

Hello world! Welcome to the twenty second Dev with Dave Game Progress Update! ๐Ÿ™‚ It’s around 3pm on Friday afternoon as I write this, I still have to script record and edit the video and write all the social media posts (*sigh*) but I am hoping this update will at least be on the right day, if a little later than usual.

So, this update I have finished the Loading/Saving game data, and also spent some time removing duplicate code.

I’ve also taken some time out to get the Trello and the GDD updated.

Loading and saving game data

Having taken all the time available to me last time playing around with encryption for the save game file, this update I have managed to get the Loading and saving working properly.

The first time the game is run there is no save game data, so the game creates one using the default values. The LoadPlayerData() function then loads the data into an array and decrypts it. The decrypted data is then stored in the individual variables ready to be used in the game.

Saving the game data is pretty much the reverse. The data from the individual variables is stored in an array, then encrypted before being written to the file. If the file exists, it’s simply overwritten.

Both getting the loading and saving were quite easy to achieve in comparison to the next bit, which was updating the UI to reflect the data which had been loaded in.

Now, had I been smart, I would have considered this when I was writing the code which updates the store page info when the player makes a purchase and written it with a view of reusing it to update the display after loading the game data in as well.

It seems, however, I am not smart ๐Ÿ™ as I did not do this at all! Which led to some serious rewriting and refactoring code.

Refactoring

A lot of the code used to update the UI display when purchasing an upgrade or boost was duplicated. It didn’t take too long to copy and paste the duplicated code into a function and make it more generic so it could be used for all instances where it was required.

I created four functions, one to update the upgrades store page after loading, one to update the boost store page, and two to update the individual items on either page. As you can see from the picture below, they didn’t quite work the first time round, lol.

The functions to update the store pages are called after the game data file is loaded in, and they both call the update store page item function for the relevant page, for each item on the page.

I also replaced the old code for updating the store page data when a purchase was made with the new function.

This refactoring has made the code some 750 lines shorter as well as making it much easier to read in places.

And that’s all for now

I still need to include data for the trophy progress in the game data file, but as there isn’t actually any trophy progress data currently I can’t do that just yet. It will have to wait until I have created at least one functioning trophy.

I’m not entirely sure what I’ll be doing for the next update. It’ll either be getting the IAP systems working or adding functionality to the Settings page. Maybe both if time allows?

Until next time ๐Ÿ™‚

Game Progress Update #21


Update #21

Hello World!  I know itโ€™s a couple of days later than I planned, but welcome to the twenty first Dev with Dave Game Progress Update!

This update contains two major changes since the last one.  Firstly there are a couple more sound effects which have been added,  And I have made a start on Loading/Saving the game data.

The sound effects added this update include an explosion when the player dies, a bigger explosion when the player sets off the smart bomb pickup, a warbling sound when the shields are activated and lastly a rocket sound for the missile engines.

Again all of these sound effects are from libraries I had purchased previously. I have done little to no editing or modifications as yet. Once I have all the sound effects in place I will go over them and add some extra polish and refinement to each one.

Iโ€™m not happy with how out of sync the missile sounds seem to the actual missiles, so I need to do some more work to this bit at some point.

I currently trigger the missile sound effect at the same point that the Zone Update() function starts the missiles moving, but I think this happens when the missile is still quite far from the edge of the screen.

Loading and saving the game data is one of the reasons that this update was so late.  The actual loading and saving the data was fairly straight forward using AGK Studio, but I decided to over complicate things by adding some basic encryption to the data file.  This led me down a rabbit hole of wonder and before I knew it, Iโ€™d spent almost all the time available simply playing with simple encryption methods.  Itโ€™s really easy to lose track of time when youโ€™re in the zone, lol ๐Ÿ˜Š

The Game Save data file will contain data relating to Powerup/Boost upgrades the player has purchased, the players coin total, any inventory of Boosts, and any data relating to obtaining the trophies.

Anyway, thatโ€™s all for this update.  Iโ€™ll be back next fortnight with another, and I promise Iโ€™ll try really hard to get it out on time!

Game Progress Update #20


Update #20

Hello World! Here it is, the twentieth Dev with Dave Game Progress Update!

In this update, I’ll be talking about some changes and additions I’ve made to the Flappy-vaders UI.

Pause Screen

The first addition I had to make for this was an actual pause button on the main game screen. Again, I was quite frustrated while drawing the assets for this by the tiny resolution I’ve selected to use for this project. However after 3 or 4 attempts I finally settled on the following design which matches the rest of the UI elements and doesn’t seem to large or out of place.

I had to tweak the position of the Score and Coins text a little so it would work.

I set the button and the coins text positions based on the right hand edge of the screen, so it’s more responsive. I tested this by running the game in a 4:3 aspect ratio. I also tweaked the position two buttons on the title screen as well because of this.

Once the pause button is pressed, it takes you to this, the Pause menu, where the player is presented with the options to resume the game, or to quit back to the main menu.

Again, all of the new buttons were handled by the existing UI system which I created in the early days of the project. Pausing the game was a simple case of directing the code to a new loop which simply contained the UpdateUI() function, The resume button returns the code to the game loop, and quit returns the player to the main menu.

My only concern about this is that when the player presses the pause button, the ship acts like the player has pressed the screen and begins to ascend slightly before the game stops, then continues ascending when the game resumes. I would prefer that pressing the pause button does not affect the player like this.

It’s been added to the Known bugs list on the Trello board.

About screen

I’ve also written the code to handle the about screen. I have a really great retro based idea for this UI page, but I want it to be a surprise so I’m not going to go into too much detail here.

That’s all for now

I’m afraid there won’t be an update next fortnight, instead you’ll have to wait until June the 11th for the next one. I’m going to have a well deserved break from the computer for a while and try and catch up on some of the important jobs around the house I’ve been neglecting.ย ๐Ÿ™‚

Promoting your game with Twitter

Promoting your game using Twitter

Twitter is the next platform in this series on using organic growth to promote your game.

Twitter launched in 2006, It’s best described as a micro-blogging site and a social network. It’s well known for it’s 140 character limit on tweets, as Twitter posts are called.

Twitter has around 192 million daily users, of which roughly two thirds are men. Twitter also appeals more to the older user, with 63% of users being aged 35 to 65.

As with Facebook, Twitter does operate a paid for ads service, but I have never used it and won’t be covering it in a later blog, or this one either.

Strategy

I cannot stress how important it is to have a strategy with social media posting. You need to have clearly defined and measurable goals, as well as a plan as to get to achieve the results you want. Failure to do so will drastically reduce your chances of success.

I know I said all of this in the last post as well, but I think it is really important, and may very well write an entire blog post dedicated to the subject at a later date.

Twitter is quite fast paced compared to Facebook, your average tweet has a lifespan of about 20 minutes and the number of views drops off considerably after this point. Expect most of your interactions during this period.

Using one or two relevant hashtags on your tweets is another good way to draw attention to your posts and increase interactions. Using too many hashtags will have a negative effect on your post.

I’ve found that making short videos or gif’s of your game works quite well on Twitter. But this isn’t a hard and fast rule, always experiment with content types to find the one that works best.

Things to not do..

The only real thing not to do on twitter outside of the obvious things like not spamming posts and over-using hashtags is to not fall into the “GameDev” trap. Game developers, especially indie developers have a large presence on Twitter. There are lots of hashtags like #indiedev and #screenshotsaturday which draw large audiences. It’s probably an incredibly small chance that these are your target audience for your game so although it’s easy (and welcoming tbh) to get drawn in, any effort spent here would be better used elsewhere.

Outro

This post is slightly shorter than the last because I felt like I was just repeating myself in places, but if you hadn’t already, please read the previous post about Organic Facebook Growth as a lot of the information in that post can be applied to Twitter also.

I hope you enjoyed the post and now feel more knowledgeable about Twitter. If you have any questions, feel free to ask them on the Dev with Dave forum.

Game Progress Update #19


Update #19

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

This update is mostly about the Audio system, which I have added to significantly this last week or so, to allow it to better do what I need it to do for the game.

The Audio System

Originally, the audio system just allowed for the loading, and playing of sound files. Which is after all, it’s main job I guess? lol

However, I needed to be able to have more control over some of the sound effects. For example, the asteroid sound, because the speed of the game increases the time the asteroids appear on screen (and also play their sound effect for) decreases. In order to rectify this, the system needed to be able to specify a sprite ID which is associated to the sound effect being played, and then end the sound effect when the sprite moves off screen.

It can also specify a maximum duration for the sound effect to have as well, so instead of the sprite lasting as long as a certain sprite is on screen, you can set it to a timer instead.

The last thing which I’m quite proud about, is the way the system can fade out a sound effect rather than just cutting it short.

Best of all, all this is specified when the sound effect is played, and the rest is all handled automatically by the audio system ๐Ÿ™‚

Other sound effects

I’ve also managed to add some other place holder sound effects into the game. These are perhaps not quite the exact sounds I’m after for the game, but they are fairly close.

Most of them have been chosen from various asset packs which I have laying around. Some have been edited in Audacity to bring them close to my vision of what they are supposed to sound like.

As with the graphics, I’m aiming for a retro old school kind of sound, but using subtle fades and layering to give a subtle feeling of depth which actual retro games don’t necessarily have.

That’s all folks

And that about wraps it up for this update.

The next update will probably be more sound effects, as well as maybe some more UI as I still need to get the pause menu designed and working, and a few others UI pages as well.

Anyway, I’ll be back in a couple of weeks with the next update. See you all then ๐Ÿ™‚

Game Progress Update #18


Update #18

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

This time round I have managed to plan, and start to implement the remaining UI screens. However I decided to try and do something special during the planning with the About page. So I didn’t get quite all of them done yet.

The settings page

The settings page contains controls so the player can adjust the game settings, like the volume of the music and sound effects.

The page scrolls in a similar way to the other pages where the content doesn’t all fit on the screen. There is a button for the player to adjust the advert settings below what is shown on the image above.

I created everything using the existing UI system I’d implemented earlier in the project. With the exception of the blue bars which represent the volume level. These will require a tiny amount of extra code to resize the blue bar according to the volume.

The eagle eyed among you might have noticed the above image is different to the video. I created the image in paint.net, and the spacing isn’t exactly the same in the game.

Sound Effects

I also spent more than a few hours over the last two weeks listening to various science fiction and retro game inspired sound effects, trying to decide what type of sounds I wanted in the game.

I used Google and YouTube to do the bulk of the research. Either searching for specific sound effects or watching gameplay of retro games.

I downloaded some free assets to use as placeholders for the time being, so I could make a start on the Audio system which is responsible for loading and playing the sound effects.

My goal is for the audio to match the graphical styling of the game, and have a certain retro feel to it.

Next time

I think for the next update I’m going to continue developing the last few UI screens, as well as gathering more place holder audio effects for the game.

And that’s all for this time, I’ll be back in two weeks with another Game Progress Update for you all!

Game Progress Update #17


Update #17

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

I’ve managed to finish both of the remaining boosts! Now both the Second Chance and the Missile Jammer boosts will work, once the player has unlocked the boost and purchased one.

I’ve also managed to add several new bugs to the Known bugs/Issues list on the Trello board, which is less cool tbh, but better to find them now and fix them in the next revision.

Second Chance boost

The second chance boost causes the player to recover from an impact which would otherwise have killed them. It also provides a few seconds of shield to ensure the player manages to get out of harms way.

This was implemented by adding a few lines of code into the player collision function, which simply checked to see if the player had a Second chance in their inventory, then decreases the inventory count, checks the chances of it working (It starts off a 20%, and increases as the player upgrades the boost), and if successful it simply starts a shield for a few seconds and carries of with the game.

I had to refactor the code which started the particle explosion. I turned it into a function so I could call it from a couple of places where it was necessary, but not when the second chance was in use.

I think the Second chance boost needs some more visual (and audio) feedback. I’d like to see maybe a simple line of text and maybe an angel wings animation appear and disappear on screen.

Missile Jammer boost

The first thing I did, was plan out exactly how the missile jammer was going to work. Since it was another lovely day I decided to sit outside with a pen and paper (my absolute favourite medium for planning/sketching ideas) and think about exactly how this boost would work.

I added a check at the start of the game to see if the player has any missile jammers in their inventory. If they have then reduce the inventory by one and set the missile jammer isActive flag to true. I’ve done this so the Jammer works for the whole game, rather than needing a new one each missile zone.

Next, I added some code to the spawn zone function which when a missile zone is being spawned, it adds the missile sprite IDs to an array. When the zone has finished spawning, the function quickly cycles through this array and using a similar chance check as the Second Chance boost, it determines whether or not to move the missile.

Initially I thought that I could simply change the depth of the missile sprite so it appeared behind the sky background image, but this didn’t work. Instead I simply moved the jammed missiles offscreen on the y axis.

I imagine this boost would play a sound effect similar to a radio being tuned in when a jammed missile appears on screen (or when it passes the boundary which starts it moving?)

Bugs

I’ve also managed to build up a somewhat large list of bugs. These have all been recorded in the Flappy-vaders Trello board ready for when I’ve finished adding all the basics, and am ready to start polishing and fixing bugs.

I don’t think any of them are particularly game breaking so I am ok with just leaving them as they are while I work on adding the rest of the systems for the game.

Next time

Quite a lot of the remaining things in the “Things to do” list seem to be relating to the User Interface, things like the options screen, pause menu, about screen etc. The rest are mostly relating to monetisation and the sound effects.

I think for the next update I will try and get the UI pages complete and working, which perhaps won’t make for an exciting video next fortnight, but it’s an important part of the game which needs doing.

In the mean time, don’t forget to like, follow and subscribe to Dev with Dave on social media to keep up to date with the project, and I’ll see you in two weeks for another Game Program Update ๐Ÿ™‚

Promoting your game using Facebook

Promoting your game using Facebook

I’m sure there aren’t many of you out there who don’t know what Facebook is. It’s one of the oldest and most popular social media networks in the world! For the last 15 years it’s been changing how humanity interacts and shares information.

Almost a third of the worlds population has a Facebook account (2.79 billion people approximately) so that’s a lot of eyes to put your game in front of.

In this post, I will be discussing how to utilise Facebook to promote your game for free using organic reach. Facebook does offer a paid advertising service, but I’ll discuss that in another post.

Organic reach

Now, before we begin, I have to point out that Facebook organic reach has been shrinking slowly over the last few years. This is due to several factors, things like the ever increasing amount of new content posted, changes to the Facebook algorithm etc.

According to HootSuite, the average reach of an organic page post is around 5%, or roughly only 1 in 20 people who like your page will see your post..

Now this doesn’t mean that organic reach is dead. Quite the opposite, however it does mean that competition is fierce.

Strategy

This is one area of social media marketing where there are no shortcuts.

First of all you need clearly defined and measurable goals, so you can determine if your posts are having the desired effect.

I’ve spoken before about knowing your ideal customer/target audience; and your customer avatar will be one of the most valuable tools in your arsenal for generating organic reach in your posts.

It’s important that your ideal customer demographics match the demographics of the platform you are using, but you also need to know what kind of things they like or they are interested in so you can create social media content which they engage with.

It’s also important that you don’t just promote your game. One of the keys to a successful marketing strategy is to connect with your audience and build a relationship. 80% of your posts should provide interesting content or value of some kind to your audience, and the remaining 20% should promote your game.

I find it to be quite helpful when developing a strategy to spend a few hours on Facebook snooping around what your competitors are doing with their social media, just to see what is performing well and what is not.

Remember to keep checking your metrics to see how your own posts are performing as well, and don’t be afraid to try something different if your first attempt didn’t achieve the results you were hoping for.

Pages vs. Groups

Facebook offers two choices when it comes to places to post content to, those are Pages and Groups.

A Facebook Page is very similar to a Facebook Profile, only it’s always public. When a user likes or follows your page, they will get notifications and updates on their news feed when you post stuff.

I find it’s best to create a page specifically for your game, rather than a company page where you share content relating to all your games. This way you can narrow down the focus of your content and hopefully create a lasting relationship with your audience.

Groups tend to be more user oriented, with much of the content being created by users. If your game has elements of user created content and a strong existing audience, then a group might work well for your game.

I find however, the best way to utilise groups is to join groups which are on theme for your game (Angling groups if your game is targeted at anglers, skateboard groups for a skateboarding game etc.) and then interact with them. Get to know the posters and the feel of the group, and contribute where you can; then occasionally and where it’s relevant to the post drop a link to your game.

You should never just join a group and then spam 30 identical posts a day promoting your game. This kind of behaviour is usually frowned upon by the group admins and will 100% not result in any kind of good result you may be hoping to achieve.

Other helpful advice

When setting goals and targets for your social media campaigns, remember that when audience building you want to build a targeted audience who interact with your posts and have an interest in your game. Just collecting likes isn’t a sound business strategy.

Don’t rush your content. Whether it’s text, images or video, it deserves the same amount of attention to detail that your game did.

Remember to interact with you audiences comments on your posts. This will help foster relationships as well as make it more likely that your post will be seen by more people.

One of the most impressive ways I’ve seen to get Actual players to like your social media page is to offer them the chance to join you on social media from in game in exchange for a small amount of in game currency or some other reward.

Lastly, although I highly recommend looking at competitors pages and content for ideas and inspiration, your social media strategy should be unique to you, so avoid copying directly.

Outro

And that’s about all for this time round. I hope you have found this post to be informative. Don’t forget that if you have any questions about it then please feel free to post them on the Dev with Dave forum.