TyperWalker

Use your words to help others.  Global Game Jam 2017 submission.
Genre: 2D Platformer || Platform(s): Web, PC, Mac
[Download Page]

This game was fun to work on. It was made during Global Game Jam 2017. I was volunteering at the George Brown College location in Toronto during the event, but during breaks and all day Saturday (I wasn’t on shift Saturday) I worked on this little project.

What I’m proudest of on this project if the fact that I managed to execute the vision I had for the game without too much trial and error. By this point, I had had a bit more than 2 years of working with Unity and not much more experience working on games in general.

The theme of the jam was “Waves”. My first thought was sound waves and waves of thought. So I combined the two ideas and decided it would be funny if a person typed on a keyboard haphazardly and whatever was typed exploded on screen. So first I researched to see if I could use Unity’s particle system to achieve this effect. There is a way, but I when I thought about what I would want to do with the letters once they were in the world I decided to make my own “particle” objects.

The letter objects consist of GameObjects with a RigidBody2D, a Collider2D, a Unity UI Text component, and a script that controlled what letter it displayed.

I had a script that detected input using Unity’s input manager. In addition to changing the letter that is spawned, I wanted to have a sound played. So I couldn’t just cast the KeyCode and spawn whenever the key was pressed so I created an array of KeyCodes that matched with an array or AudioClips. I looped through all the KeyCodes and played the corresponding AudioClip based on the index of the KeyCode.

[Snippet of my KeyCode arrays, could be prettier I’m sure ;)]

// KeyCodes
private KeyCode[] m_keyArray = {KeyCode.A, KeyCode.B, KeyCode.C, KeyCode.D, KeyCode.E, KeyCode.F, KeyCode.G, KeyCode.Q, KeyCode.R,KeyCode.S, KeyCode.T, KeyCode.V,
KeyCode.W, KeyCode.X, KeyCode.Z, KeyCode.Alpha1, KeyCode.Alpha2, KeyCode.Alpha3, KeyCode.Alpha4, KeyCode.Alpha5, KeyCode.Alpha6, KeyCode.Alpha7, KeyCode.Alpha9,
KeyCode.Comma, KeyCode.Period, KeyCode.Semicolon, KeyCode.Quote, KeyCode.Minus, KeyCode.Equals,KeyCode.Slash, KeyCode.H, KeyCode.I,KeyCode.J, KeyCode.K, KeyCode.L, 
KeyCode.M, KeyCode.N, KeyCode.O,KeyCode.P, KeyCode.U, KeyCode.Y, KeyCode.Alpha0};

// Characters that can be used
private char[] m_characters = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '\'', ':', ',', '!', '-', '.', '+', '?', '"', ';' };

// Audio Clips
[SerializeField]
private AudioClip[] m_characterAudio = new AudioClip[72];

Maybe it’s because of the time constraints of the Game Jam or maybe it’s because I wasn’t as experienced then, but I think I have thought of a better way to have done this. I should have used a dictionary with values of AudioClips with keys of KeyCodes. This way I could loop through all the keys and check if that value existed in the Dictionary to play the audio and then cast the KeyCode to its text form. The only issue I can see with this is that non-letter or number keys don’t cast to their character counterparts (I don’t think so anyway).

Since I only had about 20 hours to complete the game I ended up only making a very simple level and not many more mechanics outside of the letters and platforming. I created simple puzzles based on the letter particles entering triggers and that’s about it. Most of the rest of my time was spent making art, and recording and editing the audio.

I’m very fond of this game, I think it’s cute and it brings good memories of volunteering at the jam. Also, I tried to make the game about helping others and using words to solve problems. I think more games could use that. 🙂