Android Resolutions and Games

Well, Android 2.0 is here and along with a bunch of other interesting bits and pieces it brings us multiple resolutions - previously all devices were expected to be the 320x480 resolution (G1, G2, Hero, Pulse etc). However, in the new 2.0 we have the 240x320 (HTC Tattoo) and the 480x800 (Motorola Droid). These resolutions seem great for UIs where the controls generally had plenty of space already. However, they may cause problems for games (as they did with J2ME).

First, we now have to cope with multiple resolutions. While this isn't a big problem it does mean for high quality output you need to create assets for the different variants. This can be time consuming and hence costly. The alternative is to change the game layout based on the resolution (more on this in a moment). The SDK has given us some new tools to manage different sets of drawables for different screen dimensions (which is a step better than J2ME) but this really is an overhead we didn't need in small indie game development. The interesting news is that games written for the standard resoltion are apparantly running and being scaled on the new Droid handset. This is a welcome feature (if it is indeed true) but scaled sprites don't often look great.

So, onto the next alternative, and the important one to me. I'm writing an RPG, it's dungeon based, you might have seen it spammed over everywhere I can get to. The nicest way to adapt to the higher screen resolution would be show more of the dungeon. The game requires you to touch the tiles of the dungeon to have you characters move round. This is similar to many Android games, i.e. you have to touch reasonably small areas on the screen. However, if the resolution grows but the physical screen size doesn't (or not by much) then these touched areas are going to get physically smaller. Unless your fingers are scalable, this is going to be a problem.

So.. what to do? Increase the detail on sprites for the bigger resoltions? Hope the for the best and just let it scale. I sorta wonder if this has really been thought out? The net problem seems to be:

If resolution gets higher, but physical screen size stays the same then the trigger area on the screen will get smaller - and your fingers won't.

EDIT: As a friend points out, another issue with these varying screen sizes is that they're all different aspect ratios. This will make auto-scaling pretty wierd looking. Thin tall dwarfs anyone?

Yore Map

Been working on a some random stuff tonight, not what I should have been working on really.. but a nice bit of relaxation. Yore is going to have an overall story line that leads the player through a non-linear list of quests, hence it'll need an overworld map. Here it is:

Normally I hell of a time generating anything that looks reasonable as a land mass. All the tools I've found in the past have been either too complicated or a pain to work with. This time, after searching again, I ran into the Greenfish Relief Map Generator. It's really a great simple tool and after a bit of GIMP editing I got basically what I was looking for.

WIP: Yore Quest

This is a little turn based RPG/Adventure I'm working on for Android eventually. It also runs as an Applet. At the moment there's just a bit of combat and some small scripted pieces. I've been trying to write this game for about 4 months now and this is the 5th iteration. Not sure if it's any better or worse but this is the first time it's felt slightly playable.

For this interation there's a little level designer and some XML based scripting. I'm hoping I can build the scripting into something that I can tell a nice fantasy story with. As you can tell I'm not entirely sure where I'm going but so far it's been good fun getting here.

The game is playable online as an Applet

It's also available for Android handsets (only support for 320x480 res).

I'm aware of a couple of bugs and expect a bunch of typos. However, I'd really appreciate knowing it works on various browser and/or handsets. Also ideas on how to extend and improve it. Currently the turns feel a little broken up and it's easy to get your characters in situation where they're getting pounding with no support.

Of course, any feedback is appreciated,

Beer! Slick Game Contest!

The wonderful chaps over on the Slick forum have decided that a contest is a good idea! The theme? BEEEEEEEER!

It's a great plan, and I think we'll be find a token prize! It's going to run for a month or so, probably next. Get over there and get it!

Google AppEngine - Suddenly Servlets are Useful

I've been coding enterprise stuff in Java for years. It's how I get by in the world, and how I pay for gadgets. I often find theres a lot of cross over between the stuff I do for work and the my interest in games development outside of work. However, one of the key building blocks enterprise development, the Servlet, is something I've never been able to use in game development. They're powerful, they're flexibile, they're open and they'd probably make good server technology - why don't I use them?

Simple, hosting, there's never a good place to host Servlets for free when you get database access and sufficient bandwidth/CPU to run anything on. I could run JBoss on our hosted server but we've found that to be very painful in the past. As such I've always resorted back to PHP for my web based games and scripts, simply because the hosting is free and the load is light. The downside is that I rarely have any really nice reusable or tidy server side code.

ENTER GOOGLE!

Google have given me more toys to play with! Google AppEngine is a server side environment for hosting web applications. Originally it only supported Python, but they've sensibly extended this to Java.

What they provided is an open and free (for low bandwidth usable) HTTP servlet container. Fantastic! What's more they allowed use of a highly distributed cluster of machines, including a distributed datastore (via JDO) and in memory cache (JCache). This leaves you with everything an enterprise developer needs - well, almost :)

I haven't really had time to test this stuff out until the last couple of evenings. I've knocked up a game of reversi/othello, that I've named "FlipIt" for trademark reasons, with the cross platform android/iphone/applet stuff. Today at lunch I was playing a game against a friend in Seattle. I was on my phone, he was using the applet. How cool is that?

