Jump to content

  • Log In with Google      Sign In   
  • Create Account

Language Comparison


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.

  • You cannot reply to this topic
11 replies to this topic

#1 someguy127   Members   -  Reputation: 101

Like
0Likes
Like

Posted 28 April 2012 - 12:21 AM

Hey everyone I am new here, and I have begun the wonderful journey of being a game programmer.

first a little background, I am currently a college student studying Computer Science. I love programming, and more recently I love game programming. Unfortunately my school doesn't teach game programming as part of the core Computer Science Major so I have been tasked with learning this art on my own. What I have learned so far is the basic idea of Game loops, Movement, Collision etc.. just basic things you pick up from online tutorials. My languages so far have been Java, and C# with the XNA game library, I know the basics of both but when it comes to game programming I use C# because XNA takes care of the Visual aspect of it.

Well any way on to the main point of this topic, I know that every language has it's benefits and disadvantages, and I am looking for the ones that I would like to work with. So if you guys would be so kind as to pick some languages and give me the pros and cons of using it to make games, that would be great.

Also if there are any basic concepts of game programming I need to learn, please let me know.

Thanks a ton

-Someguy127

Sponsor:

#2 SimonForsman   Crossbones+   -  Reputation: 6306

Like
2Likes
Like

Posted 28 April 2012 - 03:01 AM

Don't worry about languages, just use C# and XNA (C# is a great language), only switch if you have to (The main reason to switch language these days is for platform considerations (Many platforms have 1 "official" language for their SDK that is alot easier to work with than the rest, (For Android its Java, for WP7 its C# and for iOS its Objective-C for example, while you can use other languages aswell on those platforms it isn't necessarily as easy).

As for game programming concepts just try to make some simple games and go from there.
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!

#3 L. Spiro   Crossbones+   -  Reputation: 14267

Like
0Likes
Like

Posted 28 April 2012 - 07:31 AM

C++: Allows you full control. But with great responsibility comes…many chance to shoot yourself in the foot? You can do anything you can imagine needing to be done with this language, but that also means the potential to create every kind of bug you can imagine, since you are also responsible for your own messes. The only way to allow you full control is to not clean up after your mistakes.
Some say it is not a good language for starting out, but it certainly does build a level of discipline into its users.
Of important note is that starting with C++ is harder than starting with Java or C# and then moving to C++ later. Breaking free of old habits, such as dropping pointers for the virtual environment to clean up for you, are harder than just forming good habits from the start.
The other benefit is that it it is the defacto language for game programming, and not knowing it will never net you a good job in the industry. By not knowing it, you are absolutely putting a cap on your career potential.

C#: Good for fast results in all kinds of areas, and with XNA it is a good start in game programming; the kind of start that keeps you motivated to move forward. But don’t focus on it alone for too long; As mentioned above, getting too used to any garbage-collecting system will only hinder your growth as a full-fledged game programmer in the future. A very reasonable strategy is to use XNA alone for your first game, then start making your second game in C# but try to learn C++ at the same time on the side. Your goal should be to understand pointers mainly and to understand very clearly how your XNA practices cause memory leaks in C#. As long as you develop these 2 side-by-side, you should be set to go in the future.
Learning them side-by-side is quite recommendable because you will fail your first few C++ projects, but since you still have C# with you you can still feel motivation to keep moving forward.

Objective-C: Fairly useless in the gaming industry. Instead, this gives points to C++, because iOS development supports C/C++, but not C#. Working with iOS is another good way to get a handle on game development since the platform is so small that only one person is needed to make any given game, which means you can make and release to your heart’s content. But you will be doing so in C++, not C# nor Objective-C.

Java: There are no benefits unless you know no languages at all and have for some strange reason decided to learn programming on an Android platform. Java is not required on Android so knowing C/C++ again can get you by on Android devices, and knowing Java alone is fairly close to knowing C#, so there would be little motivation to just make little Android games (which requires more than just knowing the language, since you have so many different types of devices with different resolutions and capabilities) instead of decent-looking XNA games (which are by comparison much easier to make, given the lack of diversity between hardware specifications).


These are currently the only relevant languages in game development so I will stop there. While it is true that almost every language fills a gap, when it comes to game programming many languages are simply irrelevant. Here, it is mainly a shootout between C++ and C#, but in the end you are definitely going to need C++, so the real question is, “What is the best way to shift into a C++ environment.”
Using XNA or iOS development with C++ on the side is a reasonable strategy, and in any case you can take it at your own pace.
If you already know C#, why not start something on the side with C++?


L. Spiro
It is amazing how often people try to be unique, and yet they are always trying to make others be like them. - L. Spiro 2011
I spent most of my life learning the courage it takes to go out and get what I want. Now that I have it, I am not sure exactly what it is that I want. - L. Spiro 2013
I went to my local Subway once to find some guy yelling at the staff. When someone finally came to take my order and asked, “May I help you?”, I replied, “Yeah, I’ll have one asshole to go.”
L. Spiro Engine: http://lspiroengine.com
L. Spiro Engine Forums: http://lspiroengine.com/forums

