Best language to be "versatile" in game making.

Started by
67 comments, last by kop0113 11 years, 7 months ago
After all that's been said about C++ not being very beginner friendly (not so much in this thread, but allover the net in general), I'd like to just say that I've been programming for about a year and three months now, and I started learning with C++. I can tell you firsthand that:

1. C++ is not nearly as hard as you think. In fact, since I started I've always wondered what exactly is supposed to be so hard about it. It's just a language, like any other; but, more importantly, it's got a ton of GUI/Game libraries and documentation. These are the two things any beginner programmer, let alone game developer, really need most of all. I know that python probably has some excellent documentation, too. I'm just making the point that it's really strange to say that Python is better because it's easier.

2. C++ is widely considered the "main" gaming language. It's what industry professionals use, it's what indie devs use, and it's what you'll probably have to learn eventually. So while Python is a great language for beginners, it's more than likely going to just be a gateway language; you'll end up writing some C/C++ in the end anyway, so why wait? I guess if you want to very very quickly get into coding some complex things without knowing all the complexities necessary to execute those things (which is required of C++/C), then it'd make sense to go with Python, Java or some other language that requires less of the developer, but again--aren't you going to have to learn those things eventually anyway? Using a language that's easier to swallow as a go-between from where you are now and where you want to be in a couple years isn't always the wisest decision. (Not to take anything away from Python or Java. They're both amazing tools with amazing uses, and they have something they do best, much like C++. But when we're talking about making games, I reiterate, you're going to have to read some C at some point).

3. And finally, the most important thing: C++ is just damn fun. It's so complex, so versatile, and there's always something new to learn. It's a challenge, but hey, welcome to programming: It's challenging. It's also so rewarding to write code in this language. Some think it's syntactically bloated, but maybe you'll disagree. I say ultimately, you should at least give it a try. If you spend a month with C/C++ and don't like either, then go try Java. Guess what: The syntax is pretty damn similar, and most of the concepts are the same. Don't like Java? Try Python. Again, you're not shooting yourself in the foot; you're still progressing. But don't get into the habit of avoiding things just because they "seem hard". If it's the right tool, even if it's challenging, you have to get used to picking up tough subjects and learning them. That's part of being a complete programmer.

This isn't necessarily for the original poster (who has probably already gone with python). It's more for anyone who'll find this post from a google search. C++ is not advanced calculus. Programming is programming is programming*.

[size=2]*Unless you go from procedural programming to a functional programming language like Haskell.
Advertisement

I LOOOOOVE Python. I am not a programmer by any means, but have still been able to write very useful tools in Python for work.

I originally went through the free book http://www.greenteap...om/thinkpython/, which has been used/revised for classroom use for several years now.

I recommend downloading and using Python 2.7, since basically every library out there work with it, plus it has had a lot of the great improvements made for the 3.x series backported to it. Python 3.2 is technically newer and the language has had a few changes to make it more "Pythonic", but not all the stabilized and proven libraries work with it yet.

I use Aptana + PyDev for my IDE and debugger. It is a fantastic free dev environment for Python.


I looked at Aptana and PyDev, they seem to do basically the same thing...I am going with Aptana, because installing pydev was difficult, Aptana looks nice!

But when we're talking about making games, I reiterate, you're going to have to read some C at some point).


No you aren't.
There is no ultimate 'you must use a C language for making games' requirement anywhere.

People make games in Python, in C#, in Java, in JavaScript, in Lua and others without touching a line of C or C++.

If Python fits the need of the OP then there is NOTHING to be gained by going to a more complex language which is considerably more dangerous to use. And lets not fools ourselves here; C++ IS a complex language. Yes, you can use it for a year and go 'hey, there is nothing hard here..' but that's because you've been using it for a year and you've no idea what lurks in the darker areas of the language or how many mistakes you have already made which haven't come back to bite you yet.

