Jump to content



Photo

Game Development Language Choices

game development c# java c++ python

  • Please log in to reply
54 replies to this topic

#46 pes2013

pes2013

    Neowinian

  • Joined: 24-September 12

Posted 10 October 2012 - 18:01

The number of people blindly recommending C++ is frighting. If you're not going to be making AAA titles, and you don't require massive performance, then there is almost no reason what so ever to learn and use C++.

If you are SERIOUSLY considering making a game, C++ is the way to go. The power is almost limitless....


Performance wise, Java and C# are going to be close

I HOPE that this is a joke. Performance wise, C# (in fact nearly any .NET language) kicks Java's ass. Excuse me; almost ANYTHING kick's Java's ass in performance.

I know this because I devlop in Java; It is the most disgusting slowest memory hogging piece of **** ever created. Multiplatform? Yes. Of course. Is it worth it? Hell ****ing no. The thing that most ****es me off is that there has been 17 years to improve it and STILL the performance is horrible. And Im not even going to start on the security portion.


No not all programmers need to start with C/C++.

I completely disagree. C is almost mandatory to at LEAST have coded in ONCE. Even as a school project. Even as agenda that stores a person and certain attributes such as name, numer, etc. It shows so many low level concepts on programming that nowadays with IDEs using mostly OOP (C#, Java, even C++) that you lose core fundamentals.

They should start with a language that is easier than that.

I again disagree with your opinion. Its easier to start from a hard language © then work your way to a easy language (VB.NET)

My path was with Visual Basic -> Java -> C++ -> C# -> Python. The worst advice I have ever given people is to start with C/C++.

Wow you started with two of the most easiest and horrible languages. The only thing C++ has in common is that it is OOP.


Bottom line: If you want to make a serious game, C++ without a doubt. Serious as in you want it to get noticed and hell, even sell a few copies. That being said, like many had said, there is a learning curve
If you want to start with game development and make a simple cheesy game, C#. Development will be quicker and the learning curve is basically null


#47 seethru

seethru

    Neowinian Senior

  • Joined: 27-March 03
  • Location: Toronto, Ontario

Posted 10 October 2012 - 18:11

Bottom line: If you want to make a serious game, C++ without a doubt. Serious as in you want it to get noticed and hell, even sell a few copies. That being said, like many had said, there is a learning curve
If you want to start with game development and make a simple cheesy game, C#. Development will be quicker and the learning curve is basically null

I whole heartedly disagree with this statement, particularly the part about selling a few copies. There are numerous, successful game developers who have sold games written in something other than C++. And, further to the point, there are those that have gotten their start in languages beyond C++.

I stand firmly with my belief that starting with something like AS3, which is still OO, and doesn't have the added complication of managing memory is the place to start.

#48 Veiva

Veiva

    Neowinian

  • Joined: 25-November 03

Posted 10 October 2012 - 18:12

If you want to start with game development and make a simple cheesy game, C#. Development will be quicker and the learning curve is basically null


I disagree wholeheartedly. The game I'm developing in C# is nothing close to cheesy. It runs on multiple operating systems, such as Linux and Windows, is not slow* (I can run it on a netbook with an Atom processor and ION graphics at 30 FPS), and it was written in a fraction of the time it would take to write in C++. Your post reminds me of how far technology has come; we aren't reliant on writing assembly software rendering routines anymore. Computers are more powerful and hence I can spend less time pulling my hair out over C++ "features" and more time programming a solid game.

Just to point out, my game features resolution independent vector graphics. The framework I built is component based, and thanks to the power of the .NET framework, I am able to generate entire levels using reflection. I admit, given more time and resources, I very well could develop it in C++...but that's it! I don't have the time or resources! And most hobbyist game developers don't either.

*: By slow, I mean C# is not the limiting resource. It's the graphics card.

#49 Tuishimi

Tuishimi

    Michinator

  • Joined: 19-November 10
  • OS: Windows 8

Posted 10 October 2012 - 18:20

I'm not a game developer but... why not a mix of C/C++ and python? C for the stuff that needs to be done quickly, and python for the stuff that can be tweaked/used to mod?

#50 ILikeTobacco

ILikeTobacco

    Neowinian Senior

  • Joined: 08-July 10

Posted 10 October 2012 - 18:26

I'm not a game developer but... why not a mix of C/C++ and python? C for the stuff that needs to be done quickly, and python for the stuff that can be tweaked/used to mod?

For a PC game that might make sense, but not for a game that has to run on a mobile platform or console.

#51 xWhiplash

xWhiplash

    Neowinian Senior

  • Joined: 07-March 08

Posted 10 October 2012 - 22:06

pes2013, you are missing the point of being new to programming and game programming too.

Lets take mathematics for example. Would you recommend I learn Calculus first before learning algebra? That might be a bad question since you need algebra to do calculus. How about learning how to create a formula before I use it? Here is an example: I used the mathematics formula for the area of a triangle long before I took calculus. One of the things we did in calculus is to PROVE the formula. So in Calculus I learned how to MAKE the formula that I have been using for years with the integral.

It is the same way with programming. If you are a beginner, you do not need to worry about the nasty stuff. You are a beginner, you do not need to worry about memory management, dealing with pointers. Even more so can be said with game programming. Lets take XNA for example. There is A LOT of core Direct X stuff you would need to implement and call yourself to get everything set up. Again, you do not need to worry about this as a beginner. You can just use a framework like XNA or use something like the Java Game Library (what Minecraft uses) or Unity or something to help you.

I again disagree with your opinion. Its easier to start from a hard language © then work your way to a easy language (VB.NET)


No it is not. A lot of people get extremely frustrated when languages require more from you. This is their first few programs they ever developed. Why do they NEED to start with a harder language? Why is it easier for a new programmer to learn from a harder language than something that is much easier? An easy language gets you thinking like a programmer and not have to worry about the advanced topics like memory management and setting everything up yourself. When you are thinking like a programmer, the advanced languages would be much easier.

Wow you started with two of the most easiest and horrible languages. The only thing C++ has in common is that it is OOP.


Uhhhh yeah.....You start out learning math with 1+1. Your point that I STARTED programming with an EASY language is what exactly?

I will agree that Visual Basic is horrible, I just cannot stand it. BUT when I was young, it got me in the programming mind. Even if it did teach me some bad habits, which I quickly switched out of when I moved to Java, it still made my mind think like a programmer.

seethru: AS3 is another good choice.

Veiva: I assume you are using XNA since you said C#? If you said it in an earlier post, I apologize. I agree and I think C# will be more than enough for the beginners first five or so games they make. Not to mention if you like sticking with 2D, it has more than enough power for you. Why would I need C++ if XNA is MORE than enough for my game's needs? One of XNA 3.0's starter kits is a 3D racing game that runs at 60 fps. I say C#/XNA has more than enough power for a beginner's first several games.

#52 pes2013

pes2013

    Neowinian

  • Joined: 24-September 12

Posted 10 October 2012 - 22:15

Done with this thread.

Like I said:

Cheesy, lazy and fast development = C#
Professional, hard work, and slow/long development = C++

I just want everyone to know that I hate C++ with a passion and love C#. Amazing language. Im just being realistic....

#53 Pong

Pong

    Neowinian

  • Joined: 18-December 04
  • Location: Glasgow, Scotland
  • OS: Linux
  • Phone: SGSIII

Posted 10 October 2012 - 22:17

I HOPE that this is a joke. Performance wise, C# (in fact nearly any .NET language) kicks Java's ass. Excuse me; almost ANYTHING kick's Java's ass in performance.

I know this because I devlop in Java; It is the most disgusting slowest memory hogging piece of **** ever created. Multiplatform? Yes. Of course. Is it worth it? Hell ****ing no. The thing that most ****es me off is that there has been 17 years to improve it and STILL the performance is horrible. And Im not even going to start on the security portion.


You clearly have no idea what you're talking about. I too develop in Java, quite extensively in fact, dealing with highly computationally and memory intensive problems as part of my PhD (ever tried to do nearest-neighbour clustering on 0.5TB of data? Because that's the sort of thing I do every day in both Java and C#). I happen to know quite a lot about Java and C# performance, and how both Java and C# work under the hood - there are lots of differences, however at the end of the day you have 2 languages, both of witch perform JIT compilation, both of which perform garbage collection, and both of which have similar benchmark results. Yes, Java has slightly slower start-up times, but performance wise they are near identical. With every new release of the JVM Java gets faster.

I completely disagree. C is almost mandatory to at LEAST have coded in ONCE. Even as a school project. Even as agenda that stores a person and certain attributes such as name, numer, etc. It shows so many low level concepts on programming that nowadays with IDEs using mostly OOP (C#, Java, even C++) that you lose core fundamentals.


Low level concepts such as what? Using pointers to pass by reference? Allocating and freeing memory? You do not need to learn C to understand how these work. If you want to know how programming really works, go learn assembler, that's how I was taught.

#54 Veiva

Veiva

    Neowinian

  • Joined: 25-November 03

Posted 10 October 2012 - 22:20

Veiva: I assume you are using XNA since you said C#? If you said it in an earlier post, I apologize. I agree and I think C# will be more than enough for the beginners first five or so games they make. Not to mention if you like sticking with 2D, it has more than enough power for you. Why would I need C++ if XNA is MORE than enough for my game's needs? One of XNA 3.0's starter kits is a 3D racing game that runs at 60 fps. I say C#/XNA has more than enough power for a beginner's first several games.


Sort of ;)! I am using my own game library, which uses Allegro 5 through P/Invoke and forward compatible OpenGL 3. The actual library is modeled similarly to XNA. As for my game, it is a 3D/2D hybrid:

Posted Image

Again, the only bottleneck so far is the GPU... Which proves to not be a problem on a 9800 GTX or better. I fail to see how C# makes a game cheesy or lazy, as per pes2013's comments...

#55 xWhiplash

xWhiplash

    Neowinian Senior

  • Joined: 07-March 08

Posted 10 October 2012 - 23:18

Sort of ;)! I am using my own game library, which uses Allegro 5 through P/Invoke and forward compatible OpenGL 3. The actual library is modeled similarly to XNA. As for my game, it is a 3D/2D hybrid:

SNIP

Again, the only bottleneck so far is the GPU... Which proves to not be a problem on a 9800 GTX or better. I fail to see how C# makes a game cheesy or lazy, as per pes2013's comments...


I agree. It is only cheesy if the graphics represent it as cheesy......I can make a cheesy C++ game with cheesy graphics from Photoshop.