iOS game dev. ?

Started by
6 comments, last by victorqhong 10 years, 9 months ago

ok so, i kinda want to make an iOS game, but i thought it would be nice to have it work on android too. so was wondering whats the easiest/better library/engine for that ? i found unity, monogame, a version of cocos2d (can't remember the name atm). or is it better to focus on iOS only ? and if so, you think its better if use unity, cocos2d, or opengles, or the other drawing way of iOS (can't remember its name atm).

btw i like to add i know c++, java, opengl (pc/mac), opengles1.1 (android), have small experience in unity but not in the kind of game i want atm (2d platformer), and have tried xna, and allegro before for pc.

summary:

game in mind is 2d platformer, but i would like to learn something that can help in other types of games too.

better to focus on iOS only than try multiplatform both iOS and android ?

for multiplatform which u think is better: unity, monogame, the cocos2d variant, or there is something better ?

if not multiplatform, which library/engine u suggest ?

Advertisement

game in mind is 2d platformer, but i would like to learn something that can help in other types of games too.

Everything you learn will help you in later games.

better to focus on iOS only than try multiplatform both iOS and android ?

If you are coding from scratch, the answer is straightforward: Yes.
If you are using Unity3D, building for one and then for the other should be a matter of just hitting a different export button.

for multiplatform which u think is better: unity, monogame, the cocos2d variant, or there is something better ?

Unity3D.

if not multiplatform, which library/engine u suggest ?

Unity3D.


I don’t know that any other mentioned platform has an advantage over Unity3D.


L. Spiro

I restore Nintendo 64 video-game OST’s into HD! https://www.youtube.com/channel/UCCtX_wedtZ5BoyQBXEhnVZw/playlists?view=1&sort=lad&flow=grid

i guess i will try unity then, thanks for the quick reply ^^.

