Monday, December 17, 2007

Connected mobile games

I have spoken with several people about mobile games with multiplayer capabilities and I was surprised that those games are also called connected games.

I am now not sure, what is more used, should we call our games connected games or multiplayer games? I am writing this post to see, how many people will come to it from Google search, based on search term "connected games" (connected gaming), that's why the title is a little bit strange.

We keep calling our platform multiplayer for now.

If anybody knows the difference, please let me know.

UPDATE 1:
for term "connected games" , we are number 9 on Google
for term "connected mobile games", we are number 5 on Google

I will post data from Google Analytics on how many people use this term soon

UPDATE 2:
I have observer the Google stats and only three people came to the blog using connected mobile games term. What does it mean? I think that it means that nobody is using this term.

Lets go back to free mobile multi player games term.

I am doing some other observations regarding mobile SEO, I hope I will write a post about the results.

Monday, December 10, 2007

It's getting bigger

Here's another great piece of news:

We're past the "20000 registered users" mark.


I think that's excellent because it shows that even with a minimal (virtually zero) marketing budget a project can attract people by providing a good entertaining experience.
Our games are - and always will be - free. We believe that users should not be FORCED to pay for good entertainment, they should WANT to pay to keep it going (in other words use the donation button). This is similar to what I've recently seen happening with free podcast books. Make it free and they will come (more than once if your content's good enough). And don't forget - there are always adds to help along the way :)

Monday, November 12, 2007

Serving more than 1000 games a day

I think this is pretty awesome - just yesterday we've hit more than 1000 games served in a day for the second time (that's actual games played after both opponents confirm) here is a small table:

Date / Games

2007-11-08: 1013

2007-11-09: 818

2007-11-10: 713

2007-11-11: 1126


I think this is really great and I hope that the numbers keep going up. Right after we re-launched in July we were getting between 10 and 140 games per day so it's good to see that the community is growing and having fun!

Sunday, November 04, 2007

My trip to Silicon Valley

I have been for a month in Silicon Valley. It was really good experience for me and I have met many interesting people. I think I now have a better idea, how startups works there.
I have published some photos on my Wirenode blog, so go there if you like to see them.

Thursday, November 01, 2007

Is Eclipse MTJ dead? I hope not ...

.. and yet it appears to be. I've recently browsed the Eclipse Mobile Tools for Java (MTJ) project pages (found here: http://www.eclipse.org/dsdp/mtj/) and it seems to me that there has been no major development for quite some time now. Quoting the latest news from their web:

The first public release (0.7) was completed on November 06

And that my friends, is a year ago. I must say that I am rather sad about this. Even though I am a NetBeans fan and Mobility Pack committer I’ve always felt that it was competition (read ‘Eclipse’) that stimulated the NetBeans community to produce a better IDE. And all Java developers benefit through better tools.

If MTJ is truly dead it is certainly no favor to mobile developers. Competition sparks innovation and there is never enough of that. Let us hope I am wrong and MTJ is just getting ready to stun as all with some awesome tools.

In somewhat related news NetBeans 6.0 has been released as Beta2 and the FCS is so close I can nearly smell it. If you develop in Java then definitely check it out – it’s the best thing since The Simpsons made it to TV!

Monday, October 29, 2007

Apple and Java 6 - I am not getting a MacBook Pro

I am looking to replace an old laptop and get myself a brand new development machine. At first it seemed a no-brainer:

"I'll just get one of those oh-so pretty MacBook Pros"

My wife has owned an iBook for around 2 years. She even paid the money to update to OSX Tiger, and bough the .Mac yearly subscription for the 3rd time now. So despite a few issues she is clearly quite happy with her Mac and continues to throw money at Apple.
Until recently I thought I'd get an apple as well but I changed my mind very quickly in the light of recent events and after a bit of investigation.

So here is why I will not be getting a Mac:

1. I am a Java developer (one of about 5 million apparently) and there is no Java 6 on OSX, not even in Leopard

That's it.

