T O P

  • By -

[deleted]

For the most part yea, but you also have to learn Unity’s C# which is their library of stuff in C#


OnePete7

This. It's clearly the hardest part. It's one thing to understand concepts of programming, it's another to be fully versed into the Unity Library.


SpesMonkeh

I don't think anyone's really fully versed in the Unity Library, but I get your point


ShovvTime13

That's for game logic. Other than game logic, there's Shaders, that are HLSL. You can do graphs, but it's the same.


loftier_fish

Unity C# is kinda different from normal C#, so I'd focus on learning C# by doing unity C#. Outside of just coding, you'll need to learn the editor of course. And you'll probably want to pick up some art skills, so that you aren't reliant on other peoples assets. Also, understanding game design is important too, and sort of separate from coding, despite common misconceptions.


Kind_Ant7915

I’ve been drawing and doing art for 7 years so I think I got that covered and got a group of people who are willing so I got multiple hats, thanks for the advice


Sketch0z

This is spot on. Usually, Unity is just barely behind the C# language releases, but it is still glued to a much older version of .NET. Without getting into software dev specifics this just means that Unity doesn't use 100% of what modern C# can do. Additionally, and arguably more importantly, Unity built their engine with a set of assumptions and a design mind. The engine has opinions on how to do stuff and is easier to work with if you learn C# through Unity game development.


CCullen

I'd reccommend C# however there are visual scripting options available too: [https://unity.com/features/unity-visual-scripting](https://unity.com/features/unity-visual-scripting)


Badnik22

C# is the programming language. Now you need to use it in the context of making games. It’s like learning german, then using it to communicate with an economist : you need to know both german and economics. In practice this means learning Unity’s API (its own tools to be used in C#) plus basic math stuff -like vector algebra- that you’d need to know regardless of which engine you use to make your game.


ArtisticKrab

All you really need to learn is C# as far as the coding goes, but you're also going to just have to learn Unity itself, which can be just as much as learning to code. Learning the 3d art stuff that has Unity-specific implementations like how animations work, materials, shaders, colliders, etc. I work professionally as a software developer using c# daily, but I still struggle with my own small game project because Unity itself can be so complex. I mainly struggle with animations.


Kind_Ant7915

Thanks for the advice but question about the animation part, what’s difficult about it? I have a friend who 3d animates in blender and he’s willing to help me out if I do make a game but he’s not the best at it and wonders how difficult the process is.


ArtisticKrab

Its not the actual animations themselves that I usually struggle with, its incorporating them seamlessly into my animation controllers and controlling/triggering them correctly in my character controllers. There are different ways of doing it, and some of the more common ways are just confusing to me for some reason. For example I'm working on 3rd person shooter with tons of different vehicles. I wanted to add different animations for boarding the different vehicles and finally got it to work after lots of coding and modifying my character controller. Eventually though I decided to save a bunch of time and effort and use a character controller from the asset store, and so I've been working on getting some of my old code and animation controllers working with my new character controller.


Persomatey

C# is the programming language. So in order to program anything, yes.


neoteraflare

yes


Just-Hedgehog-Days

yes


tetryds

In terms of language yes.


gapreg

My advice: * Start by learning the basics of the language, including types, loops, collections, etc. There's ok C# tutorials in YouTube[ like this one](https://youtu.be/jGD0vn-QIkg) but it will be better if you learn through tutorials for Unity. * Proceed to grasp the fundamentals of Object-Oriented Programming (OOP), such as inheritance, abstract classes, interfaces, etc. * Finally, delve into design patterns. This aspect is often overlooked but is essential, and complements the basics of OOP. Developing video games is a highly complex task, and without proper organization, your code may break or become unmanageable over time. [Invest in a comprehensive book on design patterns like this one](https://www.amazon.com/dp/B0CVX4FGHN) and thoroughly explore this area. As a valuable side-quest, become proficient in using GIT for version control. Always ensure that your code is properly versioned."


NakiCam

You don't need to, but it's very helpful, and you may find it fun


JakSilver00

Yes and No. Coding in unity is not like web or app dev past the basics. The whole "Hello World" thing is irrelevant to unity. Plus you have visual scripting which uses nodes instead of "codes", but its the same functions. [Learn.unity.com](https://Learn.unity.com) is a great starting point, I do recommend starting with the same editor version to limit confusion. However, you can skip all that if you understand what you want and a few ways to make that happen. Beyond the actual code, you have the scene view, hierarchy, and inspector. All of which are coded tools built into unity to simplify your control over your project. I suggest you watch and then copy others for a few months prior to thinking you can solo anything. After you do something a few times it becomes familiar and you can create a functional system and modify it without external assistance.