writing mobile phone games.

Started by
5 comments, last by jinxtengu 15 years, 7 months ago
Hi, I've been planning on doing a game for mobile phones, problem is I don't know much about what is required. I am actually one of those few people left who don't even own a mobile :P hopefully this topic can help get me started(and anyone else who is interested) ------------------------------------------------------------------------------------ firstly I would like to pose some important questions: what language is the best for writing mobile phone games? what compilers/assemblers will I need to use? (assemblers...yes I am that much of a deadbeat :0) what software/hardware is needed to transfer from pc to phone? what special considerations should I take into account? (I.e. will the program require modification for specific phone models?) and finally where can I find out more information and references on this subject(any helpful books, tutorials, websites??) peace ------------------------------------------------------------------------------------
Advertisement
The 'language' more or less depends on what type of phone you develop for.

I forget which, but some use Brew which is C++ based and another major type uses J2ME (I think) which is Java based. Those are not actual languages, but SDKs. You will use a compiler you normally would use and then use the application available with the SDK to test the applications.

That's as far as I know, and I could be remembering stuff wrong. I applied to be an Intern at a mobile game development studio so I did a bit of research prior.
I did some Java ME (formerly j2me) development for cell phones in college a couple of years back. I have no idea what the current BREW / Java ratio is with phones, but I do know that a lot of phone are Java enabled and having some experience with j2me, I have to say it is fairly painless.

Contrary to what Crazyfool said, Java ME is a language. It is a subset of Java for mobile devices. MIDP (Mobile Information Device Profile) is the API used for displaying graphics, networking, playing sounds, etc.

Head on over to Sun's Java ME website to download tools and tutorials.
laziness is the foundation of efficiency | www.AdrianWalker.info | Adventures in Game Production | @zer0wolf - Twitter
Zerowolf cleared up some of the information nicely, but I figure I'll answer each question directly.

Quote:Original post by jinxtengu
what language is the best for writing mobile phone games?