I guess I could buy the MacBook Pro and run Linux (which I've been running so far on my Toshiba Tecra), but for the money I can get better hardware elsewhere. The value for me is in having a MacBook AND OSX. If OSX is out due to lack of Java support, the deal is off.

I'll not make an actual purchase for about 3 months and perhaps in that time Steve will come to his senses and change the company attitude towards Java developers and users in general. And now BEHOLD as I will conclude this blog with a poem of my own making.

Again old saying seems to hold
That all that glitters is not gold
With OSX less Java 6
I'd lose my job, start turning tricks
Apple needs to listen well
Else I'll end up with a Dell

Monday, October 22, 2007

BattleBlocks released ...

Most excellent news :)

Last night we released BattleBlocks (our Tetris clone) and let me tell you, I've spent lots of time "testing" the game :) Even though I didn't write that one (James O'Connor wrote BattleBlocks for us) it is my all time favorite Cotopia game. It is that much more embarrassing that Tomas beat me twice last night and I didn't get a point on him... awell, maybe next time.

In addition to BattleBlocks we also pushed out new versions of all existing games with additional features so check it out ASAP.

- Forum posts have dates attached
- Better in game chat screen
- Can send SMS invites to friends straight from main menu
- Blocking of empty chat messages

Just go to http://cotopia.mobi on your phone, download all the games, and let us know what you think. Many of the changes in this release were based on community comments.

Wednesday, October 17, 2007

11000 players

We celebrate!
So far we have 11000 players. I think that's great, but we want more. If you know about any portal, which could add our games to their catalog, please let us know.

With a little luck, we will be able to announce partnership with a major portal from India soon, so stay tuned.

Other info:
You can read our blog directly from your phone at the address http://cotopia.wirenode.mobi
You can make your own mobile blog and portal at www.wirenode.com. It's very easy, try it!

Saturday, October 13, 2007

EJB3 TimerService spec needs fixing

We've gotten many complaints about our scoring bug: people just leave the game (which they are presumably losing) time-out and do NOT lose any points ... how can this be?

It shouldn't happen and the issue has been fixed.

The error was in a little code of "silly logic" which would create clearner timers but then also kill them before they got a chance to run, the issue was thread related (as usual). How I fixed it?
(Read on if you care about the technical details of the bug in our Java EE system)

Using TimerService we have set up two timers in the EJB3 session beans that manage game creation (matching opponents etc.) and game play (including scoring). These timers execute the @Timeout methods every few seconds to make sure people get their points and there are no stale old games sitting around:


@Stateless
public class GameManagerBean implements GameManagerRemote, GameManagerLocal {

   @Timeout
   private void cleanUnmatchedGames(Timer t) {
     ... clean unmatched abandoned games
   }

   public void startGameCleanerTimer() {
     this.stopGameCleanerTimer();
     this.timerService.createTimer(PERIOD_MS, PERIOD_MS, GAME_TIMER_ID);
   }

   public void stopGameCleanerTimer() {
     for (Iterator it = this.timerService.getTimers().iterator(); it.hasNext();) {
       Timer timer = (Timer) it.next();
       if (timer.getInfo().equals(GAME_TIMER_ID)) {
         timer.cancel();
       }
     }
   }

}

@Stateless
public class PlayManagerBean implements PlayManagerRemote, PlayManagerLocal {

   @Timeout
   private void cleanTimedOutGames(Timer t) {
     ... clean games where one player timed-out or left
   }

   public void startPlayCleanerTimer() {
     this.stopGameCleanerTimer();
     this.timerService.createTimer(PERIOD_MS, PERIOD_MS, PLAY_TIMER_ID);
   }

   public void stopPlayCleanerTimer() {
     for (Iterator it = this.timerService.getTimers().iterator(); it.hasNext();) {
       Timer timer = (Timer) it.next();
       if (timer.getInfo().equals(PLAY_TIMER_ID)) {
         timer.cancel();
       }
     }
   }

}


To be certain that the above @Timeout methods are called by a single timer at regular intervals we have to make sure that one and only one timer of each kind is alive at any one time. Timers are persistent (survive server crash or shutdown) which can be nice but it can also be a pain since it means that if you start a timer every-time your server starts you'll be accumulating them. To make sure that we create timers once per server startup and delete them on server shutdown I put the code into servlet life-cycle methods.


public class MobileServiceServlet extends HttpServlet {
   public void init() throws ServletException {
     this.gameManagerBean.startGameCleanerTimer();
     this.playManagerBean.startPlayCleanerTimer();
   }

   public void destroy() {
     this.gameManagerBean.stopGameCleanerTimer();
     this.playManagerBean.stopPlayCleanerTimer();
   }
}


You may have noticed that to ensure that only one timer of a kind is alive at a time the startGameCleanerTimer() and startPlayCleanerTimer()methods also delete any old timers which may be around due to server crash. Just to be on a safe side.

All these code gymnastics just to make sure that we aren't starting multiple timers, I hope that the next Java EE spec will include some "on deployment" related features so that this is no longer necessary.

Sunday, October 07, 2007

Scoring fixed

As some of you may have already noticed, we've deployed a new version of Cotopia server, this means that once you accept a game you cannot chicken out without losing or gaining points :)
I am sure that there will be quite a few people happy about this. Soon to follow will be the new MIDlets so keep an eye out for further announcements.

Monday, October 01, 2007

A quick update

Just like I promised in a previous blog entry, I've been working on BattleBlocks and I have a stable version ready .. well stable enough not to break the emulator :) So the time-frame we're looking at for releasing the new version of Cotopia (including all the promised fixes) is about 2 weeks from today.

I am pretty happy about the new release because it seems that many of our naughtier players have been abusing the scoring bug. You know who you are .. rest assured that a fix is coming and the points gained by cheating will be quickly lost if you don't have the skill to back them up :)

In semi-related news, we may be getting more players from India in the near future, I hear a lot of good chess players come from there so brace your selves ...

Friday, September 28, 2007

A small victory for Netbeans Game Builder

I scored myself a cool iPod Nano by demoing NetBeans 6.0 Game Builder :)

