• 0

Game Development Language Choices


Question

Hey everyone. I'm a web developer with experience in PHP, MySQL, Ruby, JavaScript to name a few and have reached a point in time where I have plenty of free time to branch out into things I *really* want to do - specifically game development. I have a fantastic artist wife that can handle any artistic side of the project, so that leaves me to handle the development side of things. Now, I'm not going crazy saying that I want to be a one man team making AAA games... however, I do want to put some basic indie titles together (think Cave Story, Fez, Braid) eventually with a few friends (I know a few programmers that would probably jump on the opportunity - though their skills are spread out over a wide spectrum of languages/fields).

So yeah, I'm thinking 2d, maybe some isometric 2.5d stuff. Side scrolling, top down, NES style games to start.

What language should I look into learning? I've heard conflicting opinions on each option.

C# - Most will tell me to jump straight into C# and work with XNA, but that leaves mutli-platform out of the question. I'm not too concerned about multi-platform, but I think it's a good option to leave open.

Java - So, that would lead me towards Java. I'm not a fan of Java, as a user. VM always seemed bulky and slow, with tons of vulnerabilities.

C++ - C++ might be a little bit too much of an undertaking, but I can see the benefit of learning proper memory management out of the gate. However, it might add too much time to development where, say, C# has XNA that handles a lot of the work out of the box.

Python - I see Python as an alternative, but I'm not sure I want to venture too far off the beaten path. Python is a very elegant language that I could pick up rather quickly, but the games I have seen developed in Python leave me wondering how capable it -really- is.

Would love to see some opinions here. Hopefully I didn't come off as too optimistic. :)

Link to comment
https://www.neowin.net/forum/topic/1110503-game-development-language-choices/
Share on other sites

Recommended Posts

  • 0
What language should I look into learning? I've heard conflicting opinions on each option.

C# - Most will tell me to jump straight into C# and work with XNA, but that leaves mutli-platform out of the question. I'm not too concerned about multi-platform, but I think it's a good option to leave open.

Java - So, that would lead me towards Java. I'm not a fan of Java, as a user. VM always seemed bulky and slow, with tons of vulnerabilities.

C++ - C++ might be a little bit too much of an undertaking, but I can see the benefit of learning proper memory management out of the gate. However, it might add too much time to development where, say, C# has XNA that handles a lot of the work out of the box.

Python - I see Python as an alternative, but I'm not sure I want to venture too far off the beaten path. Python is a very elegant language that I could pick up rather quickly, but the games I have seen developed in Python leave me wondering how capable it -really- is.

C#: XNA has a working open-source and multi-platform implementation, MonoGame. It has already been used in several commercial titles. This makes XNA an excellent choice not only for the awesome language, tooling, documentation and API, but also to develop your game for all existing mobile and desktop platforms. At a much higher level, you also have Unity, which is widely used in the game industry and is also as multi-platform as engines go. If you want to learn C#, the best book I know of is a free one: The Yellow Book. Recently updated for C# 5 as well!

Java: the VM is anything but slow: the best implementations (Hotspot) can optimize code beyond what the best optimizing C++ compilers can do. However, the Java language is kinda boring and I don't know of any good game APIs for it. If you want to target the Java platform I suggest using the Scala language; it's quickly gaining ground as a better language for developing Java-based applications.

C++: depends what you want to do. If you want to program games, bad choice. The multitude of pitfalls, slow compilation and poor error reporting will just get in your way; performance-wise, there's no way you'll beat what the .NET or Java VMs offer you unless you really know what you're doing and in specific circumstances. Most likely, your game will simply be less portable, less performant and a lot less feature-rich because you'll spend most of your time fighting the tools and language rules. Yes, C++ is widely used by the big game studios: that's because they have the specific need of extracting maximum performance out of closed and unorthodox platforms. You don't, so you don't need C++.

Python: great for learning and experimentation, PyGame is an excellent game development library. This one IS slow however, but if 2D NES-style games are your objective you shouldn't run into performance problems anytime soon.

  • 0

Hands down I'd recommend C#. You may be worried that there's only XNA, but that's not the case. There's a few libraries out there, such as OpenTK and MonoGame, that alleviate the problem of cross-platform compatibility. Personally, I wrote my own game library/framework based on the C-based library Allegro 5.

The speed is nothing to scoff at, either. Obviously it's not as fast as C++ in some cases, but C# makes development so much faster because of the lack of the quirks present in C++. So regardless of if you're developing a small 2D platformer or a complete 3D engine, I do think that C# is the wiser choice in this day and age. The features and richness are just unmatched by C++, in my opinion.

