Tuesday, September 23, 2008

Some thoughts on google android as a gaming platform

With the launch of the first android device (T-Mobile G1) just around the corner, I would like to share with you a few thoughts regarding the viability of the android platform for gaming purposes.
Android has rich multimedia and graphics api's:
1.Support for openGL/ES and 2D drawing.
2.Media api's.
3.Support for sensors (GPS and accelerometer).
5.Optional touch interface.

So in theory, it should be ideal for gaming, right?

Well yes, but there are some caveats:
1. Not all devices will support touch interfaces and sensors.
2. Not all devices will have the same screen size.
3. For gaming, some sort of joystick or D-PAD device is essential. A D-PAD was standard in the various emulator images, since the first SDK, but the first device (The T-Mobile G1) comes without a D-PAD! Instead, we get a tiny trackball, not the best IO device for gaming!
So the problem is that as it seems, we will have a lot of different devices, with different configurations. Some will have touch interfaces, some will not, some will have a D-PAD, some will have trackballs, some will have acceleration sensors and so on. So, a game developer that develops for android will have the same kind of problems that a PC game programmer has. Different screen sizes and IO devices and so on... That increases the amount of time and resources a developer has to use in order to make his game playable on most phones. The same problems that drive a lot of PC game developers to game consoles.

So how can this be remedied? Well I guess that one possible solution is the introduction of a limited set of device profiles. Something like basic, gaming and advanced profiles, that will provide the developer with the same set of IO features.
Otherwise, I see a lot of developers fleeing to the apple iPhone, with it's game console simplicity, rather than the android's PC like capabilities.

I'd love to see your opinion on those thoughts, so shoot!


Ordonator said...

1) It's not that hard to write software for variable input devices.

2) It's not that hard to write software for variable screen sizes.

The PC is a HUGE landscape of different hardware configurations, and yet new games are playable everyday on almost every variety. Largely this is due to the various platforms that games are developed on within the PC (Windows, Flash, DirectX etc). That stuff handles a lot for the average developer.

I've played around a little with the Android SDK, and it should be very easy to detect what kind of buttons are available to the device. While the Android Market still has yet to be seen, its easy to imagine it with the capacity to not only tell you what kind of phone you should be using the game with, but also tell you if YOUR phone can play it. No to mention comments from other users and so on. This information would likely be maintained by the developer, which, if he or she wants to make money, will keep as current with technology as possible.

One last thing, note the G1 has a full QWERTY keyboard where the iPhone does not. Does the phrase, WASD, mean anything to you? :)

Tasos Kleisas said...

Please note that I am not referring to application development in general but in game development for the android platform. By that I mean that game controls can make or brake gameplay. For example, a trackball can be a very good input device for one game, and a very poor one for another. There are a lot of games based on concrete control schemes and having a device withoout a fixed one is a bit limiting, don't you think! Don't get me wrong, I think that android is an excellent application environment, even though it is still only in it's first version. I am only ringing a bell here ;-)

Search the web