The first prototype game that I made from the Game Design and Prototyping module was Business Builder, a clone of Cookie Clicker.
EXPLORING UNITY
I felt that this project was easy to replicate by following the provided tutorials. I already had a loose idea of what I wanted to create prior to starting – I wanted my game to follow the same alliteration pattern as seen in Cookie Clicker, which led to the idea of Business Builder.
The tutorials helped me to learn the basics of the Unity Engine, as I had previously never had any experience with game engines to this level. I was able to create and manipulate UI elements, create basic C# scripts and declare variables and gain familiarity with the layout of the engine.

INSPIRATION AND ART
Inspiration for Business Builder came from looking at how large scale brands promote their products through their various social media channels. Brands will often pay for advertisements and promotions on sites such as Instagram, Facebook and Twitter due to the site having a large number of people who use it daily in order to promote their products and potentially garner sales.
This inspired the artwork and the upgrades that the player interacts with. The main button that the player interacts with is the cardboard box, used to sell items which in turn allows the player to purchase upgrades. I made the cardboard box sprite in Photoshop on a canvas size of 100×100 to incorporate the pixel art style that I wanted; I also used Photoshop’s colour picker to ensure that the colours that I was using were very similar to cardboard boxes that people would receive on a day to day basis and not something garish and off-putting, such as using neon colours.
I created three sprites for the upgrades in the style of chat bubbles that you would see on sites such as Facebook and Instagram and also thematically matched them to their upgrade. To expand on this further, the sprite for the upgrade “Family Recommendation” depicts two people talking, which the player can interpret as a family member recommending a product whilst the sprite for the upgrade “Hire an Intern” depicts a person in a shirt and tie. I made the sprite for the upgrade “Promote to Social Media” relatively simple by showing a pixelated white heart to represent people liking a product and then purchasing it, which ties in with the upgrade’s ability.
SCRIPTING
The scripts that I made for this project were relatively simple to replicate from the tutorials and implement into my idle clicker.
The image below is the script that allows the player to gain “Items sold” when clicking on the cardboard box, allowing for the player to generate enough to purchase other upgrades. This script was my first interaction with variables – A variable is a container for information related to a game that can often change, such as a player’s health, their location or in this case, their currency.
The first variable in this script was the counter, which will display the number of items that the player has sold when playing Business Builder. The float variable below it, titled “counterNumber” contains the number of items the player has sold whilst the last float variable, titled “amountPerClick” is for the number of items the player will sell dependent on how many times the button is clicked. I set the base value of this to be 1 item per click, but this will change on the player upgrading. The variables were made public to allow for them to be accessed through the Unity interface. As an example, if I wanted to change the number of items sold per click, I could now change them from inside Unity without having to open Visual Studio to access the script.

The three upgrades followed a similar pattern in their scripts, with the third upgrade being a slight variation of the second upgrade to allow for 5 items to be automatically generated instead of 1.
The variables that are added in these scripts are variables for text elements in the game, float variables for elements such as price and the power of the upgrade and string for containing the upgrade name. The three float variables that are seen in the scripts refer to the current price of that upgrade, increasing the price of the upgrade after each time that the player has purchased it and how many sales to add once the upgrade had been bought.
The first upgrade relates to adding to the user’s clicking power, allowing for the user to sell two items for one-click at its lowest upgrade. The script makes use of an if statement, which will check for a certain condition to be met. If the if statement is true, it runs the next section of the script, which in this case is checking whether the counter number is equal to or greater than the current cost, allowing the player to purchase the upgrade and subsequently increasing the price for the next upgrade. If it detects that the statement is false, it will not allow for that section of code to run and will continue until the condition is met.
The second upgrade allowed for auto-generation of “items sold” per second, allowing for the user to continuously generate without manual input through clicking. It references the clicking script to access the variables stated within and also references “scr_AutoSale”, which makes use of boolean states and coroutines; Coroutines allow for Unity to stop the execution of code for a specified time or until a condition is met, where it would then continue to run. The coroutine in scr_AutoSale allows for there to be a delay in adding “Items sold” to the counter, else it would continue to add to the counter on every frame, which would be a hindrance to the gameplay of Business Builder.
As mentioned above, the third upgrade was the strongest, improving on the power of the second upgrade to allow for 5 items to be sold per second instead of 1. This upgrade cost the most, and when redeemed increased the price the most in comparison to the other upgrades. In terms of scripting, it was a slight variation from the script that was attached to the second upgrade, with the nextSalesPerSec in the public void start being set to 5 instead of 1.




CHALLENGES
The main challenge that I faced during this project was learning and understanding C# scripting. I found the creation of the UI elements to be straightforward and replicated them easily from the tutorials, yet the scripting aspects of this project were not as easy to follow.
This project was my first interaction with C# scripting, and I knew that the process of learning and understanding the different elements of Unity and C# would be something that came with time and experience as the module progressed.
I made a number of errors when going through this project, ranging from small, missed punctuation to larger issues. On one occasion in this project, I had forgotten to attach the script to the third upgrade button and was expecting the button to work without fault. At first, when the button did not work as intended, I was incredibly confused as I thought that I had done everything correct. I then took my time to work my way through my UI elements and code, and upon further investigation, I found my problem.
I understand that these will be some of the common problems associated with scripting in C# and working with Unity, especially for a newcomer to the engine.
UNITY – STRENGTHS AND WEAKNESSES
I have learnt that Unity has varying strengths and weaknesses when creating a game. My first experiences with the engine and scripting were comparable to learning a new language – taking in all of the new information that was presented, understanding certain sections of it and struggling with others.
I found that it is very easy to make mistakes in Unity, from tiny errors such as missing a semi-colon or a bracket in a function, to much larger errors that have to be fixed with multiple lines of code.
There were multiple times that I had to stop and investigate what the problem was within Unity. Some of the issues were easy to identify, such as how I had missed something out of a function, yet some of them were harder to fix, which can cause the user to become stressed if the error is not an easy fix. Experience with the User Interface will likely lessen these problems, but initially these can be difficult to understand.
The positives of Unity is that the user has the ability to create anything they desire in the engine. The only real limitation is that the user must understand how to transfer their idea into the engine and then how to create it.

OUTCOME
I was able to create an idle clicker game utilising the use of UI buttons in Unity and scripts that were fair in price for the power of the upgrades that could be purchased.

If I could take this project further, I would like to implement some form of animation to the background along with adding new upgrades. As seen below in Cookie Clicker (Orteil, 2013), the background has cookies falling, the milk below the central cookie is animated and the cursor upgrades are animated to tap. In Business Builder, the background animation could have been cardboard boxes (parcels) falling, with more showing depending on how many “Items sold” per second the player has.
I would also include new upgrades to Business Builder if I were to take this project further, such as potentially having an upgrade that is similar to the cursor upgrade that allows for auto-generation of items sold but has the upgrade generate every 10 or 20 seconds. The first auto-generation upgrade that I have in Business Builder costs 50 items sold for the first upgrade, whereas this potential upgrade could cost significantly less.

Itch.io link to Business Builder: https://rjusher.itch.io/business-builder
Referenced Material:
Orteil (2013) Cookie Clicker. Dashnet.org. Available online: https://orteil.dashnet.org/cookieclicker/.