Thanks for stopping by our Blog, that makes us very happy! However, we have been so generous to create a whole new Blog - just for you!

Just click on this link to be redirected to all the newest news from AirConsole. There's a lot of new stuff in store!

See you there and have a wonderful day (or night)!





Our first AirConsole Game Development Competition brought us a variety of amazing games: from the top title Tower of Babel, over the gyro-controlled Grannies & Planes to several more experimental fun games.

With the second Competition, we once again got a variety of cool, innovative games that we had a ton of fun trying.
After a day of testing, giving feedback and evaluating every game, we are now thrilled to announce the winners and honorable mentions of the second AirConsole Game Developer Competition.

Not all the games are quite ready to be launched in the store yet, but if you follow this blog and/or our social media accounts, you'll surely not miss their releases.

Mentions 

These 10 games will be rewarded with a prize of 100$ each.

Valhalla 

Originally created at the Global Game Jam, Valhalla offers a fast, fun experience about consuming the souls of your friends. 






Gilistair 

Much like Battle Snakes, Gilistair is a multiplayer take on the classic Snake mechanic. With power ups, different character shapes and attributes, however, Gilistair reinvents Snake in another unique way.





Precision

The name almost speaks for itself: Precision is a game about aiming a laser very precisely. Be careful to not take too much time though, or your opponent will shoot the dots away under your nose, making you lose precious points by firing into empty space.



Sushi Gold

Have you always wanted to be a Sushi Chef? Here's your chance! You haven't? Well, there's a lot of fun to be had with this slightly stressful restaurant game none the less. Sushi Gold is a game about memorization and quick reaction, using a lovely vectorized art style.


Adequate Bingo

You thought Bingo was a pastime reserved for the elderly? Think again! This fast-paced version will keep even the quickest minds on their toes.






RPS Joust

Wrap a game of Rock, Paper, Scissors into a love letter to old school arcade games and you get something like RPS Joust. It's got lovely retro art, cool music and a variety of hilarious characters. 




Ridiculous Climbing

This 2 vs. 2 game reminds us a bit of something like QWOP, mixed with the competitive feeling of 2 vs. 2 minigames in Mario Party 2. It's somewhat stressful, silly, and you can always blame your teammate if you lose.





Tankball!

You may have heard of the popular game Rocket League, which is a bit like football/soccer, but with cars. Well, Tankball is a bit like Rocket League, but with tanks. You know, for extra badassery. The team based game can be played by up to 16 people at a time, which we think is really awesome as well. 


Tiles of Doom

Tiles of Doom is a game that makes perfect use of gyroscope controls, cleverly hiding any latency in the momentum of a rolling ball. The Tiles of Doom team has recently even teased an update on Twitter in which they might add customizable balls to the game soon!


Greek for Speed

Greek for speed is a cooperative endless runner, where every player is assigned a task like jump, dash or slide and needs to tap their phone at the right moment. Again, a fantastic opportunity to scream at your friends when they screw up. 





Construct2 Business License

The Construct2 Business License goes to...


Zombie Annihilation!


This Construct2 game has been launched already and is playable right here. Congratulations!



Winner

And the winner of the second AirConsole Game Developer Contest, winning the main prize of 1500$ is....







Castle Hustle!

Castle Hustle does a lot of things that we love and that we think more AirConsole games should make use of: It uses the touchscreen controller in a smart way, it has got super cute graphics and a wonderful soundtrack. Since the game is turn-based, it can also be played over a stream or with a higher latency without suffering for it.
But most importantly: Castle Hustle requires players to actively work together, to discuss strategic moves and to perfectly harmonize their actions in order to succeed. This adds a layer of depth that we would absolutely love to see in more AirConsole games.

We're very much looking forward to future updates by the Castle Hustle team and congratulate them on both their fantastic achievement in creating this game as well as their first place in the competition!

Once again, we thank all participants for submitting their games, we had a blast trying them all! 

Related: 



2016 has started out pretty great for AirConsole. Whether you missed anything or want to join us in reminiscing the Highlights of the past two months, here are the best things we've done, released or talked about so far:

Best New Games


As of the end of February, we now have a lineup of 25 games and 2 Apps, only 6 months after we launched our store with merely 6 titles. Here are our favorite new additions of early 2016:

CastleHustle

CastleHustle is a 2-5 player co-op strategy castle defense game. It’s a bit more complex than most our games, which we think is fantastic. It may take a moment to understand your options, but the beautifully drawn tutorial helps with that. And there’s something incredibly satisfying about figuring out the most efficient ways to load your castle’s catapults with rocks in cooperation with the other players. More...


Grannies and Planes

Grannies and Planes is a game about old ladies flying around a living room in toy planes shooting at each other. It was the first AirConsole game to be controlled by gyroscope alone, although in the meantime, Tiles of Doom has joined it. Nevertheless, G&P is a fantastic showcase for the platform: it’s got a hilariously absurd setting, a cute and funny art style and very intuitive smartphone controls. More...



