DEV Community

Sam Watkins for Game Dev From Scratch

Posted on • Edited on

1 1

Deciding on a Programming Language for Game Dev

Our first step in learning how to make games was to decide on which programming language to use. I am an experienced software developer, so I guided this decision.

This is Game Dev From Scratch, and we want to learn about programming. We don't want to use a game maker tool or a third-party engine, at least not in the beginning. We would like our game to run in the browser, so that people can discover and play it easily. We have lofty goals, so we want to use a high-performance language.

  1. Typically browser games are written in JavaScript. I don't mind JavaScript, and I use it for front-end web development. JavaScript has dynamic typing, but I believe that static typing is advantageous for all but the smallest projects. This stackoverflow page explains the difference. JavaScript is not a slow language, but it's not the quickest either.

  2. TypeScript is JavaScript with static typing bolted on. The transpiler is slow. It was developed by Microsoft. Call me a bigot, but I don't like Microsoft, and I don't like TypeScript!

  3. I do much of my professional work in Python. I really like the light-weight syntax, without all those pesky braces and semicolons. Python is great for experiments, and has been adopted by the scientific and artificial intelligence communities. Although Python has some excellent and very fast libraries for mathematics, scientific computing, and AI, the Python language itself is much slower than JavaScript, and for that reason I don't think that it's ideal for game development.

  4. Mainstream stand-alone games are often written in C++. C++ has been described as an octopus made by nailing extra legs onto a dog. When invited to reflect on whether he should have written git in C++, Linus Torvalds retorted that:

    C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do nothing but keep the C++ programmers out, that in itself would be a huge reason to use C.

  5. If C is a dog, it's a good old dog. The C programming language was created by Dennis Ritchie in the early 1970s. In my opinion, just about every programming language that has come after C is largely inferior to C, and none is wholly superior to it. It is not so easy to get started with C compared to Python for example, but I believe that I can make up for that with some helpful libraries and syntactic sugar.

Can we make a browser game written in C? According to Mozilla's Game development page, yes we can. We can compile C or C++ to WebAssembly using a tool called emscripten, and WebAssembly runs much faster than JavaScript in the browser.

As I understand, the popular SDL2 library has been ported to work with emscripten. Using SDL2 and OpenGL, we can build a browser version of our game, and native versions for the major platforms, all from the same code base. I have some prior experience with SDL2 and OpenGL.

In summary, we considered several different programming languages for learning about game development, and we decided to use C:

  1. JavaScript – good for web, dynamic typing, not the quickest.
  2. TypeScript – I don't like it.
  3. Python – beautiful syntax, but it's too slow.
  4. C++ – Linus doesn't like it.
  5. C is the worst programming language – except for all the others that have been tried.

Next post: My Simple Programs, by Thalia
Previous post: Creating Games, by Sean
Contents: Game Dev From Scratch

Quadratic AI

Quadratic AI – The Spreadsheet with AI, Code, and Connections

  • AI-Powered Insights: Ask questions in plain English and get instant visualizations
  • Multi-Language Support: Seamlessly switch between Python, SQL, and JavaScript in one workspace
  • Zero Setup Required: Connect to databases or drag-and-drop files straight from your browser
  • Live Collaboration: Work together in real-time, no matter where your team is located
  • Beyond Formulas: Tackle complex analysis that traditional spreadsheets can't handle

Get started for free.

Watch The Demo 📊✨

Top comments (0)

Jetbrains Survey

Calling all developers!

Participate in the Developer Ecosystem Survey 2025 and get the chance to win a MacBook Pro, an iPhone 16, or other exciting prizes. Contribute to our research on the development landscape.

Take the survey

AWS Security LIVE!

Hosted by security experts, AWS Security LIVE! showcases AWS Partners tackling real-world security challenges. Join live and get your security questions answered.

Tune in to the full event

DEV is partnering to bring live events to the community. Join us or dismiss this billboard if you're not interested. ❤️