From XNA 2D to Unity to XNA 3D

Started by
2 comments, last by obizues 11 years, 7 months ago
Hey everyone,

I feel some of my questions have been too vague for what I'm trying to understand. My ultimate goal is to make 3D games with C++/DirectX11. I'm currently making my second XNA 2D game with the first being a Pong clone with extras.

What in your opinion should I have a handle on before advancing to Unity3D? What sorts of concepts or checklist should I complete keeping in mind I want to eventually do 3D?

When I do start using Unity 3D what should I try to accomplish before I then move on to using XNA to create 3D?

I'm assuming this timeline is slowly bringing me into understanding the game loop, states, programming movement etc... Then getting used to working in 3D with an established engine, and then taking away the some of the training wheels little by little. I just don't want to skip something and jump into the deep end.

At the same time I want to advance without stalling on 2D stuff or unity too long.

I guess my goal is to advance to the industry used methods by making games one difficulty level at a time.

More or less I'm looking for a list or set of things I should accomplish at each level before moving on.
Advertisement
I'm curious why the move to XNA 3d / C++ DirectX 11 is needed at the end smile.png

Personally, if I were you, I'd dive right into Unity, since it provides a very easy intro to all the necessary bits of learning the art of gamedev, and scales very well from beginner stuff through to extremely advanced. In my view, the only reason you'd want to extend yourself beyond Unity is purely if you intend on being a C++ game programmer working for a studio, or possibly if you hit some specific Unity limitation. Note that in version 4, coming soon, DirectX 11 will be a feature.

On that basis, I dived in, resolving to move forward with my own game engine when I hit the limits of what I could achieve in Unity. So far, the biggest limitations have been art, and the hardware platform being used. I can't get near the limits of Unity rendering and can't see how many thousands of invested hours in low level engine programming would translate to any advantage in the quality of my game output.

Even if I did manage to write my own engine, I'd lose the benefits of a well built editor, a proven workflow for variety of 3d platforms, and not to mention the wealth of scripts and the whole community, and relatively easy porting to IOS, Android, Xbox, PS3, Windows Phone, etc.

I am always slightly sceptical of going down a route because it's perceived as "the industry standard", unless as I caveated earlier, you specifically want to work in "the industry".

This is evaluated by me constantly, as I want to keep moving forward as fast as possible, but for now, really getting your teeth into Unity is like climbing onto a gamedev rocket.
Incidentally, specifically regarding your goal to get into the industry, I see many shops are picking up Unity - and I expect many game engines will shift towards c#, mainly because the parts of programming that are intensive enough to benefit from C++ efficiency, are likely to benefit a great deal more from moving to shader programs, i.e. graphic stuff, and later on, compute shaders and their massively parallel potential. The evolution then, would be to a simple oop language like c# for non time-critical game logic, with hardcore graphics logic happening in shader scripts. It's one of the reasons that Unity, despite lacking C++ "scripting", can still perform as it does.
I am currently finishing my second game in XNA and doing now after taken a good 20 hours of tutorials in Unity I'm ready to start learning more by actually making something.

That being said the industry standard is C++ and unless I can have someone tell me that AAA studios would hire me as a programmer with lots of Unity experience rather than moving to C++ at some point I feel I need to get there.

In other words, I need to learn 3D with some hand holding of Unity at first, and then moving toward the real stuff. I guess I'm using Unity as a set of training wheels to get there.

Like I said though, I only am basing this on what I've heard here.

This topic is closed to new replies.

Advertisement