Both Grannies and Planes and CastleHustle, originated as semester projects by students of the Zurich University of the Arts ZHdK, where our game designers Martina and Alice studied as well. We’ve gotten fantastic titles from the students and are looking forward to more collaborations with ZHdK in the future.

Karaoke

Much like our Youtube Jukebox, where you can create a playlist together, the AirConsole Karaoke Machine is more App than Game.
Sing a duet with your favorite artist, record yourself singing songs in languages you don't understand or practice your dramatic rendition of "Let it Go". The possibilities are endless. More...

FriendsQuiz

FriendsQuiz, where you have to guess your friends' answers to personal questions, is a game to form bonds and ruin them. We're not surprised it quickly turned out to be one of our most popular titles. More... 



Play AirConsole Now


Events

Ludicious
This January, the Zurich Game Festival Ludicious took place for the second time. Since its location is basically just around the corner from our office (okay maybe three corners), we had to be there of course. And we brought our AirConsole Party Mobile.

As part of Ludicious festival, we were also given the stage to announce the winners of the first AirConsole Game Developer Contest, which took place in late 2015.

First Place: Tower of Babel by DNA Studios (pictured)

Second Place: Grannies and Planes by Sonja Boeckler & Philipp Stern

Third Place: shared by Mockingbirds by Max Striebel and Simoria by Dabco

We would like to once again congratulate the winners and thank all participants for submitting their games!

Global Game Jam

The Global Game Jam is an event that takes place in hundreds of locations around the world simultaneously. Thousands of game developers get together at local sites to make a game in 48 hours. AirConsole was on location at the Zurich game jam site dock18, where our game developer Alice made a small prototype herself and helped several groups of jam participants to make their first game for AirConsole.

But the AirConsole GGJ experience wasn’t limited to Zurich: Other teams from around the globe tried out our API and plugins themselves. We are especially happy about the wonderful Tiles of Doom (see gif), which was almost release-ready after just two days of development and has since been very popular on our store.

View all GGJ AirConsole games


Central European Games Conference


The CEGC (pronounced Ceg C or ‘Sexy’) is a place for indie developers to show off their projects and listen to a variety of talks. AirConsole had a booth at the Indie Expo tied into the conference, where we met a lot of interested game developers, journalists and had a look into tons of fascinating game projects.



Mobile World Congress

AirConsole’s CEO Andrin and game developer Alice attended the Mobile World Congress in Barcelona to exhibit AirConsole and meet potential business partners.

We were also nominated for the ‘Most Innovative App’ GLOMO Award!

We didn’t win, maybe we’re not really an ‘App’. If they’d had a category of ‘Best browser-based platform for local multiplayer games controlled by smartphone’ however… Alas, maybe next year.

Platform

Smart TVs

Our Software Engineer Fran├žois has been working hard to give Smart TV owners a chance of experiencing AirConsole. We released Apps for Android TV and Samsung TV and are currently looking into other Smart TV operating systems.

AirConsole Login

We’ve had an option to log into AirConsole using facebook since launch. In the meantime however, we’ve also added the option to set a username and profile picture by merely adding your email address.

Blog Highlights


From Prototype to Product

In case you missed it, we started our Blog with a wrap up by our CEO and founder Andrin of what happened for AirConsole in 2015. Read.

Making Of Karaoke

Developing our online Karaoke machine was quite the technical challenge. Andrin’s post gives a look behind the scenes. Read.

Smartphone Controllers

We’ve gotten various prototypes that had interesting visuals or mechanics but didn’t really work because the controls weren’t optimal for touch screens. Alice put together a post of what’s important to keep in mind when designing smartphone controllers. Read.


Press Highlights 

Who wrote about us lately: 
  • Great article about AirConsole and our presence at CEGC by Austrian website zock-around-the-clock.com (in German). Read.
  • AndroidCommunity about our Android TV App. Read.

Outlook

What's in store for AirConsole in the near future:



Screen and Controllers of Brick Wars


Note: this blog post was also published on Gamasutra and the Making Games blog section.

When introducing AirConsole to people who’ve not heard about it, reactions are usually positive. But the one point of skepticism that we’ve read repeatedly is along these lines: “But why would I want to use a phone as a controller? Touchscreen gamepads suck!”

Now, we don’t know if the people that make these remarks have tried our games and didn’t like them or assumed the controls were subpar based on their previous experiences with touchscreen controllers, but the criticism is valid to a certain extent: When designing a control scheme for an AirConsole game, there’s a couple of important things to remember to make sure the controller feels good in the end.

Action vs Round Based

In order to find controls that make sense for AirConsole, there is one very important distinction to be made early on: Does the player have time to look at their controller or not?

