Unity3D to Unity2D how hard?

Hi there,

I’m currently working my way through the Codemonkey 10 hour Unity video (it’s my first experience of Unity development but I’m an experienced C# developer of 10 years).

After this I would like to create a prototype for a game I hope to eventually make in 3D, but make it in 2D.

I have already prototyped it in HTML5 and javascript in 2D but I’d like to do it in Unity in 2D…is this a stupid/unnecessary step in the development process? Should I just jump straight for the 3D one?

Thanks,

Alex

There is no Unity2D. It’s all Unity3D.

Once you work through some 2D tutorials this will become obvious.

It’s great that you’re already a coder but coding is only a tiny part of Unity.

The rest is knowing how to interoperate with the engine itself, how to connect stuff, how to get callbacks from the engine, etc.

Get to it! :slight_smile:

Imphenzia: How Did I Learn To Make Games:

Stop making excuses!

1 Like

There are some systems that are intended for 2D but aside from that nothing changes. You can combine 2D and 3D components in the same scene. For example if you wanted 3D visuals but 2D gameplay you simply make 3D objects, attach 2D physics components, and treat one of the axis as a way to layer objects.

I am realising this increasingly. In fact I think it’s actually a very small advantage over someone who has never programmed before. What I am realising increasingly is that what Unity actually is designed to do is to create a tool that requires very limited programming abilities but essentially streamlines things for artists and animators etc. It seems very asset focused in terms of its workflow

On the surface it definitely seems like that. Though a lot of things you can do primarily or purely through code. In the end you’ll always need a scene, game objects and various assets, but you can definitely still leverage your programming skills as much as you care to.

If you were doing the Visual Scripting stuff (boxes and dragged wires) then yes.

The big thing you have as an engineer is the thought process of digesting any particular problem into pieces.

That’s what is the hardest for non-engineers. They think of it all as one morass of stuff rather than the compositional elements.

So here’s the three major raw knowledge coding buckets I like to think of:

  • C# syntax (you got this)
  • .NET API (you probably got this)
  • Unity API (this is new to you, but just like any API, there’s plenty of docs and examples)

And then there’s the asset organization and ways of doing things, and there isn’t any best way of course, like anything.

So… go nuts! Jump in! Do lots of stuff…

I’m finishing this CodeMonkey course and looking at what I want to do. I think I’m going to prototype this again in Unity in 2D, but make somewhat decent art. My main issue with trying something in 3D is I find I am terrible at the animation side of things, and in order to get even remotely good, it would take ages. Alternatively I am quite good at drawing and think I could do 2d sprites a lot better than I can make 3D models.

I would imagine this is one reason that a lot of people want to go with 2D over 3D games? The approachability of creating the assets? Creating 3D assets seems like it would take maybe even 10x longer than programming the game, with regards Unity.

That’s really a thing you have to answer for yourself… to me the best way to do that is to do lots of different games, and focus on lots of different elements of those games: code, art, sound, gameplay, etc.

Each area is a different specialty, and as you can see from the “Stop Making Excuses!” video above, there are plenty of free assets out there to start from. No sense forcing yourself to do something you’re not good at.

I recommend spending one hour each day, just pick your favorite high energy time of day and sink into it.

Don’t be afraid to abandon stuff you’re not getting. Save it and move on. Expose yourself to LOTS of different challenges, ideally challenges just beyond your capability, so it is both within reach and requires you to grow.