View Full Version : Android as an Indie Dev platform?
Fruzz
08-06-2010, 10:56 AM
I've been trying to decide between using an iphone or an android phone for some games dev experimentation.
I found this (http://www.diygamer.com/2010/01/android-is-the-best-indie-development-platform/) article and it seems to make a lot of sense to me.
I know QCF and Blackships are working on iphone games. Can you guys, or anyone else, give me a bit of insight into what the best platform is to get familiar with?
I'm looking for pro's and con's really. I can see Unity being a huge plus for iphone dev but the android user base is growing significantly and its open approach seems better suited to indie games dev.
dislekcia
08-06-2010, 01:54 PM
Unity has plans to output to Android AFAIK. I very much doubt that they'll leave an entire platform alone, I mean, Unity can already compile for Wii! In fact, Unity's compatibility list is one of the major reasons we're using it: We want to release for Mac and PC at the same time, followed by an Android and iPhone version shortly after.
BlackShipsFillt
08-06-2010, 03:20 PM
I haven't properly looked into Android yet, so I can only speak from iPhone experience. I get the feeling that there is a lot more love for the Android from the Indie community, it being the underdog and it being Google, however consumers still seem to favour the iPhone (as stated in that article).
Correct me if I am wrong, but the hardware controlled environment for iPhone is a big plus in it's favour, I imagine it cuts down development time significantly only having to cater for specific devices. Iphone is getting more complicated with the imminent 4G, but dealing with 3 or four devices isn't that bad. The Apple provisioning process is rather painful, I'd like to get away from that if I could, but I can't imagine that Android is too much better.
While the Appstore is far from perfect, it is very easy for an Indie Developer to hop in and get a game distributed and sell thousands of copies and receive coverage on major mobile websites. I've never had an app rejected for "the siliest of things", but I've never tried including pornography or realistic prolonged violence. I wouldn't mind not having a review process, but it doesn't affect me either way. I might however feel differently if KickyFighter gets rejected for too much violence.
The fact that there is far less competition on Android does sound enticing, I'm certainly keen to give Android a try once Unity supports it. However I don't know if that is really that much of a plus, being a big fish in a small pond is much the same as being a little fish in a lake.
Fruzz
08-06-2010, 03:46 PM
Oh excellent, I didn't realise they were going to get it running on Android too. I had a quick look around the net, seems like Unity 3.0 will add Android and iPad support which is awesome.
Dis, how seamless is the exporting to different platforms with Unity?
I see what you mean about the hardware controlled environment on an iphone Blackships, catering for loads of different android phones could be a pain. Does Unity hide all of that from you though? The hardware differences I mean.
dislekcia
08-06-2010, 04:36 PM
To be honest, we're still working on the basics of the game on Windows at the moment. I've seen Blackships compile exactly the same code workflow on Mac though, so I know that process is seamless... I suspect that it'll be similarly seamless for iPhone, barring the obvious need to change some input handling stuff and change resolutions/move around interface elements.
Actually, this would be good to know: Blackships, do you know if Unity sets up compiler flags so that we can #ifdef things when we start getting there? That would be awesome.
We're quite interested to see what happens with Kickyfighter, specifically around the approval process, as it's something we haven't had to go through before. Similarly, when we apply for Steamworks we'll make that process visible :)
I don't see Android and iPhone as competing markets. They're almost the same market, with the added possible hassle of multiple hardware configurations. We're already going to be scaling the game's effects with the lower-end iPhones in mind, but we're not really worrying too much about compatibility. That's what Unity is there for. If we can do a couple of days worth of extra work and get more sales out of a market segment we couldn't touch before, that's a bonus in my eyes.
BlackShipsFillt
08-06-2010, 08:37 PM
if (Application.platform == RuntimePlatform.IPhonePlayer) {
// iphone specific input etc
}
if (iPhoneSettings.generation == iPhoneGeneration.iPodTouch1Gen || iPhoneSettings.generation == iPhoneGeneration.iPhone || iPhoneSettings.generation == iPhoneGeneration.iPhone3G) {
// specific code for early iPhones
}
I don't know if there are compiler flags that do the same thing in Unity... that would be a cunning thing to look into.
Converting from PC to iPhone is easy, like Dislekcia said, it's mostly input code and gui adjustments and nerfing intensive effects, I imagine converting from iPhone to Android will be even easier, although the Android environment may be tricky by itself.
The review process will not be a problem Desktop Dungeons, you'll probably just set it to have a 9+ rating for mild horror themes and seven days later, around 11 o'clock (the end of the reviewer's working day), the game will be on sale. Setting up all the provisioning is a b****, but it's a step by step process for which there are decent guides if you search hard enough for them.
Sweet, would be keen to know of Steamworks!
xyber
09-06-2010, 10:54 AM
I wish they would actually add platform and some other flags, that could cut down somewhat on the build size. I tend to just do some defines manually in classes that share common code like my InputManager in which I would want to disable the mouse/keyboard input and just keep the touch input parts.
dislekcia
09-06-2010, 01:03 PM
Ok, so there are runtime checks, but no compile-time flagging? Going to have to do that manually then. I can't find anywhere to pass build arguments in Unity right now, although I assume you can with the full version - or are we forced to comment out #define statements for different builds?
Ta for the info on the approval process Blackships, we'll be on Steam before we start heading to iPhone though. That's going to be interesting...
BlackShipsFillt
09-06-2010, 02:06 PM
Nice, If you need a little help when you're getting started, I'm in Cape Town now and could drop by.
xyber
10-06-2010, 09:55 AM
... - or are we forced to comment out #define statements for different builds?
.
Yup, you have to create some #define statements and comment them out for each build. No global conditional compilations symbold like you can set in VS, and Unity don't define any preprocesor directives either, you need to use Application.platform, etc. as Evan mentioned.
BlackShipsFillt
15-11-2010, 10:40 PM
This is weird... I just came across what I think are some compiler flags in Unity... This is what I saw:
#if UNITY_IPHONE && !UNITY_3_0
EditorGUIUtility.UseControlStyles();
#endif
Although I could be totally wrong.
AndrewJ
16-11-2010, 08:48 AM
Also, isn't the barrier for entry for iPhone development higher than than of Android development w.r.t. costs for hardware (Isn't the development environment Mac only?)
xyber
16-11-2010, 09:26 AM
This is weird... I just came across what I think are some compiler flags in Unity... This is what I saw:
#if UNITY_IPHONE && !UNITY_3_0
EditorGUIUtility.UseControlStyles();
#endif
Although I could be totally wrong.
ooh, wow. needa test this. Maybe it is soemthing new in Unity 3
[edit]
Evan, can you test UNITY_IPHONE. I do not have a Unity iPhone to check if that is defined so obvioulsy its not working for me. I tested Unity_3_0 (and few variations) and that does not seem to be defined, but I keep reading about UNITY_IPHONE being available.
herman.tulleken
16-11-2010, 09:32 AM
Yup, Unity has #defines for platforms (but they did not always). .
We are making a Android / iPhone game with Unity. (So far, we have only tested the run on PC / Android).
Everything is going quite well, except for a few issues I am hardly aware that the product is for Android.
Debugging and profiling on the Android is a bit of a pain though. So far, I can only get very rough profiling information, and have to use old-school mysticism to find performance bottlenecks. It took me quite a while to figure out how to log message to PC (with the game running on the phone, connected to PC, of course).
The other issue is the GUI - Unity has some relatively nice GUI functionality, but it is e x t r e m e l y slow on Android, so we had to implement a lot of our in-game GUI from scratch (no nice layout functions!) I don't know whether this is such a big deal on iPhone (although I have read that it might be). [[B]Edit: Ok, it is not really that slow, I am exaggerating: because of the input lag, it is really a big deal for us; if it wasn't for that, I would probably use the built-in GUI stuff]
One final thing - there seems to be quite a bit of lag in the input. For most purposes you won't notice, but in our game it drastically affects the mechanics. This is not an issue with Android or the device (as other similar mechanics in other games does not show the lag), so it is a Unity thing. There is also a lot of mysteries in the touch data that you get - weird delta positions and delta times, which people don't seem to know how to interpret.
So other than that, Unity is great for Android [personally, I _really_ love it] ;-)
xyber
16-11-2010, 09:45 AM
Herman, Unity gui is a problem on iPhone too, or at least back in v2 (last year). It created too many draw calls, so I ended up using 3D objects and a 2nd ortho cam to build the gui stuff. The guy who made the Sprite Manager also have a GUI solution available which looks pretty cool - I grabbed it but did not yet try it out in out game - http://www.anbsoft.com/middleware/ezgui/
Do you know where I could find a list of platform defines? Did some searching on the net but did not find anything.
[edit] Found it
http://unity3d.com/support/documentation/Manual/Platform%20Dependent%20Compilation.html
herman.tulleken
16-11-2010, 10:01 AM
Yeah, I saw EzGUI - and will definitely use it in future - unfortunately the current project is too far gone... ;_;
BlackShipsFillt
16-11-2010, 10:34 AM
Thanks for that list! Unity keeps on silently getting better. ^_^
Yes... @AndrewJ ... iPhone development is unfeasible without a Mac...
But as far as I am aware the biggest iPhone bonus are the sales. There are simply more people buying (current generation) mobile games on iPhone. But of course, as a result, there are also more developers competing for them (so targeting niche and unexploited Android audiences could be a option).
FuzzYspo0N
19-11-2010, 11:35 AM
Android devs might want to read this page, and most importantly the comments as well.
Keep in mind how AWESOME this game is, and how well it is already optimised.
Then keep in mind your goals + the issues mentioned, and notice that some of the devices mentioned are less than a month old.
And definately IGNORE the comments from the fanboi's, momma jokes and retarded 14 year olds.
Focus on the reality of the platform, fragmentation and the future of YOUR GAME and the time spent on it. google store fragmentation too. For example, Verizon push their own store in front of the normal marketplace. Can you get your game in all carriers and normal stores as well?
As in indie, is it worth it?
http://www.rovio.com/index.php?mact=Blogs,cntnt01,showentry,0&cntnt01entryid=47&cntnt01returnid=58
Flint
19-11-2010, 05:15 PM
Hey guys,
I'm also jumping on the Unity bandwagon (with Luma). I'm looking into the UI stuff and whether it's worth looking at one of the third party stuff- have any of you actually used either EZGui (http://www.anbsoft.com/middleware/ezgui/) or GUIX (http://www.ennanzus-interactive.com/developer/GUIX/buy.htm) and care to comment? Is it even worth it (in a PC context).. I know Unity's got it's own gui stuff, but how well developed is the editing aspect? Is it something that will take tons of programmer time for say a game hud and menus?
xyber
19-11-2010, 05:33 PM
For PC you can stick to Unity's GUI and can do a lot with it.
I own EZGui but did not use it yet. I grabbed it because I have been using SpriteManager2 (from same author) and found it very usefull. I plan on using EZGui in our game when I get around to working on GUIs - for now I just use Unity GUI for temp gui stuff where needed.
I would not bother with GUIX.
BlackShipsFillt
19-11-2010, 06:47 PM
Yikes! (with regards to the feedback Fuzzy pointed to that Rovio are getting about Android Angry Birds)
What I don't understand is how do people even buy Android games when many of the game don't work on most of the hardware, or does every game come with a list of supported devices?... I really had a different vision of what Android would be.
And Google is pushing for games to be free with advertising...? It's like they want Android to be a poor-person's iPhone.
As a developer I never want 90% of my feedback to be "This game doesn't work on my device", and I don't have the resources to ever develop for all the Android phones, nor the inclination to cater to the lower ones.
I was really hoping for Android to be a viable alternative to the iPhone for indie developers, I don't understand why Google would let it become such a mess.
dislekcia
20-11-2010, 03:54 AM
Hey guys,
I'm also jumping on the Unity bandwagon (with Luma). I'm looking into the UI stuff and whether it's worth looking at one of the third party stuff- have any of you actually used either EZGui (http://www.anbsoft.com/middleware/ezgui/) or GUIX (http://www.ennanzus-interactive.com/developer/GUIX/buy.htm) and care to comment? Is it even worth it (in a PC context).. I know Unity's got it's own gui stuff, but how well developed is the editing aspect? Is it something that will take tons of programmer time for say a game hud and menus?
Once we got our heads around creating meshes vertex by vertex and built some workarounds for creating objects via script, we were able to build some relatively powerful hierarchy stuff that we've built our UI elements around. The most annoying thing to deal with so far has been text. We ended up going with mesh text and use a couple of magic numbers to get the scale right for the aspect ratios we're using. While we don't really edit interfaces via the Unity environment, we could quite easily expose the variables that matter to the editor and have everything controlled that way, so it shouldn't take too much programmer time to set up a GUI system if you've got a programmer that's built flexible GUIs before.
I wouldn't really bother trying to pick up GUI libraries for Unity.
Flint
20-11-2010, 04:53 PM
Thanks for the feedback dis, if it makes sense timewise to do our own thing with Unity's GUI then we'll do so. I was just a bit concerned that the PC version may suffer from the same performance issues as the iOS and Android ones mentioned here.
herman.tulleken
21-11-2010, 02:52 PM
@Flint Performance-wise on PC I don't think you need to worry. People have complained a little about the performance of the GUI system - at very high frame rates the GUI takes up a huge wedge (even if empty), but as you fill the world and the frame rate drops to something more realistic, it becomes insignificant, being droned out by rendering and physics. That's assuming you do not do something very hectic (as the system is very basic). For glitz, you will probably not use the system in the first place.
Powered by vBulletin® Version 4.2.4 Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.