In-game Controller for Tower Of Babel
One large button
Depending on the answer to that question, the approach to designing the controller changes drastically.

The difference is this: In a round based game where timing is not an issue, the player can take their time to look down at the controller screen and place their fingers where they see the buttons. That means that the buttons or interactive areas on the screen can be relatively small. A non-action game, such as Cards and Humanity, or the hidden role game Simoria, can thus easily have ten or more buttons on the controller.

Action games on the other hand, require an entirely different approach. If the player’s success in the game is based on doing things at the right time, they will want to be able to give inputs without having to look at their smartphone. For action games such as Silly Run Valley, Brick Wars or Battle Snakes, where half a second of distraction can mean “Game Over”, it is crucial that the player doesn’t need to look away from the big screen, but is able to give the right inputs blindly.

On a regular gamepad with actual buttons, this is not a problem because the player’s fingers feel where the buttons are and when they are pressed - the player receives haptic feedback. Since feeling the buttons isn’t an option on a touchscreen, the controller for an AirConsole action game needs to be kept relatively simple: buttons need to be big enough for the player to find them without looking. In our experience it works to have up to four buttons - one in each corner of the controller.

If using one to four buttons doesn’t fit the game mechanic we have in mind, there is another option: not using buttons at all. And that’s where we can use the smartphone controller to its full potential - by making use of the gyroscope and swiping.

Controls in Silly Run Valley

With the latest game I worked on, an endless runner for 1-8 people called Silly Run Valley, we tried to use these inputs as well as possible: the primary mechanic of the game is to swipe up and down as your character approaches obstacles. A secondary mechanic involves a bomb, which players can pass between each other by swiping left and right, or defuse by shaking the phone. During the game, players have no need to look at their phone, since the instructions are also displayed on-screen. The only time Silly Run Valley uses the controller to communicate is during the character selection and on the end screen, where timing is not important.


Ingame Controller for Silly Run Valley
No buttons, just space to swipe
Character Selection in Silly Run Valley
Shows character image
'Bomb view' in Silly Run Valley




The controls make the game

I don’t know how other game designers approach this, but usually, when I brainstorm game ideas, I start with a basic mechanic and then think about how to control it secondly.

When coming up with a concept for an AirConsole game however, the controls are so central to the idea that they’re usually the first thing we have to consider. If we’ve got a cool mechanic in mind, but controlling it would require a d-pad or joystick then said mechanic is probably not the best fit for AirConsole, period.

What not to do

AirConsole is not a ‘normal’ gaming console, and smartphone controllers are not normal gamepads. It is important that we as game developers remember this and don’t try to emulate a traditional gamepad with the touchscreen. We’ve put a lot of time and effort into the d-pad for our game Tic Tac Boom in order to find the most comfortable way for the player to move four ways without looking at their smartphone. Unfortunately, even with the best digital swipe-pad and joystick we were able to create, this type of movement is not ideal for AirConsole.

Quite a few games have tried to use the movement that we’re so used to from ‘regular’ games, be it with a four-way d-pad or with a joystick that allows ‘free’ movement. Sadly, it just never feels quite as awesome as the games that use more intuitive controls.

We still offer the d-pad variation and a joystick in our controls library however - and devs are very welcome to prove us wrong and find a way to really make controls like that work.

Outlook

With the 24 games we currently have in our store, there are already a lot of different control schemes that use the smartphone controller in unique and creative ways - Balloon Party made a D-Pad work by splitting it up into two two-button pads controlled by two thumbs, for example, while the wonderful Grannies and Planes and Tiles of Doom use nothing but the Gyroscope.

We are looking forward to creating new awesome ways to use our smartphone controllers to their full potential - and to other developers doing the same.

• Additional Info for Developers
• AirConsole Game Developer Competition
Today we launched our online karaoke machine. Our HTML5 app transforms your big screen into the karaoke display and your smartphone becomes the remote control. You can connect any number of smartphones and everyone can queue up songs.



The smartphones are connected to the big screen using the AirConsole API. In this blog post I'm going to dive into the karaoke tech we have built and not so much into how the AirConsole platform works.

One of the coolest features of our web app is that the artist can help you sing. If you forget the lyrics, the artist will take over and will help you to get back into the song. Let's look at how we do this.

Singing together with the artist

We're getting our songs from YouTube. We automatically crawl the most popular karaoke YouTube channels to get the latest songs and also search for the original music video. So far we have about 7500 karaoke songs in our library. A few hundred have the "singing together with the artist feature" enabled. In the screenshot above, you can see that the original video clip including the artist audio is running on the left side of the screen, while the karaoke version without the artist audio is running on the right side of the screen. When you sing, we mute the original video clip, when you don't sing we mute the karaoke version and un-mute the original clip so you can hear the artist.

Syncing the songs

