Tuesday, June 30, 2015

New version of colors available

A new version of colors - the game is available on the app stores.



colors - the game

   


colors is an HTML5 app wrapped with Cordova to bring it to the app stores. Like we did with F.A.T.Z  we learned a lot of things along the way.

Game part

Many users stopped using the app when they were in the middle of the game. We tried to give them more information to understand the game even if they never played it before.

We also changed the game mode: While in older versions you just were punished for wrong choices now the game ends immediately if you touch a wrong color. We think this will help the player to understand the game even quicker. Also most players abort the game after making an error anyway, because after that there is no chance to break the high score anymore.

Technical part

Our focus was to write clean, readable, maintainable and decoupled javascript code.

We used require.js to support that goal. Even though require.js is a great piece of software, we might use Browserify in the future. It's less boilerplate and integrates in a good way with our node.js work. Even though we don't like the build step that comes with Browserify.

A cool way to integrate cordova with require.js might be the following attempt.

require(["cordova"], function() {
"use strict";
document.addEventListener("deviceready", function() {
require(["app", "fastclick"], function(App, fastclick) {
fastclick.attach(document.body);
new App();
});
});
});

If you declare cordova in the require.js config with optional paths you can easily implement a fallback file for testing in the browser where you have no cordova.

cordova: [
"cordova",
"debug"
], 
As in the past we used Backbone. We separated data, views and game logic in the following structure:

/model
/controller
/viewController
/view
/template

This worked pretty well as we changed the game logic a few times. The hardest part with Backbone is to control your subviews. We've implemented a BaseView that can handle multiple subviews to change them if the model changes or delegate user input to the viewController.

Backbone.localStorage helped us to store user settings and local high scores on the device. For our global high score we used Parse.com.

That's just the tip of the iceberg, but if you have any questions feel free to contact us. We're on Twitter and Facebook.

Monday, September 15, 2014

The concept behind WoE - War of Elements

WoE - War of Elements is our contribution for the js13kGames competition 2014.


It's a multiplayer game you can play with your mobile phone. It's designed for up to 4 players. The goal of the game is to "shoot" the green circles. The first player to 10 hits will win the game.


But you will soon recognize when you go over to the js13k website and try to play our game that's it not a normal mobile multiplayer game. Because you can't play it alone. That's not that unusual for a multiplayer game you will say. But with WoE it's different.


WoE is meant as a multiplayer game you should play with gamers sitting next to you. Because your mobile phone is just a controller  and all the user interaction is happening on one screen. This concept isn't new either, it's what classic console games stand for.


But for WoE you don't need a console. All you need is a (big) screen and friends with smartphones. That's it. Of cource your mobile phone and the desktop should be both connected to the internet and your browser in use shouldn’t be that old. But for most gamers around that shouldn’t be a problem.


So the concept covers the following things:


  1. mobile game because you need your mobile phone
  2. social multiplayer game because all gamers should be together in one place
  3. board game because all players group around one screen (board)
  4. portable console game because the browser is the console and so you can play it everywhere you have a browser installed (so it's “portable” but you don't need to carry it with you)
  5. use of controllers to control the action on screen (since the most people carry around their phones with them anyway, no extra preparation is needed)


WoE is just a prototype. And that is true in at least two ways. 1. The game is a prototype, so it looks like one and sometimes it will feel like one. And 2. The concept is a prototype, so we can't describe it appropriately yet.

But we feel this way of playing could be a new way to look at (mobile) (multiplayer) (console) games.

Friday, September 12, 2014

WoE - our entry for js13kgames 2014


10 hours left before the deadline and we're through.

We submitted our game "WoE - War of Elements" for js13kgames this night. It's a multiplayer game you can play with your smart phone. But the fun thing is, you can sit near to each other, while playing agains each other.

To start a game just open a new room on you desktop computer or any device with a big screen (as long as it supports websockets :-)). Then you can join the game with your mobile phone.


Touch the screen and tap the circles before an other player can tap it. The first player to 10 points will win the round.

WoE is a prototype using node.js and socket.io to run. It looks like a prototype and sometimes it feels like one. But it's a good start.

And you can find the code at github: https://github.com/codelooksgood/woe.

Update: You can now play the game at the js13kgames website: http://js13kgames.com/entries/woe-war-of-elements

Saturday, October 19, 2013

From colors to F.A.T.Z - writing mobile web apps

Since F.A.T.Z is available at the Apple and Android App Store it’s time for us to take a look back at the last year. We think it’s important to document the progress we’ve made.

Most of the time it will help us to remember the best practices we came up with. And maybe from time to time we will be able to help others with our solutions.

And of course since this is our start as mobile web app developers, we’re hoping to get proper feedback to improve our code. So we’re aware of the fact that our solutions may not be perfect (or sometimes are just crap) and we hope that by documenting our learnings we’ll get new ones along the way.

Friday, October 4, 2013