Jump to content

  • Log In with Google      Sign In   
  • Create Account


Game Development Langauge


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • This topic is locked This topic is locked
17 replies to this topic

#1 AnonymousApple   Members   -  Reputation: 100

Like
0Likes
Like

Posted 22 November 2011 - 01:30 PM

Hi, I am Texturer For Every single game i ever worked on.
But, Even though i Love Texturing, I Want to learn how to program a game too,
Now...This Brings me to my question. What is the best language for a beginner to learn?
I want something thats not that difficult as a first language.
Also, Im Intresting In Making 2D Platformers, So If you could recommend a language that suits that. That'd be great
And I Know that learning to program is a long road..
I Understand stand that.
Thanks In Advance,


-ApplePosted Image

Poll removed, please read the forum FAQ. -- jpetrie

Sponsor:

#2 yewbie   GDNet+   -  Reputation: 665

Like
0Likes
Like

Posted 22 November 2011 - 01:48 PM

I would check out the Forum FAQ It actually answers all of your questions =)

I would stay away from C++ to start out, have fun!

edit:
Many people are voting C++, but keep in mind your going to spend a minimum a year learning to program in C++ before you can start making games.
If you want to start making games I would really recommend something else.

On the other hand if you want to learn how to program C++ is a good choice, but its going to be more difficult to learn than the other languages.
I would also suggest adding C# for your list.

#3 NightCreature83   Crossbones+   -  Reputation: 2703

Like
0Likes
Like

Posted 22 November 2011 - 06:16 PM

I would check out the Forum FAQ It actually answers all of your questions =)

I would stay away from C++ to start out, have fun!

edit:
Many people are voting C++, but keep in mind your going to spend a minimum a year learning to program in C++ before you can start making games.
If you want to start making games I would really recommend something else.

On the other hand if you want to learn how to program C++ is a good choice, but its going to be more difficult to learn than the other languages.
I would also suggest adding C# for your list.


The problem is that the list isnt extensive enough, I voted C++ as it is the only language in which big projects make sense. In my home projects I stay as far away from C++ as I can, and I code daily in C++ at work, the reason behind this is that there is no real framework in C++. You have to do everything yourself and it slows you down dramatically.


If you want to have something visual running quickly I would suggest you look into C# and XNA.

But before you can actually make games you need to learn how to code and that will take time and practice, I would start with simple number guessing games in a console window. This will teach you some basics of how to accept input and generate output and general application flow. After that start making it into a GUI app or make the guessing game a bit more interesting. Then look into pong as it will need some more advanced game logic and input handling.


Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#4 GhostXoP   Members   -  Reputation: 102

Like
0Likes
Like

Posted 22 November 2011 - 10:00 PM

I find it hilarious java got nothing.

Has my point been proven yet.

#5 latent   Members   -  Reputation: 139

Like
0Likes
Like

Posted 22 November 2011 - 10:31 PM

You can program a game on anything with a programming language. So the list could include C#, HTML5, VB, Javascript, Lua, Ada, Pascal, your programmable calculator, yada yada yada. There's like a discussion a day on programming language or game engine choices - and as there's obviously never so definitive an answer that it doesn't get asked again tomorrow, then I just suggest that you go with whichever one you're having the most fun with when you try it out. If you learn to program competently enough in that, moving to another language later will be easy.

#6 AnonymousApple   Members   -  Reputation: 100

Like
0Likes
Like

Posted 23 November 2011 - 07:57 AM

You can program a game on anything with a programming language. So the list could include C#, HTML5, VB, Javascript, Lua, Ada, Pascal, your programmable calculator, yada yada yada. There's like a discussion a day on programming language or game engine choices - and as there's obviously never so definitive an answer that it doesn't get asked again tomorrow, then I just suggest that you go with whichever one you're having the most fun with when you try it out. If you learn to program competently enough in that, moving to another language later will be easy.



But what would be the easiest one to learn, Or would they be all equally difficult?

#7 Sharpe   Members   -  Reputation: 144

Like
0Likes
Like

Posted 23 November 2011 - 08:37 AM

I read the FAQ before posting and eventually picked C#. I'm glad I did.
A 30-year-old interested in learning to program by making an old-school, simple, text-only or 2D dungeon fantasy video game.

  • As of 9/28/2011, currently attempting to learn the basics of Python 2.7.
  • As of 10/14/11, Dabbling in C#.
  • As of 10/24/11, decisively surpassed my small knowledge of Python in C#.

