Is my startingpoint ok?

So now i have started making a j2me game, I have the basis for a game with a splash screen,menus for starting the game,options,about,quit etc…
And im using Eclipse with eclipseME plugins. I also have a local cvs server.

What im not so sure about is my approach,with all the different phones and jdks… but here is what im thinking:

Ill make the game working using eclipse and cvs and suns jdk1.5 and WTK with midp2.

When I have a working version for the standard midp im sure this wont work on any phone(?), but then I can start downloading different developer kits from the manufacturers site and make branches in my cvs for the phones. Does this sound like an ok approach or what do you usually do when you start? Is it usually alot of changes that has to be done to a game if you first make it work with suns wtk? I have to start somewhere :slight_smile:

If you want to make it work on most phones, I would suggest that you target midp1 rather than midp2.
And do make it work with suns wtk, rather than vendor specific classes.

However, the amount of custom code for each class of phones can be overwhelming - and you can’t plan ahead for it.
We have a custom preprocessor that injects and replaces code as needed, you might want to try j2mepolish, since a lot of people like that.

I have decided to make a midp2 only game, but what your saying is that if the game is made with suns wtk then it will run on all phones supporting midp2? So the special developing kits for each phone is just if you want special features or a little bit extra performance? I thought I had to use each vendors developer kit to compile the game for their phones even though they support midp2… ? (because of small differences in the phones) But this is my first game so i dont know alot…thats why i was thinking about making it work in suns wtk first.

j2mepolish looks great,except you have to buy a license to sell the games… I dont even have a company im just a student starting out, I cant pay 300euro to sell a game.

Unless you’re making a Hello World app, it probably won’t. But using the proprietary SDKs doesn’t mean it will work on the actual phones either. Unfortunately the only way to know for sure that it works on a phone is to test it on the device itself. The specialized SDKs are good when you want to use proprietary APIs, or check that the app looks good on the target phones, because they will have emulators with the right screen size, key configuration (apart from the ITU-9 keys, all other keycodes don’t have standard values), supported media types, etc. If you are lucky you might get emulators that emulate the bugs and not-properly-defined-by-the-specs behaviour of the phones but you can’t count on that.

If you aren’t using any proprietary APIs then it doesn’t matter if you compile with the WTK or with the proprietary SDK. The bytecode generated is the same (or at least it should be).

AFAIK, you only need a license if you use Robert’s classes, like the J2MEPolish GUI. If you just use it as a build environment you don’t need to pay for a license.

shmoove

Oh,thanks I think I understand how it works now,its not as complicated as I thought.

When you have a ready build, is it normal that the aggregator has all the different phones to do the testing?

Just one more thing, I use a game loop that sleeps for xx milliseconds like they do in the open source midp2 book that was posted on these forums. But wont this make the game run in different speeds on different mobile phones?Is there a fullscreen mode available on midp2 where you dont have to sleep but the loop just runs as fast as possible? I was thinking maybe I should make the game run independent of the rendering like you can do in j2se games and lwjgl.If possible. So that will make the game objects move xx pixles pr second instead of move xx pixles pr tick. (comments appreciated) :slight_smile:

It’s possible. You should still sleep a few milliseconds on every tick because many phones have cooperative multitasking, so no sleep at all can cause problems. But you can use System.currentTimeMillis() to do time based movement.

shmoove