Advertisement

C#, Unity, JavaScript, Engine related Books

Started by May 09, 2015 05:01 AM
6 comments, last by Brain 9 years, 8 months ago

I'm going for another shot at making games.

After quite sometime beating my head in various forums for snippets of advices because i am lazy to

read books or any long term, comprehensive understanding of game engineering...

I decided it's about time to pick up something better and solid, compact and consistent.

I am well versed in C# and JavaScript, enjoyed them.
But i don't think i've yet to come across any decent books that relates them with Unity or general game programming.

Suggestions please?

I found a general game physics engine books by Ian Millington. So i might need some more reading that ties them together...
My aim would be a 3rd person action game, with slight camera workaround for cinematic polish.

Speaking with regard to Unity books:

You'd honestly be better off following the official and community created tutorials. I looked for quite some time and never found a decent book. I ended up just diving in and learning how all of the pieces work.

I can't speak too much about JavaScript, but C# scripts in Unity are a bit different than traditional C# programs. The biggest thing for me was the use of so many public variables in order to expose things to the editor. It bothered me for a while, but eventually I gave in because it really does simplify things.

Advertisement

Although books may exist for a specific case as Unity, I do agree that it's quite easy to catch up using the docs and tutorials provided by Unity themselves. They are quite extensive and can really help you from the ground up, from my experience at least. Though this was after already having reasonable experience with general game programming frameworks like XNA.

Are you really bothered about them not being related to C# or JavaScript? If so, the only book i can personally recommend on this specific topic is learning c# by programming games, although that assumes you are quite the absolute beginner and may get you to lose interest because of this quickly. If the language doesn't make a difference to you, an easy recommendation is the game programming gems series.

Aside from that, in my opinion you should get into some of the basic math of 3D game development. I personally really like 3D math primer , but can become a bit too much for the basics required for general game programming, leaving graphics aside. At least getting into some vector math and knowing a few things about matrices is definitely worth it. I do not know about any javascript/c# equivalents to the named book.

After getting into these basics, you could focus more on the specific topics (such as physics as you mentioned), depending on your own preference (regardless whether Unity can do this for you).

The best recommendation from a personal experience I can give you is to not focus on making your target game. Just play around, it's the most useful tool Unity has as you can see the result of your work very quickly. Maybe your idea is something you really like doing, maybe you will get at something more fun by playing around. Important is that you like working on it.

What do you mean by engine books, though? I usually understand them as being about making a game engine, rather than learning to work with them. If you mean the latter and are interested in books from other engines to more easily get into Unity

Mind you that although Unity generally calls it javascript themselves, it's quite a bit different. For C# there is no such difference (at least not on that part).

Offtopic:

The biggest thing for me was the use of so many public variables in order to expose things to the editor. It bothered me for a while, but eventually I gave in because it really does simplify things.

You don't have to make them public. You can use the serialize field attribute instead, which allows you to use any access modifier. Having worked in a professional environment with Unity as a programmer, I know it can be a requirement to use this over disrespecting encapsulation. It's not a bad practice to getting used to favoring this over public variables.


Offtopic:


'bartm4n', on 09 May 2015 - 11:55 AM, said:
The biggest thing for me was the use of so many public variables in order to expose things to the editor. It bothered me for a while, but eventually I gave in because it really does simplify things.


You don't have to make them public. You can use the serialize field attribute instead, which allows you to use any access modifier. Having worked in a professional environment with Unity as a programmer, I know it can be a requirement to use this over disrespecting encapsulation. It's not a bad practice to getting used to favoring this over public variables.

Thanks for that tip. I had never heard of it before, and now I wonder why they seem to favor using public vars in the docs. Perhaps it is just easier for people new to programming to grasp?

Thank you very much!

I don't always consider myself talented or noob to give people a better picture about what i specifically want... so yes, i think i made the right question.

I love knowing about alternatives Bartm4n, but your point is clear, the community tutorial is well thought out, and this version of unity is still very young,
The educational channel is still fresh, not including older versions, but i guess AthosVG summed up best

what i "truly need".

