# What programming language should I pick up?



## GatodeCafe (Nov 6, 2010)

Alright folks, I want to get into game design and I'm wondering what language(s) I should look at. I really have never learned a programming language, so I'm also looking for mentors if there are any out there willing to deal with me 

thanks folks!


----------



## Aden (Nov 6, 2010)

Assembly :U


----------



## Lapdog (Nov 6, 2010)

LUA, C++, E2.


----------



## Lapdog (Nov 6, 2010)

Lapdog said:


> LUA, C++, E2.


 
EDIT: Expression 2 is what I meant by E2, its only really for the source engine, however, it can be ported and edited to suit needs of other engines, and other uses entirely with its I/O system.

EDIT(Again): Wow, wrong button.


----------



## Schwimmwagen (Nov 6, 2010)

Well, if you wanna jump into scripting for games a little faster, you might wanna take a look at Unreal Script.

Are you currently working on a project with a team? :3


----------



## medjai (Nov 6, 2010)

For a super general starting language, C++. There are more specialized ones for games, but that is a very good starting point.


----------



## GatodeCafe (Nov 6, 2010)

Okay folks, I'm downloading UDK as we speak. Anybody know any good C++ compilers? Lol I'm snagging Visual C++ express right now because it's free.


----------



## GingerM (Nov 6, 2010)

If you're going to work in Visual C++, I'd suggest Visual Studio as well, since it provides a front end for the programming language, XML interface for front-end skinning, etc.


----------



## Lobar (Nov 6, 2010)

Python :V


----------



## Runefox (Nov 6, 2010)

PHP 8U No compiler necessary, just a webserver!


----------



## Leafblower29 (Nov 9, 2010)

C#/C++/Assembler


----------



## Whosat (Nov 11, 2010)

I'll throw another vote behind C++


----------



## Jashwa (Nov 11, 2010)

Lobar said:


> Python :V


 I was going to make that joke :C. 

It's soooooo slow. I'm learning it in class this semester and it's bad. Very bad.


----------



## JadeFire (Nov 12, 2010)

I've taken a C# and later C++ class in school. Either of those are good, solid languages to program with. LOLCODE all the way. :V


----------



## Takun (Nov 12, 2010)

JadeFire said:


> I've taken a C# and later C++ class in school. Either of those are good, solid languages to program with. LOLCODE all the way. :V


 
Hey, my team is doing our entire semester project in lolcode!

Actually we were going to use php but what's the difference :V


----------



## Folgrimeo (Nov 12, 2010)

GameMaker is geared towards making games, so you get decent graphical capabilities right away. You could use the drag-and-drop thing, or just code scripts with its GML language. When doing a GameMaker project for school, I had to create scripts from time to time to get around limitations. GameMaker's useful when you want results fast.

Many people hate Visual Basic, but with the .NET version of it essentially being different syntax around the .NET Framework, it doesn't seem as bad. Its code looks a little more like English, so it's supposedly easier to learn. C# is the preferred .NET language with syntax similar to C++. As for getting results quickly, I think anything with a drag-and-drop UI interface would do that.

Dynamic languages by their nature let you test and change things while the program's running, so they're ideal for creating scripts in games. I've heard of LUA and Python. You'd still need to find something for those scripts to act on though.

Java's a general-purpose language, it has on its side cross-compatibility, generally praised for security and well-thought-out design, and a whole bunch of libraries. And its programs can run on the web. The Swing library can be used for a user interface.

C++'s a general-purpose language that's more lower level. You have more control. But this also means you can shoot yourself in the foot easier. The language will very quickly get you introduced to working with pointers and some other things that higher-level languages (like Java) try to handle and keep away from you.


But what games seem heavy in is math and rendering graphics. Math libraries are probably good enough but you need to actually know the math so you know how to use them. As for the graphical horsepower, learn about the model/view/controller thing and perhaps look into how to program with graphics APIs. If you're on Windows, you can try working with DirectX, or download XNA which is an add-in for Visual Studio with special libraries to make creating games easier (XNA works with the Compact .NET Framework, so any games made with XNA can also run off an X-Box 360. I've seen it done in class). It always bugged me that XNA came with a Vector class and the .NET Framework didn't, considering how useful vectors are to just about any game (it's easy enough to create them, but creating the common mathematical operations you perform on them... eh). OpenGL is a graphics API that works for any system.

In summary: while something can be said for languages that get you results fast, you really need to know programming basics first and a good understanding of relevant math. It's the stuff that you can use in just about any language. My personal pick for first language is GameMaker (and GML scripts), followed by .NET (Visual Studio, plus some language like C#) + XNA.


----------



## LLiz (Nov 12, 2010)

If you're new to programming then go for C# because its forgiving but also very powerful. 
You can then try the XNA Game Studio, which is free from Microsoft. 

There are also lots of multi-platform open source C# based game engines. 

OH HEY!
Did anybody ever play with "Klick & Play", "The Games Factory", or "Multimedia Fusion"? They were FANTASTIC game creating tools by Europress software, I was SO SO good at them... ahh the memories...


----------



## CerbrusNL (Nov 12, 2010)

I can't imagine why someone would seriously suggest GML as programming language. It has a lot of limitations, you're better off using java or C++

I wonder, tho, are you doing some ict study?


----------



## Takun (Nov 12, 2010)

Folgrimeo said:


> Java's a general-purpose language, it has on its side cross-compatibility, generally praised for security and well-thought-out design, and a whole bunch of libraries. And its programs can run on the web. The *Swing library* can be used for a user interface.
> 
> .



All. *of. MY. HATE.*


----------



## net-cat (Nov 12, 2010)

Game design?

C++

If you know what engine you want to use, look into whatever scripting languages it has, too. (Most seem to be variants of JavaScript, Lua or Python.)


----------



## Carenath (Nov 13, 2010)

If you're completely new to programming, two languages that get suggested a lot for beginners, are Java and C#.
For Java, you download the free JDK and an IDE like Eclipse (which is more beginner-friendly.. than using just a text editor).
For C#, you download a copy of Microsoft Visual Studio Express Edition, which you can find on their website.
Both of these languages are (for the large part) object-oriented and have a very similar syntax that's easy enough to pick up or so I'm told.

C++ is, as net-cat pointed out, the standard for game design and game development along with the likes of Python and Lua for the scripting components.
Microsoft Visual Studio has a compiler for C/C++ as well, and a very sane one at that. Two good books you might try picking up for it: Prata's C++ Primer Plus or Koenig & Moo's Accelerated C++. I've not read either in detail, these were just two different recommendations.

Some sage advice, from someone a lot smarter than me, about your first programming language:
"<nrr> Now, ideally, your first language should allow you to: (1) just write shit how you feel like it, (2) think about things without worrying about the type system coming and  biting you in the ass and (3) understand gradually what bad code looks like.".


----------



## Piru (Nov 21, 2010)

Scheme. Lulululul.


----------