At one year of using C++, more so if its your first language, I do not believe you are qualified to say how hard the language is. You are still very firmly a beginner and more than likely are making mistakes which you are lucky haven't blown up in your face yet. I work with professionals on a daily basis who have been using C++ (as well as many other languages; C++ is not an end point either, most professionals if any degree of skill will know a few languages and can switch between them at will) for years and still make mistakes which can lead to hours in a debugger tracking them down.

So no, C++ is not easy.
It might look easy but that's just because you don't know what you are doing wrong.
(and that's coming from someone with 10+ years of using the language behind them.)

1. C++ is not nearly as hard as you think. In fact, since I started I've always wondered what exactly is supposed to be so hard about it.

Wrong. You just haven't explored enough of the language to be bitten by it yet.

2. C++ is widely considered the "main" gaming language. It's what industry professionals use, it's what indie devs use, and it's what you'll probably have to learn eventually.[/quote]
C++ is still quite widely used for pragmatic reasons, but I'd say it has fallen far out of favour, even with many industry types.

3. And finally, the most important thing: C++ is just damn fun. It's so complex, so versatile, and there's always something new to learn.[/quote]
There is always something new to learn. That includes vitally important pitfalls that you have yet to learn, and will eventually trip you up.

C++ is not advanced calculus.[/quote]
It's more like a live nuke with rusted wiring.

Programming is programming is programming*.
[size=2]*Unless you go from procedural programming to a functional programming language like Haskell.[/quote]
As a programmer, you ought to recognise that functional languages are just another facet of the familiar (hint: many modern C++ idioms come directly from functional programming).

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

As a fellow C++ coder, I agree with phantom. C is just too low-level for a lot of current needs.

Of course, you have to use C/assembly for some down-to-earth (or down-to-hardware?) projects. There is just not a need for everyone to know it. That said, being a low-level programmer is going to be very lucrative when the C generation retires, so if you are in it just for experience and money, you should learn it :-)

There simply is not any "best language". It all depends on one thing: WHAT do you want to do with it. You have to weigh all the advantages and disadvantages of each language for the current job. And game industry passed the point of no return – for normal applications, C(++) is not only obsolete, it is a burden.

So yeah, if you are looking for a first coding language and do a 2D game with it, Python is a good choice.

I looked at Aptana and PyDev, they seem to do basically the same thing...I am going with Aptana, because installing pydev was difficult, Aptana looks nice!

Aptana is an IDE, based off of Eclipse. PyDev is a plug-in for Eclipse and Aptana (now developed by the Aptana team), that adds Python support to the IDE. Aptana just so happens to come bundled with PyDev.
laziness is the foundation of efficiency | www.AdrianWalker.info | Adventures in Game Production | @zer0wolf - Twitter

[quote name='Tyl3r684' timestamp='1347119478' post='4978004']
I looked at Aptana and PyDev, they seem to do basically the same thing...I am going with Aptana, because installing pydev was difficult, Aptana looks nice!

Aptana is an IDE, based off of Eclipse. PyDev is a plug-in for Eclipse and Aptana (now developed by the Aptana team), that adds Python support to the IDE. Aptana just so happens to come bundled with PyDev.
[/quote]


I have been looking at PyGame/Python tutorials, and it seems difficult-ISH to the extent of all the tutorials are old...
I'm going to take a stab here and guess that you're trying to walk before crawling smile.png Spend a couple weeks to work your way through all of the exercises in the book I linked to above and/or check out some of the books jbadams linked to. The one I linked to, Think Python, was written by a professor for his intro to programming class, and has iterated on in for several years now from feedback from his peers and students. I believe it does a great job at walking you through the fundamentals of Python. I do mean EVERY exercise, don't skip out or you're only hurting yourself. THEN move onto the PyGame tuts!
laziness is the foundation of efficiency | www.AdrianWalker.info | Adventures in Game Production | @zer0wolf - Twitter

Wrong. You just haven't explored enough of the language to be bitten by it yet.


You don't have any idea how much I know about C++, and so your vague "Ya just don't know enough yet, sonny!" statement is unqualified and invalid.

