top | item 3403200

(no title)

hyung | 14 years ago

A cross-platform game engine sounds awesome. But I wonder what kind of game can truly be write-once, run-everywhere, and considered "fun" on all platforms.

A few major challenges:

- Designing a game that is fun and intuitive to play with a wide variety of input controllers (touch, mouse, keyboard, joystick).

- Handling the entire spectrum of screen resolutions, from older iPhones to high-end desktop computers. The game would also probably need to work in both portrait and landscape modes.

- The QA effort alone could be huge. Testing on quirky desktop browsers or buggy Android devices alone could be a dealbreaker.

- I'd argue that the time spent trying to figure out a game design or technical workaround for a particular platform would be better spent focusing on one platform and making the game more fun. In my experience, trying to make a fun game involves a lot of trial and error and iteration, and I personally don't think I could do it if I also had to keep in mind multiple distinct target platforms.

I can envision a couple one-button games like Angry Birds or Tiny Wings possibly having a chance, but even in those cases, I'd argue it'd be better to nail one platform first and then incrementally add other platforms instead of spreading oneself too thin.

discuss

order

CJefferson|14 years ago

I find the controls hardest.

I am writing a simple puzzle game, and am doing a totally different UI level for even mouse and touch. For example when dragging, with touch it is nice to offset the piece so it is easier to see, whereas with mouse you probably want it dead-center.

mherkender|14 years ago

- Designing a game that is fun and intuitive to play with a wide variety of input controllers (touch, mouse, keyboard, joystick).

It was actually a platformer. SDL has great support for Joysticks/Keyboard so that was no trouble. The same goes for JS. As for touch screens, I found a good alternative control scheme that takes advantage of the touch screen. You are still right, but the game was designed to be straightforward enough to handle different control schemes.

- Handling the entire spectrum of screen resolutions, from older iPhones to high-end desktop computers. The game would also probably need to work in both portrait and landscape modes.

Impressive, this was actually major issue. The game requires no specific aspect ratio, so that wasn't a problem. Still, we don't want it to look tiny on HD monitor while looking normal on an iPhone, so the resolution of the images in the game can scale up and down at different sizes (1x, 2x, 3x) depending on what's ideal.

- The QA effort alone could be huge. Testing on quirky desktop browsers or buggy Android devices alone could be a dealbreaker.

No problems with modern browsers, if they supported Canvas, they supported the Javascript that was needed. I admit Android might've been a problem, I can't test on everything.

- I'd argue that the time spent trying to figure out a game design or technical workaround for a particular platform would be better spent focusing on one platform and making the game more fun. In my experience, trying to make a fun game involves a lot of trial and error and iteration, and I personally don't think I could do it if I also had to keep in mind multiple distinct target platforms.

That was actually the original plan. I ended up porting it to some new area whenever I would get stuck on some other problem and got caught up in that part of the project instead because I found it fun. Since the requirements were so intentionally minimal it wasn't very hard. I didn't know anything about iOS or Android development going in for example, they each took about 2 weeks.

jiggy2011|14 years ago

The closest you will get to this I think is Unity although that doesn't currently have Linux support.

All programming is done using Mono and it also contains a load of proprietary tools for asset generation as well as stuff for AI etc.

robert00700|14 years ago

Unity 3.5 now has flash export, so I think even Linux is now supported?

Pedrom|14 years ago

Yeah... But even with Mono you have to use the proper classes for display, so it's not completely code once play anywhere.