The story is as follows:

While working on Cotopia I've realized that the tools available to game developers are pretty limited in the Mobile Java area. There were some attempts at Game API support in an older Nokia toolset, but overall the tools were either pretty crappy or didn't integrate with MIDP API easily enough.

In the beautiful world of open source there was nothing more natural than to write a tool for myself - a NetBeans Mobility Pack plugin called "Game Builder". It is part of NetBeans 6.0 Beta 1 which you can download from here:

http://www.netbeans.org/community/releases/60/index.html

and here are some screen-shots of how the tool works:

http://wiki.netbeans.info/wiki/view/CreatingJavaMEGamesWithGameBuilder

Local Sydney JUG (Java User Group) had a "Lightning Talks" event during which around a dozen speakers had 5 minutes to talk about a Java related subject, then audience voted for their favorite talk. There aew some pretty cool prizes available to the top 3 speakers (some donated by another cool open source company - Atlassian, some by JetBrains, and some usual give-away stuff from Sun). The main prize (in my eyes) was Apple TV, then there were 3 IntelliJ Idea licenses, and iPod Nano.

I didn't get the first place - that was taken by a presented who (i swear) must be a stand-up comedian :) and he without hesitation chose the Apple TV. I got 2nd place (must work on being more funny dammit) and I chose the iPod, I did think about the Idea licenses for a bit but NetBeans 6.0 is just getting so good that I probably wouldn't make much use of them.

It is my hope that soon I'll be able to use Game Builder to create a bigger and better multiplayer game (RPG style) for Cotopia and take our community to the next level.

Casual Gaming Party

I have been invited to casual gaming party to San Francisco Minna Mingle. It was very good event and I have met many great people. Basically everyone from casual gaming industry was there.

Silicon Valley have real advantage, that things are happening here every day. Different conferences, events, parties ...

Monday, September 10, 2007

Attending the TechCrunch20/40 conference

I will be attending TechCrunch20 (now renamed to TechCrunch40) conference in San Francisco this September 17-18.
I also plan to stay for some time in San Francisco (about 4 weeks). If you are there during that time and would like to meet, please contact me at tom@cotopia.com

What's coming up...

Over the past few weeks we've gotten a number of requests to fix bugs and to introduce (in some cases even re-introduce) features. Rest assured - work is under way to bring the functionality players have been asking for.

Here is a list of features that will make it into the next release which will be pushed out together with Battle Blocks:

1. Private games will be back (enable players to search for opponent by name)
2. Ability to access Cotopia WAP directly from main game menu
3. Updated help texts
4. Add date and time to forum posts
5. Ability to send an SMS to your friend with a link to a free Cotopia game download straight from the main menu
6. When searching for an opponent phone will vibrate and display will flash once opponent is found
7. During game play empty chat messages will be ignored
8. Fix for a much hated bug in our scoring system - if you know what it is you'll be happy to see it go away, if not - don't worry about it :)

As I've said before: let us know what you want. Most of the items in the list above are the result of requests from our players. If you find something you hate about our games or think up something you'd really like send us an email or an SMS.

Wednesday, August 29, 2007

Mobileplay

I have been communicating with Marc Blinder from Mobileplay about our possible cooperation in last weeks. He runs mobile community and social network portal.

As a first step, he created mobile web page for his users, where they can download our games: http://mini.mobileplay.com/games.php.


The best cooperation would be, if we would be able to do a trick, that his registered users will be able to play with our registered users, so they will not need to create our account, but account will be somehow transferred from Mobileplay. From technology point of view, its possible. We need to do it in a way that it will be possible to connect "anybody's" users. Connection foreign users and allow them to play and chat together would help us a lot and I believe, it can help community portals too.

Sunday, August 19, 2007

BattleBlocks comming soon

As promised, we're coming out with more games. The decision was made that BattleBlocks should be next up for release - in the previous version of Cotopia it was one of the most popular games (head to head with Chess in-fact) so I m sure that we'll make more than a few players happy by making it available again. This includes myself as I was never a top Chess player but when it comes to Tetris (oops did I say that?) and it's numerous clones (BattleBlocks being one) I certainly do hold my own.
BattleBlocks were written from scratch by a good friend of mine James O'Connor (and have since then suffered a number of "fixes" and adjustments from myself and another good friend of mine Greg Crawley). Once the development was mostly finished James and I have spent a number of nights working out the kinks and bugs .. and then again a even more and longer nights of rigorous playing err I mean testing and re-testing and yet more testing :)
I hope that if you make it to our WAP pages you take the time and download the game once it appears in a week or so. It truly is one of my favorites and always has been.
Thank you James.

Friday, August 10, 2007

Mobile game portals


Thank to all mobile portals, who put on our games.

Namely:



We are in contact with Hovr and with Greystripe, so we hope to be on their portals too.

Thank you all.

Sunday, August 05, 2007

1000 players

After the first month, we have 1116 registered players, thank you all. So far numbers are good and we hope to even make them better. If anyone knows how to help us promote the games, all ideas are welcomed.

Below you can see the graph which shows totals registered players based on days from start.

Thursday, July 26, 2007

We're in quadruple digits - can SMS get us further?