#4 jischneider   Members   -  Reputation: 252

Like
0Likes
Like

Posted 28 April 2012 - 08:57 AM

Another possibility is to use Unity 3D. You still need to program the logic of your game (and you can in C#) but not the engine. This has another advantage you can see how a good engine is structured.

If you want to learn about engine development then XNA + C# is IMO the best combo to start. But what is it the part of game development that you love the most? If it is graphics then I can give some tips.

Edited by jischneider, 28 April 2012 - 08:58 AM.

Project page: < XNA FINAL Engine >


#5 return0   Members   -  Reputation: 444

Like
0Likes
Like

Posted 30 April 2012 - 04:33 PM

If I were to start a new game tomorrow, these would be my selections in order:

- Coffeescript (or plain old Javascript) with WebGL, using Three.js
- Actionscript3 on Stage3D (to AIR for mobile, Flash for web), using Away3D
- Unity
- Some Python game framework
- C++/DirectX


Writing solo games should be fun - the bits of C++ that people say are hard (memory management, pointers) really aren't that bad, it's the lack of cohesion and incessant focus on trivia that makes it a boring language - see the trivia quizzes that everyone fails.

You'll learn more by making things in any language.

#6 Serapth   Crossbones+   -  Reputation: 5756

Like
0Likes
Like

Posted 30 April 2012 - 05:49 PM

Read this, it basically "answers" your question, as much as it can be answered.

This is a difficult subject, as much of it is subjective and it's highly incendiary.

#7 Mihai Moldovan   Members   -  Reputation: 127

Like
-1Likes
Like

Posted 30 April 2012 - 05:53 PM

It's really a shame that Universities nowadays do not even teach any systems programming languages anymore. Not even C++.

I've seen people graduate from their 5-year CS program without ever having programmed a single line in any language, but the norm is that people who graduate are at least capable of writing maybe a Hello-World Java program. That's the most you can expect though.

Our OS class focused entirely on writing user-level 20-line Java programs, because the students just didn't know any C.

#8 return0   Members   -  Reputation: 444

Like
1Likes
Like

Posted 30 April 2012 - 05:58 PM

CS should not be teaching people how to use C++, it should be teaching them how to manipulate information.

#9 Mihai Moldovan   Members   -  Reputation: 127

Like
0Likes
Like

Posted 30 April 2012 - 06:01 PM

CS should not be teaching people how to use C++, it should be teaching them how to manipulate information.


Don't get me wrong, they're doing that, but in the belief that for that exact reason it doesn't matter if all they teach students is how to churn out enterprise Java crap.

It doesn't matter how much theory you know if you have no clue how to apply it (except if you want to become an academics researcher).

#10 AltarofScience   Members   -  Reputation: 934

Like
0Likes
Like

Posted 30 April 2012 - 07:57 PM

My intro computer programming class used C++. With Code::Blocks. The next level class used visual basic though. I am pretty sure my community college has systems programming.

#11 Oberon_Command   Crossbones+   -  Reputation: 1967

Like
0Likes
Like

Posted 30 April 2012 - 08:54 PM

It's really a shame that Universities nowadays do not even teach any systems programming languages anymore. Not even C++.


I'm going to be doing my 4th year of computer science at a major Canadian university this coming fall. My intro to algorithms course used C++. So did my computer graphics course, although most of the code I saw in that course was very C-like. Both computer systems courses I've taken used C. Granted, we were never explicitly "taught" C or C++, per se, beyond a bit of syntax. Students were expected to figure things out on their own, and from what I could see, generally did. The intro to programming course they gave to first years when I was in first year used Java, but they now use a dialect of Lisp. Java is only used for generic software development courses.

Edited by Oberon_Command, 30 April 2012 - 08:55 PM.


#12 Ripiz   Members   -  Reputation: 529

Like
0Likes
Like

Posted 01 May 2012 - 02:23 PM

It's really a shame that Universities nowadays do not even teach any systems programming languages anymore. Not even C++.


We had Pascal, C, C++, 16bit assembly, and now we've got Java.
Pascal/C/C++ professors actually checked programs and asked questions to be sure you made them. However it was just collection of basics: functions, pointers, exceptions, const, reference, array, dynamic memory allocation, one program used std::vector<>. Most (or even all) below 200 lines.
Assembly was too hard to check (final program over 1000 lines), correct program output was sufficient to account for it.
Java is a bit different story though, we get to use a little bit more advanced features (functionality wise, not completexily as Java makes it easy): applets, threading, synchronization. But there's completely no attention towards performance of threads and their usefulness. Java code is never even checked, professor just asks about completely irrelevant stuff, for example, I was accounting on file reading/writing and containers, he asked what package, static keywords mean and what kind of visibility constructor has if none is specified.
All exams consisted purely out of theory.

Therefore I feel I'm wasting time in my university, we get nothing but useless theory, which does not help at all, not to mention I knew almost everything what they taught in 2 years.




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