Project Type:
Development Engine:
Programming Language:
Other Tools:
Team Size:
Role:
Duration:
Game Development
Unity
C#
Aseprite
3
Developer
9 months
WildeKey is a 2D educational game hosted on the web, created with the design goal to make learning to type fun.
Players go world to world, unlocking more of the keyboard to practice typing as they move across levels.
Assuming the role of a wildebeest wizard, the player progresses through color-saturated cartooney environments engaging a wide range of creatures perfect for elementary school students.
Created to integrate into Sandy Spring Friends School cirriculum, our team composing of two developers and one mentor worked on this project for 9 months.
Our project had an emphasis on implementing a strong development plan, using story-boarding, and a Gantt Chart.
My role in this project was as a:
WildeKey includes 2 forms of gameplay/typing:
Most levels consist of 'lane typing'. In this mode the player switches between lanes typing out creatures running towards them. The goal is to type out creatures before they reach you. Once enough creatures have been typed out, the level is complete.
At the end of each world is a 'boss fight'. These act as traditional typing tests where the player is presented a body of text to type out as fast as possible.
We also present dialogue text to the player on certain levels. While this text is not typed out, it is visualized on screen character by character using a simple for loop.
At the end of each level the player is shown a score and accuracy. If the level was lane typing they're shown the number of creatures saved. If the level was a boss fight they're shown their words per minute (wpm). For reference, WPM is the standard for measuring typing speed.
We pushed our systems to be dynamic. As such we also created two special levels that extended our systems.
While levels consisted solely of either lane tying or boss fights, we created a level where we switched between the two.
In a fortress clearly defined on the world map, the player faces creatures at the gate of the castle.
After typing all creatures, the player immediately fights the boss.
Before creating this functionality, we were loading seperate scenes for the two different typing methods.
We changed this implementation, turning the objects in scene into prefabs so we could easily instantiate the boss after the creatures were completed.
The lanes system was originally made to support a dynamic amount of lanes, a feature we left behind while fleshing out and polishing our gameplay.
When finishing out the game, I revisited this functionality for the final level of the game.
The final level thus includes three lanes (as compared to the typical two in the rest of the game) using the comppleted dynamic lane support.
As well, with bosses easily instantiable we made the final boss three parts with three bodys of text to type out.
Given that each type of character (creatures and bosses) acted with the same functionality, we abstracted using two custom ScriptableObject data types. The first being 'CreatureData' which had a name, world, speed, and list of running sprites for its animation. The second being 'BossData' which had a name, default-text, world, and list of idle sprites for its animation. Given this abstraction, we only had 2 prefabs ('Creature' and 'Boss') that loaded their relevant data from their ScriptableObject.
Along WildeKey's adventure there are:
- 6 unique areas
- 27 different levels
Each area progressively add more portions of the keyboard to practice.
The world map uses Unity's Tilemap system as part of the 2D Tilemap Editor package.
A tilemap is a grid of tiles that is drawn in using a Tile palette.
We drew all tiles as 8x8 squares that would interconnect correctly.
See the tile palette below:
Custom color palette made for the games art:
Bosses each with an idle animation:
Creatures each with a run cycle:
Backgrounds for different areas:
The entire game is playable in three different font choices, swappable in the main menu.
Included is OpenDyslexic, a typeface designed against the common symtoms of dyslexia and made to be easily legible.
To maintain a certain standard of inclusion, we decided that all human characters with skin would have multiple versions to represent different skin colors. We made this decision to promote diversity, especialy since our game was being made for elementary school students.