Advertisement

Is Unity good for learning?

Started by December 28, 2014 12:23 AM
13 comments, last by X_rploader Boss 10 years ago

Hi!

I'm a mature person who always wanted to learn programming, started a couple of times with C++ and C# but other commitments kept me from getting somewhere with it.

I now have more free time and would like to get stuck in it, my general idea is to use a project i can get behind like a simple 2D game and learning as i go along, like following a few tutorials and then try to change assets/make changes to the template and take it from there.

Now, my idea is to learn programming not only for games and i think i narrowed down the language to C# as will allow to do that and also get into software development for MS platforms (?).

Last time i've started with some XNA tutorials but not sure it's still a thing these days, heard about Unity being so good but will it be good if my main goal it's not actually 3D game development?

It sounds a bit convoluted but i hope i got my point across.

Thanks!

Using an engine like Unity can teach you a bit about programming if you're a total beginner, but frankly its more designed for productivity than anything, you'll maybe learn the syntax of the language and get some work in with it, but not necessarily complex topics. You'll learn more about making games as an overall production experience than you will about coding them in particular, you'll have a lot of drag and drop where you would be coding yourself.

If you don't want to learn to make games but just to program you probably should be starting with tutorials or something and just making some simple applications, sure you can make things like console text games simply, and they test your language knowledge. That said, trying to make something like a 2d or 3d game from scratch, even with the help of a framework like XNA or even SFML or something, is extremely challenging. Frankly you'll learn a lot of stuff that won't even be remotely useful to you in a lot of programming fields, and some that will be.

Game coding in particular tends to take an amalgamation of other programming fields and shove them together to make games. We focus a lot of graphics and 2d/3d world interaction(simulation is all about this) we might end up writing GUI systems for ingame menus and user interfaces that rip the event based model right out of your standard GUI programming libraries like QT, we end up having to deal with time, on a very precise level as well as things like physics, ai, audio. A lot of that stuff isn't even remotely applicable to certain fields.

I guess what i'm trying to say is that you should be specific about what your most important goal is, making games can be fun but in general its a -lot- of work, even just making tech demos really puts your coding knowledge through the wringer sometimes, forget the people doing innovative stuff like inventing new ways of doing everything, its a challenge just to implement existing things usually.

Advertisement

Satharis hit the nail on the head. Where you should start depends on your experience as a programmer and your goals as a programmer. I had been writing programs of various types and languages for four years in college before I took a crack at game development.

If your goal is to get experience making a game, start with an existing engine (Unity or anything else).

If your goal is to learn how to build a game from scratch, design your own engine using existing libraries (SDL, etc.). Then use it to make a game.

When I got started in game development I created my own engine. It was a ton of work and I learned a lot more than I otherwise would have if I used an existing engine. But I paid a huge cost for that experience, as it took years before the engine was capable and stable enough to produce the type of game that I wanted to create. If I used a pre-made engine, I would be 2-3 years further ahead than I am on that title right now.

Hero of Allacrost - A free, open-source 2D RPG in development.
Latest release June, 2015 - GameDev annoucement

Using an engine like Unity can teach you a bit about programming if you're a total beginner, but frankly its more designed for productivity than anything, you'll maybe learn the syntax of the language and get some work in with it, but not necessarily complex topics. You'll learn more about making games as an overall production experience than you will about coding them in particular, you'll have a lot of drag and drop where you would be coding yourself.

If you don't want to learn to make games but just to program you probably should be starting with tutorials or something and just making some simple applications, sure you can make things like console text games simply, and they test your language knowledge. That said, trying to make something like a 2d or 3d game from scratch, even with the help of a framework like XNA or even SFML or something, is extremely challenging. Frankly you'll learn a lot of stuff that won't even be remotely useful to you in a lot of programming fields, and some that will be.

Game coding in particular tends to take an amalgamation of other programming fields and shove them together to make games. We focus a lot of graphics and 2d/3d world interaction(simulation is all about this) we might end up writing GUI systems for ingame menus and user interfaces that rip the event based model right out of your standard GUI programming libraries like QT, we end up having to deal with time, on a very precise level as well as things like physics, ai, audio. A lot of that stuff isn't even remotely applicable to certain fields.

