The Sales Game (Unity)

While watching re-runs of the ‘The Apprentice’ the concept of ‘selling’ became a thematic focal point in my mind, and the strength of my ambition to create a simulation game surfaced as I sketched out several possible games over the course of a couple of hours. I designed several core game-play mechanics, though there was one clear winner: moving salesmen to intercept potential customers by tapping, and then collecting the proceeds from sales by tapping on an image of a dollar sign.

The vision of coding and publishing an original title within the simulation genre motivated me to quickly move onto taking the next step: to write and organise notes covering all aspects of the planned game. Reviewing this detailed documentation with my (non-technical oriented) partner, a final brief was decided and it was possible to begin. Splitting the work into discrete features onto Post-It Notes™ and prioritizing them on the kitchen table was my preferred means to manage this project. This aimed to improve the chance of successfully implementing as many requirements as possible, while maintaining the ability to adapt the project to new creative ideas as they were envisaged.

The development environment consisted of Unity, with the support of the Visual Studio IDE, nevertheless the first stage was to draft several simple art assets in Photoshop: the are no sales without salespeople or customers, so these were first to be created! Pooling my talents as a programmer, along with experience of user interface design, basic economics, script writing and sound editing, I set to work as a one-man game developer team!

The initial kernel of the game was formed by creating separate Customer and Salesperson prefabs, each with their respective Sprite Renderers,  Collider2D components, and C# scripts determining their behaviour. Customers moved down in the Y axis, and were reset to the top of the screen upon completing their journey to the bottom of the street. On colliding with a Salesperson, a Dollar prefab appeared, which had its own script determining its value and whether it had been tapped to be collected. As a consequence of the game essentially being driven by touch-interaction events from the user and collision detection events by the physics engine, the overall software architecture was event driven.

With the first basic implementation complete, I was enthusiastic to hugely expand the game by incorporating many more mechanics that would craft it into an engaging experience: with the ability to hire and manage multiple salesmen, contending against thieves picking up  uncollected dollars, tax collectors taking a cut of sales income on collision, having to pay compensation for customers colliding with vehicles, and the ability to invest in shops as a further revenue stream. With the depth and complexity of the project set to increase, it was well worth respecting an object-oriented style in order to structure code in a meaningful way, such that would improve its maintainability later on in the project.

The additional game-play mechanics were then developed one at a time, along with the creation of simple instructions to guide players within self-contained levels, each building upon the last, culminating in a complex web of interacting elements in the final level.

The levels were then thoroughly play-tested in order to ensure they met the requirements of the original brief. The game was built and run for testing on a popular, albeit older, Android mobile device – a Samsung Galaxy S3 – to recreate the performance constraints of likely real-world conditions. A notable issue with performance was found when playing the game, and this was tackled as follows: a minimisation in the size of all texture files, swapping from an Instantiate-Destroy pattern to game object pooling for frequently used temporary objects. I also tinkered to find the optimal quality settings for the Android build by allowing multi-threaded rendering, and slightly reducing rendering quality – the change to quality was indiscernible but improved FPS by 15.

While programming a level system, which allowed players to unlock levels as they completed the previous ones, persistence became more significant, since players could only complete the game if they played it in a single session. This led to a save system relying on the inbuilt Unity PlayerPrefs class that kept state data from one execution of the game to another.

Further refining the user experience, I amassed and reviewed a collection of Creative Commons Zero licensed music to find a suitable track for the game theme. This soundtrack, along with several key sound effects such as a coin sound and ticking clock, were added into the game with ease using the flexible audio features of the Unity engine.

The essential characteristics of the overarching meta-game included being able to stockpile money earned in levels, and spending this on upgrades that provide an advantage to the player in further more difficult levels. A script was then written to coat the upgrades such as “buy another customer” with a layer of zeal, e.g. “slip some cash to a DJ at a local radio station to play a homemade jingle. More potential customers!”

Creating a final finished product for release on the Google PlayStore within a short period of time meant that priorities had to be frequently reviewed. Certain lower priority functionality were dropped for the first release, in order to avoid compromising quality for new features. Nonetheless, the game remains flexible for further development thanks to the division of scripts into object-oriented chunks, and the ability to store complex game objects configured with particular presets as Prefabs. Further candidates for release are the platforms of Windows Phone and iOS, aided by the simplicity of multi-platform development afforded by Unity.

I have heavily exploited the communication channel of social media in order to broadcast promotional information about the game since release on the Android app stores: via messages to friends (Facebook), family (WhatsApp groups), 2500 followers (Twitter), shortly to be joined my 1500 subscribers with a video (YouTube). Thanks for all the support to those that have already downloaded!

Experienced with a huge variety of development tools and practices and with a burning desire to make games, I am eager to continue using and refining my skills with a games company in the West Midlands, and achieve my dream of a lifelong career in commercial game development.

Download Link: The Sales Game (Android)

Leave a Reply

Your email address will not be published. Required fields are marked *