Advertisement

Is C# in Unity3D worth learning?

Started by December 29, 2014 02:07 AM
3 comments, last by Spazzarama 10 years ago

Is C# worth learning in Unity? People say that every unity game looks the same, and that Unity is too simple.

For a beginner like me, I think that Unity is great for starters. So far I tried to learn C++ and gave up because I want something to do not just create console applications like hangman. Unity seems great in visualizing what you are doing, and you don't have to learn any OpenGL or DirectX because it is all made for you.

I think it is good. Some people say it is bad. I want to know if it is worth learning, if it is not good, are there any other good engines like Unity?

Is C# worth learning in Unity? People say that every unity game looks the same, and that Unity is too simple.

For a beginner like me, I think that Unity is great for starters. So far I tried to learn C++ and gave up because I want something to do not just create console applications like hangman. Unity seems great in visualizing what you are doing, and you don't have to learn any OpenGL or DirectX because it is all made for you.

I think it is good. Some people say it is bad. I want to know if it is worth learning, if it is not good, are there any other good engines like Unity?

firstly people that say all unity games look the same are dead wrong. and unity is not too simple, its actually quite complex. it is a great general purpose game engine, especially for beginners. I would say go for it. its best to use c# for unity, since you can use it outside unity and has some similarities with c++ which can help when learning c++ later down the road, if you choose.

Advertisement
"Some people" say lots of things.

Unity is a game engine. It is great for making games. It uses programming languages. It is not necessarily the best place to learn to program. It is not designed as a programming tutorial, and it assumes you already know quite a lot. Also since Unity is an engine, it does a lot of things for you so you will never write code for those systems.

You wrote that beginner-type programming tasks are not what you want to do. A huge volume of programming effort is tedious and involves aspects that are not fun.

The job of a student is to learn. Learning takes effort, and often involves doing tasks that are not fun. But after you have learned enough to reach the basic competency levels, the whole wide world opens up to you.

If your goal is to be a student, to work on student-like tasks, to learn programming in a structured form, then no, Unity is not the best way to do it.

If your goal is to make games and learn and goof off, using your limited knowledge to cobble together things even if the results are far from ideal, then Unity can help to those ends.

C# is worth learning. Microsoft uses C#. They have opensourced .NET too so that they can propagate C# and its siblings to all platforms.

Unity solves the basis tasks in rendering, physics, networking etc.

It means it takes a lot of perspiration from our side to produce a game of industrial standards.

For example think about making a racing game.

We are provided with interfaces like [rigid body] http://docs.unity3d.com/Manual/class-Rigidbody.html , [spring joint] http://docs.unity3d.com/Manual/class-SpringJoint.html etc only.

Think about how to add the enemy car logic.

And also think about making the software design of the game(class diagram etc.). The project will have minimum budget in terms of time and money.

Say for eample 2 months. Now you will agree working with Unity is hard.

Finally C++ is not just for console. Take a trial of VisualStudio, you will understand.

And tell to those who say Unity3D is too simple to write a complex shader for Unity3D.

Yes there are other great engines out there, including C# based ones (e.g. Paradox3D). A quick search for popular game engines will help you find others (e.g. UE4, CryEngine, Unity, GameMaker, etc) - here is "someones" top 16 list for 2014.

Unity3D is a great place to start, not only because it is a great engine, but because there is a large on-line community. Most questions you would have are already answered and easily found with a quick Google. I doubt there would be much you cannot achieve with Unity.

With any language choice you are going to come up against the die-hard yes/no for this or that. I personally love C# and .NET in general and recommend giving it a crack - it is arguably easier to learn than C++ for newcomers, while still providing most of the same constructs (plus others) and involving the same concepts. So even if it is just a stepping stone for you yes I would say it is worth it (although like frob said I wouldn't necessarily recommend trying to learn programming from scratch from within a game engine).

Ultimately your choice should be based on the context of what you are trying to achieve, always keep this in mind, just because someone else says that engine X is more betterer than engine Y doesn't mean it will suite your specific needs any better. If learning is the goal, perhaps try a few out (trials or whatever), see what each of them gives you over others, every extra bit of knowledge you glean will help you down the road.

Good luck!

Justin Stenning | Blog | Book - Direct3D Rendering Cookbook (using C# and SharpDX)

Projects: Direct3D Hook, EasyHook, Shared Memory (IPC), SharpDisasm (x86/64 disassembler in C#)

@spazzarama

 

This topic is closed to new replies.

Advertisement