In order for this to work well, the two video clips need to be perfectly in sync. Most music and karaoke videos have some kind of intro of different length, so you can't just start playing both youtube videos and expect that they are in sync, you need to time shift them. Finding the correct timeshift manually would be very time consuming, so we developed an algorithm that looks at the audio tracks of both videos and tries to minimize the difference by trying different time shifts. Once the difference is minimal, the songs are in sync. Well, most of the time. We have a hitrate of about 98% and we review the results manually.

Detecting if the user is singing

We have different mechanisms to decide if the artist audio should be played or if the user wants to sing himself. The easiest is the microphone button on the smartphone. If the user presses it, we know he wants to sing and we should mute the artist. But we also have a more advanced way. You can hookup a real microphone to your laptop and we use the WebRTC getUserMedia and AudioContext HTML5 functionality to get the input volume of the microphone in javascript. When we see that the volume is above a threshold, we know the user is singing and doesn't need any help so we mute the artist. We could also use the smartphones microphone, but because iOS does not support WebRTC yet we decided to use the laptops microphone instead.

Recording yourself

Our karaoke machine can also record a video of you singing your favorite song. We only wanted to use HTML5 technology without plugins. This turned out to be trickier than we first thought. WebRTC getUserMedia has no implemented support for recording yet. However there are some great javascript libraries like RecordRTC that help you to record your videos locally. However different browsers use different video codecs and some can only record raw WAV audio. These files are huge and can't really be easily shared by the user. Another problem is that Chrome, the most popular browser on AirConsole, records audio and video into two separate files and they need to be merged. So we decided to add an autoscaling server side, that merges these files, transforms them into a compact mp4 video and emails them to the users. Only one problem left: How do you transfer huge WAV files to the server? 40MB for a 3 minute video? No thank you. It's amazing what you can do these days in javascript, for example transcode a WAV file into an MP3 inside the browser using multithreading with the help of webworkers. Problem solved.

Now give it a try!

Now it's time to try our AirConsole Karaoke Machine. We had tons of fun building the karaoke machine and sang way too much during development. Apologies to the rest of the people here in the office.

AirConsole Karaoke

Welcome to a new Karaoke world! 

Starting today the AirConsole Online Karaoke Machine is available in our store. The Karaoke app brings thousands of free songs for you to sing. Tap your smartphone to switch between the original artist singing and the karaoke version. You can also connect a real microphone and control the machine with it, just switch on to sing the karaoke version and switch off for a duet alongside your favorite celebrity!


If your big screen has a camera, you will be able to record your performance which will be sent to your email after. Organize a party, have a meet up! When you’re ready, you can use your smartphone to queue up your song. A playlist is automatically generated. Other people can also join the party and add new songs to the playlist. While you perform your favorite song, the crowd can send emojis to the big screen to support you!

Imagine the party you can organize using the AirConsole Karaoke!


The AirConsole team had a blast last weekend during the Global Game Jam. Not only did our team take the chance to create a new AirConsole game prototype but we also saw quite a few developers across the world making games using our technology. If you made a game using AirConsole during the GGJ and haven’t yet uploaded, please do so, so we can update this list.

Here is a list of all games already uploaded on our GGJ store: (Click on the titles to play the games).

Tiles of Doom:

A fantastic Global Game Jam game made in the UK by Aniode. In Tiles of Doom, you control an orb and must roll over floor tiles marked by symbols to complete the correct sequence before other players. It sounds simple but gets challenging quickly. Players must be quick in finding the right symbol among three dozen similar ones. In later levels the floor tiles will sometimes flip over while others will disappear entirely, making certain tiles very tricky to reach.

Questionable Cult Summoning Party

QCSP is a cooperative game made by Goodwolf Studio. Players must coordinate efforts to complete rune sequences to summon demons. After every completed sequence, you will face a greater memory challenge. To succeed on QCSP you will have to communicate with your team members to remember every piece of the puzzle.



Summoner Sacrilege:

Your goal in Summoner Sacrilege is to fight off the heavenly forces of angels and unicorns who want to keep you from completing your satanic summoning ritual. To do so, 1-10 players must tilt their phones to face enemies and then enter increasingly complicated combinations of swipes on their smartphone controllers.



Valhalla

Valhalla is a fast-paced couch multiplayer game. You control a wizard, zooming around an arena using a joystick on your smartphone. While moving around, you will imprison other wizards and score points by bringing them to the center of the screen.




Blocky Assassin

Blocky Assassin is an original game by TJ and Niels. You will have to find your target and kill him without getting noticed by other players. You’ll have a selection of weapons to help you complete your task. Be sure not call any attention to yourself or you will quickly fall victim to your opponents.




Dogma Derby

Dogma Derby is a local multiplayer crowd game. The game supports up to 16 players. The goal is to convert as many people as possible before the time runs out to beat the other teams.