It's a simple turn based server. It uses the datastore for user records and the cache for game sessions. It's a quick 2 evening hack so I'm sure it's broken in many ways, it was really about seeing if this appengine stuff is all it was cracked up to be.... it is! Check out Flip It if you want to try it. No guarantees on everything working of course. I've still got one bug to beat on the android version, but that should be along soon too.

So what else could you need? Well, how about a control panel for your applications that lets you:

a) See the stats on how many bandwidth/cpu you're using
b) Breaks this information down per page, so you can tune your application
c) Lets you browse the datastore
d) Shows you the system logs, so it's easy to debug

It does all of the above and in a very slick manner. What's more, for starting out, it's entirely free. This has every potentional of being the hobbiest's dream server. Seriously, go check it out!

6 Ways to try and Monetize your Indie Game

Now, I don't claim to be an expert on this topic at all, however I have tried all of the methods below with varying success and regularity. As you can tell, I'm still here typing, so I haven't made it "big" with any of these methods. I've been writing games for the love of it for years, I like everything about it. However, for me it's important to have my games played and appreciated - how better to gauge that then to try selling them? What's more, when it's just hobby, the extra cash for beer money is just like icing on time wasters cake!

1) Shareware

The original way for indie types to make money. You give away a free version (or the full version if you're daring) and nag the end user about paying the money for the full/unlimited version making sure to point out the wonderful features they're going to get. In short, it's proven, it works. Letting people really play the game beforehand gives them confidence in the purchase. However, give away too much and they might just decide they've played enough and don't need the full version. I used this method with Tiltilation and it wasn't too bad, making a couple of thousand pounds sterling for 6 months work. It was also my first commercial endeavour and almost killed me. Shareware works well for full scale desktop games but the game needs to be a certain size before you can split it into the free bit and full version and leave both parts providing enough to play.

2) Adware at Home

Adware comes in a few forms. First you can stick adverts on the website around your web based games, most common for this is Google Adsense. Next if you're using the right technology you can embed adverts right into your game. If you're using Flash you have a multitude of options for this, most popular being MochiAds. In other technologies you can always opt for Google In-Game. Both methods essentially rely on the context adverts being smart enough to entice your players to click the adverts. This may of course annoy your players some, so it's best used carefully.

Now the "at Home" bit - one way of using these things is to keep your game (and idealy a bunch of your other games) on your website and try and drive traffic there, much like I do here at Coke And Code by writing blog articles like this (oooh, meta). The upside here is that you've got the exclusive on your games. The downside is you've got to drive that traffic yourself and that's not as easy as you might think. Here at C&C I make enough money from Google Ads to pay for my hosting (read about 25 quid a month) which can't be bad really. I get the odd special deal, but the traffic really isn't enough to making any real money. However, there are other options...

3) Adware at Portals

So you're happy to advertise in your game and/or around it, but you can't get the traffic. Well you might consider submitting the game to a portal and having their huge collection of games drag the traffic in. If you're working in Flash there are a massive number of portals to choose from including my faves Newgrounds and Kongregate. Both offer deals on advertising revenue including extra bonus percentage for integrating with their APIs (highscore, achievements, etc). If you're using other technologies you're going to find yourself limited, although the rather wonderful Game Jolt has just opened up their revenue scheme. For once, they take pretty much any technology and the games selection is starting to look really good!

Putting your game on a portal has a downside of course, it can easily get swamped under the mass of other people doing the exact same thing as you. Your game has to be good enough (and more important, re-playable enough) to actually drag people back to it. That said, my rather limited collection of flash games has been dragging in 15-20 pounds a month for the last few months on portals, so I guess that isn't not too bad. If you had a really popular game on there you could be getting some reasonable cash out of it, but it'd be unlikely to be sustained given the number of new ones every day.

4) Sell or Brand It!

You've written a kick ass implementation but average idea game. Putting it on the portals might get you some money long term but wouldn't it be nice to get a quick lump sum payout. There are a few portals around that will buy games in any technologies but they are few and far between. I've sold a Java applet to a portal (I can't mention here but) only for $250. That's nice for what was a week's work, but it did take an awful lot of finding. However, if you're working in Flash then you have a wonderful option left open to you - Flash Game License. This site lets you upload games for viewing by sponsors and publishers. If your game is quality looking and feeling, but the idea is average (or its a remake) then this is a great option. The downside is that at times you see games getting stolen and published elsewhere, but that's pretty rare these days.

There are a few deals you can do on lump sum game payments. You can sell an exclusive deal - this means the game only goes on one portal but tends to be a decent deal. You can sell a branding deal, where the game goes anywhere you want but carries the branding of a portal. You can just sell the game outright (with or without source), this is a rare occasion but sounds like you can write your own ticket (never happened for me). Each of these deals also may or may not let you keep your own advertising in place. In the best case you might end up with a branded game in which you can keep your own advertising and are actively encouraged to distribute. This is like having option 3 with a bonus :)

