Jump to content



Photo

Game Development Language Choices

game development c# java c++ python

  • Please log in to reply
54 replies to this topic

#16 OP Brian Lewis

Brian Lewis

    Neowinian

  • Joined: 06-October 12

Posted 06 October 2012 - 23:27

I'm starting with C++, but may not necessarily work in C++ on the games themselves. I've heard from a few people that it is good to start in C++, making something like C# easier to comprehend.


#17 Lant

Lant

    Neowinian Senior

  • Tech Issues Solved: 1
  • Joined: 13-April 06

Posted 07 October 2012 - 11:30

If you plan on writing a game in C#, you may as well start with C#. There is little point picking up the intricacies of a language that you aren't going to use.

For instance, you are going to learn a lot about deciphering compiler error messages and things like template metaprogramming with C++. Neither of which you will need for C# development.
On the otherhand you could be learning about things that are much more important to C# such as reflection, the generics system (which is very different to templates) and other ideas.

#18 simplezz

simplezz

    Neowinian Senior

  • Tech Issues Solved: 8
  • Joined: 01-February 12

Posted 07 October 2012 - 12:27

I like C, Java, and Python for game development, although, in truth, it can be done in almost any language. I do have a preference for fully crossplatform FOSS languages / development platforms.

#19 seethru

seethru

    Neowinian Senior

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

Posted 07 October 2012 - 12:32

I think this really depends on the platforms you want to target, then decide on the language.

Yes, C++ is definitely the best one to learn if you want to write AAA games, or attempt to get a game on XBLA. However, take a look at some of the big names in indie games right now. They got their start in, and still make games in, AS3. I know there's a lot of hate out there for Flash but AS3 is an amazing language and kicks the crap out of anything else that is web based.

Just my two cents from inside the industry.

#20 firey

firey

    F͎̗͉͎͈͑͡ȉ͎̣̐́ṙ͖̺͕͙̓̌è̤̞͉̟̲͇̍̍̾̓ͥͅy͓̍̎̌̏̒

  • Tech Issues Solved: 8
  • Joined: 30-October 05
  • Location: Alberta, Canada
  • OS: Windows 7
  • Phone: Android (4.4.2)

Posted 07 October 2012 - 12:40

I personally am writing a C#/XNA Game in my free time, it's nothing crazy yet, still doing the basic interface. I've been re-writing standard form controls and the whole idea of screens/forms to make my job easier. I am using purely the base includes (outside of say IO, .Net.Sockets) so doing everything inside the XNA Framework. But I've got it to the point where I can do things like:

Button btnLogin = new Button(1);
btnLogin.Text = "Login";
btnLogin.Click += new Control.ClickEventArgs(btnLogin_Click);
AddControl(btnLogin);

I don't have it as fancy as the stock windows forms, but I also don't want to use them. It's a fun challenge but it makes doing things way quicker in some ways.

#21 Mulrian

Mulrian

    Neowinian

  • Joined: 07-August 10
  • OS: Windows 8.1
  • Phone: Nexus 5

Posted 07 October 2012 - 15:06

If you decide to go down the C++ route for games then good luck to you. Honestly you will need it.

I quite like what this guy has to say about the subject.

http://www.gamefroms...-developer.aspx

#22 Andre S.

Andre S.

    Asik

  • Tech Issues Solved: 14
  • Joined: 26-October 05

Posted 07 October 2012 - 19:08

http://www.gamefroms...-developer.aspx

This guy speaks the truth. Listen to him.

#23 @Leo

@Leo

    Under Derp Patrol

  • Joined: 06-June 10
  • Location: /dev/null
  • OS: OS X 10.8.2; Windows 8 Enterprise
  • Phone: iPhone 4S

Posted 07 October 2012 - 19:30

I wouldn't recommend XNA, not since they got stuck in 2004 with DX9c-only support. :rolleyes:

I will however say that C# with SlimDX or SharpDX are very good places to start.

#24 Pong

Pong

    Neowinian

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

Posted 07 October 2012 - 19:54

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++.

Performance wise, Java and C# are going to be close, and unless your pushing the hardware to its limits (which you shouldn't be with a non-3D game), then you will have no trouble with either of these languages. C# probably has the advantage here when dealing with game libraries and engines, although I don't think Java is a bad choice either.

Python is easiest to learn, and with things like pyGame, you can start making games very quickly.