#8 DarklyDreaming   Members   -  Reputation: 363

Like
0Likes
Like

Posted 23 November 2011 - 08:43 AM

Hi, I am Texturer For Every single game i ever worked on.
But, Even though i Love Texturing, I Want to learn how to program a game too,
Now...This Brings me to my question. What is the best language for a beginner to learn?
I want something thats not that difficult as a first language.
Also, Im Intresting In Making 2D Platformers, So If you could recommend a language that suits that. That'd be great
And I Know that learning to program is a long road..
I Understand stand that.
Thanks In Advance,


-ApplePosted Image

With the criteria you listed,
1) Beginner friendly
2) Not difficult as a first language
3) Easy way to 2D

Then Python + Pygame are a prime couple. Otherwise, C# + XNA. Nothing you've listed requires C++, forget about that language for now.
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe

"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
~ Bregma

"Well, you're not alone.

There's a club for people like that. It's called Everybody and we meet at the bar."

~ Antheus


#9 Sharpe   Members   -  Reputation: 144

Like
0Likes
Like

Posted 23 November 2011 - 08:54 AM

I agree intirely with DarklyDreaming.

But what would be the easiest one to learn, Or would they be all equally difficult?

I'm a total newbie too, but I've learned the very basics in both Python and C#. I'm going to answer this question and say Python. By far. By great and wide margin. Python, compared to C#, is so simple to learn the basics it's fun.

Also, it's an interpreted language rather than a complied language, so it's very cross-platform. What is written runs on a Windows computer, Mac, or for someone running Linux as long as they have Python installed. Like the FAQ says, it's a great language with which to start programming.

I'd suggest downloading the 32-bit version (trust me, stay away from the 64-bit one!) of Python 2.7.2 and work through this tutorial: http://www.learn-to-program.net/

By the time you're done there, you'll be in a better place to actually make decisions in an informed way.

-Sharpe
A 30-year-old interested in learning to program by making an old-school, simple, text-only or 2D dungeon fantasy video game.

  • As of 9/28/2011, currently attempting to learn the basics of Python 2.7.
  • As of 10/14/11, Dabbling in C#.
  • As of 10/24/11, decisively surpassed my small knowledge of Python in C#.

#10 Daft Code   Members   -  Reputation: 102

Like
0Likes
Like

Posted 23 November 2011 - 08:58 AM

With the criteria you listed,
1) Beginner friendly
2) Not difficult as a first language
3) Easy way to 2D

Then Python + Pygame are a prime couple. Otherwise, C# + XNA. Nothing you've listed requires C++, forget about that language for now.


I actually dare say that Python is not a good advice. Only because there are far more resources and online/beginner help for C# XNA than for Python oriented libraries IMO and that Python is not a sustained game dev language. (While ignoring multi platform worries for a beginner altogether)

#11 JustColorado   Members   -  Reputation: 149

Like
0Likes
Like

Posted 23 November 2011 - 01:07 PM

I Think i voted java on accident. I meant to vote c++ which I have been learning for about 2 months now. After 2 months of non stop late nights and weekends writing extremely boring console programs, I am finally tackling the first 2d game.

Now that I am finally finishing my basic Jedi training ready to write a simple game, i am thinking ok. This would have been much easier in flash action script. This game is not going to be sold or get published and will just be an excercise.

However if I had learned flash action script instead of c++ I could have made the same simple game and published it on facebook and on a site and have the potential to do some major free distribution

I am happy with my choice but had I picked flash It would be easier to share with the world.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
"If we knew what we were doing, it wouldn't be called research. " - Einstein
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

#12 SimonForsman   Crossbones+   -  Reputation: 5972

Like
2Likes
Like

Posted 23 November 2011 - 02:10 PM

Of the listed languages i'd recommend neither, Python or Java would probably be the best beginner choices but ...

Unfortunatly both Python and Java has their shortcomings,

Java has a very strict math library which cannot use the x86 FPU for many operations since it doesn't meet the accuracy requirements of the language (This causes some math operations to be extremely slow if called with the "wrong" parameters) and its default graphics API is pretty weak (There are solutions, none that is really beginner friendly though), making Java game development fairly difficult for beginners, (You can make great games using Java but it requires significantly more knowledge of the language and programming in general than you'd need if you were using something else, It works very well for Android though)