Ritual Trip

Let the Ritual begin! In Ritual Trip, you will open the space-time doors between universes. Will you succeeded? 






Greek for Speed

Greek for Speed is an endless runner where each player controls a specific action of a greek athlete carrying the Olympic torch. Jump, slide and hit as a team while enjoying the greek vase style visuals.

AirConsole Global Game Jam

The Global Game Jam 2016 is only a few days away and what better time for a game developer to try something entirely new than the GGJ? We're embracing this idea and welcome all developers to try out AirConsole.

For those of you who haven’t heard of us before: AirConsole is a completely free platform for local multiplayer and party games played in the browser, controlled by smartphones. If you haven't yet, check out our store to get an impression.

We are constantly on the lookout for new additions to our store and these 48 hours of GGJ prototyping are a perfect opportunity for devs to experiment with our API.

Our game developer, Alice Ruppert will personally be at the GGJ site in Zurich ("Dock 18"), participating in the Jam and doing her best to support all interested developers in person and via email (alice@n-dream.com).

Besides our local presence at Dock 18, we'd like to welcome developers in all corners of the world to create a local multiplayer game using our API.

During the weekend, our team will be available for support and real-time submission approvals. Feel free to reach us out if you need assistance on hello@n-dream.com. Also, during the Global Game Jam, AirConsole will create a special store view on AirConsole.com for GGJ games that we'll share with everyone we can.

You can work with UnityConstruct2 or plain HTML5. In any case, be sure to have a look at our API and our Best Practices Guide.

If you decide to put some work into polishing your prototype after GGJ, you also have a chance of getting added to our regular web store, which you see when you go to AirConsole. We have currently 20 games, which means lots of exposure for your game when it is released.

In case you need additional motivation: The GGJ16 "diversifiers", described as "a free-for-all voluntary list of secondary constraints" on the GGJ page contain the following:
Take Control  
Instead of the usual keyboard and console controllers, your game must use a custom controller
- Design, Accessibility

Is that a perfect fit or not? 

We look forward to seeing what all you wonderful people will come up with this weekend!

AirConsole Nominee Most Innovative App at GLOMO Awards 2016We are thrilled to announce that AirConsole is nominated as Most Innovative Mobile App in the Category 4: Best Mobile Apps at the Global Mobile Awards 2016
"The Glomo Awards" will be presented at the Mobile World Congress 2016 in Barcelona this February.

We are honored to receive this nomination and look forward to improving AirConsole further! Our team will be attending both Mobile World Congress and Awards. Feel free to reach out to schedule a meeting during the event.



Connect your smartphone to play party games on AirConsole

This article was originally featured in the Making Games magazine in January 2016 under the title "AirConsole: Local Multiplayer Reinvented".

The writer, Alice Ruppert is a game developer for N-Dream AG, the newly founded company behind the AirConsole platform and some of its games. She started working for N-Dream in late June 2015 right after graduating from Zurich University in Arts in Game Design. In the roughly two months between starting work and the AirConsole’s launch day, she made a game called ‘HitParade’ with her colleague Martina Hugentobler, with whom she’d previously worked on Panakeia, their Bachelor graduation project at Zurich University of the Arts.

The Basics: What is AirConsole?

AirConsole is a virtual console - a completely free, completely web-based gaming environment, where smartphones are used as controllers while a PC, tablet or TV serves as the screen.To connect their smartphones to a big screen, players go to www.airconsole.com in their browser on both devices and enter a code they see on the big screen into a number pad on their smartphone.

AirConsole is free for players and developers. We’re currently focusing on growing our user base and providing the best local multiplayer experience. Eventually, the platform will be monetized by ads shown between game sessions. The platform itself and the games we currently have are developed at N-Dream AG in Zurich. The majority of our team has started working on it in June 2015.

People playing AirConsole
Locally Social
We here at N-Dream see AirConsole’s main potential in local multiplayer games - thousands of smartphones can easily be connected to one screen at a time. This multi-screen gaming experience encourages and sometimes requires people to interact with others sitting right beside them.

Local Multiplayer has been steadily disappearing from the big consoles for years - although there are exceptions of course. Games that support more than two players on one couch are already rare, whereas games for more than four players in the past five years can probably be counted on one or two hands.

Accessibility: Software

Connecting to AirConsole is kept as simple as possible
It is of great importance to us that AirConsole and its games are as easily accessible as possible. As such, we focused a lot of our efforts on the first few seconds within the player’s arrival on our site.

All players need to do before they can play is go to airconsole.com on their PC and smartphone and enter a short code on the latter. This process takes less than half a minute. A Smartphone App does exist for comfort, but to try out the platform, no downloads, plugins or registrations are required.

Ideally, our games will share this philosophy and are easy for the player to get into quickly - even if some may be hard to master.

