Top products from r/Unity3D
We found 76 product mentions on r/Unity3D. We ranked the 116 resulting products by number of redditors who mentioned them. Here are the top 20.
2. Learning C# Programming with Unity 3D
Sentiment score: 3
Number of reviews: 8
AK Peters

3. Clean Code: A Handbook of Agile Software Craftsmanship
Sentiment score: 5
Number of reviews: 5
Prentice Hall

4. Learning C# by Developing Games with Unity 3D Beginner's Guide
Sentiment score: 1
Number of reviews: 5

5. Unity in Action: Multiplatform Game Development in C# with Unity 5
Sentiment score: 4
Number of reviews: 4
Manning Publications

6. Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C#
Sentiment score: 2
Number of reviews: 4

8. The Pragmatic Programmer: From Journeyman to Master
Sentiment score: 3
Number of reviews: 3
Save up to 15% when buying these two titles together.The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users.It covers topi...

9. Programming Game AI by Example (Wordware Game Developers Library)
Sentiment score: 2
Number of reviews: 3
Jones Bartlett Publishers

12. C# 7.0 in a Nutshell: The Definitive Reference
Sentiment score: 1
Number of reviews: 2

14. Head First Design Patterns: A Brain-Friendly Guide
Sentiment score: 2
Number of reviews: 2
100% Satisfaction Guarantee. Tracking provided on most orders. Buy with Confidence!A brand-new, unused, unopened item in its original packaging, with all original packaging materials included.High seller positive feedback for the seller!Lowest price on amazon!

16. Learning C# by Developing Games with Unity 5.x - Second Edition
Sentiment score: 1
Number of reviews: 2

17. Unity 3D Game Development by Example Beginner's Guide
Sentiment score: 2
Number of reviews: 2

18. Design Patterns: Elements of Reusable Object-Oriented Software
Sentiment score: 1
Number of reviews: 2
Great product!