Look at the languages, look at the tools available and make a choice based on that.

#25 Andre S.

Andre S.

    Asik

  • Tech Issues Solved: 14
  • Joined: 26-October 05

Posted 07 October 2012 - 20:23

I wouldn't recommend XNA, not since they got stuck in 2004 with DX9c-only support. :rolleyes:

I will however say that C# with SlimDX or SharpDX are very good places to start.

XNA and SharpDX have totally different goals. The purpose of XNA is to provide a complete game development framework including asset management, networking, deployment, etc., for students and hobbyists, and abstract away the hardware differences between platforms as much as possible. The purpose of SharpDX is only to provide a fast managed wrapper around DirectX: it's every bit as complex and powerful as the original API, and yet it doesn't cover half the scope of what XNA does.

So, they different tools serving different purposes. That XNA uses Direct3D 9 under the cover is not much of an issue to its target users. Plus that will all change as the open-source MonoGame implementation will use SharpDX to support Windows 8.

#26 @Leo

@Leo

    Under Derp Patrol

  • Joined: 06-June 10
  • Location: /dev/null
  • OS: OS X 10.8.2; Windows 8 Enterprise
  • Phone: iPhone 4S

Posted 07 October 2012 - 20:41

XNA and SharpDX have totally different goals. The purpose of XNA is to provide a complete game development framework including asset management, networking, deployment, etc., for students and hobbyists, and abstract away the hardware differences between platforms as much as possible. The purpose of SharpDX is only to provide a fast managed wrapper around DirectX: it's every bit as complex and powerful as the original API, and yet it doesn't cover half the scope of what XNA does.

So, they different tools serving different purposes. That XNA uses Direct3D 9 under the cover is not much of an issue to its target users. Plus that will all change as the open-source MonoGame implementation will use SharpDX to support Windows 8.


What networking does XNA offer beside Game for Windows Live, which was a short-lived cancer and thankfully, has almost completely passed away?
Yes, XNA simplifies things a little. I used it for my degree project and it was nice. But other than the content pipelines, it really has little purpose. If you want to focus on content creation, use a made engine such as Unity or UDK. If you wish to learn engine development, invest the [little] extra time and learn a more encompassing framework. In the long run, the so called advantages of XNA are minor and unimportant.
I used XNA because when I was developing my project, I wanted to use C# and there were only XNA and Managed DX, and the latter was a mess.

#27 Andre S.

Andre S.

    Asik

  • Tech Issues Solved: 14
  • Joined: 26-October 05

Posted 08 October 2012 - 04:00

From a beginner's perspective, XNA is way easier: you can jump straight into your game-specific, there's no creating a window, acquiring a device, setting up buffers, writing an update/draw loop, loading assets; you new up a SpriteBatch and tell it where to render your sprites and that's it. Also, unlike SharpDX, XNA is platform-agnostic: it has already been succesfully ported to OpenGL mobile devices and soon it'll run under DX11 in Windows 8; SharpDX ties you to a specific API and you'll have to perform any porting manually.

#28 FightAndLive

FightAndLive

    Neowinian

  • Joined: 31-August 12

Posted 08 October 2012 - 05:03

Learn C++ first, but you also need to know C#. C# is not only great for coding tools, but engines that support it offer a great way to compile once and deploy to multiple platforms.

#29 OP Brian Lewis

Brian Lewis

    Neowinian

  • Joined: 06-October 12

Posted 08 October 2012 - 12:08

Learn C++ first, but you also need to know C#. C# is not only great for coding tools, but engines that support it offer a great way to compile once and deploy to multiple platforms.


Yep! That's my plan.

This is just such a polarizing issue, I figured it would be interesting to see the varying opinions. I really like the C++ -> C# route now. :)

#30 threetonesun

threetonesun

    Neowinian Senior

  • Tech Issues Solved: 1
  • Joined: 26-February 02

Posted 08 October 2012 - 12:25

2D? I'd start Python + pygame or Flash or a game building front end. There would be much less for you to learn while getting started.

Personally I would look at what games you enjoy were written in, as a short list of 2D platformers:

VVVVVV: Flash
Super Meat Boy: Flash (then rewritten in C++)
Spelunky: Game Maker
Cave Story: looks like C++
Castle Crashers: Flash and C++
Terraria: C# using XNA
Angry Birds: C++