It seems like a natural thing to do, start with 2D and work your way to more complex problems.
I just finished my first 2D game, and it was definitely a simple game, but unity in it’s current state seems like 3D is more the focus which is why there were certain 2D problems that were sort of difficult to solve.
So I’m thinking for my next big(ish) project stay with the 2D theme, but is there really any reason for that. Movement in a 3D game is certainly more complex, and obviously physics make a difference, but overall is it really that much more complex than making a 2D game in Unity?
Since the engine takes care of a lot of the really complex problems it feels more like learning the API which is as difficult no matter what dimension you are working in.
It’s just that there definitely seems to be a consensus to learn by making 2D games, so I’m wondering if that really holds true with learning unity, and why people have come to that conclusion.
I’ve honestly found Unity to be far easier for 3d games than 2d. Until 4.3, when I want to work in 2d I use XNA. Otherwise, Unity makes 3d painfully easy.
That’s what I was sort of thinking. 2D art is infinitely more simple to create and animate and all that… As someone who is not artistic at all it’s probably the biggest hurdle to game dev for me.
On the flip side of that there are a lot of assets you can buy or even get for free which helps, but there again many of them are 3D.
Me, for instance. I’m much better at 2D than 3D, as I have a background in pixel art; I find UV mapping at best counterintuitive. Also, the geometry in 2D is much easier to work with (especially since Unity Tech introduced quads!)
I know of people who can whip up 3D that looks at the very least OK in a matter of a few hours (Lachadonan for one.) It’s all down to what you can do.
To elaborate, there are many situations where 2D will easily beat 3D in development cost, for example Rayman Legends, or art-heavy games. In the spirit of adding to the thread some observations:
retro art can be the quickest to develop with, but you either will need unity 4.3 or some middleware such as 2D Toolkit, otherwise its going to suck for you.
detailed art can take longer than simpler 3D games, however you can offset this with middleware such as Spine for flash style keyframe animated pieces, this is a development speed gain. Otherwise, with detailed art, all the unique frames of animation are absolute MURDER on development times.
3D becomes much slower across the board to develop with if you go anywhere near AAA for example normal, spec, diffuse textures, LOD, skinning, uv mapping and so on - this is where it gets downright filthy in development times. However, if your game is cleverly put together with very heavy use of prefabs it can still break even with a detailed 2D title, as you’re able to rotate and scale prefabs to generate much more art than it becomes feasible - this is the approach hawken took.
So ultimately (and we do speak from experience here at Simian Squared) the real bottleneck is usually the media, not the code. We find doing a decent 2D title in code is often as long as 3D due to the fact that Unity does an awful lot of heavy lifting for you for 3D games. Once you get the code down, you’re generally just polishing and waiting for art.
From a hobbyist perspective I feel a game which uses fully all three dimensions has in general more things to wrong and there will be more ways to break the game. But 2D can be very limiting sometimes.
My approach is to always first try 2D and then gradually move to 3D (or 2.5D) if it feels more appropriate. Although lately I have been obsessed about procedural 3D art stuff.
I have never used any 3rd party middleware for 2D. While sure way inferior to 3rd party middlewares my own simple editor extensions has served me so far.
To answer OP’s question: You can make 2D Games with Unity. Either you write your own 2D Solution or you can buy a plugin (2D Toolkit, Uni2D, ex2D etc.). With Unity 4.3 you’ll get Unitys own 2D toolset.
The question if it is easier depends on so many different elements. If you’re good at painting/drawing and can work with Photoshop/Illustrator, but did never touch a 3D Modelling tool and never made anything 3D related I wouldn’t recommend starting a 3D game. Of course you could learn. The time you spend on learning 3D you could have already spend creating in 2D.
Of course, the very same applies (as said above) vice versa. It’s not easier nor is it more difficult. It just depends on your very own skillset and your time.
Yeah on my first 2D game i had to roll my own solutions to problems that in 3D space would not have been problems. Which is why I was asking. I probably spent more time on figuring out those little quirks than actually making the game.
Looking forward to 4.3… I like the idea of staying in this 2D space for some time while I get comfortable with unity as a whole, but I was just wondering if there was any real benefit to doing that since Unity 4.2 is very obviously geared towards 3D.
For some odd reason, I started in 3D and I find it pretty easy to understand, however 2D scares me. Why does 2D scare me? I don’t really know, it just does. Since I started in 3D, if someone were to ask me to program a game in 2D, it would feel like I was a complete beginner again I think.
That being said, I agree with hippocoder. I thought the programming of the game would be the hardest thing to accomplish, but as it turns out, getting awesome looking 3d models and assets is really the most difficult/expensive/time-consuming. At least for me. I’m pretty sure I’ll have all of the coding done for me game, before I get even 50% of the 3d models I was thinking I’d have. In my game right now, I think I will be “just polishing” and waiting for the 3d assets I need, as hippo said.
Hah I can agree with that, I can do 2D and 3D art of same quality in about the same timeframe, and infact I started out in 2D art, but I am so intimidated by 2D in Unity. I know you have to lock all objects on one axis, but how do you move them? How do you collide them? How do you render them? I couldn’t tell you.
As for the bottleneck, I don’t know. I’ll finish a 5-10k poly model in about 16-20 hours. If it’s a static model, there’s no code to write anyways. If it’s a car or weapon or whathave you, in the same timeframe I will probably have a very basic code prototype that kinda sorta works but still requires tons of polishing and “juice”. I guess it depends on the task on hand and whether you’re more familiar with the modeling or programming part.