Letters Island
A downloadable game for Android
Letters Island was my fifth game I made, and second game at Unstoppable Games working with the same Game Designer Saeed. He provided the game design docs and the art assets and I implemented everything into Unity. I took his vision and made it into the game imagined after many feedback sessions. In Letters Island you play in an IO game setting where your goal is to collect the correct letters corresponding to the bridge letters faster than your opponent and be the first to the end.
Game Mechanics:
- Functionality for each bridge spelling out a random word from a list of words, and "using" that word so it wont popup again
- Randomly list the possible letters from each word along with spawning new letters once the current ones are picked up from the islands
- Implement basic AI using a Finite State Machine for picking up the correct letters, and placing them in their required spots
- Implement letter "stacking" where visually the letters get higher as a player picks up more letters
Challenges & Solutions:
- We needed a way to make later levels more difficult so I sought out to create a shark AI. Through multiple iterations of this AI I settled on creating a spine path for the shark to follow using a force based approach, and when he's close enough to the bridge if a player is there, he'll jump towards them. If he captures them, they will appear in his mouth and the player will respawns once the shark hits the water again.
- Not all Islands go straight, some require the character to move in another direction. To solve this, at the end of a bridge where another bridge requires a 90 degree turn, the camera will slowly rotate to the new direction.
- This causes another problem though, how do we get the player to move in the right direction now? In this project I decided we'd need to transform vector we use like Vector3.forward by the camera rotation so it'd be relative to the camera the player then uses the relative rotation to apply a relative forward force, as well as rotating towards the movement direction.
- There were far too many draw calls, so we had to combine meshes to bring that down for a smoother gameplay experience.
What I'd do differently:
- If I were to redo the project, one major thing I'd change is the AI. In it's current state it's very messy as it was my first time using Finite State Machines, so I would program that in a much more clean and clear way, and the way events are done like "Target Bridge Collapsed" could be handled far better. The majority of the AI code was in the move towards state, I could have abstracted that to be more stateful
- Other than the AI, I would build tools to create levels by reusing the assets and calculating the spacing needed between islands to fit the targeted words. This could be used at runtime, or be an editor tool so that the levels were premade
Key Takeaways:
- Letters Island was a great learning experience! I had a ton of fun with this idea and through multiple iterations we got it to a great state. Although I think it is a bit too difficult (actually fairly easy to lose). It was great to learn to create realistic AI, as well as different types of AI and behaviors. This was also the first game I added sounds to.
Download
Download
Letters Island.apk 58 MB