Game Development Stack Exchange is a question and answer site for professional and independent game developers. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

So I am pretty new to C#, I have some python and javascript experience, but nothing substantial.

I have read a lot about C# and Unity and I know they are the tools I want to use.

My question is: Should I be reading books about C# or should I just start hacking in unity and piecing the game together part by part?

Right now I am going through the book, HeadFirst C#, and it is very good, but I taught myself web design and javascript by just creating and hacking until I got the results I wanted then looked at other code to see ways they did it and improved my code.

The issue is that with the browser I got immediate results and it was all under one roof, where developing games is a completely different monster. I am just wondering if my time would be better spent buying a book that uses C# to teach you unity, and doing that instead, or if the time spent in HeadFirst book is going to be valuable.

Thanks a ton, I am having difficulties using my time, and I just want to maximize it as I don't have a lot of free time.

Edit: Hopefully this isn't to broad? If it is, I will delete and go elsewhere just let me know. Thanks.

share|improve this question

closed as not constructive by Byte56, michael.bartnett, msell, Tetrad Jun 24 '13 at 17:07

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

The best way to learn is online tutorials on the unity website is lots of links from starting with C# all the way to my first C# game but evan though the book is still good but you have to put it into practis otherwise the book will make no sence if you need any help with C# inbox me – user32278 Jun 24 '13 at 12:36
@97s In my opinion, this is a "how to get started" question. Everyone learns in different ways, so this question can't have answers that are much more than opinion. I've voted to close the question. – Byte56 Jun 24 '13 at 14:02
up vote 5 down vote accepted

Your question is incredibly broad but still very answerable.

This answer completely depends on your personal preference with the way you work and more importantly on what will make you as a developer finish a working game.

Will hacking together bits and pieces and then adding the polish later be easier for you to finish a working version of your game or would you prefer to structure it properly with a knowledge of C# first and then direct your project workflow with a plan, going in the correct direction from step 1 to final product?

This can be difficult to know and so my advice is to simply:


There is nothing better than to try even if you initially fail. I myself learnt how to do the unity engine work by copying Half Life 2 puzzles (mainly the physics based ones) into separate test levels in Unity3D. I did this to figure out how components and colliders worked together and how to write this in C# rather than JavaScript (which seems to dominate a lot of Unity scripting.) This then helped me work on my turret defense game by applying the same physics and collision detection to my mortar shells.

I could have read my way to the answer I needed easily and planned the components in C#. However, in actually doing a prototype and trying it myself from scratch without any set guidance I learnt not only what I needed to know for that problem at hand, but a lot more as well. The prototype level actually became used in the final project (showing that you can start with something rough and improve it after, just like you mentioned.) Also, who knows when this unnecessary extra knowledge won't become necessary in another section of the project?

Try it yourself and see what works for you. If you are going to learn C# and use Unity3D I would highly recommend the Unity tutorials online to understand the engine separately to the C# language. Once you have that under your belt - experiment. I look forward to seeing the results!

share|improve this answer
I am more than happy to piece things together. The first app I ever built in javascript, I built all the little pieces first, then stuck them all together and worked on it till it all worked. It felt great, but again, I get instant results in a browser and it isn't as daunting as a whole framework and engine. I am going to finish the book I think, as it isn't to difficult to do, then I am just going to start hacking like you said. I will build a 10x10 square level, and then get some hero's loaded on it, then move them etc. I guess this is the best way to do things. Thanks for the link as well. – 97s Jun 24 '13 at 12:40
Not a problem, don't forget unity has live editing - similar to the UDK engine. You can edit assets in the game environment as it is running so being able to get the "instant results" is incredibly easy! Make sure to upvote any and all answers that you find useful. – Blue Jun 24 '13 at 12:46
I can't upvote yet! Too new! But I did select yours as the best, although you and jhocking were both helpful in my decision. Also live editing SOUNDS AMAZING! – 97s Jun 24 '13 at 12:48
be aware that changes during live editing can't be saved directly (this is to preserve your defaults so you don't end up making your character always spawn at where you left them!) so if you change something in live editing that you wish to keep, remember to change it in your Scene after you have stopped the Game window running. – Blue Jun 24 '13 at 13:12
Also recommended: Walker Boys Studio tutorial. Just keep plowing away, alternating between learning Unity, and studying C# concepts and making toy programs to test your understanding of the language. You'll learn a lot by trying to do things and having the compiler yell at you or having the program crash in a way you didn't expect. – michael.bartnett Jun 24 '13 at 14:09

I am not familiar with the book Head First C# (or any programming book really, which should communicate to you how I feel about the necessity of reading programming books) but I'm pretty certain it's a bad choice for learning how to develop in Unity. That said, it may be a great resource for learning C# generally, so perhaps it would be worthwhile for you to learn C# outside of Unity for a bit before diving into Unity. I mean, I wouldn't recommend that approach, but perhaps Head First C# could be useful in that way.

I never read any books to get up to speed with Unity, and I'm the main client side developer on a Unity game (I was already extremely proficient at ActionScript 3 however, a language very similar to C# in the sense that both mostly copy their language design from Java). Personally I would recommend diving into projects and learning by doing, with the one caveat that as your learning projects get more complex you should really concentrate on object oriented development.

My path to getting proficient at game programming involved a year and a half at a job where I started with little experience in game programming. Because of that I wasn't being paid a ton, but the amount I learned made it one of the most worthwhile jobs I've had. While the whole approach of "get an entry level job in order to learn the process" may not be feasible if you have literally no previous experience at all (I was hired to develop web games, and I had already used Flash for a bunch of personal projects at that point), you could certainly replicate the aspects of that job which were so useful for learning. Specifically, that job pretty much amounted to a string of small two-week projects, and that is precisely how you should approach learning Unity, with a string of small learning projects (as opposed to trying to tackle something large right out of the gate).

share|improve this answer
So basically go ahead and finish the C# book, just for learning a bit more about the language, then dive into unity by doing and creating small task and hacking them till I get it right like I did web dev? I think this makes the most sense and is probably what I will do. Is unity just that easy to learn, since you read no books about it at all? – 97s Jun 24 '13 at 12:33
Well on the one hand note the line "I was already extremely proficient at ActionScript 3 however, a language very similar to C# in the sense that both mostly copy their language design from Java". So in other words, my never having read any books about Unity might be a little misleading for your position. On the other hand, yes Unity is very easy to learn and a great tool for just diving in and learning by doing. – jhocking Jun 24 '13 at 12:46
Thanks! You guys have given me hope that I was looking for as well as some good resources. Unity seems so amazing for a person who doesn't have a vast programming knowledge to just dive in and hack. – 97s Jun 24 '13 at 12:50

Not the answer you're looking for? Browse other questions tagged or ask your own question.