Some of those math primers puzzles me, i still don't know how much of them i'll ever use.
Documenting them is also an effort.
Last time, i found a tank of community driven tutorial, but only manage to use/repeat like 20% of it given my goals and targets.

Some of the maths are too complicated for an individual projects...

Other times, it references tools outside the main software, which lengthened the learning curve abit more.


What about graphic?

I tend to worry about things like, occasional skinning bug (i have a talented 3d artist in my team, and that's about some of things he addressed when invited to work with me :<)
exporting between softwares and IDES, and finding out that each of them has their own limitation unadressed by each others, animation skins, and

texture seams...

Are there, theories to, address these problems? Texturing, riggings? Modellings?
I've had the luxury of a very curious friend but most of his solutions are intuitive rather than, formulaic.
I'd need to cleanup the problems so that his share of work can be focused and and efficiently places our time and resources...


I am well versed in C# and JavaScript, enjoyed them. But i don't think i've yet to come across any decent books that relates them with Unity or general game programming.

Suggestions please?

What specifically do you intend to learn from the book?

Games are composed of hundreds of technologies, tools, and fields. You won't find one Grand Unified Book that covers everything from the basics of understanding Unity Widgets, and covers advanced shader usage, and covers advanced programming algorithms, and covers skeletal rigging and animation.

There are many books covering a wide range of topics. There are introductory level books designed at people who have never worked with an editor before. There are advanced books covering deeply technical aspects that expect you to have a solid background in math or specific technologies before use. There are even research papers on new theoretical applications you can apply to games.


Some of those math primers puzzles me, i still don't know how much of them i'll ever use. ... i found a tank of community driven tutorial, but only manage to use/repeat like 20% of it given my goals and targets. Some of the maths are too complicated for an individual projects... Other times, it references tools outside the main software, which lengthened the learning curve abit more. What about graphic? I tend to worry about things like, occasional skinning bug (i have a talented 3d artist in my team, and that's about some of things he addressed when invited to work with me :<) exporting between softwares and IDES, and finding out that each of them has their own limitation unadressed by each others, animation skins, and texture seams... Are there, theories to, address these problems? Texturing, riggings? Modellings?

For math, the more you learn the better off you'll be. Some developers struggle with anything beyond simple iterative methods, relying on the Internet to discover solutions to their problems. Better programmers know the math for themselves. You can hardly expect to do something new and exciting if your small skill-set only lets you reuse what others have done.

You won't be learning the math you need -- linear algebra, statistics, calculus, and more -- from a tutorial on Unity.

The same thing with graphics tools. If you have issues with the 3D artists and their tools, you likely won't be dealing with problems in Maya or Photoshop in a Unity tutorial. Same with external tools, they are taught elsewhere.

Texturing, rigging, and modeling are all taught in animation books and tutorials, and the math behind them is covered in many other graphics-centric books and research papers, not general tutorials.

Figure out what specifically you need to learn more of first, then you can find an appropriate source for the information. If you struggle with the information -- such as not understanding the math -- then learn that first.

Advertisement

For math, the more you learn the better off you'll be. Some developers struggle with anything beyond simple iterative methods, relying on the Internet to discover solutions to their problems. Better programmers know the math for themselves. You can hardly expect to do something new and exciting if your small skill-set only lets you reuse what others have done.

QFE. Well said.

I would only add that even if you do have to look up formulas/equations, you should really make an effort to understand how they are being used and why. This will help you grow even if you don't have all of the math knowledge up front.

Although I strongly recommend that you at least have an understanding of vector math as this will give you a foundation. There are some great free resources out there on this subject (https://www.khanacademy.org/) as well.

If you want books about things like XNA etc, or C# game programming related materials, there are lots out there.

If you want them cheap the best places to look are charity shops and second hand book shops nearby to universities. Look in these shops at the start and end of the academic year (Summer through to September) Students buy them at extortionate prices at the start of the year with their student loans, then sell last years books relatively cheap to buy new ones.

You can pick up some absolute bargains and i managed to fill a bookshelf a few years ago for pennies.

Sure, there are lots of tutorials, but sometimes there is nothing quite as nice, or as useful, as a good old fashioned hard copy.

Good hunting!

This topic is closed to new replies.

Advertisement