Creating Horrors

#1
For some time now I've been wanting to learn how to code so I could make my own games. I picked up bits and pieces here and there like C++ can do everything, but it's recommended you don't learn it as a first language, C# is essentially the same as C++, stuff like that. I would like to learn how to actually code in the best feasible language for a beginner which is why I set up this thread. To understand which language I should learn, and to (hopefully) be taught said language as well along side any viewers that would also like to learn.
I'LL GO NIGHTMARE MOON ON YOUR ASS!

Re: Creating Horrors

#2
Wall o' text incoming, sorry if I start to use a bit too much jargon:
PrincessLuna wrote:C++ can do everything
While this is almost true, (not really, but for sake of argument lets say it is) it isn't a good idea to get into this mindset. I wrote a paragraph somewhere here explaining this, but to summarize; C++ is very good for building some things, and not so good for other things.
PrincessLuna wrote:but it's recommended you don't learn it as a first language
C++ was my first language so I'll explain the above a bit more for those of you who want an actual explanation for it. When I say "C/++ probably isn't the best language to learn as a first," I mean it in the sense that it isn't a very beginner friendly language. The biggest pro for C (and C++ depending where you stand on the OO vs Procedural debate) is also potentially the biggest con for the language as well. As a high level (in the overall sense) language, it remains very close to the machine. What this means is that you have to do the majority of your memory management manually. This is great for optimization, as it allows you to achieve amazing computation speeds for massive programs. But it also gives the language a rather high learning curve. C compilers do not 'baby sit' you when they check your code at compile time; if it notices potential memory leaks or accesses that shouldn't be happening, it assumes that you know what you're doing and compiles anyway. Other languages like Java don't do this. If there is the slight possibility of memory mismanagement, the compiler will bitch at you with an error and often refuse to compile.

But I will say, as someone who learned the lower end of the spectrum first, that learning C or C++ as a first language isn't necessarily a 'bad' thing. Rather, it'll take longer to learn basic programming skills, but you'll likely have an easier time understanding lower level architecture and overall memory management in the future, should you decide to take that path.
PrincessLuna wrote:C# is essentially the same as C++
While they may all belong to the same family of languages, C# is much more closely related to Java than it is to C/++.
PrincessLuna wrote: I would like to learn how to actually code in the best feasible language for a beginner which is why I set up this thread. To understand which language I should learn, and to (hopefully) be taught said language as well along side any viewers that would also like to learn.
While I could just tell you to learn Python, it honestly depends on what you want to do. Are you planning on getting a computer science degree? Do you want to work as a software engineer? Are you planning on working in the AAA industry? Are you doing this just to have fun making games?
M-x dingus-mode

Re: Creating Horrors

#3
I plan on learning so I can maybe some day get a job in the video game industry and so I can have fun making games. I have heard "AAA industry" a few times, but I haven't the slightest clue what it is. Is it a term used to describe companies like Nintendo in a general sense?
I'LL GO NIGHTMARE MOON ON YOUR ASS!

Re: Creating Horrors

#5
Princess Luna wrote:I plan on learning so I can maybe some day get a job in the video game industry and so I can have fun making games. I have heard "AAA industry" a few times, but I haven't the slightest clue what it is. Is it a term used to describe companies like Nintendo in a general sense?
If you want to get into the industry you'll likely have to learn C++ at some point and you'd likely need a computer science degree or equivalent, if you don't want to learn Python or Java then C# would probably be best to learn from right now due to the current popularity of unity.
M-x dingus-mode

Re: Creating Horrors

#6
Brunou8 wrote:You should know this.

[youtube]/watch?v=lGar7KC6Wiw[/youtube]
This. Anybody working at a game industry doesn't have it easy at all. Even in indie companies. When you have a project which you MUST complete in a specific date you aren't going to be sitting at a desk enjoying your day while you create something so that the character can do "x" thing. Not always, but it happens. It's not just "create game then release get money hohoho", there's a lot of factors involved.

Of course, it doesn't mean you should simply not try at all. I, as a modder for Don't Starve in the art aspect i had quite my share of pressure when we had to release a project in x day and things weren't quite ready.
sup

roger copy bravo tango mango

Re: Creating Horrors

#7
Monocle, would you like to teach me C#? I know how busy you are so I'll understand if you say no. Also, I know how hard the gaming industry is, especially when you have a due date. I'm obviously not speaking from experience, but common sense tells you that it's hard to model, program, texture, and finalize before your scheduled release date.
I'LL GO NIGHTMARE MOON ON YOUR ASS!

Re: Creating Horrors

#8
Princess Luna wrote:Monocle, would you like to teach me C#? I know how busy you are so I'll understand if you say no. Also, I know how hard the gaming industry is, especially when you have a due date. I'm obviously not speaking from experience, but common sense tells you that it's hard to model, program, texture, and finalize before your scheduled release date.
Even if I weren't busy with school, I'm not that confident in my teaching abilities. I'd recommend reading tutorials, and perhaps buy a book on the subject. If you have questions feel free to ask.
M-x dingus-mode

Re: Creating Horrors

#9
Monocle, I used to spend all my time in Game Maker back when it was $20, still sometimes open it up and code random ideas.
I'd like to get back into coding as going into Containment Breach has kind of resparked my interest in the subject. I'm mainly looking
to code a polished FPS game, leaning towards Unity. However, when I used Game Maker I was never really exposed to memory management
and architecture, as the very core of the 'game' was always handled in Game Maker upon compilation. I'm looking to create a program from
basic scratch, like I said I would like to have the skills to create a simple but polished FPS game. However, I know Python is used mainly for
a lot of non-game projects, but I'm interested in learning it.
Image

Re: Creating Horrors

#10
mrpeanut188 wrote:Monocle, I used to spend all my time in Game Maker back when it was $20, still sometimes open it up and code random ideas.
I'd like to get back into coding as going into Containment Breach has kind of resparked my interest in the subject. I'm mainly looking
to code a polished FPS game, leaning towards Unity. However, when I used Game Maker I was never really exposed to memory management
and architecture, as the very core of the 'game' was always handled in Game Maker upon compilation. I'm looking to create a program from
basic scratch, like I said I would like to have the skills to create a simple but polished FPS game. However, I know Python is used mainly for
a lot of non-game projects, but I'm interested in learning it.
Given that Unity primarily uses C# and seems to be modular for the most part, you don't have to know anything about memory management and very little about engine architecture to get by. It's great to make games with, but it wont teach you anything about low-level programming. I honestly think that there isn't a good alternative to learning both C and C++ (to get a good feel for procedural vs OO) in order to get a feel for "closest you can get to the metal in a high level language" programming. And I think that anyone who wants to write efficient programs should at the very least learn memory management in C, though learning any form of ASM and how it interacts with the CPU is a really good idea.

On the complete opposite end of the spectrum I think that Python is best fitted for console utilities, but that's mostly because I personally don't like making GUIs in it. If I were to use python for only one thing, it'd be text parsing; even by scripting language standards, it's very good at it.

Back to the sub-topic thing about the industry; from what I've heard, your role as a programmer in a game-dev firm is no different than any other firm. A large majority of the time you will not be programming all the fancy stuff (eg. UI, events, general content, etc.) but more of the back-end work like engine architecture. If anything, it'll likely be your job to properly implement a scripting system so that the designers can script such things.
M-x dingus-mode