I guess what i'm trying to say is that you should be specific about what your most important goal is, making games can be fun but in general its a -lot- of work, even just making tech demos really puts your coding knowledge through the wringer sometimes, forget the people doing innovative stuff like inventing new ways of doing everything, its a challenge just to implement existing things usually.

Thanks for the extensive reply to both!

I have very modest goals when it comes to the game i would like to make as it's more about getting an understanding of the many aspects involved.

I'll give Unity a try, follow a few tutorials and see how it is, is there any particular Framework you'd suggest that goes well with C#? As i've mentioned i've done little work with XNA but it seems outdated these days as on their website the latest news are from 2 years ago (was it mainly for Xbox360?)

A Framework that facilitates the publishing on a given platform (prefer PC) would give me an edge as for motivation to see the project through, even if i don't end up releasing it in the end.

Thanks for the extensive reply to both!

I have very modest goals when it comes to the game i would like to make as it's more about getting an understanding of the many aspects involved.

I'll give Unity a try, follow a few tutorials and see how it is, is there any particular Framework you'd suggest that goes well with C#? As i've mentioned i've done little work with XNA but it seems outdated these days as on their website the latest news are from 2 years ago (was it mainly for Xbox360?)

A Framework that facilitates the publishing on a given platform (prefer PC) would give me an edge as for motivation to see the project through, even if i don't end up releasing it in the end.

Not entirely sure what popular frameworks/libraries are used on C# right now, you could always go for Monogame, the cross platform port of XNA, last I checked that was still getting updated even though they discontinued XNA.

So Unity and UDK serve the same purpose right?

Apart from being game engines they leave the rest of the programming to the individual?

Was looking into software and it's so good these days that heavy ones like Photoshop and Maya offer light subscriptions models, used to be prohibitive to use those...

Advertisement
UDK isn't really a Thing any more; it is no longer being updated.

Instead if you are interested in getting hold of the Unreal Engine to use then you should be looking at UE4 at http://www.unrealengine.com.

UDK isn't really a Thing any more; it is no longer being updated.

Instead if you are interested in getting hold of the Unreal Engine to use then you should be looking at UE4 at http://www.unrealengine.com.

Thanks, noticed that UE4 it's only paid for and rather give Unity a go and take it from there, do you know about C# compilers?

I see there's only MS Visual Studio Express (not sure how limiting this version is) and Mono which i know nothing about, seems interesting because it runs on other platforms as well, which one should i pick?

UDK isn't really a Thing any more; it is no longer being updated.

Instead if you are interested in getting hold of the Unreal Engine to use then you should be looking at UE4 at http://www.unrealengine.com.

Thanks, noticed that UE4 it's only paid for and rather give Unity a go and take it from there, do you know about C# compilers?

I see there's only MS Visual Studio Express (not sure how limiting this version is) and Mono which i know nothing about, seems interesting because it runs on other platforms as well, which one should i pick?

Visual Studio Express is a little bit weird. It's separated into a few different versions. I personally use their professional version, but I believe that the version you'd need is called "Visual Studio Express 2013 for Windows Desktop." Express should provide all the features you could ever need.

To address which compiler you should pick, that's totally going to be up to you. If you're using Unity, stick with the IDE (Monodevelop/Xamarin Studio) that is shipped with it. However, if you're not using Unity, I would go with Mono. While Mono doesn't include all .NET platform features, I don't think you'll be missing out on anything. Mono will be slightly faster also and will run on platforms other than Windows.


Visual Studio Express is a little bit weird. It's separated into a few different versions. I personally use their professional version, but I believe that the version you'd need is called "Visual Studio Express 2013 for Windows Desktop." Express should provide all the features you could ever need

Actually Microsoft just released the community edition of visual studio for free, which has all the pro features such as plugin support.

http://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx

This topic is closed to new replies.

Advertisement