Jared C
|
|
« on: March 23, 2009, 02:59:39 PM » |
|
Hey guys,
So I'm finally going to take the plunge into coding. I can't rely on other people to do the work when I actually have the time. So here's the big decision.
Which language should I learn first?
-I'm preferably looking for a platform compatible with Mac.
|
|
|
Logged
|
|
|
|
Ishi
|
|
« Reply #1 on: March 23, 2009, 03:05:33 PM » |
|
I think there's probably been threads like this before if you're after detailed discussion. My opinion though, is C++! Plenty of tutorials and stuff for it, and the syntax isn't that hard really.
|
|
|
Logged
|
|
|
|
Jared C
|
|
« Reply #2 on: March 23, 2009, 03:09:51 PM » |
|
Thanks! I'll definitely check it out. =)
|
|
|
Logged
|
|
|
|
Melly
|
|
« Reply #3 on: March 23, 2009, 03:14:16 PM » |
|
C++ can be daunting and frustrating. It gives you amazing control and power, and at the same time requires just as much responsability and attention. It's easy to shoot yourself in the foot if you don't know what you're doing, and the language isn't going to hold your hand.
Waht kinds of games are you trying to create? And are you willing to shell money for it?
|
|
|
Logged
|
|
|
|
Jared C
|
|
« Reply #4 on: March 23, 2009, 03:20:38 PM » |
|
Well, it depends how much. I'm maybe willing to drop a 20, but I'd prefer open source. I'm probably not going to be doing anything too complicated. Simple platformers, maybe an exploration game. All I really need is a simple 2D engine. At this point I just want to make a simple game.
|
|
|
Logged
|
|
|
|
lithander
|
|
« Reply #5 on: March 23, 2009, 03:31:30 PM » |
|
How about creating a Flash game? And learning ActionScript on the way? Flash is easy to get started because you won't need programming experience for the first steps but at the same time it has a powerful scripting language you can use as soon as u figure out how. There's a reason why the web is full of little Flash games!
|
|
|
Logged
|
|
|
|
Gold Cray
|
|
« Reply #6 on: March 23, 2009, 03:33:27 PM » |
|
I also suggest C++. It's not nearly as hard to learn as a lot of people make it out to be. The hardest part is probably learning how to use an IDE ( stay away from VC++), and that's not a problem if you don't start with an IDE. You can learn C++ without knowing anything more complicated than g++ main.cpp -o out.exe. Plus if you have a linux machine or can connect to a linux machine, then you don't even have to install anything. You might also find it easier to learn using a book. This is the one that I used, and it worked pretty well for me. Python is also probably pretty good to learn on, but it's really slow and you're liable to learn some bad habits since it's not as strict as C++.
|
|
« Last Edit: March 23, 2009, 03:37:56 PM by Gold Cray »
|
Logged
|
|
|
|
Mikademus
|
|
« Reply #7 on: March 23, 2009, 03:43:02 PM » |
|
What time horizon are we talking about? Do you want to get productive immediately? Because if so you have no choice but to jump straight into C++.
If you want to get a solid base and become a GOOD C++ programmer, through, I'd recommend you to first make a few simple applications (and preferably a modest one too) in Pascal (f.i. OpenPascal) or Python, and THEN jump into C++.
The reason is that C++ allows you to do basically anything, but it will never hold your hand or limit your approaches. This is a very, very good think when you know programming concepts or are at least a decent programmer, but it can be relentlessly frustrating otherwise. F.i. Pascal is designed to teach you basic programming, and Python is a well-defined language that can serve the same purpose. This will make taking the next step much easier.
As your first language, absolutely stay away from Visual Basic and Java. The first is a horrid set of putrescence, a proper Pandora's Box of what any sane programming language should not be, and it will destroy your programming habits for life. Java, quite unlike C++ to which it is often likened and designed to resemble, will like Pascal hold your hand and make decisions for you but also teach you sloppiness in inheritance, resource management and object initialisation and destruction (all of which are vital skills in low-level OO design).
|
|
|
Logged
|
\\\"There\\\'s a tendency among the press to attribute the creation of a game to a single person,\\\" says Warren Spector, creator of Thief and Deus Ex. --IGN<br />My compilation of game engines for indies
|
|
|
David Pittman
|
|
« Reply #8 on: March 23, 2009, 03:43:14 PM » |
|
stay away from VC++
But I lurves my VC++!
|
|
|
Logged
|
|
|
|
Mr. Yes
|
|
« Reply #9 on: March 23, 2009, 03:45:16 PM » |
|
I don't remember having many problems figuring out how to use an IDE when I was starting out. In fact I think I was more comfortable with them right from the beginning.
Personally I started with Python and moved to C++ shortly after. The transition was pretty smooth for me there, and I don't recall really having to unlearn much.
|
|
|
Logged
|
|
|
|
Ishi
|
|
« Reply #10 on: March 23, 2009, 04:19:53 PM » |
|
stay away from VC++
But I lurves my VC++! Yes, it is fantastic.
|
|
|
Logged
|
|
|
|
Jared C
|
|
« Reply #11 on: March 23, 2009, 05:23:59 PM » |
|
Well, I guess I'm pretty decided. I'll start with C++.
|
|
|
Logged
|
|
|
|
Jared C
|
|
« Reply #12 on: March 23, 2009, 05:32:50 PM » |
|
Oh, yeah! I was too retarded to ask this before, but what platforms use C++? Are there any open source programs out there?
|
|
|
Logged
|
|
|
|
increpare
Guest
|
|
« Reply #13 on: March 23, 2009, 05:36:34 PM » |
|
c++ is multiplatform, though you will have to do some tweaking depending on the platform (and you will have to compile it on each platform*). loads of open source c++ stuff out there (indeed; the majority of open-source stuff is in c++ ). (*unless you have a c++-to-java or as3 compiler) I'm going to suggest something weird. Try your hand at the lazyfoo tutorials (even just the first one). The first one is just to get you set up with a c++ installation. And use the codeblocks option... (or ignore my suggestion; I think it's better to start trying to do something asap rather than chitchatting, but maybe that's just me)
|
|
|
Logged
|
|
|
|
Reiss
Level 1
|
|
« Reply #14 on: March 23, 2009, 09:08:32 PM » |
|
since you mentioned Macs, can't push XCode too hard as a C++ IDE. the lazyfoo tutorials have a nice setup guide for XCode, too.
C++ might be a lot to start off with, though. it's extremely low-level. you might want to consider Python, or Lua -- they're slower, but fast enough for 2d. Python's got Pygame, Lua's got LOVE, so it shouldn't be too hard to hit the ground running with either of them.
i personally love Ruby but i can't recommend it for game development. the libraries just aren't really there yet.
|
|
|
Logged
|
|
|
|
hexageek
|
|
« Reply #15 on: March 23, 2009, 09:53:03 PM » |
|
If you don't need high-tech 3D features may I suggest C# with Tao Framework. It's cross platform. And I think everyone would agree that the syntax is much better and newbie friendly.
|
|
|
Logged
|
|
|
|
dustin
Level 6
|
|
« Reply #16 on: March 23, 2009, 10:35:12 PM » |
|
I would say
1. It's not that important after you learn how to program in one learning another is not that bad. Plus all the game making specific stuff will carry over/be easier to learn a second time.
2. If you want to take full advantage of the cpu C++. If you want slightly simpler but slower (still fine for any 2d games) java + c++ bindings (look up java slick if you want a simple 2d one). If you want to get something up and running fast and really don't care about performance as3 or another scripting language.
|
|
|
Logged
|
|
|
|
Morre
Level 1
Apocaquatic syntomy.
|
|
« Reply #17 on: March 23, 2009, 11:26:11 PM » |
|
Personally, I don't like C++. Its syntax was thrown on top of the existing C syntax, which makes it more complicated than necessary (especially for beginners!). Although they're less commonly used for games, it's not a coincidence that so many universities teach Java and Python. And you can make excellent games in both; in fact, you can make excellent games in pretty much any programming language. It's more or less a trade-off between production speed and program speed. While C and C++ are generally somewhat faster than Java or Python, I'd say the latter two are better for productivity. I haven't used C#, and I don't know if there's anyway to get it working for OSX, but I think it looks like a decent language as well. I certainly prefer managed, more high-level languages over low-level stuff, although I've worked with both. Something that really speaks in favor of Java is the excellent API documentation. The ActionScript3 documentation looks pretty much exactly the same, and with good reason. Java is more well-documented than any other language I've used. On the other hand, it does have a bit of a learning curve, so you will need to use that documentation more than once... :> Mind you, there's no one right answer here. This is just how I feel about it.
|
|
« Last Edit: March 23, 2009, 11:31:32 PM by Morre »
|
Logged
|
|
|
|
hexageek
|
|
« Reply #18 on: March 24, 2009, 12:01:04 AM » |
|
I haven't used C#, and I don't know if there's anyway to get it working for OSX, but I think it looks like a decent language as well.
There is Mono (which is an almost complete reimplementation of -currently- .NET 2.0 and C# compiler) I'm a hard-core C guy myself and when I write in C++ I find my self struggling with the same quirks of C which in summary is excess low-levelness for games. (This didn't sound english but anyway ) I'm hacking C# for a couple of months now and I'm really really loving it. It looks like MS analyzed very well where C++ fails and they made a very clean and compact high-level language. I can't say much in comparison to Java since I didn't use it that much but Java always looked too bloated to me. Also as an end-user, .NET apps feels a lot faster than Java apps. I don't know if that would be the case if you benchmark them properly though.
|
|
|
Logged
|
|
|
|
Morre
Level 1
Apocaquatic syntomy.
|
|
« Reply #19 on: March 24, 2009, 02:29:03 AM » |
|
Might be due to Java generally having a bit too long start-up times. Java can be very fast. With that said, of course not all programs are. Nor are all C++ programs.
|
|
|
Logged
|
|
|
|
|