The fact that nothing needs to be downloaded happens to be an advantage not only for players but also for developers, who then don’t have to worry about players using outdated versions of a game.


Accessibility: Hardware

Be it on a PC or console: one of the main bottlenecks that keep people from playing local multiplayer with more than one or two friends is the high acquisition cost of additional controllers: Playing a game with 8 people on an Xbox One for instance, means about 400$ worth of controllers, not counting the one that came with the console. That’s not the sort of money most people can or want to spend on a quick game.

AirConsole doesn’t share this problem: In Western and Northern Europe for example, between 60 and 90 percent of the population between 18 and 24 years of age owns a smartphone. For us, that means almost everyone in our target group already has the required hardware and carries it around all the time. As for the ‘big screen’ device: For most AirConsole games, an average laptop or even tablet will suffice, no expensive gaming rig is needed.

Input

A reaction to the general concept of AirConsole that we’ve gotten a couple of times is something along the lines of: “Why would you want to use a smartphone as a controller? Pressing buttons without haptic feedback suck!” Yes, it does. It works with one or two large buttons, but having to press several small buttons in a game where timing has any importance at all is terrible on a touchscreen. Thankfully, that is not what we have to rely on. The AirConsole controllers don’t have to directly compete with a regular gamepad.

One option would be to remove the ‘timing’ factor: card games or turn based RPGs would all work perfectly fine with buttons on a touchscreen, because you don’t have to press the buttons blindly, but can instead take the time to look down at your controller and aim your finger at the pixels you want to press.

But since working without timing greatly limits your game design options, let’s consider the alternative: Don’t use more buttons. Smartphones offer a variety of inputs that most gamepads don’t: swipes, shakes, and tilts for instance. Keep in mind a smartphone also has one or two cameras and a microphone which we can technically make use of for AirConsole development.

Content

In the AirConsole store overview players can choose what to play next

On our launch day in the first week of September, the AirConsole store had six games, plus a NES emulator. We got a lot of comments along the lines of “This is super cool, but you need more games”. Well, yes we do. Our team of six people is working hard to create more awesome content, but to eventually have a full library of great and diverse games, we are working with third-party developers and are trying to give them the best possible tools to develop for our platform: AirConsole has a public API and offers plugins for Construct 2 and Unity3D.

In addition, we decided to launch a competition for game developers. To keep the competition and our platform as accessible as possible, we allow ports as well as original games, and offer support for interested game designers.

Our First Game

My colleague Martina and I were hired as a team and knew we would continue to work together as a duo within the bigger AirConsole team. That had the advantage that we have pretty well established knowledge of each other's skills and competences and generally get along really well.

For Hit Parade, our first game with AirConsole - and really our first multiplayer game together in general - we wanted to keep it simple. We knew we only had roughly nine weeks until release. In these nine weeks our team of two was to not only make a mini game from scratch, but also to get familiar with AirConsole first, to get to know WebGL along with its advantages and disadvantages, to learn how to properly optimize a game for Web, to develop a visual style to use for this and future games, to create 8 different characters (respectively character skins) and make the game playable for 1-8 people. In short: we had a ton of stuff to do in very little time.

We did release a version at launch, but it took us four more weeks of development until we were comfortable calling the game ‘done’ - for now.


Getting to know AirConsole

HitParade Controller PreviewBecause I lack proficiency in HTML5, JavaScript and any development of online components, really, a freelancing developer and former University colleague was hired to create a Unity Plugin for AirConsole. After a week or two of making prototypes controlled by keyboard, I was able to start using the newly developed plugin.

For our first AirConsole game, I wanted to keep the inputs as simple as I could: no need to complicate things by working with smartphone inputs I had absolutely no experience with, right? Especially because until this spring I had only ever developed standalone games for PC/Mac, controlled by mouse and keyboard. I didn’t know any JavaScript and had never made a game for mobile devices.

To compensate for this lack of knowledge and to keep it manageable, we planned to use two buttons, each taking up half the controller’s screen. While that did work out for the game’s first version, I ended up using swipes for navigation in the launch version nonetheless and implemented shake controls within two weeks of initial release.

I didn’t write those myself, but implementing JavaScript libraries into my controller.html’s proved relatively simple once a colleague showed me how.

The concept of HitParade

Play HitParade on AirConsole
HitParede Screenshot
To give a brief overview of the game we ended up making: HitParade is a minigame for 1-8 players. Players move on an elliptic path, its size depending on the number of players. Next to the path the players move on, there are thorny fruits that appear small and green, grow to yellow and orange and eventually explode red. Every player carries a large hammer and taps their screen to smash the thorny fruit while they’re small to get the most points.

When a player hits at the wrong time, they fall off the path and are vulnerable to be hit by other players and thus have their points stolen. To get back on the path, the player now shakes his or her smartphone for a moment. The first player to win a specific number of points wins the round.
My skill and lack thereof

