Skip to main content
gamedev.net
🔒 Locked

Programming

Started by FPL_Programming 35 replies 3k views
Original Post
FPL_Programming
FPL_Programming
Hello, I am kind of new to programming, I've just completed a course in Visual Basic but I'm in high school and we didn't get too complex. But I was wondering what languages I should be learning if I wanted to make this into a career. Next year I will be taking an AP course in Java but I wanted to know what other languages are commonly used in game development. Also, if you could recommend any books that would be helpful in learning those languages that would be greatly appreciated.
Dreq
Dreq
Learn x86 assembly :)

Um.. C++ is the de-facto for game programming. I myself use C# but I don't think any professional companies are using C# to write games (yet anyway).
"Mommy, where do microprocessors come from?"
Driv3MeFar
Driv3MeFar
Quote:
Original post by Dreq
I myself use C# but I don't think any professional companies are using C# to write games (yet anyway).


My understanding is that C# is gaining ground, and that is being used somewhat widely for making tools for professional projects.
password
password
If you want to make this into a career, C++ is most likely the better choice. Not necessarily as the first language though. C++ is also the industry standard.

Some languages i've seen people been using a lot:
Java
Python
C/C++
C#
Blitz Basic

Probably forgot some languages, but that's some of the common ones people use to mention.
Dreq
Dreq
x86 assembly is basically human readable machine code.. does this kind of code look famailiar:
push axmov ax, [bx]mov bx, axpop ax


Thats basically what assembly looks like. Even though I am COMPLETLY alone in this.. I still say x86 is the best language to learn FIRST, because it is very close to how a pc actuially works. You don't have classes and functions and all these high level things. Instead you pretty much do everything yourself. And if you understand how a pc works, you can write better, more efficient code. After I learned x86 assembly, I started doing things like bitshifting instead of dividing/multiplying by power-of-two numbers (Real handy with 2d tile based games). But again, I seem to be the only one who thinks this way.
"Mommy, where do microprocessors come from?"
snk_kid
snk_kid
If you're serious about it then this might help to you. One thing to note if you have no programming experience whats so ever don't try to run before you haven't learned to walk meaning don't expect to be programming games straight away besides you're young and you have a life time there is no need to rush it.

Quote:
Original post by Dreq
I still say x86 is the best language to learn FIRST, because it is very close to how a pc actuially works. You don't have classes and functions and all these high level things. Instead you pretty much do everything yourself. And if you understand how a pc works, you can write better, more efficient code. After I learned x86 assembly, I started doing things like bitshifting instead of dividing/multiplying by power-of-two numbers (Real handy with 2d tile based games).
.


That is the most absurd advice i've ever read. If he/she learns assembly first she/he wont learn how to problem solve (and learn it using a variety of programming concept) properly, she/he wont learn how to design large programs and design them good, she/he wont be exposed to any form of programming abstractions and no i don't mean just "OO".

Also you do not need to program in assembly to learn about computer architecture.

Quote:
Original post by Dreq
But again, I seem to be the only one who thinks this way.


For good reasons.
FPL_Programming
FPL_Programming
I did take a course in VB, my final project was simple Pong but after reading that blog article I'm thinking that maybe I have started to learn incorrectly.
Jovan
Jovan
snk_kid, avoid chances to start flamewars like that. There are good reasons to learn assembly, but that doesn't really matter right now anyway.

Anyway, you shouldn't start with assembly since it won't help you with anything when learning, and as far as I know, regarding the game industry assembly is passe, they used to use it but now the game industry uses C++ I suppose.

Aside from that you should also learn Python and/or Lua, since modern games rely heavily on scripting.
Dreq
Dreq
Quote:
Original post by snk_kidThat is the most absurd advice i've ever read. If he/she learns assembly first she/he wont learn how to problem solve (and learn it using a variety of programming concept) properly, she/he wont learn how to design large programs and design them good, she/he wont be exposed to any form of programming abstractions and no i don't mean just "OO".


"Wont learn how to problem solve":
Oh so assembly has absolutely no problem solving at all?

"she/he wont learn how to design large programs and design them good":
And visual basic is supposed to be better?

"she/he wont be exposed to any form of programming abstractions and no i don't mean just "OO""
Thats kind of the point...

And, I close with the following passage:
dcl_2d s0dcl t0.xytexld r1, t0, s0mov oC0, r1


Know what that is? A pixel shader program. Huzaaa.

[edit]
And thanks for the negative raiting!
"Mommy, where do microprocessors come from?"
Zahlman
Zahlman
Quote:
Original post by Dreq
"Wont learn how to problem solve":
Oh so assembly has absolutely no problem solving at all?


Not the kind of problem solving that's actually useful; the student will be too busy solving lower-level problems.

Quote:
"she/he wont learn how to design large programs and design them good":
And visual basic is supposed to be better?


VB is pretty roundly criticized anyway; I have no idea why you're picking it as an alternative. But regardless, you can't realistically hope to write anything *big* in assembly language, or really *design* things properly.

Quote:
"she/he wont be exposed to any form of programming abstractions and no i don't mean just "OO""
Thats kind of the point...


What, because abstractions are something difficult to deal with? How do you ever manage to buy things these days? Doesn't it irritate you that you can't *really* go to the bank and demand the gold backing for your currency?

