Hey Community,
Actually the Title is the Question^^
I wonder whats the diffrence between creating games for android and creating games on other Platforms - this includes also the moddeling of the Characters and scripting of course.
Thanks for your Answers =)
-
Hardware limits: Android has varying levels of hardware power so you must consider your target audience with compatibility (High End Graphics vs. Simple). An average gaming PC has much more processing power than any phone, so you must optimize polycount, shaders, and other aspects to keep performance smooth.
-
Input: You will want to have some type of touch control scheme available on any Android game, this is not something you need on PC.
-
Scripting is no different AFAIK, except for some mobile-specific features. I personally am using Playmaker and it runs perfect on Mobile devices and PC.
-
Some Unity features not compatible on mobiles such as a the built-in shadows, however there are usually other options that can accomplish the same thing in the Asset Store.
Fillrate is also an important hardware limitation. This is a non-issue on nowadays PCs, but a huge issue on Smartphones.
Basically you must:
Try to keep (static) models below 300 Polygons and use same material if possible. This will qualify it to dynamic batching, so many smaller models with same material will be put together and drawn at once instead of doing each of them separately. That can be hard to accomplish if you don’t have the tools to automate this. Having to make 20 models who share the same texture can be tough, as you have to make your UV mapping so, that each model uses a different part of a texture.
Keep memory usage as low as possible or your game may randomly crash if it exceeds the memory usage…
… avoid writing PlayerPrefs to often (i.e. every frame) as this can VERY slow on mobiles (it can even cause significant slowdowns on PC)
… don’t use Unity built-in GUI, use some 3rd Party tool like ezGUI or wait for Unity 3.6+ to bring a better UI system.
Thanks for your Answers that was exactliy what I was looking for =)
I look forword to post more Questions cuz the Community seems really handsome to me.
Please guid me along =)
Maru
The first thing you need to do is to decide what performance level on the phone you will target.
If you target from low end you will get a lot of optimization and you need to low quality in all your graphics and your polygon need to be small.
It is little more easy from mid range phone.
If you use top end phone you do not need to care as much about it, but it is always good to optimize all part of the game.
I use Galaxy S as a main test phone and if it runs good on that, then I am happy.
Also one thing that is very important and that is what type your game is and how many models you use the same time on the screen.
Also if you have a huge deep in the game you can also make the models that is not close less complex (LOD).
There is a lot of things to do, but as I write first you must choose what kind of phone you want to develop to.
I would never make a game for low end phones. Just for they are to bad and you will often end up with a bad game for the high end phones…
So my target is high end phone( my galaxy s is very optimized so it is a lot faster then stock).
I also use Playmaker to do all touch calls. Unity3D do not handle that good, but with playmaker it is very easy.
It also has its own GUI component and that works better then stock. I also did find a serious bug in stock GUI for android.
Hey Damian thx for the Answer -
I am Developing for High end Devices like Galaxy S and up.
I already have purchased the Playmaker asset but couldnt even use it because I can not find any Tutorials I could use - specialy for Android or for the GUI. the last post said that I should not use the GUI of unity. However I wouldnt if I`d had some reference material or Tutorials. This is bad cuz I keep hearing how good Playmaker is and of course I want to use what I bought.
By talking about Playmaker is it possible to do this with it as well?
Thanks for answering =)
Well the GalaxyS is about 2 years old, so its not top end phone, but it still very good if it has custom rom and kernels.
There is a lot of information on the Playmaker website. There is also a forum there to help you out.
Playmaker do replace the Unity GUI, but you use all the commands you use to.
But I can easy tell you that working with android and a touchscreen, playmaker make it so easy.
Yeah well sadly I dont see this becouse like I said the lack of tutorials - everything I found were a few 1 Year old Tuts from the Playmaker YT Channel and some Tuts thy sell for money @ a Blog - So I really cant say Playmaker makes it easy =( Oh Btw any Ideas?
If you go to the forum you can pick up new stuff and a lot of help.
But even the old stuff do show the basic.
If there is anything you wounder about you should post it on that forum… it is more helpful then here.
I use to answer questions there as much I have time to.
I will look at that link later. i can not look at it now
I’m curious what is the reason for this? Is it a proformance issue, just difficult to work with or some other reason?
Performance. Each UI Element with the built-in GUI methods creates one draw-call. The more drawcalls you get the slower your scene will be. When you use 3rd party GUI toolkits, you can put all the buttons/textures into one big atlas and do the whole UI in 1 or two drawcalls instead of 30+ on GUIs which are more complex than 3 items
That’s exactly what I wanted to know. Thank you Tseng.
Wow important information Thank you o.o
This UI system still boggles my mind. How a company that is so good with 3D graphics couldn’t make a 2D scene graph layer that would be drawn once per frame after all objects are created and laid out is beyond me.
Mike
It probably lies in it’s origins: It was first available on PC and MAC i guess and there it’s not that much of an issue. Though, there are other problems with the GUI system, as that everything that goes beyond 5 buttons is going to end in spaghetti code, because there is no OOP based GUI system.
Yeah this is what I meant by the 2D scene graph. Coming from Flash and it’s display list, the Unity GUI was a bit to swallow at first.
I know it wouldn’t be that hard for them to implement, a simple Sprite framework that was drawn on it’s ui layer or camera. The community could then fill in the rest with a decent UIComponent framework.
Mike
This thread is great.
Can I pitch in and ask some questions as well?
How are Androids at managing model memory vs texture memory? What kind of bottlenecks will I be running into if I have several meshes on-screen? I really want to push this as far as possible with optimization, to have my games running on the slowest machines.
I don’t have a lot of precises answers for you but I do have one piece of good advice. Search around the internet and find one or two devices that have about the lowest processor that you want to support.
Once you have those, use them to test your game and actually develop on them. When doing it this way, everything is down hill once you find the baseline of the processor.
Just remember it’s really easy to add functionality, really hard to take it away and a real waste of time to optimize.
Mike
Im still thinking about the Unity GUI - I never really used it because I work with NGUI but I wonder if it would decrease the performance of the Game that much. This may be an imense Unity weakness
On Mobiles it does decrease the FPS significantly, that’s why so many complain about it. On modern PCs you may not notice it that much unless you have several 100 UI items.