Search Unity

  1. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Resources for Prospective Game Designer / Coder

Discussion in 'Game Design' started by gamma-girl, Oct 9, 2023.

  1. gamma-girl

    gamma-girl

    Joined:
    Aug 31, 2023
    Posts:
    1
    Hello, everyone. I'm currently taking a college course concerning C# scripts, which is a class encapsulated inside of a general Game Design degree. Before this course, I had virtually zero experience with coding. Never touched C# either. I spent some time scouring for resources to supplement my learning, but it can be a little overwhelming at times. I come to this forum to reach solutions and sometimes I don't even get the solutions given. I'm really very new .. so I'm curious what you all would suggest in terms of reading or practice material to use as a complete and utter novice. Just a few weeks into the scripting journey. Thank you!
     
  2. adamgolden

    adamgolden

    Joined:
    Jun 17, 2019
    Posts:
    1,548
  3. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,601
    Yeah, I second adamgolden's suggestion to pick one of Unity's courses and follow that along.

    There are no guarantees, as luck is definitely a contributing factor. That said, one significant factor to getting questions answered is to make them specific and informed.

    You're asking people to spend their free time helping you. The people who do that do it for fun, so you need to make it fun. How do you do that? Give us plenty of information so that the puzzle is clear and we've got enough pieces to start solving it.
     
    marteko likes this.
  4. marteko

    marteko

    Joined:
    Apr 4, 2016
    Posts:
    56
    Hi! It is difficult for a beginner to ask correctly formulated questions due to the lack of basic knowledge - he may not know what to ask, the questions are unclear or unnecessary to ask if the beginner undergoes basic training (then he can answer himself). Therefore, sometimes people do not know exactly what the question is or they see that the questioner does not have basic knowledge and they do not bother to answer, or to ask the questioner for clarifications. For programming, the most useful is the ability for logical thinking, also some mathematical knowledge - exercises with C# would be useful for developing logical thinking and consolidating knowledge. Important qualities for game design are abstract thinking, the ability to judge things (a rich general knowledge can be very useful for this), the ability to plan and organize activities. So, about the resources. As the colleagues above mentioned, the Unity coding tutorials are a good choice to get familiar with the program. There are many resources (courses, books, articles, tutorials, videos) on the internet about C#, math, logic, game design and game development. But practice is the most important thing - without it, all resources are useless. All this will take time, usually good skills come with persistence and effort.
     
    Last edited: Oct 10, 2023
  5. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    1,979
    My school taught C# coding first, then moved on to coding in a game engine, and it worked pretty well. So your school seems like it's doing the right thing.

    Ideally the textbook for your class would be good, but it's tough to find a good one. Most go over the bare rules and have just one example of how to use them. Even a simple "how to check between 1 and 10" example is rare (followed by "how do I force a # to be between 1 and 10?"). The Unity Learn section has the same problem -- just one simple example -- plus the parts are out-of-synch. The microsoft site isn't even for learning -- it's just the manual, and include mostly stuff no one ever even needs but you won't know that.

    Maybe you can find a textbook that spends time on examples, using if's to solving various problems in different ways, and so on. Maybe some classmates have some ideas. I've got my "programing C# using Unity" at taxesforcatses.com/TOC.shtml, but it's aimed at someone who's played with Unity, wants to stay there, and is OK with programming being a little harder as long as they can change colors and move a few balls and other game stuff.
     
  6. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    1,979
    It might help if you could name a specific Intro to C# Coding that you know and like. The problem is, we assume there must be lots of good ones. The internet is made of programs, so obviously it has good guides to programming, right? But when you look through, it's tough to find a good one. Some people even remember one they liked, but looking back it turns out they remembered wrong.

    For example W3Schools has one IF example --
    if(x>y) print("x geater than y");
    (and repeats it for if/else). UnityLearn is similar -- a single example of an IF statement. Or looking at "Unity in Action" (the blurb and chapter names) it's a project book. I've never seen one that didn't present a finished script and say "for more on how to write these yourself, see a C# book".
     
  7. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,601
    ... suggest a way forward, rather than just pointing out issues with everything? I mean, you're right, I'm not aware of a single perfect resource, but pointing that out without suggesting an alternative doesn't help people.

    It's also hard for experienced people to recommend good, current learning resources. I've not had to use one in decades, so I'm not current on them. Why would I be? I do occasionally look because people ask, but unless I'm willing to buy stuff we can usually only evaluate the content of free ones, and... well, you often get what you pay for.

    Or, it was good for them when they were a beginner, but isn't useful any more? Even if they can criticise it, it may have been a valuable part of their journey to developing the experience they're basing that criticism on.

    @gamma-girl, in addition to my earlier response, my usual suggestion is Rob Miles' Yellow Book. It's the textbook for a uni course, so it's designed to be used alongside lectures and tutes rather than in isolation, but even without those I still think it's a decent resource for learning general programming in C#. In particular, I like that it presents code in the context of solving real world problems, rather than talking about how to do specific things with no particular context. I also like that it covers some of the fundamentals of how computers actually work, which is sorely missing from most online tutorials (because they're tutorials, rather than full courses). And, for getting the most out of the skills you're developing, it's great to get an idea of how code works in a broader context than a Unity script - what's specific to Unity and what's not? When you find non-Unity answers to code questions, what applies to you and what doesn't?

    In the absence of tutes in particular, ask questions of other coders (e.g. in the Scripting section here) if something doesn't make sense or if something isn't working how you expect. Online learning is awesome, I love it, but interacting with other people who are going or have been through their own related learning is a valuable part of the experience.

    My other big tip with online learning resources, when you can't get an experienced evaluation, is to look at the background of the people who made them. Someone with a decent portfolio is more likely to make resources which you can rely on than someone who's only made other learning resources (though there are never any guarantees either way).
     
  8. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    1,979
    Sorry, my first post suggested something. I'll put it again : taxesforcatses.com/TOC/shtml. But again, it's written for use inside of Unity and it I think OP is starting with a non-Unity C# course.

    No, I mean it's easy to get confused about names, esp. when one was searching around lots of places at the time, and recommend something that you actually hated. I've seen it. I'm saying if you're nice enough to take the time to recommend something, it's only a little more work to jump there and do a check it's what you meant to. It's like telling people Fast&Furious-4 was the best and then you do a quick search on the plots and "oh geez, I was thinking of Tokyo Drift -- 4 sucked, sorry".

    This is what Unity recommended way back when it started. IMHO it's slightly better than most, but it's still basically a reference manual, missing almost everything about how to use IF's, nested IF's and so on to do things. Plus it's odd. The first example of a loop (and also first of an &&) is
    do { read width } while(width<0.5 && width>5.0)
    . If someone already has a textbook, than the YellowBook will be a 99% repeat of it.
     
    angrypenguin likes this.
  9. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,601
    I did see you mention that, but the follow up sounded like you weren't recommending it in this context.

    Well, that makes sense. It is a textbook, as opposed to a tutorial.

    As for it "missing" stuff, you're right that it sticks to basics, but as both a professional programmer and teacher myself I strongly suspect that's intentional. It's not trying to achieve complete coverage, it's trying to help people take their first steps with minimal friction. It doesn't want to bombard people with every complexity of branching, it wants people to understand branching in its most simple form.

    I suspect that's also the reason for some of its "odd"ness.
     
  10. Owen-Reynolds

    Owen-Reynolds

    Joined:
    Feb 15, 2012
    Posts:
    1,979
    But this Q seems to be just fine. OP is taking a C# course and is looking for a decent "intro to coding in C#". Something you can read -- and do the exercises and so on -- and learn how to solve simple programing problems. It should have the stuff you didn't know you needed to ask about. Like it should explain why 3/5 + 4/5 is 0 because of int-division and strict inside-out evaluation, and how n/2.0 instead of n/2 is a trick to keep any 0.5's. And how if you have 50 eggs then cartons=50/12 finds you can make 4 (exactly 4) egg cartons while extraEggs=50%12 gets the 2 left over, and how n%2==0 is a way to check for even or odd and n%10 gets the 1's place. It would be helpful and easy to put that in a "learn to program in C#" book, right?

    The weird thing is it's hard to find that. That turns it into a tough question, but it shouldn't be.