I will break it down by which platform uses which language.
J2ME - J2ME is the common term for the platform and for the language. As Zerowolf mentioned the language is a subset of J2SE with limited functionality in places and extended functionality where MIDP and CLDC fill in.
BREW - C++
Windows Mobile - C++, and you can also use C# on the .NET CF
Symbian - C++
Android (Google's little adventure into the mobile space via the Open Handset Alliance): A J2ME equivalent. This should be easy enough to port to from J2ME.
iPod/iPhone - C++, and for the iPhone some obj-c

There is no BEST, per se. In terms of ease and getting your game onto a handset, there is no doubt that J2ME is the best option in this regard.

Quote:Original post by jinxtengu
what compilers/assemblers will I need to use? (assemblers...yes I am that much of a deadbeat :0)

For J2ME: Sun provides the Wireless Toolkit and appropriate JDK (Java SDK).
For BREW: Qualcomm maintains the SDK and development tools. That said, I should mention that in order to be able to build your application for a handset you will have to be a registered developer with Qualcomm in order to gain access to some of their proprietary tools.
For WinMo: MS has access to the Windows Mobile development kit. You will need to have a particular version of Visual Studio (No Express here.)
For Symbian: Symbian's website and Nokia provides tools and documentation for this platform.

Quote:Original post by jinxtengu
what software/hardware is needed to transfer from pc to phone?

Depends.
- For BREW, Windows Mobile, and Symbian development there are data cables that will connect from the handset to your PC and via the SDK's and tools provided for those platforms are also tools to transfer your game to the handset.
- For J2ME some manufacturers (Sony Ericsson, Motorola, sometimes Samsung) will provide data cables and tools to be able to connect from the PC to the phone. In most other cases the resultant .jad(descriptor), and .jar(game binary) will need to be transfered via OTA. There are some online places that provide services to do this but it is generally easier to set up an OTA interface via a network URL.

Quote:Original post by jinxtengu
what special considerations should I take into account? (I.e. will the program require modification for specific phone models?)

The quick answer: yes. The longer answer: usually. The dream: no.
Ok, that said, it is near (if not 100%) impossible to make a single binary that will work across every handset in your target list. There are many things that effect this in one way or another. The brief list of this is, screen size, heap size, performance characteristics, and lastly manufacturers differences. The first couple I mentioned aren't too terrible once you learn how to make the games, the last one, however, can be tricky and often requires the phone in hand to determine what is wrong and why.

Quote:Original post by jinxtengu
and finally where can I find out more information and references on this subject(any helpful books, tutorials, websites??)

As mentioned above, go to the source for the tools and they will often provide plenty of literature regarding their technology and how to make games for that platform. A small list follows:

J2ME
http://java.sun.com/products/sjwtoolkit/
http://java.sun.com/javame/index.jsp

BREW
http://brew.qualcomm.com/brew/en/developer/overview.html

Windows Mobile
http://msdn.microsoft.com/en-us/windowsmobile/default.aspx

Symbian
http://developer.symbian.com/main/index.jsp
http://www.forum.nokia.com/main/resources/technologies/symbian/

Android
http://code.google.com/android/
I have only just glanced at the first page, but I think this tutorial might answer a couple of your questions.

http://www.gamedev.net/reference/programming/features/j2me1/

Good luck!
I've worked as a mobile developer and have worked on several released games.
The main platform for mobile development is J2ME as it has the widest coverage.
The tools are free you just need the SUN Java SDK and the Sun Wireless Toolkit.
You can also get hold of several custom tailored SDKs for specific mobile phones Nokia, Sony Erricson, Samsung Etc..
These are all basically the same wireless toolkit but with customised emulators.
If you prefer to get an IDE you can use Eclipse with the EclipseME plugin.

Other development platforms are BREW which uses C++. However you won,t be able to test on actual handsets with BREW unless you have paid a lot of money to Qualcomm for a dev handset.

There is also the iPhone which uses Objective C and C++. The SDK is free but you do need a Mac and again if you want to test on an actual handset or iPod touch you need to spend some money.

Windows Mobile isn't worth bothering with because it has such a small market share and Windows Mobile Devices also faeture Java support aswell so when porting to these devices developers just do a J2ME development.

Andriod This did look promising but, now it seems like it's going to be just a big white elephant. A lot of developers recently switched to the iPhone after Google released the latest version of the supposedly Open Source platform to a closed beta.

So at the end of the day if you actually want to see your game released on a handset or be able to let your friends play on their handset at least. You're going to have to go with J2ME and Java.

The software to transfer games onto your mobile usually comes with the phone. You can also use bluetooth ot infared or if you have a wapsite you can do an OTA transfer. Bluetooth is probably the best way to go.

Things to take into acount is that you'll need to work in fixed point math as most mobile processors don't support floating point. Keep threads to a minimum.
And the thing that trips most new J2ME developers up is that you also need to keep classes to a minimum. OO programming using classes is pretty much out of the window when it comes to dealing with some of the lower spec handsets. You can still program using OO methodologies though by using different data structures.

The main modifications you'll need to do between handsets is when porting between MIDP1 and MIDP2. The main thing to bear in mind here is that MIDP1 devices don't support image flipping. You'll also have to change code to meet some of the diofferent sound apis that different manufacturers use.

There are a few websites out there that should be able to help as for books there are absolutly tons available on J2ME programming but unfortunatly the majority of the ones I have read seem to be written by people who are Java programmers who've picked up J2ME but never actually worked on a real J2ME application that has to be released across several devices.
The only one I've read where the author actually knows what he is talking about is J2ME Games Programming by Martin Wells. He covers the basics of writing a full game and then goes into setting up a more professional development and porting setup using ant.
thanks to everyone who posted.
most, if not all of my questions have been answered,
thank you.


It is an exciting and growing industry!!

This topic is closed to new replies.

Advertisement