Carmack to Bring "Graphical Tour de Force" to the iPhone
Apparently developer John Carmack loves his iPhone and is still kicking himself for not having something ready to go at launch time. However, he has announced plans to bring a "graphical tour de force" to Apple's popular device. "But as for which one, the company isn't saying just yet, though given that the recently launched id Mobile division already has Doom RPG and the forthcoming Wolfenstein RPG to its credit, we wouldn't be at all surprised if Carmack will bring Quake or some flavor of Rage to the small screen as well. What's more, he's apparently considering the idea of tackling the MMO market on the iPhone down the line, though he admits that he's being 'conservative' and doesn't 'want to be in a bet-the-company situation' just yet."
I don't see FPS being that fun with out a buttons. A RTS / TBS may work good but not MMO / FPS / driving games.
heroes of might and magic type games should work fine.
Can you imagine using the iPhone camera to capture the environment that you're in, like a street in NYC, and using that as a real time background for a FPS? It would put something like zombies in the image and real people in the image would be "hostages" that you need to protect or save.
The simple truth is that interstellar distances will not fit into the human imagination
- Douglas Adams
How many buttons do you need? Motion can easily be controlled by tilting & turning the iphone (tilt forward for forward, back for back, rotate clockwise & counterclockwise to do the same for the character, & tilt left or right for strafing). Then make 2 mostly transparent buttons on either side of the iphone screen. Put an extra transparent button in the middle of the top for a menu. I can't think of a racing game that would need more buttons than that; & I think most FPS would be set too. For diablo-esque hotkeys you could even make the bottom 3/8" (10mm) a series of 7 to 8 square buttons. And then you can nest more commands, or toggle between different sets of hotkey definitions for different applications (e.g., lots of little enemies set, or one big honking baddie set, etc.)
I don't know about you, but as a one-time C programmer, 12 year Java programmer, I HATE Objective C. The syntax is all fucked up, it has a whole lot of really weird design decisions that seem to be made simply to provide a workaround to some problem, and I find the documentation for the SDK lacking. Yes, there is a lot of it, but I've tried to use it, and it's been a complete pain in the ass.
For an example of a design "feature" of Objective C, you can extend/override a class. Any class. A class you don't even have source code access to. A class you don't even have package access to - it happens dynamically. Scary, important classes such as the base class. And you don't even do it IN the class, just another random file somewhere. Before anyone says that's useful, that rather destroys the whole concept of encapsulation.
I'm sure the rest is that I don't like XCode either, but reading through the docs and writing some simple iPhone apps has been painful mostly because of the language and the lack of documentation (it really lacks a "here are all the tools you'll need to use to make an iPhone app", eg I completely found the UI editor by chance)
A FPS could work quite well on the iPhone, especially if they look at how the Wii Metroid did it. In Metroid you aimed with the pointer and the more you moved the pointer from the middle of the screen the faster it turned in that direction.
You could do the exact same thing with the iPhone, always play with your finger touching the screen, and as you move your finger from the center look in that direction.
If you constrained an iPhone FPS to only allow horizontal camera panning then moving your finger up and down the screen could move you forward and backwards, and movement to the left and right would turn you. Tapping anywhere would shoot (either always in the center of the screen, or the exact point that you tapped).
Alternatively if you use the multitouch you could remove the vertical constraint and look by stroking in any direction and move by stroking with two fingers.
Another option if you don't want to be always touching the screen is to allow you to flick the viewpoint around (sort of like flicking through photos). A stroke to the left (from anywhere on the screen) turns you left, a faster stroke turns faster, and flicking turns really quickly... Continuous turning either by multiple strokes, or have the initial speed of the stroke set the turn speed and if you hold your finger at the end point continue to turn or move at that speed until you release.
I really think there are a lot of options for rather precise control and I think a most game genres could work on the iPhone; determining which control scheme works the best will just require a few demos and some testing.