Should I go with XNA or UDK for an Indie action game

Started by
7 comments, last by Alpha_ProgDes 11 years, 8 months ago
I need some advice on whether I should use XNA or UDK to develop an Indie action game. Think 70's Hong Kong kung-fu movie, that's the gameplay I am going for. The game world will be distopian future.

So anyway, I've spend the last 2 years learning XNA, I've developed two small 2D games and one mid-size 3D shooter, all just for learning purposes. Now it's time to start work on the actual game. Initially I was going to go with XNA, but a couple of my friends who are game artists are strongly advising that I go with UDK (or Unity) instead.

I've done quite a bit of research on UDK (and Unity) so, while I've never used it, I know what it is and what it is not, i.e. it's a tool as opposed to XNA, which is a programming framework.

So I am at a cross-roads. I am not sure which way to go. Here are all the considerations I've been mulling over while trying to decide:

1. I am a programmer by education and trade. I have 3 years of professional game programming experience. I am currently not in the game industry (working as a JAVA programmer for an energy company), but I want to get back into it. If I started using UDK and then applied for jobs wouldn't it seem odd for a programmer to be using a tool some other programmer developed, i.e. won't the HR people think, "if you can program while not just make your own engine?" Isn't UDK more for level creators and designers, as opposed to programmers?

2. It's impossible to predict what HR people in a game company may or may not be looking for in an applicant, and even if it was, should that guide my decision? Wouldn't the better decision be to just go with the platform which would allow me to make the best game possible? If so, that makes consideration #1 obsolete.

3. I've already invested 2 years in XNA and have "an engine" sort of built. Of course, it's nothing compared to Unity or UDK, but it can put 3D terrains and animated models on the screen. I've no level editing tools, but that's something I could develop (or download, there probably are 3rd party Level Editors for XNA).

4. Is my time better spent focusing on gameplay programming and game design (which would be the case with UDK) or tools and engine development and gameplay programming and game design (which I would have to do if I stuck with XNA)?

5. I don't want to be an engine and tools programmer. Five years down the road I see my self more as a gameplay programmer and designer. My ultimate goal is to be a game designer. With that in mind, wouldn't it be better to go with UDK, which would allow me to focus on gameplay programming and design?

6. Experience with which one would be more useful in getting a job in the game industry?

7. UDK is multiplatform, XNA isn't. Not sure how much of a difference that makes. I want to develop console games.

8. With UDK I would pump out games faster, but I won't learn as much. Should I sacrifice knowledge for the sake of speed?

9. I can develop higher quality games with UDK, as it is the industry standard.

10. Will XNA be supported in future iterations of XBox?

This has been bothering me for about 2 weeks now. Any help would be appreciated.
Advertisement
1) Most UDK games will have some sort of code written ontop of the UDK. It uses its own scripting language though or in the pro version you can get C++ access. So its not just for level designers. Someone had to write code for gears of war...

2) I don't know

3) What was the question?

4) Depends on what interests you more, ultimately if you prefer making the underlying code to the game then XNA might be better as loads of it is done for you in UDK, if you prefer making the game then use UDK

5) Probably yes

6) UDK is used in tonnes of games (an incomplete list I found the other day had nearly 300 entries on it) so you can get a job in the industry with it. XNA I haven't seen pop up much but the skills will transfer into the industry

7) UDK gives you all major platforms. XNA gives you WIndows, windows phone and Xbox. There is however monogame which is sort of a clone of XNA running on mono instead of .net, applications can be ported easily between the 2. Monogame opens up mac, linux, android (seperate monodroid license applies) and iOS (monotouch license applies). It also has preview releases for the PS Vita. PS3 and wii will still be left out.

8) You only get out what you put in, you can spend tonnes of time on a UDK game or an XNA game, won't make much difference.

9) Just because its the industry standard doesn't mean your going to get higher quality games out of it. If you give UDK a 3d model of a minecraft creeper it won't look any better than one put in XNA (before putting funky shaders on it anyway which can also be done in both)

10) XNA development does seem to have stopped unfortuneately. However microsoft are still making money off of XBLIG so I expect they will capitalise on this in future generations of xbox.



One other option I feel you've left out is unity. That is programmed with C# aswell and although its a little higher level than XNA it keeps alot of the flexibility that XNA has over UDK. It does suffer from the same thing as XNA though, not being used professionally as much (not to say its not being used in large indie companies, not so much AAA studios though)

. If I started using UDK and then applied for jobs wouldn't it seem odd for a programmer to be using a tool some other programmer developed, i.e. won't the HR people think, "if you can program while not just make your own engine?"


Rather the opposite: "Why did he make an engine, when all he wanted to do was a game?" Make games, not engines. Especially if you want to be a gameplay programmer smile.png


With UDK I would pump out games faster, but I won't learn as much. Should I sacrifice knowledge for the sake of speed?


Wont't learn as much? In both cases you learn programming, and I would say that is a skill you can apply whatever engine/framework you choose to work with happy.png



My general advice would be to focus on implementing interesting gameplay rather than writing engines. In that case, using existing tools or engines is far superior than spending alot of time writing your own.

Good luck!



3) What was the question?


I meant to ask there, would the 2 years I've invested in XNA not be wasted if I decided to switch platforms now?

Thanks for the great answers to all the other questions, to you and Mizu.


I meant to ask there, would the 2 years I've invested in XNA not be wasted if I decided to switch platforms now?



I would assume they wouldn't be wasted, since you'd still know how to program. You'd just be using a different language.
I'm not even a professional programmer, and I didn't find it very difficult to go from UnityScript with Unity3D to C# with XNA, as far as general syntax goes. I believe it's general programming stuff that's most important, and you'll still use that even if you're using an engine.

[twitter]Casey_Hardman[/twitter]

Thanks to all who answered. At this point I am leaning towards using UDK for my game. Just need to get a new laptop first.
UDK is a huge and heavy game tool and its editor is packed with features. Not so ideal for a laptop processor/graphics or its smaller screen size.
Unless you move around a lot, getting a desktop would definitely be the way to go.

UDK is a huge and heavy game tool and its editor is packed with features. Not so ideal for a laptop processor/graphics or its smaller screen size.
Unless you move around a lot, getting a desktop would definitely be the way to go.


I prefer to do most of my game development at a local coffee shop because i can focus better there. Too many distractions at home. So yea, it'll have to be a laptop.
Frankly, you can use both. But if you're working with a team and want fast productivity tools, then probably Unity is the way to go. It's cross-platform (except Windows Phone 7), popular, industry-tested, and industry-approved. So, IMO, go for that.

Beginner in Game Development?  Read here. And read here.

 

This topic is closed to new replies.

Advertisement