C++ is still quite widely used for pragmatic reasons, but I'd say it has fallen far out of favour, even with many industry types.[/quote]

Oh, it's still widely used? Well I'm glad we agree.


There is always something new to learn. That includes vitally important pitfalls that you have yet to learn, and will eventually trip you up.[/quote]
Once again, you have no idea my skills or knowledge of C++. I also enjoy the implication. Something will trip me up and so I should avoid it? Then at what point does the "learning" thingy happen again? Fill me in.

It's more like a live nuke with rusted wiring.[/quote]

I love it so much when people use these extremely hyperbolic descriptions of advanced topics/programming languages. I guess it's an easy way to scare the hell out of beginners because it doesn't seem to make any sense whatsoever. You hear people say this kind of stuff and think "What the hell is this guy talking about? Whatever it is, it sounds like worst possible thing that could ever happen to me ever. I better do what he says." What is this nuclear holocaust that could potential spark because someone started with C++ instead of actionscript or something? What's the implication? "You didn't delete that memory you allocated! YOU'VE DESTROYED THE FREE WORLD." Oh please.

If you disagree with me, fine. I made it clear at the start of my post that many, many people disagree with me. But trying to undermine my credibility is ridiculous and childish. You don't know anything about me.

[quote name='Shaquil' timestamp='1347115335' post='4977987']
But when we're talking about making games, I reiterate, you're going to have to read some C at some point).


No you aren't.
There is no ultimate 'you must use a C language for making games' requirement anywhere.

People make games in Python, in C#, in Java, in JavaScript, in Lua and others without touching a line of C or C++.

If Python fits the need of the OP then there is NOTHING to be gained by going to a more complex language which is considerably more dangerous to use. And lets not fools ourselves here; C++ IS a complex language. Yes, you can use it for a year and go 'hey, there is nothing hard here..' but that's because you've been using it for a year and you've no idea what lurks in the darker areas of the language or how many mistakes you have already made which haven't come back to bite you yet.

At one year of using C++, more so if its your first language, I do not believe you are qualified to say how hard the language is. You are still very firmly a beginner and more than likely are making mistakes which you are lucky haven't blown up in your face yet. I work with professionals on a daily basis who have been using C++ (as well as many other languages; C++ is not an end point either, most professionals if any degree of skill will know a few languages and can switch between them at will) for years and still make mistakes which can lead to hours in a debugger tracking them down.

So no, C++ is not easy.
It might look easy but that's just because you don't know what you are doing wrong.
(and that's coming from someone with 10+ years of using the language behind them.)
[/quote]

Once again, I must state how funny it is to see people talk about programming as if it's bomb defusal. So let's unwrap some of the logic here:

I've been programming in C++ for a little over a year, and according to you it's likely that I have yet to encounter any of the world-ending, flood-causing, tsunami stirring disastrous mistakes that you can make when writing C++. Which means, then, that none of these vague, non-specified horrors actually apply to a beginner. Right? I haven't come across them yet, my life isn't a waking nightmare, and I enjoy C++ and coding games with it. So then how is it a bad language for beginners, exactly? I'll never understand this use of vague scare tactics to keep people from just trying the damn language out. Don't do it! There's stuff hidden! You're too stupid to make the mistakes, that's why you haven't made them yet!!!! Oh, well then I guess I'm all good then. And when I do make the mistakes, I'll probably do what you did: Learn from them.

Typical forum behavior. You see someone who's honest about their possible ignorance and try to inflate it to a size reasonable enough for you to discredit his opinions. Instead of arguing against what I say reasonably, you try to take away my voice by reminding me and everyone else that "You haven't been doing it enough yet to ruin everything." But as I've already shown, if I've been doing it a year and I still haven't encountered the horrors, that means beginners won't encounter the horrors until they're not beginners anymore. And even if I do find out something and want to switch languages, is that the death of my programming career? Is Java an entirely different world? Or Python? Or any other object-oriented language? Was my time spent with C++ wasted? Will I start from scratch? This is ridiculous.

This topic is closed to new replies.

Advertisement