Abstractions exist precisely so that you don't have to think about details that are irrelevant to your task. You don't need to be a mechanic to drive; to most people, the internal combustion engine is an abstract thing that makes the car go forward when you step on the gas pedal.

Quote:

And, I close with the following passage:
dcl_2d s0dcl t0.xytexld r1, t0, s0mov oC0, r1


Know what that is?


No. And incidentally, *that's* "kind of the point".

Quote:
And thanks for the negative raiting!


Here, have one from me, too. :\
Dreq
Dreq
Quote:
Original post by Dreq
Learn x86 assembly :)

Um.. C++ is the de-facto for game programming. I myself use C# but I don't think any professional companies are using C# to write games (yet anyway).


Read it again.. The smily was meant as a joke, but you guys just had to pick it apart and jump on me.. The only reason why I even explained it further was because he asked. Of course, answering him is aparently a 'hate crime' here if it goes against your views. Thats ok though, its what I expect ;)

as far as "No. And incidentally, *that's* "kind of the point"." is concerned... That just goes to show you that... you know what, nevermind, I'm wasting my time (this is where someone posts back about how i'm wasting ~theirs~).
"Mommy, where do microprocessors come from?"
jjd
jjd
Quote:
Original post by Dreq
<snip>


Looks like you picked the wrong forum to present a dissenting opinion... :/
darookie
darookie
Quote:
Original post by Dreq
"Wont learn how to problem solve":
Oh so assembly has absolutely no problem solving at all?

x86 assembly isn't that useful for a beginner to solve problems. This isn't ye' olde DOS days anymore. In order to do something useful, i.e. output results on the screen, you'll have to call API functions. And sorry, but I don't think this...
.386.model flat, stdcalloption casemap : noneinclude \masm32\include\windows.incinclude \masm32\include\kernel32.incincludelib \masm32\lib\kernel32.libinclude \masm32\include\user32.incincludelib \masm32\lib\user32.lib.dataMsgBoxCaption  db "This is so helpful...",0MsgBoxText     db "Win32 Assembly for teh win!!11!1!",0.codestart:invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OKinvoke ExitProcess, NULLend start

is of any use for learning how to solve problem. Really. Not at all.

Quote:

"she/he wont learn how to design large programs and design them good":
And visual basic is supposed to be better?

Uhm...
MsgBox("...yes indeed!", vbOk, "Actually...")


Quote:

"she/he wont be exposed to any form of programming abstractions and no i don't mean just "OO""
Thats kind of the point...

Well yes, it is.

Quote:

And, I close with the following passage:
dcl_2d s0dcl t0.xytexld r1, t0, s0mov oC0, r1


Know what that is? A pixel shader programOutdated. Huzaaa.

"With Direct3D 10 the use of assembly shaders has been almost eliminated – effect files and 'pure' shaders are now expressed only in HLSL form."
Huzaa indeed.

Best regards,
Pat.

(And no, I didn't rate you down)

Dreq
Dreq
Well I'm done arguing either way.
"Mommy, where do microprocessors come from?"
JBourrie
JBourrie
Quote:
Read it again.. The smily was meant as a joke, but you guys just had to pick it apart and jump on me.. The only reason why I even explained it further was because he asked.

I actually chuckled when I read the joke, and then got a bit frustrated when people started thinking you were serious and fishing for a flame war. But you took the bait, man. You took the bait... [lol]

x86 assembly is the greatest language ever, because I hate myself. If you hate yourself and want to wish you had never been born, you should definitely learn x86 assembly first. :) <-See, smiley!

Otherwise, you should leave it until you have some (read:alot) of knowledge of programming. That extra bit of oomph gained by using assembly on PC used to be a big deal, nowadays it's not quite so useful... the compilers are pretty damn good.

Anyway, as they said above, C++ is the "standard" (if one can exist), though once you've learned one language (except assembly or lisp) you will have a much easier time learning others (even VB).

Good luck!
FPL_Programming
FPL_Programming
hmmm it seems i've started some arguing, my bad. but thanks for the help, i will be looking into c++ more and a little bit of c#. i know vb isn't the greatest, i never said it was. that just happens to be the first language i learned in school and the one that got me into programming. that's the whole point of this thread, to find out what other languages i should be studying if i want to make this my career. no need to flame.
Sr_Guapo
Sr_Guapo
Quote:
Original post by FPL_Programming
hmmm it seems i've started some arguing, my bad. but thanks for the help, i will be looking into c++ more and a little bit of c#. i know vb isn't the greatest, i never said it was. that just happens to be the first language i learned in school and the one that got me into programming. that's the whole point of this thread, to find out what other languages i should be studying if i want to make this my career. no need to flame.


Nothing is inherently wrong with Visual Basic. I myself progrqammed for years in Visual asic before moving on to C++. However, it is possible to program with visual basic that can make learning other languages more difficult. I recommend looking at C#. It's syntax is quite different from VB, but will help immensly once you start looking into C++ and/or java, as the syntax is similar.

Good Luck!
Sean Henley [C++ Tutor]Rensselaer Polytechnic Institute
darrenc182
darrenc182
Why are beginners always so focused on what language to learn when it comes to programming when they can barely program. I think they need to learn simpler languages like BASIC, QBASIC, VisualBasic before even thinking of learning a language like C++. I have no idea why anyone would consider learning x86 ASM first, that's just crazy

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.