Working at N-Dream is my first job after graduating from Zurich University of the Arts (ZHdK). At ZHdK I did learn what I know about coding, but I would still hesitate to call myself a ‘programmer’ - even though programming is about 80% of what I’m doing at the moment.

Panakeia Art Work
Panakeia
The AirConsole product HitParade and our graduation game Panakeia are two very different projects - one is a visually intense roguelike shooter using around 12 different keys for input, the other is a cute-looking one-button casual party mini-game for 1-8 players. Safe to say, there were quite a few new challenges for us.

The only ‘Multiplayer’ Game I’d made before HitParade was TypeFight - a fighting game for two players on one computer. Making a multiplayer game for players with separate devices, or making anything with an online component to be precise, was something that I’d always considered too complicated for a relative beginner like myself. Thankfully, my job at N-Dream doesn’t require me to handle servers and connections.
Developing for AirConsole

For most of the time, when working on the basic mechanics, making a Unity game for AirConsole is pretty much the same as making a standalone game. There are however, plenty of things to be considered, especially on the technical side.

Game Design

While nothing really keeps anyone from bringing a single player game to AirConsole, it’s strength and appeal definitely lies in quickly accessible local multiplayer games, or ‘party games’.

Controller/Screen Communication

The AirConsole API lets you send messages from screen to controller and back. For example: each time a button is pressed on the smartphone, the controller script sends a message to the screen containing an identifier and in some cases a timestamp. The screen - that means one of my C# scripts in which I listen for AirConsole events - then decides what to do with that input, such as calling the Hit() function on the player script belonging to the device from which the message came.

The messages I send from screen to controller include things such as what to display on the controller right now, or which character image to use for this specific player. Some messages that concern all controllers are broadcast, others sent to a specific device only.

I try to put as much of my code as possible into my C# scripts and avoid doing any calculations on the controllers themselves - partially because I like to have it all in one place, but mostly because I still lack JavaScript proficiency.

Latency

The question of latency is often the first one addressed when developers hear about the concept of AirConsole. Yes, there is a certain delay between the tap on your controller and the moment that the message is received in your screen script. Thanks to AirConsole using Google Cloud infrastructure, we are able to keep the latency at a minimum however: We usually have delays of around 80 milliseconds.

HitParade Gameplay on AirConsole A tenth of a second isn’t a lot of time, but depending on the pace and design of your game, that can be very noticeable already. If the devices that are part of a game support WebRTC, the AirConsole API automatically uses that, which reduces latency drastically. Unfortunately, WebRTC isn’t supported by all browsers yet (e.g. iOS Safari) and therefore we can’t rely on it in our game design.

For our game HitParade, we sneakily hide the latency within an animation: The nasty thing about latency is that it’s never exactly the same. With the same internet connection and the same devices, the latency will still fluctuate. In a game based on timing - which applies to HitParade - this can quickly lead to frustration for the player, because there is no way for them to accurately assess the right time to tap the button.
HitParade animation

The solution for us was to make sure that the time between the player’s tap and the caused effect - meaning the point of impact of the character’s hammer - would always be exactly the same, regardless of latency.

The AirConsole API has a synchronized clock. When the player taps their controller, I send a message to the screen containing not only the type of input (“hit”), but also a globally synced timestamp of when the message was sent. As soon as the screen receives this message, I can measure how much time has passed since said timestamp and receive the exact latency. I calculate how long the ‘Hitting’ animation has to be in order for animation + latency to equal my standard value of 0.5 seconds and modify the animation playing speed accordingly.

Thus, with the entire action always taking precisely half a second, the player can time their hit input accordingly and can learn to get a feeling for the game. This is of course a specific solution for this particular game, but similar measures can be taken for timing-based games to work despite varying latencies.

Optimization

Making our first AirConsole game run smoothly was one of my main focal points during development. For previous projects, I’d always been glad as soon as something worked at all and I mostly neglected making things work very efficiently. Since I am now developing for WebGL, I can’t afford to ignore performance anymore.

Even though the Unity3D forum and documentation is a valuable resource in matters of optimization, I probably learnt the most about it in a roughly two-hour crash course by Goran Saric, a co-graduate who not only has ten years of programming experience on me, but also happened to have just finished his BA project with a special focus on optimization in Unity - a mobile casual Game called ‘Panda lost in Space’, which is currently still in further development.

Now, these may be old news to experienced devs, but they were some of the most valuable tips for me: Don’t regularly instantiate or destroy GameObjects. If possible at all, Instantiate them in the beginning and then hide their Mesh Renderers (and Colliders, if you’re using them) while you don’t need them. This is called Object Pooling - creating a pool of objects and then reuse them. One very fitting application would be the bullets in a shooter: a lot of performance can be saved by hiding, replacing and then showing objects again instead of instantiating and destroying.
In HitParade, no object gets destroyed, everything is reused: From smashable fruit to particle systems Cache variables. Don’t declare new variables in loops. Declaring variables takes up performance, referring to them less so. In most of my scripts, all variables used are declared at the top of the script.

