Blow Wind Blow
Blow Wind Blow is a multiplayer game that is both cooperative and competitive. Each player controls one of the four cardinal winds by blowing into a microphone. Together, the winds direct an adventurer across the world as he sails from island to island, while competing with each other to become the prevailing wind with the most predominance in the story.
All three of us are enormous game nerds, so we settled on making a video game very early in the development process. Our inspirations for this game were:
- alternative control schemes which were not the traditional keyboard and mouse;
- multiple actors competing to take control of the narrative;
- gaining experience in working with Unity and 3D games.
In the mechanics of the game, we were inspired by a wide variety of video games, such as
- the Mario Party series, which also focuses on friendly competition and interesting interactions that arises from friendly competition.
- Journey, another metaphorical adventure game and its unique way of telling its narrative without text or dialogue.
- Sunless Sea, a similar narrative-driven game with a nautical focus
Aesthetically, we were inspired by classical myths such as Homer’s Odyssey and the Greco-Roman gods of the four winds. The game’s interface and cutscenes were inspired by Ancient Greek pottery. Our music was inspired by the haunting classical pieces in Journey and other atmospheric video games we wanted to emulate.
Development and Technical Solution(s)
Initially, we tried all working on the same Unity project file at the same time, but version control quickly became a nightmare as our work was spread out across different versions. This led to a new workflow where only one person (Kee Yong) had the Unity project file and everyone else contributed assets to import into it.
Our work was divided as follows:
- En Cui did all of the 3D models, music, and sounds
- Shah did the story, murals, interface elements, and Arduino engineering
- Kee Yong did the programming and playtesting
The core of our game is fairly straightforward, as it uses Unity’s built-in physics and UI systems to display graphics and move the ship around. The difficult part was polishing it enough to immerse the players in the experience, masking the artificial nature of the video game. To do this we added lots of small details, such as making the ship rock and bob on the ocean realistically, making the ship’s sails flutter when blown, moving the waves according to the wind direction, etc. All this stuff took longer than the actual game mechanics but contributes a great deal to the final experience.
It cannot be overstated how much this game owes to Unity’s features and community. Kee Yong found a lot of solutions to his problems just by looking them up on the Unity manuals or on the Internet. The game is basically a giant collection of code by different people held together by duct tape, and without the help of countless other game developers, writing the code for this game would have been much harder.
The game world is important to our project because it is how players interact with our narrative. En Cui and Kee Yong iterated over many layouts of islands to ensure that the players would move through the levels smoothly and the sections of the world did not feel too long or too short. We also had to carefully place the “prevailing wind” collectible items so that every player would feel that he or she had a chance of being victorious in each round.
One of our goals for this project was to tell a narrative with minimal use of words. As a result, Shah faced the challenge of communicating game rules and story events to the player through his arcane mural-like designs. We used symbolic imagery and held items to convey parts of the winds’ and the prince’s personalities, such as skulls for death and flowers for peace. We also added a compass to guide the player to checkpoints and strong audio-visual feedback whenever an item was picked up or a checkpoint reached.
Audio was an important part of this project and took a long time to get right. En Cui and her sister composed an original soundtrack for this game, with multiple overlapping musical tracks that fade in and out depending on the game state. The music was composed to loop seamlessly and transition at appropriate moments. We also added a lot of sound effects to improve the immersion, like crashing waves, ambient seagulls, and bustling cityscapes.
We used an Arduino microcontroller to read from four microphones and detect when the incoming sound is above a certain frequency (thus, a player is blowing into it). Whenever one or more inputs is received, the Arduino sends a unique number to the computer depending on which combination of microphones is active. This is how we translated microphone input over a serial port into usable in-game inputs.
Observations on the Final Project
Our final project is a complete experience that takes you through 3 islands from the beginning to the end of the prince’s story. However, it is only a proof of concept and we could have added a lot more features to make it into a polished product if we had the time.
Some of our ideas which we had to leave on the cutting room floor:
- Nautical hazards to make sailing more interesting, like currents, whirlpools, or enemy pirate ships
- Different weather conditions
- A longer story with more branching elements, and perhaps more involved stories on each individual island
- A more beautiful game world with clouds, birds, and unique island graphics
Strong and Weak Aspects
- We were focused in our scope and met project deadlines
- Our game is reasonably polished with no bugs
- We have a complete narrative that changes meaningfully depending on player actions
- We have awesome music that you can sing along to
- The narrative is sometimes unclear
- There could be a better tutorial for unfamiliar players
- Our game is not up to the industry standard of polish and the graphics, audio, etc. could be further improved
- Our Arduino-microphone setup was a kludge and kept falling apart
Once again for this class, we decided to use Unity instead of using Processing (which was the program that we had been coding in up till now) as we wanted to push ourselves and learn something new.
What was different with this project however was my role. Unlike in DM2007 where I was the lead programmer, instead now I was making 2d assets. When working with this group, throughout the whole project creation process, I was constantly humbled as the people I was working with were extremely talented and capable people. There was En Cui who was creating 3D assets and who even managed to compose a whole song for the game. How she found the time to do so escaped me. And then there was Kee Yong whose programming skills were simply out of this world. I can only hope and aspire to be on the same level someday. Working with these people, I was constantly motivated and pressured to do better and carry my own weight to keep up with them. This was a new environment for me and I have to say I actually really enjoyed it. The pressure was the good kind of pressure that motivated you to do better and throughout this process, from the start I was confident that the final product would be something that we would all be proud of.
As for my role as 2d asset creator, it was actually really nice to do something other than just mainly programming for once. It is actually really therapeutic to work on a detailed peace of work. And on top of this I felt really satisfied when the 2d assets managed to convey the narrative that I wanted and when it fit in with the overall atmosphere of the game. I am really proud of myself that I was able to create works that I am satisfied with within such a short time frame. That being said, time management on my part could have been much better. Had I started on working on the murals more diligently much earlier, I would have been able to produce even better work.
Lastly, from this project I learnt that I really love local couch multiplayer games because of the unique interactions that arise from it and this is a genre that I would love to dive deeper into in the future as a game designer. Secondly, I have also learnt that we should utilize our time in university to really experiment and try new things with our projects. This is because currently we do not need to worry about out projects being commercial successes and this now’s the perfect time to just be crazy. Overall, I have learnt a lot from working with this group. I have seen what a good and capable team is able to achieve and I am proud of my own personal growth that came from it.
Art Assets Done by Me