On a side note, I'm actively developing a video game in C#. It has some pretty nifty features that would be absolutely annoying or impossible to implement nicely in C++. Hence my choice. Most of the time spent is not in C#-land but in the GPU (although it may not look like it, it's pretty GPU demanding because of the features I use to sustain graphics quality), if you want to know from personal experience. This is why I believe that C# is suited for games development, especially if you're not designing something on the scale of Unreal 4.

It looked like this a few days ago:

rOFky.png

  • 0

XNA is no longer maintained, though there are open source alternatives.

Has there been any announcement to that effect? Microsoft hasn't announced any new version of XNA, but they still support the platform. My optimist theory is they will announce something around the same time as Xbox Next. Worst case scenario, they never update it again and we all switch to MonoGame, which anyway is more-crossplatform, Xbox excepted.
  • 0

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.

  • 0

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.

  • Like 1
  • 0

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.

  • 0

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.

  • 0

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.

  • 0

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.

This topic is now closed to further replies.
  • Posts

    • Microsoft released Windows 11 KB5094149 / KB5095971 / KB5094156 Setup, Recovery updates by Sayan Sen Earlier this week Microsoft released its newest Patch Tuesday updates (KB5094126 / KB5093998 on Windows 11 and KB5094127 on Windows 10). Alongside those, Microsoft also released new dynamic updates. These Dynamic Update packages are meant to be applied to existing Windows images prior to their deployment. Dynamic Updates also help preserve Language Pack (LP) and Features on Demand (FODs) content during the upgrade process. VBScript, for example, is currently an FOD on Windows 11 24H2. This time both recovery and setup updates were released for Windows 11 as well as Windows 10. The company writes: "KB5095185: Safe OS Dynamic Update for Windows 11, version 26H1: June 9, 2026 This update makes improvements to the Windows recovery environment (WinRE). After installing this update, the WinRE version installed on the device should be 10.0.28000.2269. KB5094149: Safe OS Dynamic Update for Windows 11, versions 24H2 and 25H2: June 9, 2026 This update makes improvements to the Windows recovery environment (WinRE). After installing this update, the WinRE version installed on the device should be 10.0.26100.8655 KB5095971: Setup Dynamic Update for Windows 11, version 23H2: June 9, 2026 This update makes improvements to Windows setup binaries or any files that setup uses for feature updates in Windows 11, version 23H2. KB5094156: Safe OS Dynamic Update for Windows 11, version 23H2: June 9, 2026 This update makes improvements to the Windows recovery environment (WinRE). After installing this update, the WinRE version installed on the device should be 10.0.22621.7219 KB5098815: Windows Recovery Environment update for Windows 10, version 21H2 and 22H2: June 9, 2026 This update automatically applies Safe OS Dynamic Update (KB5094154) to the Windows Recovery Environment (WinRE) on a running PC. The update installs improvements to Windows recovery features. KB5094154: Safe OS Dynamic Update for Windows 10, versions 21H2 and 22H2: June 9, 2026 This update makes improvements to the Windows recovery environment (WinRE). After installing this update, the WinRE version installed on the device should be 10.0.19041.7417. KB5094153: Safe OS Dynamic Update for Windows 10, version 1809 and Windows Server 2019: June 9, 2026 This update makes improvements to the Windows recovery environment (WinRE). After installing this update, the WinRE version installed on the device should be 10.0.17763.8880. KB5094152: Safe OS Dynamic Update for Windows 10, version 1607 and Windows Server 2016: June 9, 2026 This update makes improvements to the Windows recovery environment (WinRE). After installing this update, the WinRE version installed on the device should be 10.0.14393.9234." Microsoft notes that both the Recovery and Setup updates will be downloaded and installed automatically via the Windows Update channel.
    • Quantum Error Correction Validated in Nature: Microsoft and Quantinuum Log 800-Fold Improvement Two years after the original press-release announcement, independently peer-reviewed results published in Nature on June 10, 2026, have confirmed that Microsoft and Quantinuum achieved an 800-fold reduction in quantum error rates on real trapped-ion hardware — the largest gap between physical and logical error rates ever independently validated.    What Quantum Error Correction Actually Does — and Why Breaking Even Is Hard https://www.techtimes.com/articles/318329/20260613/quantum-error-correction-validated-nature-microsoft-quantinuum-log-800-fold-improvement.htm   Quantum Computing Wiring Bottleneck Cracked by HKU Silicon Carbide Chip at Qubit Temperature Engineers at the University of Hong Kong have built the first cryogenic control chip that operates at the same temperature as superconducting qubits — 10 millikelvin, or just one-hundredth of a degree above absolute zero — without generating the heat that has forced every competing approach to park its electronics hundreds of meters of cable away. https://www.techtimes.com/articles/318325/20260613/quantum-computing-wiring-bottleneck-cracked-hku-silicon-carbide-chip-qubit-temperature.htm  
    • RevPDF 4.5.0 by Razvan Serea RevPDF is a free, fully offline PDF editor for Windows, macOS, and Linux that lets you edit text and images directly inside PDF files — no internet connection, no account, and no cloud uploads required. Unlike bloated alternatives that demand subscriptions and constant connectivity, RevPDF fits in under 60MB on desktop while delivering a complete editing toolkit: annotate, redact, sign, compress, split, merge, convert, and reorganize pages, all processed locally on your device. Smart font matching ensures edited text blends seamlessly with the original, and multi-language support includes RTL scripts such as Arabic and Hebrew. Where most PDF editors force you to choose between features and simplicity, RevPDF manages both. You can build interactive forms from scratch with text fields, checkboxes, and dropdowns, permanently redact sensitive data before sharing, draw freehand on contracts and diagrams, and add custom watermarks — all without a single file leaving your machine. Edit Text and Images Directly Inside PDFs RevPDF supports true inline PDF editing — not just annotation layers on top of a document, but actual modification of existing text and images within the file. A smart font-matching engine identifies the font used in the original document and applies it automatically when you make edits, so changes blend naturally with the surrounding content. You can reposition elements, resize images, and update text across single pages or entire documents. RevPDF 4.5.0 release notes: This is one of the biggest updates to RevPDF yet. A lot of things people have been asking for are finally here. New Features Auto Redaction Permanently redact sensitive text and areas from your PDFs before sharing. Clean, irreversible, and fully offline. Comments, Links & Bookmarks Add comments for review, insert clickable links, and create bookmarks to jump around long documents without scrolling forever. Find & Replace Search across the whole document and replace text in one go. Long overdue. Split Pages Vertically or Horizontally Split any page down the middle, vertically or horizontally. Perfect for scanned books or double-page spreads. New Drawing Tools More tools for freehand drawing and markup, better for annotations, sketches, and detailed notes. Continuous Scrolling in Editor The editor now scrolls continuously through pages instead of jumping between them. Working through long documents is a lot smoother now. PDF Metadata Editor View and edit the metadata stored inside your PDFs, including title, author, subject, and keywords. Better Font Matching Text edits now blend in more naturally by doing a better job of matching the original font. Tabbed PDF Viewer Open multiple PDFs at once in tabs and switch between them without going back to the home screen. Add Links Insert hyperlinks anywhere in your PDF, to external URLs or to other pages within the document. Share & Print Shortcuts Share or print directly from the editing screen, home screen, and viewer. No extra steps. Minor Updates Paste images directly from clipboard into your PDF New image editing tools for more control over images inside documents Bug Fixes Fixed file saving issues on Windows and Linux Everything still works fully offline. No login, no cloud, no account. Your files stay on your device. Download: RevPDF 4.5.0 | 58.0 MB (Open Source) Links: RevPDF Home Page | Github | Screenshots 1 | 2 Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Interesting. I'm not using a VPN with my phone. I tried though my home internet (Rogers) and my cellular internet (Telus) using their respective DNS servers and both trigger the dialog above.
    • Three days after Anthropic launched Claude Fable 5 as the most capable AI model it had ever released to the public, the United States government ordered it switched off — and now the company is refunding customers who paid to use a product that vanished almost overnight https://www.techtimes.com/articles/318342/20260613/us-government-pulls-anthropics-fable-5-offline-now-come-refunds-vanished-ai.htm  
  • Recent Achievements

    • Week One Done
      agatameier earned a badge
      Week One Done
    • One Month Later
      agatameier earned a badge
      One Month Later
    • Week One Done
      ssd21345 earned a badge
      Week One Done
    • Contributor
      MarkHughes4096 went up a rank
      Contributor
    • Dedicated
      jordanspringer earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      507
    2. 2
      +Edouard
      175
    3. 3
      PsYcHoKiLLa
      139
    4. 4
      ATLien_0
      90
    5. 5
      Steven P.
      76
  • Tell a friend

    Love Neowin? Tell a friend!