Python has a fairly small community so finding help and resources for the language can be difficult. (It is supposedly a fairly good language though and it has gained alot of ground in recent years)

C is just a pure pain in the ass. (Sure, it was great in the 70s when we didn't have anything better but that was a very long time ago).
C++ is a bit like C, except it supports half a million other ways to completely screw yourself over and the quality of internet tutorials is abmyssal at best, There are great modern features in the language but all the old, outdated and plain awful stuff is still there ready to be used by unknowing beginners.
If you look at a game like Skyrim and its technical issues on the PC and PS3 you can see why C++ is a poor choice of language, not even experienced professionals manage to avoid shooting themselves in the foot with it, i wouldn't recommend using it while you learn how to program and after that its still a good idea to avoid it when possible, (It has alot of momentum and is pretty much the only reasonably high level language that has compilers available for almost all platforms making it difficult to avoid completely in some situations)

C# on the other hand (Which wasn't included in the poll) has pretty much all the advantages of Java and few of its disadvantages, it also has XNA which makes game development significantly easier and allows you to deploy your games on the xbox360 at a very low cost. (It is also the only language supported for third party WP7 development, unfortunatly it isn't supported on the other big mobile platforms)

Flash/Actionscript is also a very solid option due to its installbase and ease of deployment, especially now with Flash11 having good 3D support. (Lack of mobile support might be an issue for some projects though but it is worth knowing and is reasonably easy to get started with).
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#13 Serapth   Crossbones+   -  Reputation: 5263

Like
1Likes
Like

Posted 23 November 2011 - 02:21 PM

Of the listed languages i'd recommend neither, Python or Java would probably be the best beginner choices but ...

Unfortunatly both Python and Java has their shortcomings,

Java has a very strict math library which cannot use the x86 FPU for many operations since it doesn't meet the accuracy requirements of the language (This causes some math operations to be extremely slow if called with the "wrong" parameters) and its default graphics API is pretty weak (There are solutions, none that is really beginner friendly though), making Java game development fairly difficult for beginners, (You can make great games using Java but it requires significantly more knowledge of the language and programming in general than you'd need if you were using something else, It works very well for Android though)

Python has a fairly small community so finding help and resources for the language can be difficult. (It is supposedly a fairly good language though and it has gained alot of ground in recent years)

