Question: Which programming language should I learn to make games and hard software? c# or c++

  • 4
    Godot or Unreal

    Or you will spend all your time making libraries to make games instead of making games.
  • 2

    Dunno about Godot, but any serious work in unreal requires you knowing C++ anyway.

    For AAA game dev, it's a must.

    You can get by with C# if using unity, but there are other factors to that decision.
  • 2
    @CoreFusionX in Godot I am using GDScript, C#, and C++. I avoid discussions about Unity because of the shit going down there. Unreal is beautiful.
  • 3
    Unity has better tutorials and docs than Godot but the company is pretty awful and right now it looks like it might be the world's first library to lose all of its users within the span of a single major version because of greed. Godot is FOSS and has a permissive licence so such a risk doesn't exist. The feature set of Godot is rapidly improving so any argument you hear about that is likely outdated.

    Don't start without a library as @Demolishun said.
  • 4
    Don't know what hard software is but for some "learn to program the hard way" i'd say C++.
  • 0
    @Demolishun if they make a library at least it’ll be easier to sell to some big wig
  • 1
    @aviophille I think Godot 3.5 will publish to javascript as some sort of web game.
  • 1
    Don't know what hard software is. But language is a tool that needs to fit your needs. Could be that Rust is what suits best. Bigger other might have several specific needs and might use multiple languages. You have freedom of choice now. But when a team needs to support things almost always any general purpose language will do.
    You don't need godot or unreal to create a 2d chess game. It's perfectly fine to do this in Python.

    This is why you hardly see any advice here on open questions about what language to use.
  • 1
    It greatly depends on what your needs are, game development will make you delve into the realm of systems programming a bit since there are quite a few things you need to understand about the hardware before you can do anything crazy. For what its worth, most game engines that use C# as the scripting have their innermost components built in C++. Even Godot, for which you can use GDScript and (still not fully supported) C#. Unity is built in the same way, internals are C++, scripting is done in C#. If you wish to really get a good grasp of the internals of proper computing, it would be C++, even though C is better suited for this.

    But as a starting point, specially if you are a beginner, it could be anything, there are some great tutorials on youtube that even use java for game development, pick something and learn the fundamentals and go from there.

    Source: been kicking my ass with game engine dev for 2 years, don't know what I am doing
  • 0
    @aviophille with Construct, PhaserJS and (at one point Impact) Javascript is honestly an amazing choice for starting with game dev. Overlooked by the neckbeards really
  • 0
    To the OP, this for example is a great tutorial series which demonstrates how to use GLFW, it demonstrates how to abstract the GLFW library from within the Java LWJGL wrapper. It touches on various important topics, and it even shows you how to generate your own map level editor:


    Language does not yet matter, and I would much rather you understand the fundamentals of the libraries used with a somewhat simpler language, once you are ready you can abstract what you learned towards C++ in which there are tons of things to learn (such as project setup, libraries etc etc)

    Have fun bud, Game dev keeps you busy, and it is really fun. note please that the concepts do not pass to sys development since embedded or system devs need to take care of a lot of things that game devs do not really care for (such as secure code)
Add Comment