j2me gaming vs C++ on nokia devices

Hi,

after working the last 2 months concurrently on nokia 60 series ( using Symbain 6.1 operating systems), I have some first impressions of the gaming capabilities of such a device.

We have been working intermittently in C++ and Java ( J2me).

J2ME

The greatest advantage of Java is the development speed. The learning curve is minute, as j2me offers a relatively small API. Nokia and Symbian offer many useful API’s, documentation and best method papers to guide your development and design. Most importantly, the virtual machine is run on top of the symbian operating system with limited leveraging of all Symbian functionality( for various reasons). This means that the comprehensive learning curve required to tame Symbian, is also undercut.

Unfortunately, this also means the power, control and flexibilty, Symbain offers is unavailable. Thereby, narrowing development potential.

We were severly limited to a few hunderd kb memory
which for any multimedia/rich graphical application is unacceptable. The rendering performance using high level canvas painting methods, were not problematic.

C++

well, the exact converse of my j2me synopsis. All the power control with the C++ headaches and Symbian learning curve.

Provides far more leveraging where memory is concerned and very low level control over graphics and the rest of the OS.

Id be interested to here, from other peoples experiences

PS - I am a Java enthusiast and this is my 1st embedded programming experience since university.

Larry

I’ve been doing some work in the mobile space with Brew and J2ME (i.e C++ and Java). You can most certainly get fine grained low level control over the device with the C++ interface and you can accomplish many thing that you can’t with J2ME (need lightweight JNI IMHO).

Personally I like the idea of taking my application and dropping it on anything running J2ME. Outside of buttong reassignments, I haven’t had any problems with the portability of my J2ME projects being portable. Right now I’m getting ready for the nGame. Nokia makes such excellent mobile hardware IMO.

thanks for the contribution

I should add that my forte lies in serverside java coding and so my opinion and experience is slanted.

Im sure in the future j2me will be more powerful and portable, but we really found the memory restrictions unacceptable.

We are currently working on the n-gage and new protoypes are constantly being updated. so that doesnt help.

Coming from serverside java I am quite impressed and intriqued in the design and concept of Symbain C++ coding. It seems quite clumsy and messy ( partly unherent to C++ ) but there are some nifty design decisions ( such as memory management design patterns) which offer a very effiective ( if not elegant) compromise between C++ and Java memory management.

Its been an eye-opening, enriching experience, particulary because we’ve gone on parallel tracks in both J2me and C++ and being my 1st mobile project Im extremely impressed with what is capable on these devices.

Im thinking of somehow porting some of my websphere applications to a nokia 7650 with my own Symbian built application server - NOT !!!

Larry

Are you only interested in Nokia devices?

Will optimally Id love to work on any mobile device, the specs for my project - adhere strictly to Nokia devices.

Again another few months down the line, its enlightening to see how much slower, bugprone C++ devleopment is compared to java. The great thing about j2me is standardisation for all platforms and an easy clear high level API.

Unfortunately, J2me MIDP is way behind on offering the features that makes mobile - MAGIC. For e.g. from my knowledge motorolla are the only distributors that support Bluetooth in their JVM?

Love to hear other opintions as I would always choose java if it was feasible.

Larry

You didn’t explain, what Nokia-specific features you need. If your release date is far enough in the future, don’t you think it’s better to look into MIDP 2? As it stands, the Nokia 3650 already seems to support WMA as an example. I’d guess that the N-Gage will support at least the same feature (rather more) as the 3650. I hope that we’ll see a Siemens update for the S55, that will support those features (if not MIDP2 entirely). Then we have this new Mitac phone with complete MIDP 2 and a announced MIDP 2 firmware update for the P800. So from my point of view I’d say: simple game with release soon: MIDP1, complex game with longer development time: MIDP 2. But I’d try to avoid any vendor specific APIs at almost any cost.

[quote]You didn’t explain, what Nokia-specific features you need. If your release date is far enough in the future, don’t you think it’s better to look into MIDP 2? As it stands, the Nokia 3650 already seems to support WMA as an example. I’d guess that the N-Gage will support at least the same feature (rather more) as the 3650. I hope that we’ll see a Siemens update for the S55, that will support those features (if not MIDP2 entirely). Then we have this new Mitac phone with complete MIDP 2 and a announced MIDP 2 firmware update for the P800. So from my point of view I’d say: simple game with release soon: MIDP1, complex game with longer development time: MIDP 2. But I’d try to avoid any vendor specific APIs at almost any cost.
[/quote]
Ther also is some new JSRs such as 134 that wil have large detail announcements by SUN at JavaOne…JSR 134 is the Java Gaming Profile for both J2ME and J2SE…

134 - The Phantom JSR ;D

Thanks for all the input guys :wink:

but essence Im still dissapointed with J2me, with or without jsr134 .

The memory restrictions and performance is just not good enough and there’s no standard api to access bluetooth or infrared for localised multiplayer gaming.

Please inform me though - I to stand to be corrected,
(which is preferable to lying in a heap, uncorrected! :D) .

Larry

[quote]Thanks for all the input guys :wink:

but essence Im still dissapointed with J2me, with or without jsr134 .

The memory restrictions and performance is just not good enough and there’s no standard api to access bluetooth or infrared for localised multiplayer gaming.

Please inform me though - I to stand to be corrected,
(which is preferable to lying in a heap, uncorrected! :D) .

Larry
[/quote]
Larry pay attention t waht comes out of JavaOne …we have been informed inthis forum that some j2Me specific jsrs andapis are going to be finalized as far as the road map to seeing implemented on vendor devices…

Lets see its starts June 10th?

Actually from what I’ve seen and been clued in on, 134 looks to be good stuff. There is already a 3d specification and that uses OpenGL for rendering in Java. This is being pushed by the people from OpenGL|ES and a host of others who want to get 3D on cell phones (waste of time on a phone IMO). What comes from this is that gaming in Java is being driven from the proper direction - from the smaller devices up. By focussing on CLDC 1.1 and the option 3D JSR, it is quite possible that by the end of the year there will be a gaming stack avilable for prime time.

yep,

I think JavaOne is set to deliver some impressive announcements regarding J2me and gaming.

MIDP 2.0 looks promising:
see
http://wireless.java.sun.com/midp/articles/game/

Im expecting once bluetooth and connectivity in J2ME is improved, mobile device coding in JAva will be the standard.

Larry