C is just a pure pain in the ass. (Sure, it was great in the 70s when we didn't have anything better but that was a very long time ago).
C++ is a bit like C, except it supports half a million other ways to completely screw yourself over and the quality of internet tutorials is abmyssal at best, There are great modern features in the language but all the old, outdated and plain awful stuff is still there ready to be used by unknowing beginners.
If you look at a game like Skyrim and its technical issues on the PC and PS3 you can see why C++ is a poor choice of language, not even experienced professionals manage to avoid shooting themselves in the foot with it, i wouldn't recommend using it while you learn how to program and after that its still a good idea to avoid it when possible, (It has alot of momentum and is pretty much the only reasonably high level language that has compilers available for almost all platforms making it difficult to avoid completely in some situations)

C# on the other hand (Which wasn't included in the poll) has pretty much all the advantages of Java and few of its disadvantages, it also has XNA which makes game development significantly easier and allows you to deploy your games on the xbox360 at a very low cost. (It is also the only language supported for third party WP7 development, unfortunatly it isn't supported on the other big mobile platforms)

Flash/Actionscript is also a very solid option due to its installbase and ease of deployment, especially now with Flash11 having good 3D support. (Lack of mobile support might be an issue for some projects though but it is worth knowing and is reasonably easy to get started with).


I agree with basically everything said here, except my biggest beef with Java is everything is just so over-freaking-whelming-freaking-ly over engineered, everywhere. everything. Eclipse, Maven, Ant, nHibernate, the sixteen billion UI toolkits, the fifteen billion webkits, etc... everything seems to have a hundred layers of XML, a few dozen different processes, built on X design pattern using Y framework with Z component along XYZ methodology to print freaking hello world on the screen.


I know thats some massive hyperbole, but once you start working with Java you will really start to get what I am getting at. I found while working with Android, as often as not I was fighting with Eclipse, the plugins and the crap emulator as I was the actual code. Now web development HA! What a process that is... moving all your logic out to XML files is all well and great, especially if you are a contractor who bills by the hour and are deploying your prebuilt solution, but to people actually trying to get shit done, so not fun. All those XML files are an absolute joy, until there is a problem, which makes debugging a virtual nightmare.

I am unfairly condemning Java the langauge because of Java the ecosystem, but truth is, it's hard to divorce one from the other. Especially because new developers ARE going to face these issues, and probably are going to be useful that hateful product Eclipse and will run into these issue. Noone, nowhere with Java ever seem to follow basic KISS principles, which is annoying to the extreme.


Want an idea what I am talking about... heres the original (beginner friendly!) instructions I put together for installing PlayN. This process is pretty typical of the Java world, BTW. Now that PlayN is part of the Maven Central respository, you can get up and going faster, but these are still the instructions if you want to build it yourself. Compare that to your typical windows install of "Download and extract zip. Double click FileName.sln. Click Play icon" and you will see what I mean. Hell, Java makes the Linux command line build process seem downright inviting!

#14 NightCreature83   Crossbones+   -  Reputation: 2703

Like
1Likes
Like

Posted 24 November 2011 - 03:22 AM

C is just a pure pain in the ass. (Sure, it was great in the 70s when we didn't have anything better but that was a very long time ago).
C++ is a bit like C, except it supports half a million other ways to completely screw yourself over and the quality of internet tutorials is abmyssal at best, There are great modern features in the language but all the old, outdated and plain awful stuff is still there ready to be used by unknowing beginners.
If you look at a game like Skyrim and its technical issues on the PC and PS3 you can see why C++ is a poor choice of language, not even experienced professionals manage to avoid shooting themselves in the foot with it, i wouldn't recommend using it while you learn how to program and after that its still a good idea to avoid it when possible, (It has alot of momentum and is pretty much the only reasonably high level language that has compilers available for almost all platforms making it difficult to avoid completely in some situations)


Most of the bugs in games havent got anything to do with the chosen language, it is very rare that I see a pointer bug coming along, it is mostly pure logic bugs that cause major glitches in games. Memory bugs are far more common, and this has to do with scoping issues not pointers or any other weird feature in the language, any language that supports pass by reference can be affected by these bugs.

C++ isn't that horrible as you make it out to be, once you understand pointers correctly it all starts making sense quickly, even though there are a lot of idiosyncrasies in C++. It's not because of the momentum or just cross platform compiling, it is also one of the few fairly highlevel languages that allow you to control everything, which is what you need to push a console to the extremes. The ability to mix in asm on the fly, use of intrinsic functions and full memory management are just a few of these.

To the point though all of that isn't important when learning how to program and using a language that comes with a huge standard library makes the learning process far easier. Remember however that it is still a good idea to figure out how these library containers and other features work internally. Because when you switch to another language that doesn't support that lib you are going to have to implement these if you want to use those features.
I would still recommend you start in C# or any other managed language that takes your fancy as you won't yet have to think about some management features of other languages, and alows you to focus on algorithm design.
Worked on titles: CMR:DiRT2, DiRT 3, DiRT: Showdown, GRID 2, Mad Max

#15 DarklyDreaming   Members   -  Reputation: 363

Like
0Likes
Like

Posted 24 November 2011 - 07:54 AM


C is just a pure pain in the ass. (Sure, it was great in the 70s when we didn't have anything better but that was a very long time ago).
C++ is a bit like C, except it supports half a million other ways to completely screw yourself over and the quality of internet tutorials is abmyssal at best, There are great modern features in the language but all the old, outdated and plain awful stuff is still there ready to be used by unknowing beginners.
If you look at a game like Skyrim and its technical issues on the PC and PS3 you can see why C++ is a poor choice of language, not even experienced professionals manage to avoid shooting themselves in the foot with it, i wouldn't recommend using it while you learn how to program and after that its still a good idea to avoid it when possible, (It has alot of momentum and is pretty much the only reasonably high level language that has compilers available for almost all platforms making it difficult to avoid completely in some situations)


Most of the bugs in games havent got anything to do with the chosen language, it is very rare that I see a pointer bug coming along, it is mostly pure logic bugs that cause major glitches in games. Memory bugs are far more common, and this has to do with scoping issues not pointers or any other weird feature in the language, any language that supports pass by reference can be affected by these bugs.

C++ isn't that horrible as you make it out to be, once you understand pointers correctly it all starts making sense quickly, even though there are a lot of idiosyncrasies in C++. It's not because of the momentum or just cross platform compiling, it is also one of the few fairly highlevel languages that allow you to control everything, which is what you need to push a console to the extremes. The ability to mix in asm on the fly, use of intrinsic functions and full memory management are just a few of these.

To the point though all of that isn't important when learning how to program and using a language that comes with a huge standard library makes the learning process far easier. Remember however that it is still a good idea to figure out how these library containers and other features work internally. Because when you switch to another language that doesn't support that lib you are going to have to implement these if you want to use those features.
I would still recommend you start in C# or any other managed language that takes your fancy as you won't yet have to think about some management features of other languages, and alows you to focus on algorithm design.

"Undefined behavior" is the word that comes up as to why programming beginners should stay far far away. It's easy to learn a little and think you know a lot. Pointers and memory management is a fairly tiny reason of why C++ is off the recommended list. But I digress, that's not the topic here.

Python has a fairly small community so finding help and resources for the language can be difficult. (It is supposedly a fairly good language though and it has gained alot of ground in recent years)

"Small" is relative - smaller than C++ or Java? Of course, C/C++/C# has the advantage there, but Python certainly has enough of followers to not fall into the obscure category (unlike other languages, e.g. Boo). That, and the speed with which you can go from idea to implementation, makes it an invaluable experience for beginners. If it had more support, it'd win hands down against any language I can think off - including C#; one of the languages I constantly rain praise for.

Flash/Actionscript is also a very solid option due to its installbase and ease of deployment, especially now with Flash11 having good 3D support. (Lack of mobile support might be an issue for some projects though but it is worth knowing and is reasonably easy to get started with).

Agreed. It's a good language to start with if you want to "get right into it" and has a wide support base.

I actually dare say that Python is not a good advice. Only because there are far more resources and online/beginner help for C# XNA than for Python oriented libraries IMO and that Python is not a sustained game dev language. (While ignoring multi platform worries for a beginner altogether)

Python doesn't have the install base of C# or C++, no. What it does have is a minimal no-headaches setup and a programming flow that any other interpreted language is envious off. Python has been used as a scripting toolset on AAA+ titles, so it can certainly handle pretty much anything you can throw at it. When you move on to other languages, you'll have the chance to use it in a similar fashion - while third party libraries that can handle the heavy lifting.

Java is to me a lesser version of C#. The awkwardness of getting it to run and run properly is the reason I don't think it appropriate for a beginner.
@OP: Forget about C, unless you are writing driver level code it's just a waste. C++ is very difficult to start with correctly and is a massive (unnecessary) headache for what you want to do. Python is a good choice, it'll teach you a lot in a very short timespan and, when learnt, will allow you to develop prototypes quickly. C# is good, but with more setup cost than Python and also more support base; something that might or might not be important to you. Java is... not worth your time.
"I will personally burn everything I've made to the fucking ground if I think I can catch them in the flames."
~ Gabe

"I don't mean to rush you but you are keeping two civilizations waiting!"
~ Cavil, BSG.
"If it's really important to you that other people follow your True Brace Style, it just indicates you're inexperienced. Go find something productive to do."
~ Bregma

"Well, you're not alone.

There's a club for people like that. It's called Everybody and we meet at the bar."

~ Antheus


#16 AnonymousApple   Members   -  Reputation: 100

Like
0Likes
Like

Posted 28 November 2011 - 03:19 PM

I Have Decided To Go With C#.
It Seems Like the Best Choice, Although If you think im making the wrong choice. Please Give me another suggestion.

#17 Serapth   Crossbones+   -  Reputation: 5263

Like
1Likes
Like

Posted 28 November 2011 - 03:25 PM

I Have Decided To Go With C#.
It Seems Like the Best Choice, Although If you think im making the wrong choice. Please Give me another suggestion.


There is no best choice, if there was, there would be a hell of a lot less programming langauges in the world!


That said, C# is a good choice, and probably the choice I would make if I was in your shoes but knowing what I know. That this scenario would create a paradox that could potentially create a hole in reality, destroying us all, is a thought best not pondered.

#18 Josh Petrie   Moderators   -  Reputation: 3104

Like
2Likes
Like

Posted 30 November 2011 - 10:49 AM

Closed; this question has been asked-and-answered elsewhere on these forums. Please search.

Josh Petrie | Core Tools Engineer, 343i | Microsoft C++ MVP





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS