12 Replies - 50145 Views - Last Post: 05 June 2012 - 09:20 AM Rate Topic: -----

#1 kabak1992  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 30-May 12

Best language to learn game programming?

Posted 30 May 2012 - 07:21 PM

what is best languge i can learn to be game programmer?
Is This A Good Question/Topic? 0
  • +

Replies To: Best language to learn game programming?

#2 Atli  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 3730
  • View blog
  • Posts: 6,017
  • Joined: 08-June 10

Re: Best language to learn game programming?

Posted 30 May 2012 - 10:20 PM

What language or IDE is best? There isn't one.

It's not about which languages is "best", it's about what you are trying to do and how each language will help you achieve that goal.

So, the question is: what kind of games are you trying to make?
Was This Post Helpful? 2
  • +
  • -

#3 BBeck  Icon User is offline

  • Here to help.
  • member icon


Reputation: 592
  • View blog
  • Posts: 1,321
  • Joined: 24-April 12

Re: Best language to learn game programming?

Posted 31 May 2012 - 11:17 AM

View Postkabak1992, on 30 May 2012 - 07:21 PM, said:

what is best languge i can learn to be game programmer?


Atli's right, and I haven't worked with every language out there. I also have pretty much zero interest in developing for any platform other than the PC (and maybe Android or iPhone somewhere in the far off future).

I also assume we are talking about video games here and not text based games.

I would say C#/XNA, hands down, no ifs-ands-ors-or buts about it. I've played with Java and Visual Basic. I've written Windows programs (simple ones) in Assembly/Machine Langugage. And I initially started trying to program games in C++ using DirectX. Having gone through the frustration of trying to learn video game programming, I make no hesitation in saying XNA is the choice language to learn game programming in.

C#.Net is a very solid programming language that's "relatively" easy to learn. If C# is too intimidating you can actually do XNA in Visual Basic.Net although I've never personally done it. But C# and VB are pretty much the same thing since 95% of it is calls to the .Net library. MOST of it is really about learning .Net and that's the same in VB or C#. I just recommend C# over VB because it's only slightly harder to learn and C# makes it a little harder to develop bad programming habits. Plus, almost all the tutorials and support for XNA will be in C# and not VB.

But that's one of the great things about C#: If C# is too intimidating, you can always go learn VB.Net. Because if you learn VB.Net you will learn the .Net library and basic programming concepts that will make learning C# easier later. So, I would try to jump straight into C# and then if you feel like you are drowning, go back and learn VB. Both, are free downloads from Microsoft for their "Express" editions. XNA is also a free download (Download Visual Studio 2010 C# Express and then XNA 4.0).

I've seen about one book that teaches XNA programming in Visual Basic. I've seen about 6 books teaching XNA 4.0 and even more than that teaching previous versions of XNA.

Anyway, once you get pretty solid in C# you can get into XNA and start learning to program 2D games with a lot of people out there to help you and a lot of good tutorials. As you're doing that, I would recommend getting a free game engine or two, like Unity for example, and some level editors. Getting some experience with game engines and level editors will help you understand how other people have created their games. Strictly speaking, that doesn't teach you game programming but it will teach you about how a lot of games are designed. I strongly recommend Neverwinter Nights level editor for their game although it's about 6 years old and I don't know if there is still any info out there about how to use it. There's a lot to be learned from playing around building new levels for existing games.

I do exclusively 3D programming, so I tend to recommend stuff that's 3D, but you should probably start with 2D and look at 2D game engines rather than 3D game engines, starting out anyway.

But as you get better with XNA programming 2D games, you can move on to 3D games in XNA. XNA is suprisinglly robust and powerful with 3D and it's probably the easiest way to learn 3D programming of anything I've seen. I abandoned C++ and DirectX because there's really no reason I've seen yet to not use C#/XNA and there's literally 100 times more information out there on how to make games with XNA than there is for DirectX or OpenGL that's written far closer to a beginner level.

One of the problems you'll find, if you start out from the beginning with C++ and DirectX or OpenGL is that they want to start out an absolute beginner by throwing them in the deep end of the pool and saying "Well, you'll either figure it out and become a 'real game programmer' or you'll die. See you if you make it!" I mean practically from the word go they are going to assume that you have at least Bachlor's degree with a minor in mathematics, that's just a given. And they'll spend months explaining to you how a back buffer works and the whole "Pipeline" and Rasterization process. You'll be like, "Dude! I just want to make a GAME! Can you at least show me how to make Tic-Tac-Toe?"

