Super Lost

Up until this point I’ve been able to grasp all of the information pretty easily, but it seems like I am in way over my head now. I’m not sure if it’s me or if the difficulty of things goes way up for the Quiz Game section of the course but does anyone have any advice on how best to grasp this information. I feel like I’m just copying the code but not really understanding how it works. Any advice would be swell.

4 Likes

Hi Shane,

What you are experiencing is normal. The learning curve is not a straight rising line, it is a curve with ups and downs. Some topics come naturally to you, others don’t. And you are definitely not the only one who is struggling from time to time. :slight_smile:

Since Quiz Master is not the first project in this course, I assume that there are a few things that you did understand. When you feel lost, try to note the things down that you didn’t understand. Then you’ll be able to ask more specific questions and gather relevant information. You certainly do not want to know how to play or pause a video on Udemy or Teachable or how to switch the computer off. :wink:

If you feel that you are struggling with C# and are interested in a free C# course, I can recommend Bob Tabor’s. It does not have anything to do with Unity but it could help you get a better understanding of this programming language. Admittedly, Unity is fairly complex. When I started with it many years ago, I felt lost too. Then I learnt C# first, went back to Unity and many things that I hadn’t grasped before suddenly made sense.

Just to avoid any misundestandings: I didn’t mean to say that you need to follow Bob’s course to be able to follow ours. The linked course is just my personal recommendantion.

If you didn’t understand something in Gary’s video, please let us know what exactly you are stuggling with, and we’ll be happy to explain the concept and/or code to you. :slight_smile:

3 Likes

Thanks Nina, as always you are very prompt. It’s not a criticism of the course I think the content so far is great. I think this section of the course has just been a large dump of information so it’s taking me a lot to process it all. And I’m just struggling with trying to figure out how things within unity itself can interact via scripts.

A lot of the time I see what is being written in the code but not exactly why it’s being written if that makes sense. I’m actually in college for video game programming and grabbed these courses as a helpful addition to that program so I’m trying to make it all make sense at once.

Thanks again for your assistance. It’s greatly appreciated.

4 Likes

No worries, Shane, I didn’t perceive your feedback as criticism of the entire course. And even if you meant the entire course: We are glad that you let us know that you were struggling. Our instructors are always interested in constructive feedback which allows them to improve their teaching skills. :slight_smile:

And I’m just struggling with trying to figure out how things within unity itself can interact via scripts.

So, you’re struggling with the most important topic. :wink:

I had the same problem when I started with Unity. It’s not like that I hadn’t had any affinity with logic. That’s why I stopped learning Unity and C# simultaneously, and focussed on C# first. Once I understood how C# (and OOP in general) work, I was able to regard the Unity editor and the C# part as two different things.

To put it simply: The Unity Editor is fairly simple, and so is the core project. They cannot do anything unless you create a script and attach it to a game object in the Hierarchy. And that’s it.

The actual logic is wired up in the C# scripts. You define there what is supposed to happen to an object, e.g. “move this object”. If your Player has got Health, you reference the Health object in the Player object. Just like you would do it in a normal C# script. The only difference is that you usually do not use a constructor when working with GameObject objects. A constructor is a special method in C# creating a new object.

Vector3 position = new Vector3(1f, 2f, 3f); // that's what you often see
Player player = new Player(); // that's what you rarely see

Instead of calling the constructor, we assign the reference to the object to a field manually in the Inspector. Our code just looks like this:

[SerializeField] Health health;

And that’s basically everything there is to know as a beginner.

Don’t get confused by the pretty pictures we are using in the scene. They are just pictures. The actual logic is in the code. In the code, we define how objects are supposed to interact with one another.

When you assign the Button component, you are assigning an object. The Button class is a script just like yours. So are SpriteRenderer, Image, TextMeshProUGUI, and whatever you attach to the Inspector of Unity.

Unity just visualises stuff.

Unless you are struggling with Unity’s GUI, it is usually fine to ignore Unity and focus on the code itself when you are lost. A good programmer aims for self-explanatory code. That’s not always possible but at least one should try.

For this reason, if you feel lost, ignore what you think you understood and just take a look at Gary’s classnames: GameManager, QuestionSO, Quiz, ScoreKeeper, Timer, Endscreen. Read them as if you were a random person on the internet. Do you have a rough idea of what might be going on in the game project just by reading the classnames?

If the answer is yes, you could take a look at the content of the classes. Depending on how complex the logic is, it could make sense to visualise it in a diagram. Code is not some cryptical poem, there is a strict logic behind it because the computer cannot interpret anything. It just executes the instructions in the code, and that’s it. Of course, the instructions could be “wrong” regarding the programmer’s initial idea but that’s another story.

Furthermore, in many cases, there are multiple ways to realise this game, so regard Gary’s solution as one way to solve the problems not like “If I don’t understand every single detail and learn the code by heart, I’ll never become a game developer”.

I’m actually in college for video game programming and grabbed these courses as a helpful addition to that program so I’m trying to make it all make sense at once.

You are not saving time by trying to learn everything at once. The good thing is that most softwares in this field and most programming languages use the same or similar concepts. If you know Unity, you’ll learn other game engines faster. And if you know C#, you’ll learn other programming languages faster.

3 Likes

Wow. That was a very well thought out response. I really appreciate the help Nina. Reading through your response has definitely helped. Again I really appreciate the time you took to write all of that out. You’re doing a great job on here.

One thing I’d like to add to Ninas response.

Whenever someone does a lesson, they’ll get a different learning experience depending on their experience. The second/third time you go through the same information, you’ll have understood some topics from previous learnings (and other courses etc) and you’ll often learn something different.

2 Likes

This topic was automatically closed 24 hours after the last reply. New replies are no longer allowed.

Privacy & Terms