Learning Unity

Started by
15 comments, last by Saint Retro 10 years ago

So to program a game with Unity I need to learn C# and then also Unity features ? is that correct?

Where can I find good C# tutorials ? And what program do i need to apply C# on a Mac ?

You can also use Java in Unity (doesn't have to be C#) I don't know a good resource, becuase I learned C++ first and then just picked up C# by using the documentation for it (since they're quite similar in context) and playing around with it and troubleshooting. Oh, I do love Microsoft's official tutorials (the ones with Bob Tabor).

Here, I went and looked it up:

http://channel9.msdn.com/Series/C-Sharp-Fundamentals-Development-for-Absolute-Beginners

I have no idea how good it is, but I used his tutorials to get into Windows Phone development and they were great. He's easy to listen to and usually explains things in enough detail to take in without having to repeat the video or anything.

Codecademy.com is a great for complete beginners to coding. Use the Java course if you're wanting to get into C# right away, but honestly I'd just stick to Java since you can use that in Unity instead of C#, and C# is Microsoft-focused and meant to be used on Windows. It's not really appropriate for programming an iOS game anyway. Someone correct me if I am mistaken on this, though, because I don't touch Apple products.

However, I would strongly suggest just learning programming (in general) and game design and programming in quite a bit of detail before moving onto Unity. Make at least one graphical game without an engine, just using gaming libraries or something, before using an engine. I can't stress this enough! In the forums for popular engines like Unity and GMS, there are so many questions asked that show that people have no idea what the engine is even there for and how games work in general. So we pretty much have to explain a LOT more to them than really needed, and we're explaining concepts outside the scope of the engine. Which is fine, the forums are there for community help, but they will encounter more and more problems in the future until they understand these kinds of concepts. Things like object-oriented programming, game loops and updates, etc.

Plus, if you're wanting to develop for a platform like iOS, you need to learn how iOS programming works. Each platform has its own structure that you'll need to understand that is different than programming for your home computer (which is probably what you'll be learning with at first!)

Using a game engine like Unity is a lot like using professional music composition/notation software. You can learn how to use the software all you want, but if you don't know how to compose music, you won't get much out of it. Even if you learn how to notate music (which is kinda like simply learning basics of a programming language), actually making a musical composition will be difficult. You have to understand music theory and actual composition before you can use the software to help you actually compose a piece.

And depending on the type of game you want to make, you may consider other engines. Many engines are good for iOS games (as it's a very popular platform). Unity is great for physics-based action-focused games, and especially 3D games (though it now has 2D game structure built-in, too!). But other engines may be better for other things. I feel like turn-based/menu-based games or games that require no physics like SHMUPS are more easily constructed developed in something like GameMaker Studio (though it costs money, compared to Unity, which is free, and overall more fleshed-out), though GMS has a lot of other downsides. Of course, it's not impossible to make whatever you want in Unity, but it's not always the best engine for every project. Once you learn about coding and game programming, learn about many engines that are compatible with iOS and see which work best for whatever project you want to take on. Once you understand the basics, you'll be able to make a more educated decision on what engine you want to use. You may even decide you don't want to use an engine at all and can just use the toolkits provided by Apple to make your game in a more "from-scratch" format :)

Advertisement


Codecademy.com is a great for complete beginners to coding. Use the Java course if you're wanting to get into C# right away, but honestly I'd just stick to Java since you can use that in Unity instead of C#, and C# is Microsoft-focused and meant to be used on Windows. It's not really appropriate for programming an iOS game anyway. Someone correct me if I am mistaken on this, though, because I don't touch Apple products.

unity doesn't use java, but unityscript a derivitve of javascript. c# is mainly used for windows apps, but does have uses outside windows through both unity and monogame. both use c# and allow for development on ios, android, and even consoles.

Thanks for replies.

I want to use C# and Unity because then I can export to Android and iOS simultaneously.

The kind of games I plan on making first is a simple score based game like (Threes Or Drop7) or perhaps a more elaborate version of (868-Hack).

Im a bit confused though,

Use the Java course if you're wanting to get into C# right away, but honestly I'd just stick to Java since you can use that in Unity instead of C#,

Java is used inside C# ?

Im a bit confused though,

Use the Java course if you're wanting to get into C# right away, but honestly I'd just stick to Java since you can use that in Unity instead of C#,

Java is used inside C# ?

Just ignore that one, he is obviously confused aswell.

To clarify:

Unity supports 3 languages,

C#

Boo - a .Net language related to python

UnityScript - a Unity specific derivate of JScript.Net (Which in turn is Microsofts .Net adaptation of JavaScript).

Java on the other hand is a completely different language which is quite similar to C# (But not supported by Unity3D)

The name confusion is most likely the result of marketing drones at Sun(The company that created Java) and marketing drones at Netscape(The company that created JavaScript) eating/smoking/injecting illegal substances.

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

OK, sorry, this whole time I thought Unity used JavaScript (which I guess it does in the form of UnityScript, but I thought it was just regular ol JS)... I'm even using Unity right now and can see in my head options for JavaScript, but I guess I was wrong (I do it all in C#).

And when editing some stuff out of my post, I accidentally removed a critical part -- Codecademy doesn't have C#, but you can learn Java there, which has a similar syntax to C# (moreso than Python and stuff) which will make getting into C# easier. That's what I meant by that.


The kind of games I plan on making first is a simple score based game like (Threes Or Drop7) or perhaps a more elaborate version of (868-Hack).

As a designer Unity does open up a lot of possibilities, but you will still need assets and script to manage it. Since they are 2D you might be able to draw the boxes you want, and write script for the animations, and maybe use some particle systems for effects. That still leaves you with audio.

You won't be making any of those games just by experimentation. They are complex enough that you need to figure out the game play details in depth.
Once you have the carefully-completed design, the script for Threes or Drop7 is simple enough you might be able handle it with determination. The resulting scripts probably won't be pretty and optimal, but it only needs to be functional. The 868-Hack game looks a bit more complex so you would probably want to be more comfortable as a programmer before getting that far.
Any of Unity's three languages (C#, UnityScript, and Boo) will work. Just pick the one you are most comfortable with and go from there.

I would like to put forward the following free pdf as a good resource for learning C#

This topic is closed to new replies.

Advertisement