top of page
ISPYMAINMENU.png

iSpy Project

​

PLEASE GET IN TOUCH WITH ME REGARDING A BUILD/APK TO TRULY EXPERIENCE THIS PROJECT

'iSpy' is a Unity project that I have developed for Corporation Pop, a Manchester based digital agency. iSpy is a minigame in which the player must guess the correct object within a set scene of random objects, decided by the ever so powerful SuperComputer. The player will have 3 guesses and a set time limit of 90 seconds to decipher the correct object with hints that appear on the left hand side of the screen. As the time limit comes closer to 0, more hints will be made available to assist the player. If the time reaches 0 or the player guesses incorrectly 3 times in a row, they lose!

How did I start?

Initially I began to create a mind map to explore the ideas within my head on initial viewing of this project, I wanted to decide which option was best to take and what I believed would be an enjoyable mini game experience. I wanted to explore numerous variables such as how the player would be controlled, what mechanics I would use, how they would be implemented and the overall environment.

In addition to mechanics and gameplay, I wanted to add my own little narrative to the mini-game giving it a much more immersive feel and not just a greybox prototype in which players selects objects. I decided to go with a route of an AI named 'SuperComputer' who dictates the object whom the player is subservient to. My inspiration came in the form of GLaDOS from the Portal franchise, in which the player must progress through levels all whilst under the control of the computer system.

ISPYMINDMAP.png

Once I had a solid structure and understanding of what I wanted to create, I opened Unity and developed the initial mechanics of my project. The most of important and pivotal mechanic was giving the player the ability to select objects. I developed the mechanic so that the player would need to hold down the left mouse button for 1/4 of a second in order to confirm their guess, rather than a simple click and select, to ensure they are confident in their guessing and a simple miss click wouldn't result in a selected object. The objects would be set to a specific layer mask so only objects set to that layer are available for selection

The next vital mechanic was the system in which an object would be randomly chosen to be the correct object, this was relatively simple enough for me as I created a list and stored all selectable objects within this list. A for loop would be run and a random integer chosen between 0 and the length of the list, that integer would correspond to the item order within the list and furthermore allows me to expand my list with ease.

ISPYGAME2.png

One more vital mechanic to implement was hints. In order for the player to guess the correct object they will need pointers and help in the form of hints! How to display and what hints to share with the player was a big challenge of mine as I wanted to ensure the correct amount of information was provided without giving the object away or proving no help at all. After experimentation I decided that I will display 4 hints, each of which will progress in usability to the player ensuring the last hint is the biggest clue as to what at the correct object is.

Initially when beginning the level, the player is supplied with 2 hints, one for the length of the object's name, less than a set number of characters, and for a letter within that object. These give them a starting point to base their guesses off. As the level progresses more hints are unlocked. Initially theses hints would be unlocked through in game challenges but I decided to use a timer further into development. Hint 3 will provide a location and where the object is NOT located, reducing potential objects to be selected. The final hint will display the length of the object's name but more than a set number of characters. With all hints combined the player should have a good chance of determining the correct object. 

Next up was the construction gameplay in the form of adding limits and constraints, I began to develop the guess and time system, I decided 3 guesses was a fair amount and the time limit set at 90 seconds (1:30) would give the player the perfect amount of time to calmly decide an object but also add pressure upon them. The timer was also used later in development for unlocking the hints seen on the left hand side of the screen.

ISPYGAME1.png

The next big stage of development was the UI, I wanted to keep in game UI minimalistic so the player is able to focus on the environment and hints displayed giving them room to speculate the correct object. The timer and guesses are displayed in the 3D world using a world canvas and cubes which change colour based on the incorrect amount of guesses. The reason being so the player is not distracted by a timer counting down right at them but also adds the pressure of not truly knowing how much is left until they observe the screen to see, potentially wasting precious seconds used for completing the level.

 

UI was also required in the form of menus. Menus required for this mini-game for players had to be understandable and to be navigated with ease. The initial core menus were that of a: start menu, game over menu, level complete menu and pause menu. I believed however that a 'How To Play' and 'Controls' menu would be required for added reassurance with players who may not have much experience in computer gaming.

ISPYCONGRATS.png

In addition to all of this I wanted to have this mini-game be a first person experience so I created a first person controller for the player. This was just a personal preference of mine and I believe it does fit very will with the whole approach of selecting an object and also venturing around the environment to discover what objects can be selected.

What challenges did I face?

I faced numerous challenges during this project, one obvious challenge is the time constraint placed on the deliverable. With numerous ideas within my head of what to create and develop it was very easy to misunderstand the undertaking and time required to fully develop these ideas. If more time was given I would work on developing random object spawns and adding challenges in order to acquire hints rather than a time limit and adding more variation to gameplay.

​

Additionally with working my current job during this time limit it required me to fully balance all areas of my life in order to ensure I have enough time required to complete this project to a standard I am proud of.

I also faced challenges and obstacles with my mechanics within Unity. That of which being the UI displays to sync up with the player's actions without fault. I encountered numerous occasions and bugs of the selection UI still visible in menus and when the player has moved the mouse away from the object too, furthermore I experienced issues with the hint UI not been displayed after the time limit was reached on the hint. Challenges also came in the way of optimising my code in order to keep in clear, concise and follow best practices when developing projects.

To summarise

All together it was a very interesting and enjoyable project to work on. I have never really worked on a 'I spy' system for a game before so it was good for me to further expand my knowledge of the gameplay, systems and code used and it is definitely something I can expand on and progress further in the future. Regardless of the challenges faced it was a very positive experience for me and I am proud and happy of the end result.

bottom of page