Hello World! And welcome to the seventy first Dev with Dave Game progress Update.
I’m sad to say that it’s been another of those weeks where nothing has gone to plan. I’m already two days late starting this blog post.
Unfortunately, my girlfriend’s diabetes put her in hospital again this week, so my available time to work on Flappy-vaders has been dramatically reduced. It doesn’t help that my car is off the road as well. So, I have had to be finding other ways of getting around.
Taxis are the easiest and quickest, but most expensive. We also have those Lime electric scooters and bikes around here, which are cheaper than taxis but are slower. They are great fun though. Lastly there are busses. Busses are slow and uncomfortable and take an age to get anywhere. They are cheap though.
I’ve also spent more time than usual simply walking places. I like walking, it gives me chance to listen to books on Audible and enjoy the scenery.
Anyhoo, lol, In the little time I have had spare, I have managed to get a little bit of work done on Flappy-vaders. Let’s dive into what’s been done since the last update, without further ado.
Reviewing Phase 1 Trello Cards
In the last Game Progress Update, I finished with one remaining card on the Trello “In progress” column. That was to review all the cards which had been completed and moved to the “Under review” column for evaluation.
The one solitary benefit of my girlfriend being in hospital was that I got to spend a few hours sitting in a waiting room playing Flappy-vaders and working my way through the cards on the column.
I won’t list the individual cards here, as I think that would be a little dull tbh. But feel free to check out the Trello board >here< and see for yourself.
The only ones I couldn’t verify were the ones which involved unlocking and using the boosts. As I was away from the computer and playing the compiled version on my phone, I couldn’t simply add more coins to my total so I could play it.
Planning Phase 2
I have also managed to get some work done on the planning for the difficulty increases as the player proceeds with the game. I’m already thinking 1000 coins is too much for the boost unlocks.
I’m planning on increasing the difficulty and reward for the daily missions as the player progresses through them. For example, the player would need to complete “Travel 25 distance” mission maybe two or three times, before the distance increases to 50 and the reward gets doubled as well.
I’d also quite like to tweak some of the trophy values. They have all been tested now, and the harder ones need to be made a little tougher.
And lastly I would like to at least double the number of zones, with new patterns for the obstacles and enemies.
That’s all for this week
I’m happy to announce that my girlfriend was discharged from hospital after a couple of nights stay. She’s not a hundred percent better yet, but I’m glad she’s home.
Work on the game will proceed as normal next time round hopefully, as I feel I have had more than my fair share of bad luck and interruptions.
In the next update I will attempt to look more deeply into the promotional strategy I will be using for the game, as well as trying to get on with making the Phase two changes to the gameplay.
After the Unity pricing fiasco of last month, a lot of Devs are still angry at Unity and have swore to switch to alternative game engines to develop their games with. In this article I am going to look deeper into five alternatives to Unity, all of which are free to get started with.
Unreal Engine (Or just UE) is a big name in game development circles, and is probably Unity’s biggest rival. It has been used to make games like Fortnite, Batman Arkham Knight, Hollow knight and Borderlands.
As you can imagine, for a software with the scope of UE, it has a bit of a learning curve. It uses C++ to write scripts, which is not the easiest of languages to learn. But it does also have a visual scripting system called Blueprints. This allows you to create games using a more visual node based system.
Feature wise, UE is a heavy weight contender. It is packed with features like volumetric effects, Dynamic lighting, Advanced nanite landscaping system, a skeleton animation editor, and dozens of other AAA features.
It has been said that Unreal Engine isn’t particularly good for 2D projects. Whether this ever was true or not, it is certainly something that has got better with the more recent builds of UE.
There is a very active community for Unreal Engine. There are also lots of tutorials available for free on YouTube. Or, there are courses for sale on Udemy and the like.
Unreal is free to use. However, they ask for a 5% share of any income your game makes over the first $1 million dollars.
Godot is a free cross platform open source game engine.
It was initially designed by Juan Linietsky and Ariel Manzur. It was released in 2014, and runs on a variety of platforms and can compile to even more.
Godot uses Open GL as a renderer. With the latest version of Godot using Vulkan. It allows you to create 2D and 3D games using a range of different languages. As well as Godot’s own GDScript language, it allows you to use C++ and C#, or others which can be added using GDExtension.
It also has a very strong GUI system. It allows the user to easily create scalable UIs for any game or application.
Version 4.0 is the latest version of Godot. It boasts a range of new features as well as the Vulkan renderer which I mentioned earlier. It also has a handy movie maker mode you can use to record gameplay or cutscenes.
Because it is open source and free under the MIT license, Godot is free to use and will never charge you a fee for games written with it. Although there is the option to donate money on their homepage.
Like Unreal Engine, Godot has a huge community. As well as the official websites FAQ and Support stuff, the GitHub page for bug reports, there is social media channels and a discord server. Not to mention a whole load of community created user groups & free tutorials.
GameMaker is the first one of the engines in this list which is 2D only. Despite this it’s a fairly capable cross platform engine which has created games like Hotline Miami on the Playstation.
It offers you two methods to create your game out the box. Firstly, You can code it using GML Code, a simple enough scripting language to get the hang of; Or you can use the GML Visual editor, a visual scripting method which uses action blocks to construct the game logic in an intuitive way.
It has it’s own physics system integrated into GML, and has Spine support for skeletal animations. It also supports shaders for effects and post processing.
There are an abundance of tutorials available free from the website, and on YouTube, as well as paid for courses on places like Udemy. There is a large and helpful community of developers.
Although GameMaker is free to learn and use, the only place you can publish to on the free package is the GX.games website. You need to take out a subscription before you can publish to any other platform.
The above table shows which platforms you can publish to with which subscription tier. It also shows the monthly price. The annual prices are 10x the monthly price, a saving of two months subscription.
GDevelop is another free open source game engine. It doesn’t offer console export options, unlike the previous engines in this list. It does however give the option to make 2D and 3D games.
I wasn’t sure whether to include this or not when I was originally planning this list. GDevelop comes across as more aimed at beginners, but after some research I have discovered it’s quite a capable game engine.
Out of the box it offers the expected array of features
Dialogue editor (Yarn Classic)
Although closer examination reveals that the physics engine is 2D only, as it is based on the Box2D physics engine.
One of the most novel features of this engine is that it offers cloud based Mac and iOS compilation. Meaning you can get your game published without owning Apple hardware. However, it’s not cheap and its only available using your own certificates on the most expensive business tier. I thought it was worth mentioning anyway.
Defold is another open source cross platform game engine, and the last of the alternatives to Unity we will look at today.
It can develop both 2D and 3D games. Although it was developed as a 3D engine, it was created with tools to allow development of 2D as well. It uses a modular, component based system of game objects.
Defold uses Lua as a scripting language. For those who don’t know, Lua is powerful and lightweight scripting language which combines simple syntax with powerful data description constructs.
It has support for 2D physics based on Box2D like GDevelop, but also supports 3D physics using Bullet.
The Editor is quite flexible, allowing for the editing of animations, scenes, UI, etc. all in Visual environment. It also boasts about its compiled games having a much smaller file size compared to Unity or Unreal.
There seems to be a reasonable sized community, with a forum on the official website, and the usual tutorials and asset packs to start developers off.
It’s been used to create games like Family Island by Melsoft, which boasts an impressive 50 million downloads on the Google Play store.
Defold is another game engine which is totally free, regardless of how well your game performs in any market.
There we have it. Regardless of how you feel about Unity and their new usage fees, there are plenty of alternatives to Unity. I only included a small selection in this article, and obviously there are the paid for engines like App Game Kit Studio which I am building Flappy-vaders with.
For a more Unity like toolset, then UE is the one to use but does also charge a fee if your game exceeds certain thresholds. If you are after a simpler game engine, but one that doesn’t charge a fee then one of the open source options like Godot or Defold would probably suit better.
My suggestion would be to look at each website in turn and decide which engine would best suit the game you have in mind. As each engine on this list is free, there is nothing stopping you from downloading and trying them out first.
Hello world! And welcome to the seventieth Dev with Dave Game Progress Update!
It just occurred to me that when we reach the seventy eighth game progress update, that means I’ll have been working on Flappy-vaders for three years in real time. Since I’m only working on it part time, this equates to around a year, perhaps a year and a half of actual development time.
(I certainly wasn’t expecting this to take quite as long as it has when I began this journey! 😅)
We’re in the final stretch now, I really should be getting busy thinking about how I’m going to promote the game when it’s released (And before!), and designing, if not creating assets to use in the promotion.
I’ve not really thought much about promoting the game since Update 66. Which is when I last worked on the promotional video. (It’s >here< if you want to have a look)
This time round
I have moved three cards into the In Progress list on the Trello board.
Add a back button to the daily prize awarded screen
Make icons for the Daily Missions screen
Review phase 1 things in the Under Review list.
Add a back button to the Daily prize awarded screen
I was hoping this would be a simple case of adding a UI element to the existing UI page when I selected this task off the Things to do list on the Trello. But when I checked the UI pages I couldn’t see it.
I had a look again at the screen in action, and saw that it appeared to be a sprite overlay, rather than a UI page, as the scratcher UI page is visible underneath. This rules out my original fix, and means it’ll probably take a lot longer to sort out. 😞
After some investigation, I found where the code for the overlay sprite was being called from. It was a straight forward job to pass the function a reference to the UI and add a back button. This code could hide and show at the same time as the sprite overlay. All I’d need to do is ensure that the button’s draw depth is above the overlay panel.
With that in mind, I set off the the UI script to find a back button from an existing page to copy and paste onto the scratcher page.
There aren’t any? All the other UI pages just use the “Left facing triangle” icon in the top left corner of the screen.
I’m not sure why I thought the game needed a back button on this particular screen, but it seems to break continuity of the UI design to add one. Because of this, I have decided not to it after all.
Make icons for the Daily Missions screen
A bit of an oversight perhaps, but I noticed the Daily missions screen had only grey boxes instead of icons. Fixing this was added to the Phase 2, the polishing phase.
There are I think, five types of Daily Mission. Each one needs it’s own icon to represent it.
Score x amount of points
Travel x distance
Collect a daily prize
Play x number of games
Collect x coins
Initially I sat down at my desk with some paper and a pencil and started thinking. Some of the icons were obvious to me. I could simply reuse a coin icon from another menu, for example.
Even with the limited 22 x 22 pixel size, It didn’t take long to create the several of the icons.
Traveling distance however, was proving to be quite a challenge. I couldn’t think of a single concept or idea to represent traveling distance which would fill the tiny grey square.
I finally ended up using ChatGPT and Bind AI Image generator to help me come up with some ideas. You can read all about my experience using AI in this blog post.
The image above shows a few of the icons I created in place in the Daily Missions screen. The bottom one is the travel distance Icon which I had difficulties with. Until ultimately I sought the help of AI.
Review completed tasks from Phase 1
With the other two tasks out the way. It meant I had chance to review some of the cards in the Under Review list on Trello.
This meant I had to sit for a few hours with the Trello open, playing Flappy-vaders! It’s a tough job, lol, but someone has to do it.
I quickly got into a habit of reading the next card, and having a turn at the game. Fortunately the first few cards were easy enough to check in a single game.
Overall I think I managed to move 15 cards from under review to the completed list. At least before it was time to finish the blog post and do all the social media as well! lol
There are still loads of cards to verify, so I expect I’ll still be doing this next week. A lot of them mean editing the game so I have enough coins to buy unlocks and powerups so I can test some of the other cards.
That’s all for now
That’s all I have time for now I’m afraid.
Sorry the social media posting has been a bit sporadic the last few weeks. Other things have been getting in the way. Sadly real life things which I can’t just push to one side.
I will definitely be back in a fortnight, and I’ll try and do a better job with the social media stuff 😊
There has been lots of talk about AI recently. From the tinfoil hat wearing doom mongers, to those who think it marks the next age of human civilisation, and everyone in between. In fact, it’s hard to go online these days without stumbling across posts relating to AI.
With that in mind, I thought I would tell this short tale about how I used AI to help me in my work as an Indie Developer.
As many of you know, I am writing a game called Flappy-vaders in my free time. I share progress updates every two weeks, here on the blog.
The other day I was sat working on the game during a spare hour or two. I was trying to create some icons to represent the different daily missions. Apart from a couple of pencil sketches, I really had no clue as to what they should look like.
It’s fair to say I am a programmer, not an artist. I was having a very frustrating time trying to convert the various concepts to images. Time was ticking on, so I thought I would try see if using AI would help any.
What is ChatGPT?
I’m sure you are all aware of OpenAI’s ChatGPT. It’s a large language processing AI model, which can understand and reply to queries using human language.
It can do things like write essays or blog posts, find formulae, write poems or other creative stories, research a topic and provide a summary of the information, and even write code!
I’d used ChatGPT previously for another unrelated task, so I didn’t need to create an account. I could just log into my existing one.
The above picture is the conversation I had with ChatGPT, where I explained what I needed help with. Then I narrowed down the scope of the task by asking for a specific concept.
I asked it to help me with an icon to represent distance, for the distance travelled daily mission.
ChatGPT replies more or less in real time. You can watch the text appear on screen as though it is typing to you. It didn’t take long before it had given me a list of seven ideas which all seemed to fit the requirements.
I narrowed the selection down to just two ideas, and was about to reach for my pencil again when I wondered whether AI could help any further with the task.
Unlike ChatGPT, which provides you with text as an output, the AI Image Generator outputs images. So I entered the two suggestions I was considering from ChatGPT.
Suggestion 1 – A road or pathway stretching off into the distance
The first one was a road or pathway stretching off into the distance. However, I didn’t specify the size of the icons with this first prompt.
I was suitably impressed with the first round of images. particuarly the bottom left image, although the background wouldn’t translate to pixel art very well.
I tried again, using the same prompt but using the term “small icon” rather than “icon”, and after a minute or got this second batch of images.
Again the designs were quite good. The general image of the road snaking off into the distance is strong in each of them.
I’m not sure however that the curves of the sweeping road would translate very well to the 22 x 22 pixel square image I need for the UI in the game.
I decided that didn’t need to refine this design further. So I moved on to the second one of the ideas I had shortlisted from the ChatGPT output.
Suggestion 2 – Two points or pins connected with a line
Next I tried the other option which I liked from the ChatGPT output. This was “Two points or pins connected with a line between them”.
It didn’t take a terribly long time for Bing to once again supply me with four images which it had generated from the prompt I had given it.
As soon as I saw the output, I knew that this was the one which I would use in the game.
The familiarity of the Google Maps style pin clearly conveys that the icon is representing travelling between the two point. This is exactly what I needed for the “Travel n Distance” daily mission.
I still however had to try and get the image to fit into a 22 x 22 pixel square.
I opened up Paint .Net and set to work on creating the icon.
The finished icon
The finished icon is shown in the screenshot below. I don’t think I did too bad of a job making the elements of the icon recognisable at the size it needed to be.
Overall, from the time I decided to open ChatGPT to the time I closed Paint .Net and added the icons to the media folder of the game, it took about 3 hours. Most of this time was me being overly fussy about tweaking the images in the art package.
I am in no doubt that there is no danger of humanity being replaced by AI anytime soon. It does however make for a very valuable tool for researching a topic, or for providing inspiration for graphical design.
I didn’t use it to generate any code however. I am aware that it can write code, but it’s best to view it as pseudo code as it is quite often error filled or generally incorrect.
I really do think that using AI for the simple task described above has saved me literally hours of time sketching and scratching my head. I am definitely going to look for more ways I can use AI to streamline my game development process.
Unless you live under a rock, you’ll have noticed that the Game dev world was sent into disarray when Unity announced a new pricing scheme. I certainly couldn’t help but notice as all the Game Dev Facebook groups were full of people disowning Unity and telling the world that they are switching to Unreal Engine or Godot. Even the news had headlines about Unity’s share price plummeting. But what was it all about? What had Unity done?
Unity announced earlier in September that they were changing their pricing to include a per install Unity runtime fee. This greatly upset a lot of developers who were very vocal about it on social media. Unity issued an apology, and then a short time later, a statement containing a revised pricing plan as well as addressing some of the concerns users had.
What did Unity do?
On 12/9 Unity shared this post on their blog about a new Unity Runtime Fee. It explains that Unity is made up of two parts, the editor, and the runtime component. The runtime component is the code which runs your game on the players device.
It’s this runtime component that Unity wanted to introduce a fee for each time it was downloaded, once a game had exceeded some thresholds relating to earnings and number of downloads.
Unity stated they believed a flat fee per install was fairer than taking a percentage of revenue as other game engines do.
They did not however explain which versions of Unity run time would be affected, leaving users angry that it had been applied retroactively, possibly costing developer millions in owed fees.
Nor did they explain how data regarding the thresholds would be collected.
The news spread all across the gaming industry like wildfire. It didn’t take very long before all the social medias were alive with posts from outraged indie developers who felt betrayed by Unity.
People were upset and confused by the announcement. Many smaller developers were worried if this would have affected them. In many of the Game Developer groups I follow, every other post seemed to be “I am leaving Unity and moving to Godot” or “I am quitting Unity and am going to use UE from now on”.
Even Unity Celebrities like Brackeys have made posts condemning Unity for the way it’s treated its customers.
So big was the fall out from Unity’s announcement that the news spread far beyond just the gaming world. It even affected Unity’s share price, which dropped 12% in the days following the announcement.
It only took five hours before Unity started tweeting out in defense of its new policy. Offering explanations and reassurances that these new changes would only affect a small minority of developers. They answered many of peoples questions on their forum online.
However as the onslaught continued, Unity finally tweeted that “they had heard” the voices of concern from the public. They also said that they would share an update again the a few days.
Although this news didn’t quieten the online discontent. It did start a lot of speculation as to what Unity would do instead. Ranging from scrapping the idea of a fee altogether, to charging a 5% flat fee of the games earnings.
A change of heart
Then ten whole days after the drama started, Marc Whitten from Unity, shared an open letter to the community.
This letter started with a heart felt apology, and acceptance that they should have spoken to the community more about the changes they wanted to implement. He explained that the new charges were to ensure that they could support users. As well as to invest in keeping Unity up to date with the latest technologies.
He went on to say he realises how important the Unity users are to the company. And that they will work hard to earn back the users trust. The letter then goes on to describe what changes have been made in Unity’s revised plans.
How does the new Unity Runtime fee work?
Their latest update clarified that the Runtime fee will only apply to games made with the next LTS release of Unity onwards. This is due to be released in 2024. This addresses one of the biggest concerns of the users. That this fee would be applied retroactively to existing published games.
If a game exceeds some thresholds relating to number of downloads and income generated, the developers will be given a choice to pay either a 2.5% of revenue share, or a calculated amount depending on the number of active monthly users. Both these values are obtained from data you provide to Unity. You will always pay the smaller of the two values. This also addresses another large concern from developers. That Unity would be using their own analytics to provide data used to calculate the fees unity would charge.
What are the thresholds
Before you are charged the Run time fee for your game, it has to exceed two thresholds.
The first one of these thresholds is on the number of downloads the game has had. It has to have more than 200,000 downloads since it was published.
The second one relates to the income that your game generates. To exceed the second threshold, your game needs to have earned more than $200,000 in the last 12 months.
So, in order to be eligible for the fee, your game must exceed both these thresholds and be made with a Unity version after the next LTS version.
However, if you do exceed these thresholds, you can always upgrade to Unity Professional. This will increase the thresholds to 1,000,000 downloads and $1,000,000 respectively.
Other changes Unity have made
With the next version of the LTS Unity and the Run Time fee, Unity are also adding cloud-based asset storage, Unity DevOps tools, and AI this November.
They are also removing the requirement for games made with the free Unity accounts to show a made with Unity splash screen when loading.
This is good as they have removed the Plus level account, which had no splash screen requirement.
Shortly after I originally published this article, John Riccitiello, the CEO of Unity has resigned from both his position as Chief Executive Officer, and the board of directors of the company.
He had joined the company back in 2013 after resigning from his position as Electronic Art’s Chief executive.
Mr Riccitiello said “It’s been a privilege to lead Unity for nearly a decade and serve our employees, customers, developers and partners, all of whom have been instrumental to the company’s growth,”.
No reason was given for his resignation.
Although I think that Unity really dropped the ball with their initial announcement, I think they have made a reasonable compromise and have satisfied most of their userbase with their revised plans.
Its good to see that they do listen to their users, and hopefully they have learned a valuable lesson from this fiasco.
Unity is one of the largest game creation tools, I doubt very much that it would simply disappear due to one mistake. Far too many studios have invested hundreds of thousands of dollars into developing games with Unity for them to just switch tools mid way through a project.
I hope that my next Unity game beats both the thresholds and becomes eligible for paying the Unity Runtime Fee! Lol.