But the fact of the matter is you can learn 95% of what you know to make games professionally by mastering C#/XNA. I can't even begin to explain to you how far you can go with XNA and how much you can learn in an environment that tends to hold your hand and help you along. It's more like swimming lessons rather than just jumping off in the deep end. XNA will get you into the deep end if you go far enough with it, but by that time you will be so confident in your ability to swim that you'll be wanting to spend all your time in the deepend and may even, at that point, abandon XNA and get into DirectX or OpenGL.

Now, I'm assuming you want to do this because you enjoy doing it and not because you want a paycheck. Quite frankly, the journey (even in XNA) is going to be so long and difficult that you'll never make it half way down the road unless you love the journey. But if you're hoping to one day make video games for a living, you're almost certainly going to have to learn C++ and DirectX or OpenGL. That's the major leagues as compared to XNA's minor leagues. And quite frankly, if you intend to be a top level game programmer you need to learn Assembly/Machine Langugage; it will help you understand C++ better and allow you to write inline Assembly, Device Drivers, or other optimized code and, more than that, it will teach you how the CPU works and you'll never be a top level programmer without knowing that. But we're talking about being an NFL super star here when we should be talking about learning what a down is and how to pass the ball. I'm just saying that that's ultimately where you want to end up if you want to go pro. XNA is more like College leagues as opposed to the NFL.

Anyway, I strongly believe the way to start is to download C# 2010 Express edition for free from Microsoft. Buy a couple books on the matching version of C#. Read them cover to cover and build some example programs. Then go download XNA 4.0 for free. After that you can buy a couple of XNA books and read them and/or start working through Internet tutorials for XNA 2D games. That's the place to start. It's not the only way to get started programming games, but I strongly feel it's the best way to get started. Go ask around on the XNA forum and see if everyone there doesn't agree (albiet they may be a little biased, but its for good reason). :smile2:

This post has been edited by BBeck: 31 May 2012 - 11:23 AM

Was This Post Helpful? 3
  • +
  • -

#4 TheGDeveloper  Icon User is offline

  • D.I.C Head

Reputation: 10
  • View blog
  • Posts: 93
  • Joined: 22-September 09

Re: Best language to learn game programming?

Posted 31 May 2012 - 01:49 PM

c# with XNA is a good move but with java and android you can publish on google play.
Was This Post Helpful? 1
  • +
  • -

#5 kabak1992  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 2
  • Joined: 30-May 12

Re: Best language to learn game programming?

Posted 31 May 2012 - 03:28 PM

Thank you for instructions BBeck :)
I will start with c#
Was This Post Helpful? 0
  • +
  • -

#6 RainyDayJ  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 31-May 12

Re: Best language to learn game programming?

Posted 31 May 2012 - 04:24 PM

I am considering what it would take to program a browser based game and I need to figure out which direction I should look for the best language to work in. Here are the parameters.

1. Turn Based Play.
- Each action will use an "action point" from the player’s reserve. The points will regenerate over time.

2. Persistent World
- User characters will exist in the game world when they are offline and the world will change over time.

3. Tile/Grid Based World
- Large worlds will be generated for each game until a win/loss condition is met (potentially over months). Initially the worlds will be selected from a pool of 4 or 5 options.
- Eventually some degree of randomness in world generation will be added.

4. No animation, graphics will all be stationary between player actions.

5. No AI required. All in game characters will be player controlled.
- Eventually some degree of VERY simple AI may need to be implemented to fill up the world.

6. Many players need to be able to access the world at the same time and interact with it and other players in a turn based fashion.

Anyway, hopefully that's enough to get an idea of what I should be working with. Any ideas or comments would be greatly appreciated! If I should repost this in another forum please let me know where and I would be HAPPY to do so.

Thank you! - RDJ
Was This Post Helpful? 0
  • +
  • -

#7 Oler1s  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1395
  • View blog
  • Posts: 3,884
  • Joined: 04-June 09

Re: Best language to learn game programming?

