I would like to start getting involved into mobile game programming. I already have modest experience in Android development and iPhone development.
Previously, I have built a proof of concept 2D JRPG game and a 3D FPS Engine using XNA, and I have a good idea about game programming concepts.
I am lost whether I start looking into OpenGL on Android or if I should directly take a shortcut into a game engine, such as Unity3D.
Base on my experience, would it be more efficient to invest the time into Native graphics programming on Android/iPhone? I am not only looking for "fast" development, I'm also looking to have efficient results. Also, how portable is opengl-es from one platform to another?
A game engine involves much more than graphics: audio, resource management, networking, scripting, etc. In order to be cross-platform, all those subsystems must be implemented natively for each platform. This implies having a very good design and architecture, and of course lots of code. Unfortunately, you should use C/C++ for efficiency and portability concerns. Although now is possible to develop such engines with with higher level languages like C#, you are limited to its platform support.
Also, you need to consider the gameplay code.
I wouldn't worry about the engines speed thought. The guys who write engines, know what they are doing and unless you spend lots of time optimizing things you won't get considerable improvements.
So, writing portable games takes a lot of work without an engine resolving all the problems involved.
OpenGL-ES is a standard. As with all the standards, there are always some minor tweaks for each platform, but nothing really disturbing.
Resuming, the correct answers depends on you. Everything in computer science is a trade-off and you only know the values involved.
Hope it helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With