Several questions regarding Unity for mobile games

Started by
4 comments, last by Av Avt 8 years, 9 months ago

Hello everyone,

I'm considering porting my racing game to Unity to support cross-platform, and there's some points I'm not sure yet so I think it'd be better to ask before actually working:

1. How is Unity in general? I'm a little skeptical about cross-platform development. Usually do you have to do more platform-specific work after exporting from Unity? Is there performance drop comparing to native? There should be a price you have to pay for such sweet nectar, isn't it? Do I have to sell my soul as well?

2. How is device motion (tilting) on Unity? Does it feel as smooth as native?

3. Does Unity support cross-platform connection as well? Is it possible to allow one person on Android and one person on iOS to connect together via LAN/Internet/Bluetooth?

4. Can Google Play/Game Center support be done inside Unity?

5. I would reckon if I want to implement advertisement in my game the ads provider has to support Unity?

It's easy to find general information about Unity, but post-gameplay information is pretty scare. So if you have experience with any of those please tell me also, it's greatly appreciated :)

Advertisement

1. How is Unity in general? I'm a little skeptical about cross-platform development. Usually do you have to do more platform-specific work after exporting from Unity? Is there performance drop comparing to native? There should be a price you have to pay for such sweet nectar, isn't it? Do I have to sell my soul as well?

Why would you export from Unity again?
Unity in itself also represents a platform, a platform that runs on multiple other platforms; or more specific: multiple platforms that run on multiple platforms but with the same interface.
So yes of course you have to do platform specific work porting to and from Unity.

Yes there is going to be a slight performance drop by a high chance in many areas comparing to native but do you really care about this? Or in the words of Bjarne Stroustrup
"[...]People want an efficient language(?), actually most programmers, most of the time just want convenience[...]"

If you think you have to sell your soul to use Unity (I get that this was meant as a joke) then you might have too many expectations at Unity. It has some ready to use 3D tools and IDE, is a basic game engine and utilizes a C#/Java-esque script language.

2. How is device motion (tilting) on Unity? Does it feel as smooth as native?

Personal preferences. Why wouldn't it? You think a few nanoseconds make a difference for the user?
I guess you are a C++ only dev, right? Then a personal little hint from own experience: When working with languages like C#/Java then you have to adapt a totally different ideology. It is easier to learn the formal language differences then learning how to "think" in this language.

3. Does Unity support cross-platform connection as well? Is it possible to allow one person on Android and one person on iOS to connect together via LAN/Internet/Bluetooth?

I am not sure, but I would think so, haven't tested though.
The reason behind XBox, PS4 and PC not being compatible with one another is probably connected to marketing strategies.

4. Can Google Play/Game Center support be done inside Unity?

Yes. Either wrap those functionalities by yourself or use one of the already existing Unity plugins.

5. I would reckon if I want to implement advertisement in my game the ads provider has to support Unity?

No. If you have a billboard out of plastic your ads provider doesn't need to support plastic, does he?
If you want to provide ads in your games you have to create "billboard"-like panel overlays where your ads partners can display their advertisment.
There are plugins automatically doing that for you, you just have to set the size and position of those billboards.

Be warned though that ingame ads are never going to pay off, they are more harm then anything.
First of all your app is going to get 1 star ratings because of ads, second that it is going to get even more 1 star ratings because Google Play and Game Center is swarmed with little kids who like to give 1star ratings for things that are totally stupid with the comment "shit shot shit shit shtitshti shti shit shiot!!!" lowering your reputation even more (Note: This reputation is then also calculated in your upcoming games! Yeeeaaaahaaa!). If you want to have a grown up and serious user base you have to demand money.
One of my favourite comments (one of many) so far for one of my own games I put into the google play store for Cats(!!! That is what it says in the name and in the description and like most other comments) for free:
"[1Star] boring this game is so stupid shit boringnbad"
I wish I could say there is only one of them but such comments have reduced the star rating to 3.X of 5.
I am too much fremdschämen to be able to count them all, gladly Game Center and Google Play is doing the work for you >.<
Seriously, demand money because then people put mind in gear before opening mouth and have informed themselves (mostly) before buying something.
Whoops, I think I drifted a little bit apart from your questions and this topic.


Have fun!

Mirroring all of IceCave's comments except #3.

Unity has its own network connectivity that you can use for some things in the game if you choose. That bit of protocol is tuned to keeping Unity objects in sync with each other between two direct peers of the same build, and would not work out very well on a cross-platform game.

However, Unity also supports working with any other custom networking you want. Assuming you build a network protocol for your game that is friendly to multiple platforms, then you can implement and follow that same protocol in your own game. For instance, if your networking for a turn based game is all REST-based, there would be no difficulty implementing it on any platform, including under Unity.

It really depends on what you expect from networking and what you plan for network communications.

Thanks for your replies!

Be warned though that ingame ads are never going to pay off, they are more harm then anything.
First of all your app is going to get 1 star ratings because of ads, second that it is going to get even more 1 star ratings because Google Play and Game Center is swarmed with little kids who like to give 1star ratings for things that are totally stupid with the comment "shit shot shit shit shtitshti shti shit shiot!!!" lowering your reputation even more (Note: This reputation is then also calculated in your upcoming games! Yeeeaaaahaaa!). If you want to have a grown up and serious user base you have to demand money.
One of my favourite comments (one of many) so far for one of my own games I put into the google play store for Cats(!!! That is what it says in the name and in the description and like most other comments) for free:
"[1Star] boring this game is so stupid shit boringnbad"
I wish I could say there is only one of them but such comments have reduced the star rating to 3.X of 5.
I am too much fremdschämen to be able to count them all, gladly Game Center and Google Play is doing the work for you >.<
Seriously, demand money because then people put mind in gear before opening mouth and have informed themselves (mostly) before buying something.
Whoops, I think I drifted a little bit apart from your questions and this topic.


Have fun!

I plan to put ads in the LITE version of the game before buying. Interesting opinion on ads though. The nonsense ratings are terrible, I got them too, but in my games ads display doesn't seem to be the cause.

Mirroring all of IceCave's comments except #3.

Unity has its own network connectivity that you can use for some things in the game if you choose. That bit of protocol is tuned to keeping Unity objects in sync with each other between two direct peers of the same build, and would not work out very well on a cross-platform game.

However, Unity also supports working with any other custom networking you want. Assuming you build a network protocol for your game that is friendly to multiple platforms, then you can implement and follow that same protocol in your own game. For instance, if your networking for a turn based game is all REST-based, there would be no difficulty implementing it on any platform, including under Unity.

It really depends on what you expect from networking and what you plan for network communications.

I want to ask more detail about this. I just want to send/retrieve json messages between peers. Can that be done with Unity's network connectivity, or do I have to do a customized service for each platform?

I just want to send/retrieve json messages between peers. Can that be done with Unity's network connectivity, or do I have to do a customized service for each platform?

Super easy. Unity gives you the .net libraries plus its own web/http libraries.

You will still need to write what happens in response to the messages, but transmitting messages that way isn't hard.

If you don't feel like doing the small amount of work yourself, there are libraries available both free and paid, including several popular wrappers available on github. They reduce the few lines of work you'd need to a single call that includes all the necessary error handling for you, too.

Awesome! Thank you. Being able to connect people on different platforms is the main reason I'm trying to port this game. I'll try out Unity now smile.png

This topic is closed to new replies.

Advertisement