Saturday, April 4, 2009

Something For Everyone

Variety is the spice of life. After deploying our recent changes to the game play that we thought were amazing eureka moments, we started receiving complaints from players who wanted to go back to the old style of play (i.e. without a timer and without people leaving and joining during the game). We were taken aback, because we thought that we had hit the nail on the head with our new changes. So the Jawaker team went back to the drawing board and decided to introduce choice to players when creating a new game. Players can now choose to play a game based on five parameters:

- With or without a timer, and how long the timer should be.

- With or without kicking out players when they fail to play a card for a specific number of turns.

- With or without the ability for players to manually leave during the course of the game.

- With or without the option for other players to join mid-game and continue games in progress.

- With or without the option for the computer to continue the game by playing in place of a player that has either left the game or has been kicked out.

To simplify things, we introduced two default styles of play, WITH all the options (which we call "non-stop") and WITHOUT all the options (which we call "humans only"). Our players also have the ability to customize their game and all this information is shown on the main games page for other players to decide whether they want to join or continue a specific game.

Wednesday, April 1, 2009

MySQL to PostgreSQL

Last week, we started noticing Jawaker becoming a bit slow. To investigate the problem, we built some custom tools and analyzed the logs. It turned out the game index is taking way too long to render! Digging a bit deeper, it turned out to be a particular SQL query.

We had earlier optimized most of our SQL queries, but we nevertheless tried our best to optimize this one even more. It wasn't clear why this query would take so much time; a very unreasonable amount of time actually. Fouad, being bitten by MySQL many times before, figured out that we might be better off if we try another system, in particular, PostgreSQL.

It took us one restless day to acquaint ourselves with Postgres, adjust the old queries for compatibility, create new schema, and move all the data. But it was worth it

At the end of the day, the problematic page was loading about 80 times faster! The server load dropped by a factor of more than 10.

Wednesday, March 25, 2009

Tick Tock And Joining Games In Progress

Here at Jawaker, we work to solve the issues of our players. Game play is of paramount importance to us. The number of games that are filling up with players and starting in on the increase, but our users have told us that there are players that cannot commit to complete a full game and are therefore leaving before the end of the game. This is frustrating for many players. We have also had feedback from people who admittedly state that they cannot commit to a full game, and would like to play for a little while only. Some of these users would not mind continuing a game in progress. So we decided to deploy a solution that would cater to all players.

First of all, we introduced a timer during which a player must act. If players don't act within the specified time, a card is played automatically on their behalf. This has the effect of speeding up the game play. If a user decides to leave the game, or if a card is played automatically on their behalf too many times, then that user is kicked out of the game and a computer takes over. The player's seat becomes empty so that he (or any other player) can continue the game and take over from the computer.

Monday, March 2, 2009

Play While You Wait

Today we deployed Solitaire on Jawaker as our first single player game. We are still focused on providing users with the more entertaining and engaging multiplayer card games, but we don't like to leave them waiting until the games start. We therefore added Solitaire as a game for users to play on the side.

You will notice that while playing Solitaire, the box on the right (where you would normally chat) will now get updated with information about the current games and allow you to directly join the game from within the Solitaire game. Your Solitaire game will, of course, be saved for you to go back to and complete at a later time if you wish.

Monday, February 16, 2009

Unmuffling Jawaker

Jawaker now has sounds! We hope this will make the games more entertaining :D.

We have, for the time being, attached sounds to the following events:

- A player joining a game
- Cards are shuffled and dealt
- The current hand is ready to start
- A new message is received on chat
- Someone has passed his turn (in a Trix hand)
- It is your turn to play
- An important card has been played (such as the King of Hearts in a King or Complex hand, or a Queen in a Queens or Complex hand)

To include the sounds, we have chosen to use Adobe Flash. A small hidden 1-pixel Flash movie is included in the page, and is used to dynamically load and play sounds. The Flash was built to be generic, which allows us to add more sounds without having to edit the movie itself.

One nice thing we did is make sure everything works OK if you don't have the Flash plugin installed. Well, you won't be hearing any sounds, but you will still be able to use all other aspects of the website without any problems. This complies perfectly with our goal of making Jawaker work without the need for any downloads.