It really depends on your needs, Unity is pretty solid if you want fairly painless deployment on both iOS and Android (they do an insanely good job at supporting the various android devices out there(Something that can be a pain in the ass to do yourself) and for the vast majority of devices out there it will just work out of the box) but there are restrictions with the free version (For a 2D game the only ones that matters is the forced splashscreen(Annoying) and the $100k annual turnover restriction(You can keep selling stuff you've allready made even after you've made $100k though but a $100k annual turnover doesn't necessarily mean that you're making a profit and a $4500 per seat(the cost of unity pro for both iOS and Android) license fee can be quite a problem if you're in the red)

OpenGL:ES is a low level rendering API, i'd recommend against using it directly if you are making a cross platform title (Even though both Android and iOS uses GL:ES you will need to write platform specific code in order to use GL:ES), if you do go this route i'd highly recommend using C++ as much as possible (It is the least painful path if you wish to support both iOS and Android) and focus Android support on the popular devices.

Allegro is a fairly good option for 2D games (Android support is available from 5.1 , iOS from 5.0) but you won't get things like physics built in as you would with Unity. (Adding something like bullet isn't all that difficult though), you have to do a bit more work to deal with different devices (it does what it does well enough but it is far lower level than Unity and thus leaves more of the work in your hands).

Another option could be to make the game using HTML5 and JavaScript and then wrap it in a webview. (For simple 2D games this is extremely painless, JavaScript performance in iOS webviews is a bit on the poor side though (JavaScript in iOS webviews are roughly 3 times slower than JavaScript in Safari on iOS)

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

It really depends on your needs, Unity is pretty solid if you want fairly painless deployment on both iOS and Android (they do an insanely good job at supporting the various android devices out there(Something that can be a pain in the ass to do yourself) and for the vast majority of devices out there it will just work out of the box) but there are restrictions with the free version (For a 2D game the only ones that matters is the forced splashscreen(Annoying) and the $100k annual turnover restriction(You can keep selling stuff you've allready made even after you've made $100k though but a $100k annual turnover doesn't necessarily mean that you're making a profit and a $4500 per seat(the cost of unity pro for both iOS and Android) license fee can be quite a problem if you're in the red)

wait a sec, its not free ? i recently read an article saying that unity became free for small indie dev. on both android and iOS (not pro) ?

http://www.joystiq.com/2013/05/21/unity-mobile-tools-go-free-for-indies-and-small-studios/

or is there some important features in pro that can't be neglected ?


Another option could be to make the game using HTML5 and JavaScript and then wrap it in a webview. (For simple 2D games this is extremely painless, JavaScript performance in iOS webviews is a bit on the poor side though (JavaScript in iOS webviews are roughly 3 times slower than JavaScript in Safari on iOS)

ah i totally forgot about that xD, i read sometime ago about someone doing that to support both android and iOS, but can't really remember why i went away from the idea, but thanks for reminding me ^^.

i guess it's between unity (if its actually free as i thought it was), and html5+js (want to test some games on the device before deciding though).


It really depends on your needs, Unity is pretty solid if you want fairly painless deployment on both iOS and Android (they do an insanely good job at supporting the various android devices out there(Something that can be a pain in the ass to do yourself) and for the vast majority of devices out there it will just work out of the box) but there are restrictions with the free version (For a 2D game the only ones that matters is the forced splashscreen(Annoying) and the $100k annual turnover restriction(You can keep selling stuff you've allready made even after you've made $100k though but a $100k annual turnover doesn't necessarily mean that you're making a profit and a $4500 per seat(the cost of unity pro for both iOS and Android) license fee can be quite a problem if you're in the red)

wait a sec, its not free ? i recently read an article saying that unity became free for small indie dev. on both android and iOS (not pro) ?

http://www.joystiq.com/2013/05/21/unity-mobile-tools-go-free-for-indies-and-small-studios/

or is there some important features in pro that can't be neglected ?


Another option could be to make the game using HTML5 and JavaScript and then wrap it in a webview. (For simple 2D games this is extremely painless, JavaScript performance in iOS webviews is a bit on the poor side though (JavaScript in iOS webviews are roughly 3 times slower than JavaScript in Safari on iOS)

ah i totally forgot about that xD, i read sometime ago about someone doing that to support both android and iOS, but can't really remember why i went away from the idea, but thanks for reminding me ^^.

i guess it's between unity (if its actually free as i thought it was), and html5+js (want to test some games on the device before deciding though).

Unity3D has a free version (and they did throw in free Android and iOS support a few weeks ago) as long as you didn't have more than a $100k turnover the previous fiscal year(a company with 2-5 employees(depending on the cost per employee) needs roughly a $100k annual turnover to break even, thus its only free for startups and very small companies).

Once you hit $100k turnover you have to buy pro licenses or stop using Unity3D(Which means no more updates to the games you're selling unless you buy licenses) Depending on how well you're doing and how many employees you have this cost can be neglectable or a big kick in the guts. (License fees are per seat and platform and you're not allowed to mix licenses, everyone using Unity3D on the team will need a license for each platform you're deploying on at that point (thus its $4500 per person if you're targeting both iOS and Android, $3000 per person if you're only targeting one mobile platform and $1500 per person if you're only targeting the desktop and/or the web)

The main thing that is missing in the free version is a good 3D renderer, they've disabled nice features such as dynamic shadows, occlusion culling and HDR for example and blocked render to texture (Which prevents you from implementing many of the disabled effects yourself), you're also missing things like navmeshes, video playback, audio filters, LOD, content streaming, IK animation, custom splash screen(with the free version the Unity3D splashscreen will always be displayed first), raw socket support(with the free version you can only use the built in networking) and the free version doesn't let you load and run native modules on PC,Mac or Linux. (it does allow native modules on iOS and Android though so for a mobile only title its not much of an issue).

For a 2D game the crippled renderer is pretty much a non issue since you can get really far with high quality artwork and simple shaders. (If you are making a 3D game with the free version of Unity i'd highly recommend going for a cartoony art style as it works much better with the free renderers restrictions).

Also, the free version doesn't have a built in profiler so tracking down performance issues with it is far more difficult.

The free version however is still a very solid package, especially when you consider its price ($0)

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!


It really depends on your needs, Unity is pretty solid if you want fairly painless deployment on both iOS and Android (they do an insanely good job at supporting the various android devices out there(Something that can be a pain in the ass to do yourself) and for the vast majority of devices out there it will just work out of the box) but there are restrictions with the free version (For a 2D game the only ones that matters is the forced splashscreen(Annoying) and the $100k annual turnover restriction(You can keep selling stuff you've allready made even after you've made $100k though but a $100k annual turnover doesn't necessarily mean that you're making a profit and a $4500 per seat(the cost of unity pro for both iOS and Android) license fee can be quite a problem if you're in the red)

wait a sec, its not free ? i recently read an article saying that unity became free for small indie dev. on both android and iOS (not pro) ?

http://www.joystiq.com/2013/05/21/unity-mobile-tools-go-free-for-indies-and-small-studios/

or is there some important features in pro that can't be neglected ?


Another option could be to make the game using HTML5 and JavaScript and then wrap it in a webview. (For simple 2D games this is extremely painless, JavaScript performance in iOS webviews is a bit on the poor side though (JavaScript in iOS webviews are roughly 3 times slower than JavaScript in Safari on iOS)

ah i totally forgot about that xD, i read sometime ago about someone doing that to support both android and iOS, but can't really remember why i went away from the idea, but thanks for reminding me ^^.

i guess it's between unity (if its actually free as i thought it was), and html5+js (want to test some games on the device before deciding though).

Unity3D has a free version (and they did throw in free Android and iOS support a few weeks ago) as long as you didn't have more than a $100k turnover the previous fiscal year(a company with 2-5 employees(depending on the cost per employee) needs roughly a $100k annual turnover to break even, thus its only free for startups and very small companies).

Once you hit $100k turnover you have to buy pro licenses or stop using Unity3D(Which means no more updates to the games you're selling unless you buy licenses) Depending on how well you're doing and how many employees you have this cost can be neglectable or a big kick in the guts. (License fees are per seat and platform and you're not allowed to mix licenses, everyone using Unity3D on the team will need a license for each platform you're deploying on at that point (thus its $4500 per person if you're targeting both iOS and Android, $3000 per person if you're only targeting one mobile platform and $1500 per person if you're only targeting the desktop and/or the web)

The main thing that is missing in the free version is a good 3D renderer, they've disabled nice features such as dynamic shadows, occlusion culling and HDR for example and blocked render to texture (Which prevents you from implementing many of the disabled effects yourself), you're also missing things like navmeshes, video playback, audio filters, LOD, content streaming, IK animation, custom splash screen(with the free version the Unity3D splashscreen will always be displayed first), raw socket support(with the free version you can only use the built in networking) and the free version doesn't let you load and run native modules on PC,Mac or Linux. (it does allow native modules on iOS and Android though so for a mobile only title its not much of an issue).

For a 2D game the crippled renderer is pretty much a non issue since you can get really far with high quality artwork and simple shaders. (If you are making a 3D game with the free version of Unity i'd highly recommend going for a cartoony art style as it works much better with the free renderers restrictions).

Also, the free version doesn't have a built in profiler so tracking down performance issues with it is far more difficult.

The free version however is still a very solid package, especially when you consider its price ($0)

i see, i guess i will look more into the turnover and licenses thing, thanks very much ^^, was really helpful ^^.

...

OpenGL:ES is a low level rendering API, i'd recommend against using it directly if you are making a cross platform title (Even though both Android and iOS uses GL:ES you will need to write platform specific code in order to use GL:ES), if you do go this route i'd highly recommend using C++ as much as possible (It is the least painful path if you wish to support both iOS and Android) and focus Android support on the popular devices.

...

If you want to roll your own engine then an option for cross-platform development is to use Xamarin. It allows you to develop for the Android, iOS, and OSX SDKs (including OpenGL ES API) in C#. That way, you can have one codebase that you have total control over and that can deploy relatively easy to each platform.

I personally have not tried it but I am looking into it. I believe there are no restrictions on the license once you buy it. And if you are a student then you can get a license for each platform for $99.

This topic is closed to new replies.

Advertisement