You're very welcome! Wish I could contribute more, but I'm operating on the meager budget of a solo indie dev :/ Also, the video game attorney was on r/gamedev the other day and made some strong suggestions about incorporating other artist's assets in a game. Check out the part on contracting. It can be done, but the contracts are expensive to have written up. So nothing personal, I just want to be as safe as possible. I ordered Unity 5.x Shaders and Effects Cookbook so hopefully I'll be able to write my own shaders in the future but if I'm still struggling I might start bugging you ;)
For the sake of science however, and if you want to give it a whirl, the shader I'm hoping to achieve would be similar to yours except different in the following ways.
Bonus points:
Anywho, thanks again for your help! If you want to see what I'm working on, you can see me devlog here and/or follow on twitter @CWDgamedev
I had the same problem. I ride the subway every day and have a ton of time to read, so I've been trying to collect similar resources.
Here are some resources I found really helpful:
This is a VERY basic (think: learn how to code!) introduction to Unity. I personally found it too elementary, having coded in a few different languages, but it might be a good place to start as it explains basic Unity design concepts like Components, Materials, Colliders, etc.
This is by fast the best 'getting started' tutorial I've found. It walks you through creating a really basic project from scratch using Unity basics and scripts. This is what I based most of my code off of when I first started my project.
This has been the most helpful resource for me. It's not Unity specific but will teach you A TON of great fundamentals for things like how to move a character, common patterns like StateMachines, how to handle AI, etc.... All of these concepts will be relevant and many are already in place in Unity so you'll recognize them right away.
Advanced: Game Programming Patterns - http://gameprogrammingpatterns.com/
This is a book (online/pdf/epub) that teaches the more advanced patterns you'll be applying in your code. I'd suggest this once you finish with the above resources and have been working through your game for a bit.
Buy The Pragmatic Programmer, read it from cover to cover. Let it change your life. It's not a specific language reference but it's pretty much required reading for any new programmer. It's about creating maintainable code, which is more of a mindset than anything, it's also a really really EASY and relatively entertaining read.
https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?ie=UTF8&qid=1520232423&sr=8-1&keywords=the+pragmatic+programmer&dpID=41BKx1AxQWL&preST=_SX218_BO1,204,203,200_QL40_&dpSrc=srch
Another more specific book to use as reference is the Effective C#:
https://www.amazon.com/Effective-Covers-Content-Update-Program/dp/0672337878/ref=sr_1_1?s=books&ie=UTF8&qid=1520232641&sr=1-1&keywords=effective+c+sharp&dpID=51ga39m0W5L&preST=_SX218_BO1,204,203,200_QL40_&dpSrc=srch
They make "Effective" books for nearly all popular languages, and they really are great references. If you don't understand everything in it like co-variance and contravariance google as a lot of good examples of these concepts in practice, as well as definitions. Believe me I understand that these things can get really confusing and frustrating coming from a non-academic background and trying to bridge that gap. But utilizing this book and understanding the lingo will also help you to find more answers to run on your own.
Now, as with anything in programming, the point is not to have to remember everything all the time in these books(despite what try-hard programmers on the internet will tell you). That comes with experience and you're human so don't set yourself up with that expectation. Read them once so you know what is in them, and keep them at your desk for reference.
When you need to construct an interface pull out the book go to the interfaces and give it a glance over to give you an idea on where to go.
There is a saying in programming Favour Composition Over Inheritance.
In short, If you had a
Duck
class and then later on went to make aRubberDuck
or aWoodenDuck
both would inheritFly
andQuack
, not just the contract but the actual implementation.A solution to having composed behavior is not to base it off the same object but to make a contract and extract the behaviour. e.g:
IQuackBehaviour
So your duck might look like:
public class Duck : MonoBehaviour {
public void Quack(){
_quacker.Quack();
}
public void Fly(){
_flyer.Fly();
}
IQuackBehaviour _quacker;
IFlyBehaviour _flyer;
}
might have:
public class SimpleQuack : IQuackBehaviour
{
public void Quack(){
Debug.Log("Quack!");
}
}
While a non-live duck might just... do nothing:
public class CannotQuack : IQuackBehaviour
{
public void Quack(){
Debug.Log("Nothing Happened");
}
}
So you can make a new Duck and set what kind of behaviour it does in the cases where quacking is needed:
var liveDuck = new Duck();
liveDuck.SetQuackStrategy(new SimpleQuack());
liveDuck.SetFlyStrategy(new SimpleFly());
var rubberDuck = new Duck();
rubberDuck.SetQuackStrategy(new CannotQuack());
rubberDuck.SetFlyStrategy(new CannotFly());
and this opens you up to different strategies for more abstract concepts later
var propellerDuck = new Duck();
propellerDuck.SetQuackStrategy(new SimpleQuack());
propellerDuck.SetFlyStrategy(new PropellerFly());
var daveTheArticulateDuck = new Duck();
daveTheArticulateDuck .SetQuackStrategy(new HumanSpeechQuack());
daveTheArticulateDuck .SetFlyStrategy(new JFKAirportFly());
*
If you notice I used the word strategy a lot there. That is because the common name for this approach is The Strategy Pattern.
If you are interested in going down this road there are a number of great books on the subject. This Free Ebook is a great introduction. my personal favourite book on the subject is Head First Design Patterns.
These books help you bridge the gap between knowing the benefits of designing code well and some actual practices to try to do so.
just one Word of warning. Design patterns can be confusing at first. no shame in that. everyone learns at some stage, but for your own sanity Don't use patterns you don't understand**. Patterns are designed to solve problems, If you don't understand the problem well enough to see why the pattern is a solution, don't use it. Copy and pasting patterns is a quick way to an overcomplicated mess of a project. Instead when you have a problem (like this), have a look at some of the ways other people solve it and see what fits your project,
good luck!
If you are a self-learner online is the best way to learn programming and Unity. It's significantly cheaper and paced as fast as you want to go. With that said, learning the basics of proficient programming and Unity is what you would consider an Associate's Degree in college.
You'll need to learn C#, 3D modeling (Blender is free), basics of 3D animation, 3D texturing and painting and of course game programming too. Imagine this as a college degree, you'd have Intro to C# programming, C# programming in Unity, Intro to Blender, Blender to Unity Pipeline, etc.
A good way to get started is simply set up a scene in Unity and build and model an interactive room. Model all your own assets, texture them, and make it interactive. It will force you to be resourceful and takes a more learn-as-you-go approach.
I highly recommend a premium tutorial service like DigitalTutors.com if you can afford it at $30 a month (Udemy is okay but the quality of most of their tutorials are still pretty amateur). YouTube is also a great resource for free tutorials.
You can also go on Amazon and buy pretty comprehensive books if you prefer. Like this http://www.amazon.com/Learning-C-Programming-Unity-3D/dp/1466586524
I'd suggest checking out Brackeys/Sebastion Lague/Sykoo On youtube as well as this website for tons of more in-depth written tutorials, for getting started, there's a ton of resources amongst those references. As far as generic C# stuff, for me the only way to tackle a new language is a good OReilly (or similar) book, I have this book which I believe covers a much newer version of C# than unity uses, but still is incredibly helpful.
Also, this is definitely not such a complex language that anyone should be suggesting taking another path first, yes here are are complex parts to C#, a lot of which I myself have yet to master. But you can do a lot of really cool stuff with simple concepts. I just finished building a physics simulator for my procedural engine and that was using only basic C# skills and built in Unity commands, nothing fancy at all. Don't let complexity scare you away, pick what you want to do, learn how to do that specifically to your satisfaction, rinse wash repeat. Do that for 6 months to a year and you'll be amazed by how much you've learned.
Good luck!
So kudos to you for wanting to create more manageable code. I will take a look at your class when I get some time and give you some ideas, but for now I recommend this book that helped me immensely: Head First Design Patterns: A Brain-Friendly Guide. It is a fun read and goes over some of the most important patterns in OOP. I had to read each chapter a few times and practice coding solutions for the knowledge to sink in, but what you will learn is amazing. I was able to apply concepts to one of my games when using for instance the Strategy Pattern to swap out flying behaviors super easy and separate code that will change from code that will not change. I will be posting tutorials on this subject in the future at my new Unity Game Dev site: https://www.theunitygamedev.com
You can take a look at the book on Amazon here: https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124
> I know programming
I have a checklist I usually bring out at this point :) You should know:
If you confident you have all this you'll probably want to start learning about design patterns and decoupling techniques. This free online book is amazing, and I would recommend it to everyone:).
Other books like Clean Code and The Art of Unit Testing have helped me a lot too.
With coding, it because more about creating code that is easy to change. I would also recommend using StrangIoc along with MVC to achieve decoupled, clean code:)
Some will say learn c# before you learn unity. I say learn c# while using unity. https://www.amazon.com/Learning-C-Programming-Unity-3D/dp/1466586524
3dmotive has a great series called Introduction to unity, the guy is very thorough, in fact most of 3dmotive's tutorial series on unity seem to be good.
Plenty of good yt tuts also and lots of practice. The best way is to add your own stuff to a finished tutorial or to try to do it a different way. Learning to learn unity is probably a skill unto itself since there are so many facets of unity to explore, like animation, programming, ui, sound and maybe 3d modeling(some tools exist that actually let you do this within unity)
Maybe switch to boo scripting ;), nah just kidding no one uses boo. JS is also popular but c# is the language of choice for most.
Like most things practice and practice within a few months you'll be teaching others or creating games. My first success following a tutorial was Lynda's c# scripting tutorial, the tutor goes through creating a little 3d platformer. It's not all that great in terms of being able to use her code line for line to sell a game, but it does help you finish a simple 3d game and feeling accomplished(don't ask my why I feel this is something important to do).
TL;DR
Take a look at spaced repetition. Study without any music and use the absence of music as a check to see if you are still motivated to do your studying.
<br />
I fucked up my first part of my education too. Lucy i realized that and got motivated again before i finished school.
I am currently 19 years old and I also always loved math (and some physics). I am from the Netherlands so our education system does not really translate well to English but i was basically in highschool when i only did things that interested me. I got low grades on everything else.
1 moment in highschool really stayed with me where I now have finally realized what was happening. In highschool i had a course about the German language. I already had a low grade for that class so I sat to myself to learn extremely hard for the next small exam. The exam was pretty simple. The task was to learn 200 to 250 German words. So I took a peace of paper and wrote down all 250 words 21 times. 1 or 2 days later I had the exam. But when i got my grade back it sad that i scored a F (3/10) . I was totally confused and it only destroyed my motivation more and more.
What I now have come to realize is that learning something is not just about smashing a book inside your head as fast as possible.
<br />
So these are some tips I wished I could have give myself in the first year of highschool:
Go and sit in an quit room or in the library. This room should be in total silence. Now start with you studying. As soon as you feel the tension to put on some music than you should stop and reflect and take a little break.
The default in nature is chaos. Learn to use this as your advantage. I sit in a bus for 2+ hours a day. 1 hour to school and 1 hour back. Nearly every student does nothing in this time. So I made the rule for myself to do something productive in that time like reading a book. Normally I am just at my desk at home and before I know it it is already midnight. So this is for me at least a really good way to force my self to start reading a book in dose otherwise wasted 2 hours.
Get to know your body and brain. I personally made a bucket list of 100 items that includes 10 items about doing something for a week like running at 6am for a week of being vegan for a week. Fasting is also really great. Just do it for 1 day. So only drink water for one day and look how you feel. And try the same with coffee, sex, fapping and alcohol. Quit 1 day and look at how you feel. And have the goal to quit 1 time for a hole week strait.
Watch this video to get a new few about the difference of low and high energy. I never understood this but I think that everybody should know about the difference https://youtu.be/G_Fy6ZJMsXs <-- sorry it is 1 hour long but you really should watch it.
Learn about about how your brain stores information and how you can improve apon this. Spaced repetition is one of those things that really changed the way I now look at learning something. https://www.youtube.com/watch?v=cVf38y07cfk
<br />
I am currently doing my highschool math again for fun. After I am done with that again i hope to start with these 3 books.
I hope this helps someone and if you guys have any tips about learning shaders in unity than please share them.
If you enjoy projects and quizze method of learning then the best series I can suggest is Head First Series. they have books in all manner of coding and their C# & [Design Pattern]() books are great for beginners to intermediates. I extremly recommend the Design Pattern one.
The biggest difference with this book series is they focus on a Conversational Tone instead of text book talk. And yes while these are more programming related, everything is easily translated to Unity.
Towards the original question. What else would you spend the $10 on? If you really want to learn Unity through video tutorials like theirs then quit fast food for a week, or coffee, or something to make up for the $10.
Unity Shaders and Effects cookbook. I'm linking you to the 5th edition because it's probably more relevant. I bought the 4th one for cheap on kindle and it was super helpful until I got to the 4th chapter which used cubemaps which have obviously changed between unity 4 and 5 probably 2017 as well lol. But I just bought a used physical copy of the newer one which I hope gets here soon.
Either one you go with will get you writing good shaders quickly as long as you can use your imagination. After the first chapter I got a lightsabre shader up and running easily. It also covers post processing effects later in the book and supposedly goes into making your own cinematic filter.
I'm also a novice, but I would recommend Unity in Action. Simple, straightforward, and slowly builds towards bigger and better things. I've been using it for a couple of weeks and I can't believe the things I can do in Unity already. Edit: It does presume some knowledge of C# though. This book is a pretty good reference for the basics.
> I have no prior knowledge of programming, so learning to program is going to be interesting in itself. The game I'm creating is in C#.
Unity is a great way to learn basic programming concepts. Some folks have used this book and reported good results:
https://www.amazon.com/Learning-C-Programming-Unity-3D/dp/1466586524
Enjoy your new hobby! 25 years ago, my passion for making games got me into programming, and I got a new career out of it. It took me only 6 months of self-taught programming before I got my first job as a programmer.
The most important way I avoid confusing code is a message system where scripts interact not by referencing each other directly but send messages "to whomever it may concern." This could be 100 other scripts or none at all. Scripts that are listening for those particular messages get them and any relevant information, but are effectively agnostic of each other so really effective decoupling.
Basically the observer pattern as I understand the term. Lots of discussion of that idea in this post.
I use something similar to the MessageKit tool that prime31 references in the top post, one that I adapted from this book.
I don't use this for everything, I'm not opposed to just including a direct reference where it makes most sense. Occam's razor all the things.
If you use this along with the single responsibility principle when defining your classes, you have super concise classes that are easy to understand at first glance and very reusable.
This, a hundred times this.
Written by one of the (i think) co-founders of Unity, this is how I got started a while back. The book may be a little outdated, but none-the-less, actually kept me engaged and taught me a lot, not as much programming wise though...
Otherwise, I would just go with youtube videos, those can be equally engaging and helpful.
>mostly because you need to be good at a lot of mathemtics, is this true?
This is primarily for algorithms. It's pretty easy to be good at math, the hardest part I find for people who program is that they often don't think "outside the box" in breaking their program down.
I and others recommend programming in C#. You should be able to get off the ground with the following resources:
http://learncs.org/
https://mva.microsoft.com/en-US/training-courses/software-development-fundamentals-8248?l=D9b9nHKy_3404984382
https://mva.microsoft.com/en-US/training-courses/c-fundamentals-for-absolute-beginners-8295?l=bifAqFYy_204984382
http://www.amazon.com/Exam-98-361-Software-Development-Fundamentals/dp/047088911X
This list is for programming in general:
http://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1453520022&amp;sr=1-1&amp;keywords=pragmatic+programmer
http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1453520045&amp;sr=1-1&amp;keywords=clean+code
http://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1453520067&amp;sr=1-1&amp;keywords=gang+of+four
http://www.comp.nus.edu.sg/~stevenha/myteaching/competitive_programming/cp1.pdf
http://visualgo.net/
http://www.sorting-algorithms.com/
http://code.tutsplus.com/tutorials/3-key-software-principles-you-must-understand--net-25161
Welcome to the great world of documentation and clean code writing.
I would start by reading lean Code: A Handbook of Agile Software Craftsmanship. Look for the second edition, though. (Btw, even though it tells in the introduction that is a tough book, it is not, although maybe if you are starting from "zero" on good practices, it will have some hard parts).
From there, learn about UML and use it with (for instance) draw.io to document your code organization. Is the shit, because you need to keep updated the diagramas when you change something, but being able to remember the organization in one look is well worth it.
Don't watch videos unless they're from professionals, or are very professional. Nothing personal, it's just a time spent thing. Get an into to C# with Unity book.
This one will teach you the basics you need to get started as a programmer, using Unity.
https://www.amazon.com/Learning-Developing-Games-Unity-Beginners/dp/1849696586
I would say you might do some other programming too, you should know that memory management exists; but don't listen to anybody trying to put you down for using Unity and C#. Remembering to clear memory you've allocated is hardly rocket science, though I'm sure it gets more interesting than what I've seen.
Know what a Turing machine is if you want to write programs for one, don't be silly.
I've read it, there is some good intro to the unity IDE. The game developed during the course of the book is a bit overly fussy for an introduction. That said, it does show how to approach the 'unity way' to solve design challenges (e.g. aligning objects to interact correctly in 3d space - the key into the chest lock).
This other book was pretty good - it has some good parts, again it has some good info on the IDE - but also using multiple cameras and masking for some very slick looking effects.
http://www.amazon.ca/Unity-Development-Example-Beginners-Guide/dp/1849690545/ref=pd_sim_b_2
Bouncing between these two books worked well for me.
What do you think help is?
Seriously, stop fighting the advice you are getting. There is a minimum level of C# knowledge you should have so that you can understand the tutorials.
I am going to recommend a book to you, it is very good for helping beginners understand the basics.
It is called "The C# Player's Guide (3rd Edition)" I recommend reading about the first half of it before you continue with Unity.
Take my advice or not, that is a choice for you to make. But like many of the others in this thread, I have learned how to code already, I have been where you are in the process, this will help.
https://www.amazon.com/C-Players-Guide-3rd/dp/0985580135/ref=sr_
_cc_1?s=aps&ie=UTF8&qid=1518454821&sr=1-1-catcorr&keywords=players+guide+c%23
I highly recommend reading Programing Game AI by Example. It includes a chapter on modeling an AI controlled soccer team. The book itself is a fantastic primer on a variety of workhorse AI techniques that every game dev should be familiar with.
That being said, oftentimes fun gameplay can arise from simple rules + player interaction. So, read the book, but don't be afraid to just throw down some simple triggered behavior and see what's fun.
I've been very impressed with Introduction to Game Design, Prototyping, and Development by Jeremy Gibson. The first half of the book talks about game design in general, then goes into a basic overview of C#. The rest of the book consists of a series of tutorials that get increasingly more complex. I'm not sure how helpful the tutorials and programming info would be laying in bed but the game design stuff is definitely fun to read by itself without a computer.
I just ordered : https://www.amazon.com/Unity-5-x-Shaders-Effects-Cookbook/dp/1785285246/ref=sr_1_1?ie=UTF8&amp;qid=1478088279&amp;sr=8-1&amp;keywords=Unity+5+shader+cookbook
to learns Shaders and lighting effects. I'm hoping this takes my abilities to the next level. I love Alan Zucconi's website so I'm chomping at the bit for this book to arrive!
I'm reading this right now. It starts with "analog" prototyping for games, to test basic games like card games. How you can design games and what you need to consider. Learn C# in unity while developing games, and you learn development processes like agile or scrum. For me, this book is great because it starts with the basics and over each chapter you learn another part of developing games like how to test your initial Idea or how to balance weapons etc. until you reach the second half of the book were you learn the unity development with projects.
I've tried learning C# from watching youtube tutorials, but all I end up doing is mindlessly copying what they're doing, and I might understand what they're doing, but I can't replicate it myself.
I'm using a book to learn C# now, and it's a bit heavy, but it is MUCH needed. Learning about classes, functions, int vs float vs double etc. is really important if you want to understand code.
And trust me, just making a script for controlling your player smoothly in a shooter game could be 50+ lines of code (although you could make a rugged, simpler one with less code).
This is the book I'm using:
http://www.amazon.com/Learning-C-Programming-Unity-3D/dp/1466586524
Nice write up. Look forward to the next one.
Just got Alan's book on shaders. It's a great resource! He even talks about fur shaders.
It depends how experienced you are. I have found the best resource so far to be the Unity website's official tutorials.
Here's a great one to start with:
http://unity3d.com/learn/tutorials/modules/beginner/scripting/translate-and-rotate
If you don't know any C at all, I would recommend this one:
http://www.barnesandnoble.com/w/learning-c-by-developing-games-with-unity-3d-terry-norton/1116543759?cm_mmc=googlepla-_-book_45up-_-q000000633-_-9781849696586&amp;ean=9781849696586&amp;isbn=9781849696586&amp;r=1
It's silly, but it's up to date and doesn't spend too much time dicking around. I would buy the e-book though, I don't know about $50 for this one (then again, I'm broke).
This one is a little out of date but supposedly still relevant, and though I haven't looked at it yet it's widely recommended:
http://www.amazon.com/Development-Essentials-Community-Experience-Distilled/dp/1849691444
I would recommend this book: https://www.amazon.com/C-Players-Guide-2nd/dp/0985580127.As a beginner myself, I am still getting back to it when I'm in doubt about smth.It is very comprehensive and very well organized and helps you to understand the C# language as a whole rather than learning straight unity's monobehaviour.
This may be a good way to learn for some people but for those who prefer structure, a book may be the better option.
OP - I just ordered this book. I'll post a review on Amazon after digging through some of it.
http://www.amazon.com/Learning-C-Programming-Unity-3D/dp/1466586524/ref=cm_cr_pr_product_top
I would highly recommend Will Goldstone's new edition of "game development essentials"... he works for UnityTechnologies, so I would say he knows what he's talking about ;) make sure you get the latest edition!
here's a link to it:
http://www.amazon.com/Unity-3-x-Game-Development-Essentials/dp/1849691444/ref=pd_sim_b_1
You're kidding right? That's 100% personal preference... It doesn't matter how you place the braces as long as you're consistent.
This: The Microsoft C# Style Guide. It's literally garbage unless you work for Microsoft or a company that also follows this style guide to religiously. They're suggestions by Microsoft on how to write clean code. If you want a real break down on what clean code is read Clean Code or The Pragmatic Programmer and you'll learn what things are actually worth worrying about.
I think the best bet would be to consult documentation itself. However, if you are looking for a quick tutorial on all aspects of unity(Including relatively simple tutorial on Sound), then I would suggest This Book. If you are trying to do something like Bit Trip, then Unity might not be best option out there, just my 2 cents.
This one is great:
http://www.amazon.com/Unity-Development-Example-Beginners-Guide/dp/1849690545/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1415211257&amp;sr=1-1&amp;keywords=unity+3d+game+development+by+example+beginner%27s+guide
Learn some design patterns: http://gameprogrammingpatterns.com/
Follow the SOLID principles: https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
Read "Clean Code" (and everything else by Robert C. Martin): http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
Another one with emphasis on c# and a bit of unity introduction:
http://www.amazon.com/Learning-Developing-Games-Unity-Beginners/dp/1849696586/
I have it and work through it, I can recommend it. If you know another language like me, then you could just quick read some basic concepts and concentrate on the things you need to know.
This one may be a good choice. All the low reviews are because it assumes the reader has little to no C# experience and walks them through it. So, likely the perfect place to start.
Learning C# By Developing Games in Unity
http://www.amazon.com/Head-First-C-Andrew-Stellman/dp/0596514824
The head first books tend to be pretty good for people who haven't done development before. Unfortunately I don't know of anything unity specific.
thanks for all the ideas, he really is a book person and has no trouble with complex books/concepts, as such I have ordered " Learning C# By Developing Games in Unity " and will get him on the playground videos until that arrives. thanks for the thoughtful suggestions.
Very good response.
In the book Programming game AI by example. This is explained very well. In c++ though.
Moreover, you can have more than one state machine. One global, one for the weapon, one for the player... etc. Depending on your game needs.
This book was suggested in the last thread as a really good source of information: http://www.amazon.com/gp/product/1849691444/ref=ox_sc_act_title_3?ie=UTF8&amp;psc=1&amp;smid=A2N51X1QYGFUPK
I have yet to actually read it though. I have to wait until I get some money at the first of the month.
Pick up a coding book for C# (I really like C# Player's Guide), learn basic coding concepts first, then learn Unity's spin on things.
Don't copy and paste (at least in the beginning), type it in yourself so you can attempt to learn why it works (or doesn't work).
Use what limited knowledge you have to make very tiny games, because you'll gain experience and you'll learn something(s) new, guaranteed.
There's no "proper" way, except for experimenting and researching.
You should checkout my book Unity in Action! I'm a professional game programmer who uses Unity at work, and I wrote the book I wish had existed when I was first learning Unity.
This book is made by the same person and is the newer edition, is it better? http://www.amazon.com/Unity-3-x-Game-Development-Essentials/dp/1849691444/ref=dp_ob_title_bk
I liked this book very much, learning C# through programming in Unity:
https://www.amazon.com/Learning-C-Programming-Unity-3D/dp/1466586524/ref=sr_1_1?ie=UTF8&amp;qid=1505392281&amp;sr=8-1&amp;keywords=unity3d+c%23
In that case I can recommend "The Pragmatic Programmer" https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/dp/020161622X
I would just like to add on to this post that this is an incredible book for learning Unity.
did you ever take a look at the book mathematics for 3d game programming and computer graphics I've been thinking of giving it a read this summer
The C# Player's Guide, 2nd Edition. It doesn't have a focus on game development, and honestly, I don't it should. C# is a programming language; a tool. Game development is simply a specific use case for C#, like smashing in nails is a specific use for a hammer. It can be used for other things.
I read this book front to back, and it helped me understand C# fully and develop some of my problem solving, which is an important skill in game development. I doubt a game development focused book will mention anything about the stack or the heap, the CLR and the .NET framework, or reference and value semantics.
Do the problems in the book, reference it and Microsoft's documentation often (and maybe get a C# reference book), and you'll have no problem developing anything in Unity.
> Unity seems to be encouraging this weird hybrid style.
This isn't actually true, there are lots of weird implementation details but there is nothing weird or hybrid about Unity's design. It's just not a data-oriented ECS. The Unity pattern is a variation on the Composite Design Pattern from this book:
https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612
Haven't read it, however you could probably look at this https://www.amazon.co.uk/C-7-0-Nutshell-Joseph-Albahari/dp/1491987650/ref=sr_1_5?keywords=C%23&qid=1563967181&s=gateway&sr=8-5 however if you just want to learn the basics you could just watch youtube tutorials and go from there
I feel the same way at times. I recently found a decent book that points me in the right direction. Introduction to Game Design, Prototyping, and Development: From Concept to Playable Game with Unity and C# https://www.amazon.com/dp/0321933168/ref=cm_sw_r_cp_apap_VhXx42O3fAPhR
There is an Updated Unity Shader Cookbook for Unity 5 and standard shaders by Alan Zuconni.
There is an entire book just for you
This book got me rolling. Check it out:
http://www.amazon.com/Learning-Developing-Games-Unity-Beginners/dp/1849696586/ref=pd_sim_sbs_b_2?ie=UTF8&amp;refRID=1ENXWHXSQ3WMSSX6A8DN
for me it was Will Goldstone's book Unity 3.x Game Dev Essentials it touched briefly on a lot of different topics in a tutorial style and left you with a functioning game at the end.
http://www.amazon.com/gp/product/1466586524/ref=oh_aui_detailpage_o03_s00?ie=UTF8&amp;psc=1
http://www.amazon.com/gp/product/0321933168/ref=oh_aui_detailpage_o03_s00?ie=UTF8&amp;psc=1
These have helped me out immensely
I have found Unity In Action to be great, but there isn't much competition as most other books are by Packt and they are crap.
I cannot tell you how much you will learn from it if you are already experienced, but the only reference is from Unity themselves.
I'll be honest I don't find books helpful. I start a project and Google problems as they arise. I will say don't buy this
https://www.amazon.ca/Learning-C-Programming-Unity-3D/dp/1466586524/ref=sr_1_3?ie=UTF8&amp;qid=1468826475&amp;sr=8-3&amp;keywords=c%23+unity
I bought it, am into my second game, haven't used a bit of information from this piece of crap book.
C# inside Unity : http://www.amazon.com/Unity-3-x-Game-Development-Essentials/dp/1849691444/ref=sr_1_1?ie=UTF8&amp;qid=1374539879&amp;sr=8-1&amp;keywords=C%23+unity
C# I'm not sure, I learned on a french website so it's pretty much useless to you :p