Mobile Phone - App/Game development

Miscellaneous Forums/General Discussion/Mobile Phone - App/Game development

Mobile Phone - App/Game development

Anybody gave this a shot?
I've had a general look at Symbian O/S and S60 platform development and most paths lead to either using C++ or Java
None of which I really fancy faffing around with

http://www.forum.nokia.com/main/platforms/s60/

So, the next option is Python. Whilst this looks nice and easy the only bad part is, Python is interpreted

http://www.mobilenin.com/pys60/menu.htm

I really wish there was a Blitz-equivalent for developing on mobile phones. The nearest (unrealeased) thing so far is

http://www.nsbasic.com/symbian/


Is S60 the way to go? Lots of phones appear to support it

http://www.s60.com/life/s60phones/browseDevices.do

Go with J2ME... most phones supports midp 2.0 nowadays, and it's pretty easy to do stuff.

About 5-6 years ago I looked into this but found the Nokia Development kit to be too unwieldy. Compiling by command line put me off. I'm sure it's better now. Also not having the ability to move diagonally or press more than one button at once put me off (I wanted to make shooters and platformers). So I waited a couple of years and got Blitz - glad I did now.

I met a guy in Amsterdam using J2ME on mobiles and he seemed to like it. They've made loads of games. Only thing was that some providers, like Nokia, insisted you support a massive list of phones and thus a large amount of the development time was testing on all those phones and tweaking accordingly - sounded like a pain to me.

Anyway good luck.

I have just recently been looking at writing something for my phone (also a S60 ) and I have decided on the J2ME route.
You can download Sun's netbeans with Mobile support and you end up with a nice IDE and emulated phone to test your app on ( being written in Java its available for windows and Linux :) ). You also get a load of sample apps for pretty much anything you want to implement.

As for the 'support the huge list of phones' thing.. I have no intention of selling my game so if it works on my phone I'll be happy. If I get any sort of feedback I may then look into supporting other phones ( Im guessing it mainly consists of the handling different screen resolution and colour/BW ).

Of course.. I have to write the app first ! lol

Python's interpreter will probably be your least problem. Well-written Python code is as fast as Java or other code. You just have to make sure that you are not 'programming Python in Java'. Think in Python.

Look at pyglet and you're getting an impression of what can be done.

Civ IV, by the way, has its game logic written in Python, and so do many other games.

Python is not the language of choice when you want to write yet another 3D engine, but it's an excellent choice for pretty much everything else. I am currently also re-evaluating my attitude towards Python, because I had several positive surprises with it recently.

You can download Sun's netbeans with Mobile support and you end up with a nice IDE and emulated phone to test your app on <..> You also get a load of sample apps for pretty much anything you want to implement
This sounds like the sort of thing I need. I just cannot enjoy using Java though. The code looks completely foreign and I envision spending days fighting cryptic errors. Plus all that PUBLIC , PRIVATE , VOID {};() typing

Python on the other hand seems more like Blitz(Max)

Two examples comparing Java and Python

JAVA
public Vector<Integer> aList = new Vector<Integer>;
public int    aNumber      = 5;
public int    anotherNumber;

aList.addElement(aNumber);
anotherNumber = aList.getElement(0);

PYTHON
aList = []
aNumber = 5

aList.append(aNumber)
anotherNumber = aList[0]

I have no intention of selling my game so if it works on my phone I'll be happy
Me too. I just want to write personal applications

Java looks alot like C++ (I can't stand C++), there is an emulator for PalmOS that you can test apps on aswell. I usually work (slowly) on apps for my Tungsten T2, but it just recently died on me :(

I think this site sums up my feelings about Java/C++ very well

In my personal estimate, I spend 5 times as much time fixing such errors in Java as I do in Python. It really cuts into your productivity — and your creative energy — when you spend that much of your time just trying to satisfy the compiler


http://www.ferg.org/projects/python_java_side-by-side.html

ahm... if you want to support 100 (java!) phones - first you must by 100 phones to test and fix your game on every phone separately... this is very hard...

hmmm.. phython does sound nice apart from the fact it is dynamically typed. I shudder to think about the number of hours I have wasted in the past trying to debug something only to find a single line buried deep in the code where I mistyped a variable name.

I may look into this a bit further. I picked Java mainly because I have coded in Java before.
Can you develop on the PC easily ?.. is it just a case of coding testing on a PC and just copying the code to the mobile ?.

Is python available for all new mobile phones these days ?

I dont want to write something and then find its useless because my next new phone doesnt support it.

> phython does sound nice apart from the fact it is dynamically typed

There is an interesting article on that subject too -> Are Dynamic Languages Going to Replace Static Languages?

Its not finding the bug that is really the issue. The problem is once you find there is a bug unless the code is simple it can be a right pain to track down the offending typo.

For example you have a function that contains several complex calculations using lots of variables and in one place you accidently used an l instead of I in once of the variables.
You can stare at that code for ages and never see the error. Eventually you have to break down the calculations into smaller bits until you find what variable is mistyped. Its not fun.

I have no problem in giving it a go again... Im just not quite convinced it really is better.

I notice in the thread someone mentions a tool to help find these sort of errors in the code. If you need to run the tool to find this I cant see the problem in just declaring the variable in the first place.
Also I find being forced to declare my variables focuses my mind more on the code Im about to write instead of just throwing myself into writing the code.

I also wonder if writing code in a dynamically typed language after a while you slowly end up writing more sloppy code simply because it is so easy to just throw in new variables 'willy nilly' to get something done without sitting back and putting any thought into whether a rewrite of the existing code would be the better option.
I suppose using 'Pair programming' the 'observer' could pick that sort of thing up but working solo you would have to make sure you sit back and think a bit before ploughing ahead.

I'm nostalgic for the old days when computers weren't strong enough to do everything you wanted and programmers had to really think, trying to get the speed and size of an app down. Now, except for the really big things, anyone with programming knowledge can make a decent game. Now about static and dynamic languages.... I'm kinda lazy and I love dynamic. But its probably not a good habit to get into, so I do my best to avoid it.
Hey... is anyone working on an iphone app?

iPhone is surely the way to go right now.

I'm working on learning C objective C and cocoa so that I can learn cocoa touch and develop for the iphone... that is my ultimate goal right now.

Free, opensource, and easy there is http://mobile.processing.org/

Quite limited too.

Thanks LAB

"Mobile Processing" looks relatively straight forward
A litle bit Java'ish but I reckon I can get by
void setup() {
  framerate(4);
}
int pos = 0;
void draw() {
  background(204);
  pos++;
  line(pos, 20, pos, 80);
  if(pos > width) {
    pos = 0;
  }
}