That's right we've had over 1000 games played using the new version of Cotopia. 1000 games in about 10 days is not too bad, considering that so far we have been treating the system as a bit of a 'beta run'. The time is coming to throw the full power of our 'marketing department' (aka Tomas Zeman) behind this project and start some serious gaming. According to our biz plan we need to host something like a billion games every minute to start hitting black numbers :) (and all the sudden 100 games a day doesn't seem as such a large number)

As far as the current traffic is concerned we have some pretty good players that keep the server buzzing. Some even take the time and send us feedback which is much appreciated, consider that the next update of Cotopia will be based mostly on the feedback we've received. So keep the suggestions coming - they do make a difference. Namely we're bringing back private games and adding dates to message posts.

Another feature that is being considered is sending SMS game invites. There are two parts to this particular feature:

1.
Make it possible for a player to invite a friend who doesn't yet have a Cotopia account by SMSing them a link to download a Cotopia game. This would simply mean that each player is given an option from the main menu of any Cotopia game to send a formated SMS to their friend which will include wap link for a free download. The only cost is the same as sending a regular SMS and is paid by the player sending the invite.

2.
Make it possible for players who already have Cotopia accounts to SMS each other when they wish to meet up on the server and play. This is a little more tricky :) Firstly it means that the costs of SMSs are paid by Cotopia, since we cannot allow players to send SMSs directly to each other for privacy reasons.
Secondly it means that our games will have to include some additional management functionality to make sure that each player can block unwanted messages. Lastly, this will only work for players who are willing to share their mobile number with us.

I personally believe that both SMS related features would be great if we can push them out and I hope that once we do - the community will embraced them.

Friday, July 20, 2007

First article - Mobile Entertainment

Mobile Entertainment has published article about our relaunch as the first. Thanks a lot ME! We plan to email our press release to more mobile magazines and blogs. If you want to inform your readers about our new version, your welcomed.
Feel free to put our link http://cotopia.mobi on your mobile site too.

Tuesday, July 17, 2007

Why I use NetBeans Mobility Pack to write Cotopia

In my previous post I've mentioned that I 'forgive' Tomas for using Eclipse. So let me take this blog entry to justify my attitude and explain why NetBeans is without a doubt the superior tool for Mobile Java development :)

Reason #1: Built in preprocessor
When you develop mobile apps you often need to cater to different devices (phones) because one can be oh-so different from the next. In code you often want to say something like:

if screenSize is 128x128
then do this and show this image...
else
do this and show some other image...

NetBeans Mobility Pack includes a build in preprocessor that lets you specify which code you want to include for which target device and you don't even have to mess around with preprocessor directives too much - tons of the functionality is integrated with the Java code editor.

Reason #2: Emulator integration
As I write code I can just click and see how my game runs in an emulator or even run the emulator in debug mode to find bugs. With SonyEricsson phones I can even use on-device-debugging so that my code is running on an actual phone as I step through breakpoints.

Reason #3: Build system and deployment
If you have ever written a serious Mobile Java app you'll know that without proper tool you are stuck writing nearly as much Ant xml as you are writing Java. This is a serious waste of time if someone else can do it for you. With NetBeans Mobility Pack pretty much all the hard work is done for you. With a click of the mouse I can either build my application and execute it in in an emulator or build binaries for all target devices and upload them to our deployment server.

Reason #4: Fast prototyping
NetBeans Mobility comes with a tool called Visual Designer which allows me to throw together an application very rapidly from designing screen-flow to individual screen design. I can literally create a working app prototype in a few minutes while keeping manual code to minimum.

Reason #5: It's alive
Looking at the preview releases of NetBeans 6.0 I know that there is tons of development going on and Mobility Pack is going to stay on top. I am talking about SVG support, Game Builder, better Visual Designer, Web Services integration and tons and tons of cool features that will make my life easier.

In all fairness there are a few competing projects out there but none comes even close in terms of functionality. There is the Eclipse MTJ and some Mobile Java support in IntelliJ but neither offers as much as 10% of the functionality.

Monday, July 16, 2007

Technology we love

I feel it's important that we give a mention to the excellent technologies we use in developing Cotopia. It's fair because we use open-source software which is free (as in beer) and reliable which helps us keep costs down.

So without further delay here is THE LIST:

Linux out server runs on RedHat and my development box runs Suse - both most excellent Linux distributions
Java 1.6
GlassFish a.k.a. Sun Java System Application Server 9.1
NetBeans 5.5.1 for Mobile game development - and I can't wait to switch to 6.0 as it will feature my most excellent GameBuilder ;)
NetBeans 6.0 for Server development
Eclipse I used eclipse in the initial stages of development (couple of years ago) together with Antenna but I soon switched to NetBeans with MobilityPack, Tomas still uses it but he's not quite as Java savvy so I forgive him :)

There are a number of other software packages we use daily, most of them are GNU licensed.

So just let me conclude by saying:
Open source WE LOVE YOU, You make it possible for us to do what we do!

Updated games out

We've put up an upgraded version of Cotopia games.

Firstly that means updated Java games with a few small added features and bug fixes - so go on and get the new games :)

Secondly that means we've updated the server part of our game system. To the players this change means that the computer chess player a.k.a. 'robot' is back and meaner than ever :) It also means that players now have to take turns when posting to game forums (this was mainly added so that a single player doesn't hi-jack the forum) and the News forum has been locked for announcements from Tom or myself only. It will give us the opportunity to communicate with out community without any added chatter.

I feel that if this upgrade proves stable we'll be ready to start promoting Cotopia at large to build a bigger community. I am really looking forward to this since it will benefit me as a player as it will become easier to find that darn human opponent instead of getting my butt kicked by the robot all the time :)

Sunday, July 15, 2007

Platform schema picture

This is an old picture which shows how our system works. It's simple, Cotopia platform is independent on mobile operators. So, if your friend has another mobile operator then you, you two can still play together.

Saturday, July 14, 2007

Remote device testing

We use Device Anywhere to test our games as we are short of mobile phones. Their tool is ideal for testing our midlets. We don't need fast graphics and their remote phones has SIM cards, so we can test even the network latency. Nokia remote testing is nice too, but the phones has no SIM cards and sometimes its problematic to configure networking. They supports only the newest phones too. Device Anywhere supports different phone types, even some old phones.


Pity our test period of Device Anywhere will end soon.

Thursday, July 12, 2007

iPhone and Java MIDP

My friend Jack had sent me a screenshot from his new iPhone. Its pity, that Apple's new gadget doesn't support Sun's Java MIDP.




I can see, that Apple wants to have feature of mobile web full of Ajax widgets, but I still think that they could support MIDP. Our games could be easy played with one finger.
At least, wurfl detects iPhone. It's quite a surprise, because there are still some small bugs in wurfl, when it detects older devices. But we are happy with wurfl. I will write more about how we use it later.

Sunday, July 08, 2007

Beta - Major BUG #1

As the lead developer of Cotopia back-end I am responsible for the game server. This is usually a pleasant duty since we went through quite a bit of testing before launching this Beta. However every once in a while you run into an issue that the tests didn't cover.

This major bug was caused by a MySQL (a most excellent database) setting which closes unused database connections after a few hours. The database connection pool on our server (GlassFish) wasn't configured to check for closed connections and thus a bug was born. This caused us a few hours downtime earlier today.

Sorry about the inconvenience this caused but we're back, so game on! :)

Thursday, July 05, 2007

Your feedback needed!

We would like to ask you, if you could please send us you feedback!

You can send us any comments or suggestions about our new web site http://www.cotopia.com/ or mobile site cotopia.mobi or of course the games themselves.

Please send comments to my email tom@cotopia.com or leave it here as comment. Any comments are welcomed.

As we are still testing the Cotopia, improving and bug fixing, all your comments are important for us.

Wednesday, July 04, 2007

New version up and running...

Finally - we're back :)

After literally years of quiet, we have released a brand new version of Cotopia. We've reset all user accounts and scores to give everyone a fresh start - love us or hate us for it.

Although we're opening up with only 4 out of the previously available 7 games, the rest of the games are coming soon and I think that the new features make up for the wait:

  1. Avatars on your mobile and on the web
  2. New redesigned web site
  3. Implemented Elo rating system for all games
  4. Better graphics for all games
  5. More responsive chat
these are just some of the features, while many more are in the pipeline.