Posted 31 May 2012 - 05:42 PM

RDJ, do not multipost. You already have your own thread with this question, it is not acceptable to additionally post it, especially in someone else's thread.
Was This Post Helpful? 0
  • +
  • -

#8 atraub  Icon User is offline

  • Pythoneer
  • member icon

Reputation: 759
  • View blog
  • Posts: 2,010
  • Joined: 23-December 08

Re: Best language to learn game programming?

Posted 31 May 2012 - 05:46 PM

I've been doing some work with Lua and the Corona SDK, it's pretty fun for mobile development. That being said, I agree with the other posters, there is no BEST starting point.
Was This Post Helpful? 0
  • +
  • -

#9 RainyDayJ  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 4
  • Joined: 31-May 12

Re: Best language to learn game programming?

Posted 31 May 2012 - 06:18 PM

View PostOler1s, on 31 May 2012 - 05:42 PM, said:

RDJ, do not multipost. You already have your own thread with this question, it is not acceptable to additionally post it, especially in someone else's thread.

Sorry, I was directed to this thread. Sounded like the original question was wrapped us and mine was a relevant follow up. Didn't mean to step on toes.
Was This Post Helpful? 0
  • +
  • -

#10 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 1
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: Best language to learn game programming?

Posted 01 June 2012 - 02:25 PM

View Postkabak1992, on 31 May 2012 - 03:21 AM, said:

what is best languge i can learn to be game programmer?

I'm an advocate of C# for starting out. I would very highly recommend that if you want to write games as a carer that you also learn C/C++ which is essential for console development, as well as Obj-C so that you have the ability to work fully with the iOS platform. It is really starting to be essential that a game dev can do this nowadays.

Have fun learning! :)
Was This Post Helpful? 0
  • +
  • -

#11 Crockeo  Icon User is offline

  • D.I.C Head

Reputation: 44
  • View blog
  • Posts: 247
  • Joined: 21-June 11

Re: Best language to learn game programming?

Posted 03 June 2012 - 07:38 PM

*
POPULAR

While this thread seems rather answered, I'll throw in my fiddy cent.

Honestly, it really depends on preference, and goals.

Java - My personal favorite language, which happens to be my best. People seem to really like C#, and call it an OO wet dream, but having worked in both, I prefer Java, hands down. That being said, C# has some OO features that Java doesn't have, but Java has the ability to be run on (almost) every platform, which C# may not.

Remember though, I'm very partial to Java.

C# - C#, as I said, commonly accepted as an OO programmer's wet dream. It also runs on the .NET framework, which many people seem to love. Albeit I've some sort of irrational disdain for most of Microsoft's products (I'd prefer to use Linux, but there are no mainstream games for Linux), so I personally wouldn't suggest you learn this. That being said, it's still a fantastic language, and XNA is (primarily) bound to it.

C++ - If you're serious about game development, learn C++. It's by far the most important if you plan to work in the industry, and important -- but less so -- if you're a hobbyist. It's also much harder to learn than C# or Java, but in my opinion, it's more fun. It removes a level of abstraction that are in place in the prior two languages mentioned, which can make programming much more fun, and let you manipulate the computer to your will in rather creative (if not strictly speaking 'supported') ways.

Other - Honestly, those are the top 3 in my opinion (in no order), but other languages are more than fine too. The LOVE library for Lua is fun to mess around with, but I've found that game programming is much easier with strongly typed variables (but that's probably due to me being partial to C-like languages).


Anyways, that was my Posted Image.

Hope it helped.
Was This Post Helpful? 5
  • +
  • -

#12 anonymous26  Icon User is offline

  • D.I.C Lover

Reputation: 1
  • View blog
  • Posts: 3,638
  • Joined: 26-November 10

Re: Best language to learn game programming?

Posted 03 June 2012 - 08:04 PM

Very well said and thought out, Crockeo. Would +1 rep if I were not on my iPhone. :)
Was This Post Helpful? 2
  • +
  • -

#13 Crockeo  Icon User is offline

  • D.I.C Head

Reputation: 44
  • View blog
  • Posts: 247
  • Joined: 21-June 11

Re: Best language to learn game programming?

Posted 05 June 2012 - 09:20 AM

Thank you! :D
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1