The deals vary alot from around $50 up to a few with $10,000+. Obviously game quality and appeal controls how much you're going to get offered. On Flash Game License it's a bidding process where publishers may try to out do each other. Moreover, in some cases you can sell the game to multiple publishers! I've made deals from $500 up to $1500 here, with games not taking more than a few weeks to put together. The problem is keeping going. It's a very dry process designing games to be explicitly appealing in this context - but it's probably a good cash in if you can stick it.

5) Go Mobile!

In the last couple of years the iPhone market place has become hot property. Now, with Android market launched and host of mobile providers itching to release their own versions, there may be money in them there handsets. There are a few great success stories about iPhone applications but not many given the number games released. The process for getting games up on iPhone is labourious but the market is very rich. In contrast the Android market is wonderfully simple to get games up on, but the market is still trying to find it's customers.

Getting your games out there and charging is pretty easy on both accounts. The APIs for developer are also pretty simple. Mobile games seem to work in a similar way to shareware. You push out a free lite version, then charge for the full game. So, why not port your game to a mobile?

I've got a few games out on both iPhone and Android at the moment. Nothing massive, but neat games, with polished looks. Android is selling, well not a lot, I can't imagine I've sold more than 3 in a day of anything so far. This isn't going to make me rich. On iPhone I don't current have "lite" versions and even then they're out selling Android 5 to 1. It's an interesting market. Probably one I need to spend more time on.

6) Trust in the good nature of people

If you really can't bear selling out in any way, but you'd like to make some cash then you consider the infamous "Donate" button. I've tried this on one game (that is no longer available), you're essentially saying "be nice, I wrote the game, drop me some cash". It could work, really it could, but I've yet to see it. The game would have to be something that people felt part of, that they came back and played over and over, that they were committed to - and even then you'd need your players to have enough disposable income to not mind shelling out some cash on something they could have for free. Tricky business!

Conclusion

While it's important to choose the right method for you, it's also to have a great game and put the hours in - which is probably where I keep failing :) There is no get rich quick and there is no easy win. If you work really hard, and choose the right business model and get lucky... you might make enough money for a pub lunch. If you get to be the one in million who makes it's really big, congratulations!, but for most of us it's best to accept that while you can make money on games it's unlikely to become your primary income. Write games for the love it and appreciate the beer money when it's there.

2 Android and iPhone Games going live - Funky Football and Block Knockers

Two more games I'm involed with have gone live on Android and iPhone.

Funky Football is a turn based football game that has a really great feel. It's almost the perfect mobile game and has had me playing again and again over the last few weeks. The lite version is free but is limited to 10 games, the full version adds tournament mode and access to team selection.

iPhone and Android

Block Knockers is a brain training puzzler where you smash the hell out of a set of blocks to match a given pattern. It tracks your progress and is surprisingly addictive. Both lite and full versions are available here too!

iPhone and Android

The best thing for me here is see how wonderful the distribution systems on both markets are. Getting your games to the people (free or not) is what it's all about and is this medium I really feel like I can do exactly that.

Exciting times!

Ninja Networking for Java

It's the time of the season for Java game related libraries. Here's another exciting one, Ninja Networking by another java guru, Nate. It provides a light weight method of stuffing data cross the network and managing shared instances. Released under a BSD license we should be good to go on commercial outings. Go on, be a Ninja!

Nifty GUI 1.0

Wow, it finally turned up. Nifty is a Java OpenGL based GUI system that allows really cool and stylised game GUIs to be created. It's gone through many iterations and now starts to look like something very very cool. Particularly interesting to me is how wonderfully well it integrates with Slick ;)

Anywas, Nifty GUI reached version 1.0 - check out the demo

Quality 3D Game Models - A blast from the past!

I was contacted recently asking about advertising on coke and code. I get alot of these mails, generally it's generic spam, this one however came from a site I've seen before 3DRT (3D Real Time). I've been through before, purchasing some of the models for various projects I've worked on. I had a quick look through the free section and got a strange feeling I'd seen the models somewhere else:

Wow, what a blast from the past! In one of the very early versions of NewDawn's space game, Dark Void, we used that very model to make the game look that much more professional. At the time however 3DRT were called "Ghoulish Art". It's so great to see how far along they've come. Anyway, they're and indie outfit, so on with the plug..

3DRT are now producing some seriously high quality models with nice low poly counts for those of us targeting lower end platforms (not to mention some incredibly details ones). In most cases they seem to provide mesh, textures and files to allow creation of variants of the models (something thats extremely useful!). The packs cover everything from RPG characters to large city scape building sets.

One thing has changed, the models cost, but the prices are crazy for whats provided. There's not one pack thats over $200 (100 pounds) at the moment and I'm thinking for the cost of 2 packs I could resource a complete game with professional art. What's more the models look like a project artist could extend the set easily to give your game that unique look. That's seriously good going!

Right, plug done. Do yourself a favor, go over to 3DRT, check out their wares and give your game a really professional look!

XML feed