Unity3D vs Flash for mobile games

Just one very simple question. Is it worth to start working in Unity and create 3D games for mobiles ( maybe 3d defense, for example ), or stick with 2d games. I know that 3d games might be much bigger in size, but what do actually players prefer, 3D or 2D?

The answer to "Do players prefer 2D or 3D?" is really not black and white. Any game, 2d or 3d, with solid gameplay is what players will prefer. Some game types work better in 2d, and some work better in 3d. For example, a game like bejeweled or candy crush simply would not work in 3d without major changes to the core mechanic. On the flip-side, a first person shooter game wouldn't work in 2D.

3D is usually harder to pull off. There's generally a lot more that goes into making a 3d game vs a 2d game. Of course, you can have 2d games that have really complicated things in them, but when you go into the realm of 3d games the sky's the limit.

Unity isn't solely a 3D engine, it does 2D very well too. In my personal experience I prefer unity over flash(I've used both extensively). A few reasons I prefer Unity are:

Unity is a game engine. It has things like built in physics and collision detection(both for 2D & 3D), great management of game assets, and a lot of game-centric things that make your life easier. With flash you have to do a lot of this stuff yourself, or use external libraries. Unity just feels like a tool that's ideal for making games.

Unity will give you more performance than flash. This is especially valuable on mobile.

The general workflows in unity feel a lot better to me. To cite one example: you can drop a photoshop .psd file(no need to convert to a .png or whatnot) in your asset folder and its imported -- edit the .psd later at any time, and it will get re-imported and automatically applied to your game. Almost every game asset in unity works this way: 3d models, sounds, etc.

The main downside I see to unity is that in terms of marketability here on FGL -- unity web-player games aren't currently performing so great. For Unity games your best bet right now is mobile. But if you structure your game in the right way you can deploy to all platforms Unity supports with relative ease.

I think that regardless of if you want to do 2D or 3D its worth it to at least give Unity a shot(with the free version there's almost no reason not to). Make some simple things in unity and assess for yourself if you like it better than flash. Regardless of if you end up using Unity, you'll almost certainly end up learning some new tricks that will help you in the long run.

The answer to "Do players prefer 2D or 3D?" is really not black and white. Any game, 2d or 3d, with solid gameplay is what players will prefer. Some game types work better in 2d, and some work better in 3d. For example, a game like bejeweled or candy crush simply would not work in 3d without major changes to the core mechanic. On the flip-side, a first person shooter game wouldn't work in 2D.

3D is usually harder to pull off. There's generally a lot more that goes into making a 3d game vs a 2d game. Of course, you can have 2d games that have really complicated things in them, but when you go into the realm of 3d games the sky's the limit.

Unity isn't solely a 3D engine, it does 2D very well too. In my personal experience I prefer unity over flash(I've used both extensively). A few reasons I prefer Unity are:

Unity is a game engine. It has things like built in physics and collision detection(both for 2D & 3D), great management of game assets, and a lot of game-centric things that make your life easier. With flash you have to do a lot of this stuff yourself, or use external libraries. Unity just feels like a tool that's ideal for making games.

Unity will give you more performance than flash. This is especially valuable on mobile.

The general workflows in unity feel a lot better to me. To cite one example: you can drop a photoshop .psd file(no need to convert to a .png or whatnot) in your asset folder and its imported -- edit the .psd later at any time, and it will get re-imported and automatically applied to your game. Almost every game asset in unity works this way: 3d models, sounds, etc.

The main downside I see to unity is that in terms of marketability here on FGL -- unity web-player games aren't currently performing so great. For Unity games your best bet right now is mobile. But if you structure your game in the right way you can deploy to all platforms Unity supports with relative ease.

I think that regardless of if you want to do 2D or 3D its worth it to at least give Unity a shot(with the free version there's almost no reason not to). Make some simple things in unity and assess for yourself if you like it better than flash. Regardless of if you end up using Unity, you'll almost certainly end up learning some new tricks that will help you in the long run.

Hi. A very helpful information, thank you. Did I understand correctly that Unity is far better than Flash because it's easier and faster to work with? Here Flash == Adobe Air?

Also what about Java? If this is the official language for Android why is not it that popular here?

Flash == Adobe Air yes. It's worth pointing out that Flash does 3D too. In fact for mobile Flash's 3D APIs are far better than its 2D APIs, as they benefit from hardware acceleration. I have no experience of Unity so can't say which is easier but you can certainly use Flash to make 3D mobile apps.

As for Java it's not cross platform. Not on iOS certainly. In theory it works on the desktop but OS vendors have been deprecating it and making it harder for end users to obtain, so far fewer people have it installed today. It’s not a simple install like Air either.

Flash == Adobe Air yes. It's worth pointing out that Flash does 3D too. In fact for mobile Flash's 3D APIs are far better than its 2D APIs, as they benefit from hardware acceleration. I have no experience of Unity so can't say which is easier but you can certainly use Flash to make 3D mobile apps.

As for Java it's not cross platform. Not on iOS certainly. In theory it works on the desktop but OS vendors have been deprecating it and making it harder for end users to obtain, so far fewer people have it installed today. It’s not a simple install like Air either.

Thank you for the answer. Well, as Java is not cross-platform and quite difficult to learn, I understand why it's unpopular here.

As far as I know, 3D game is more laborious to make, but I have no experience in this area. What is your opinion?

As I have learnt on Unity's website the engine requires from you almost no programming knowledge or high artistic skills)). Is it really that good?

It doesn't require you programming or art skill is because there are tons of asset plugins you can use from Unity Asset Store, but if you want to make your very original game you still need to learn how to code

From my point of view, learning C# in Unity is a better way since there are already enough art assets to let you combine to make unique game