Do as little as possible in the Update() Function. Put things into the FixedUpdate instead, where you know how many times a second it is executed - and you can modify the Fixed Timestep value to call the function only as often as is necessary. If anything can be done 10 times a second instead of 50, don’t put it in an Update.

Incidentally, I ended up having a lot of fun with optimization and now laugh at my old, inefficient code. I’m even enjoying diving back into Panakeia’s code and optimizing the crap out of it.

HitParade’s mechanics were designed from the very beginning to be light on performance. For instance: We do not use any collisions or physics whatsoever. Additionally, basically all regular calculations are not done in 3D really, but instead on a one-dimensional path, which makes the core gameplay very light on performance.

Limitations

Even with a lot of effort put into optimization, there are certain limits to what type of game makes sense for AirConsole. With one of our core foci being accessibility, we want AirConsole games to run on all sorts of machines, not just powerful gaming PCs. AirConsole can be run on tablets and old laptops and its games should run with acceptable frame rates on devices that are a couple years old.

HTML, CSS, JS

As I’ve mentioned, my programming experience so far has been limited to Unity3D and C#. Now, the biggest part of game development still happens inside the engine with AirConsole, but not all of it. On the smartphone controller, we aren’t running a Unity Build, we merely display a HTML page and make it look nice with CSS. The implementation of special Input methods is handled in JavaScript.

This may be obvious and no issue to a web developer, but still: For anyone who hasn’t done any web development, that’s three new syntaxes to learn and work with. Thankfully there are a ton of JavaScript Libraries and scripts which are openly available and thus greatly facilitate the implementation of smartphone-specific inputs like Swipes and Shakes.

WebGL

The ability to build to WebGL / HTML5 with Unity3D is still a relatively new feature and is still under development. Unity’s documentation itself states that their WebGL builds are currently a “early-access preview release”. As such, the exact features of WebGL can change drastically with every Unity update. Here, it’s important to have an eye out for patch releases and read changelogs thoroughly.

Device Handling

The AirConsole API and Unity Plugin take a lot of complicated stuff off my hands where the handling of controllers and inter-device communication is concerned. There are still various things to be considered. AirConsole assigns a device ID to each connected controller. Assigning a player number or other identifier to said device is the ‘game’s’ job, however. I had at first used device-ids as player numbers which quickly bit me in the backside once devices connected in different orders, or disconnected and reconnected.

Visuals

For visual design, we also took a couple of drastic steps to improve performance: Early on, my colleague tested various shaders and decided on using an unlit toon shader, which made it possible not to use a single Light in the entire game. The downside of this is that a slight change in camera angle will change the fake shades and highlights on models, which isn’t always fitting. Since we were planning to work with a static camera anyway, it worked for this game however. In the Unity documentation, there are tons of additional optimization tips to be found, of course.

Lessons Learned: Game

We had thought that we had a pretty simple and straightforward concept on our hands with HitParade: You walk in a circle, you hit things when you’re next to them. As it turned out, a lot of people have more problems getting the mechanics of the game than we’d anticipated. Especially people who don’t play a lot of video games need a better explanation than the pictographic tutorial screen we currently have in the game.

Tutorial screen for AirConsole HitParade party game
Tutorial for HitParade
We have also noticed that HitParade gets chosen less often than our other games on AirConsole, which led us to redo our cover art.
HitParade Cover Art

Keeping an eye on our analytics, we quickly noticed that the most popular games in the AirConsole store were the NES emulator and Tic Tac Boom, which functions similarly to Bomberman. To test a new platform, people seem to like playing games they are already familiar with.

For our second game, we have therefore decided to go with more established mechanics that the player doesn’t have to learn from scratch.

Conclusion

We’ve been able to draw some valuable conclusions from HitParade and our audience’s reactions to it, and are of course looking forward to see if and how the game’s reception will change as AirConsole grows. Our team is working on four new games and we already see prototypes by third party developers pop up here and there.

Hit Parade is the first game which I worked on that has actually been released. I’ve worked on countless concepts and ideas and on several prototypes which I gladly show around and let people download, but this is the first time one of “my” games is completely out in public. I consider that a sort of milestone for me personally, if nothing else.

In a way, our firstling has been a bit of a ‘learning by doing’ thing for the new platform - I made a lot of mistakes and learned even more from them. While this process is incredibly interesting and eventually rewarding, I am now looking forward to starting the second project with a somewhat better understanding of what I’m working with - and to finding new mistakes to make and things to learn.

Play HitParade on AirConsole now.
Next PostNewer Posts Previous PostOlder Posts Home