• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.
  • We have made minor adjustments to how the search bar works on ResetEra. You can read about the changes here.

What will be the most relevant programming language in the next 3–5 years?

  • C++ (Unreal Engine)

    Votes: 242 55.9%
  • C# (Unity)

    Votes: 160 37.0%
  • Rust

    Votes: 8 1.8%
  • Godot and its ecosystem (was used for Sonic Colors: Ultimate)

    Votes: 5 1.2%
  • TypeScript/JavaScript (RPG Maker, Cross Code was built in JS)

    Votes: 12 2.8%
  • Other (please reply with the name of the language)

    Votes: 6 1.4%

  • Total voters
    433
  • Poll closed .

Nachos

Member
Oct 26, 2017
799
Asking because I currently know a decent amount of programming, but it's all in JavaScript/TypeScript and SQL. I'm looking to pick up a more-performant general-purpose language in the next 1–2 years, and ideally, I'd like to use it for some basic hobbyist gamedev. I'm not sure if I'd want to do something 2-D or 3-D yet.

Rust has a lot of hype, and feels like it will become more and more relevant in web development, especially for things that TS/JS can't handle. At the same time, it doesn't seem to have made inroads in the gamedev space, even though I've seen some hobbyist projects written in it. C++ feels like it will remain the industry standard in the AAA space, just because Unreal seems so mature and stable, but that's not necessarily relevant to a hobbyist who doesn't plan to enter the industry. C# feels like a decent middle ground, because Unity has become the main indie game dev engine, but I don't know how developers feel about it nowadays.

I think I would prefer to learn Rust, so I could apply it elsewhere, but I don't know. I still need to do a lot of research.
 

PinkSpider

Member
Oct 27, 2017
4,924
Following. in the same boat and I'll probably stick in database stuff but developing skills as a hobby might actually prod me to do something.
 

ekim

Member
Oct 26, 2017
3,405
My suggestion: Learn whatever you feel comfortable with. You can apply almost all principles you learn to other languages as well.

Edit: Especially if you know your way around JS.
 

StrangeADT

Prophet of Truth
Member
Oct 25, 2017
2,057
If you're at the point where you still ask about programming languages, just figure out what toolchain/engine you want to use and let it dictate the language. The actual programming language just doesn't matter that much as a beginner - maybe just try to choose something "easier" and most importantly something with lots of guides and external resources. Unity is probably a good place to start, and that implies C#.

Whatever you do, don't swap back and forth or research endlessly in some futile attempt to minmax the decision like so many people do.
 

cabelhigh

Member
Nov 2, 2017
1,723
Unity is a great, friendly start with C#, but big AAA devs want C and C++ for Unreal. At least, this is what I was told by someone on the inside

So Unity is good for getting your feet wet. But if you're serious about getting into the mainstream industry, C+ is a must
 

L Thammy

Spacenoid
Member
Oct 25, 2017
50,037
Without having experience in the industry, I'd assume C# and C++ will both remain relevant because they have different appeals; similarly to how C++'s remained relevant from the early eighties.
 

vixolus

Prophet of Truth
Member
Sep 22, 2020
54,503
C++ followed by C#. Python/Powershell for good measure if you're gonna work on some Service/Server side stuff or work on tool pipeline things for like artists
 
Oct 27, 2017
42,700
As someone who does webdev for work, so uses the same languages you do OP, C# is EXTREMELY easy to learn if you've learned any typed language before. The only trip ups might be confusing type/javascript and C# syntax, but if you're using an IDE like VSCode it'll pick those up anyway
 

AvianAviator

▲ Legend ▲
Member
Jun 23, 2021
6,362
As someone who does webdev for work, so uses the same languages you do OP, C# is EXTREMELY easy to learn if you've learned any typed language before. The only trip ups might be confusing type/javascript and C# syntax, but if you're using an IDE like VSCode it'll pick those up anyway
I'll second this opinion, C# came to me pretty intuitively because of my history with JavaScript and Ruby.

Edit: But I will also say if you're just doing this as a hobby, then it doesn't matter which programming language will be the most relevant. So I would go with the one you enjoy most or the one that's easier for you to pick up (hence the C# recommendation).
 

poptire

The Fallen
Oct 25, 2017
9,979
I'm no dev and have only briefly dabbled in coding but would C# be a good language if I wanted to make a very simple point and click? I have some assets already created and a script written out.
 

StrangeADT

Prophet of Truth
Member
Oct 25, 2017
2,057
C++ followed by C#. Python/Powershell for good measure if you're gonna work on some Service/Server side stuff or work on tool pipeline things for like artists
I don't know about this advice. He seems pretty set on being a hobbyist with no intent to transition to industry, so I don't see much value in starting off with C++. Additionally, I'm not sure why anyone would recommend PowerShell in an age where WSL exists. Either way, he should pick whatever keeps him interested if it's purely a hobby.

I think I would prefer to learn Rust, so I could apply it elsewhere, but I don't know. I still need to do a lot of research.
Stop researching and make something - otherwise, chances are you'll be sitting here in 6 months exactly where you are right now, with potentially more questions than answers. Skills you pick up in any language/environment you choose will be more transferrable than you realize.
 

1-D_FE

Member
Oct 27, 2017
8,259
Unity and C# still seems like a safe bet.

Yeah. I mean, if we're only talking about what is best for a hobbiest/small developer, it seems like this is the no-brainer. UE5 is obviously more powerful. And if you've got a large team of experts who can take advantage of all this, cool. But if you're trying to make your own game, and you're human (IE you're not a Senior Programmer of 30 years/Senior Artist of 30 years/Senior bunch of things who's somehow decided to chuck it all and work for free, it's all a little moot.

At some point you just need something that isn't going to destroy your ability to accomplish things. The Unity asset store is fantastic. As are the web resources to solve basically every problem you can possibly run into. These are all the most important elements if you're going to have to McGuyver your way through everything. Which a hobbiest/small developer is going to have to do.

I'm no dev and have only briefly dabbled in coding but would C# be a good language if I wanted to make a very simple point and click? I have some assets already created and a script written out.

I self-taught myself programming about 5 years ago. Absolutely. There's something to be said for starting with Python if you've never programmed before in your life (since the syntax is less confusing to a noobie), but then transitioning to C# is a very good move. It's powerful, also relatively easy to learn (if you're dedicated to learning it). The syntax can be a bit puzzling at first (which is why Python is a good place to start until you have the fundamentals of programming logic down), but it's all beautifully logical once you wrap your head around it.
 

L Thammy

Spacenoid
Member
Oct 25, 2017
50,037
I'm no dev and have only briefly dabbled in coding but would C# be a good language if I wanted to make a very simple point and click? I have some assets already created and a script written out.
There are indie games like Undertale and Hotline Miami created in stuff like Game Maker that might let you forgo a lot of the code.
 

GameDev

Member
Aug 29, 2018
558
To answer the question in your poll: *points to avatar*

I deal with a lot of students trying to get in the industry and one of the biggest hurdles is that they don't know low level programming with C++. Even tiny studios can get nearly 100 applicants and the ones who can answer questions about the performance concerns when dealing with polymorphism are the ones who get the job. But if you're a hobbyist, C# should do the job. Odds are you're never going to have to optimize your code for cache.

When it comes to being a hobbyist, if you care about low level programming/optimizations learn C++. If you just want to get your game out the door, Unity/C# will do the trick.
 

Dr Shasta

Banned
Feb 12, 2019
785
I've never seen C++ referred to as low-level before.
Then again I'm an electrical engineer.
 

elenarie

Game Developer
Verified
Jun 10, 2018
9,813
Ask yourself, what sort of a game dev person do you want to be? That is a far bigger question than you might think.

The vast majority of people working in the industry don't ever write code. They have engineers for that. Do you want to be an engineer? If you want to be an engineer, going with C++ is the obvious choice and will open the most doors. C# is a good second option.

Do you want to be a designer? If so, then become intimate with visual scripting in Unreal (with Blueprints). Why? In big organisations, designers never touch code, they spend their entire time doing either visual scripting or out-of-engine designs that another scripter then implements.
 

SpaceKangaroo

Member
Oct 28, 2017
331
Go with whichever engine is exciting to you. Programming with these massive API's and toolsets are already so abstracted from traditional 'learning the language'. Hit road blocks with some projects and learn your way around it - I think the smallest bit of programmatic knowledge will get you through anything (obviously huge hurdles but don't think about taking everything on at once!)

Knowing the basic core functions that all these engines run on is way more important than what language they use. I guess to phrase it another way writing C# for Unity effectively is way different to writing C# - but also it isn't...but is...but isn't :D

Just download some engine and make stuff! The core theory you learn will translate everywhere!

Along the way you can learn all the fancy syntactic sugar of chosen language. Get extremely hyperbolic about how bad other peoples code formatting/naming conventions are and live the true life of engineering!

edit: I realise this is the most template type of advice there is :p it's like choosing a DAW for music
 
Oct 27, 2017
2,153
If you want to make a Visual Novel, I think Ren'py (based on Python) has been, currently is, and will continue to be relevant.
EDIT:
Ask yourself, what sort of a game dev person do you want to be? That is a far bigger question than you might think.
THIS!!! The "right engine" is going to vary per project. Learning your first one will make learning your second much easier.
 

Calabi

Member
Oct 26, 2017
3,490
Ask yourself, what sort of a game dev person do you want to be? That is a far bigger question than you might think.

The vast majority of people working in the industry don't ever write code. They have engineers for that. Do you want to be an engineer? If you want to be an engineer, going with C++ is the obvious choice and will open the most doors. C# is a good second option.

Do you want to be a designer? If so, then become intimate with visual scripting in Unreal (with Blueprints). Why? In big organisations, designers never touch code, they spend their entire time doing either visual scripting or out-of-engine designs that another scripter then implements.

Yeah this, C++ involves a bit more technical knowledge and will require much more work than C#. But its not like your stuck with one language, once you've learned the fundamentals its not that hard to transfer and learn the idiosyncracies of each. Just experiment with them all and see what you like and how far you get. Although start with a simple language I wouldn't start learning with C++ to be honest.
 
Last edited:

SP.

Member
Oct 27, 2017
6,568
From the perspective of a software engineer the language(s) you learn doesn't matter at all. Once you know what you're doing they're pretty easily interchangeable.
 

PianoBlack

Member
May 24, 2018
6,644
United States
If this is for a solo project that you just want to be able to finish someday, C# all the way. Much easier to learn and work with than C++ (IMO, not a professional dev). Unity, Monogame and other frameworks use it. Even GameMaker "GML" is closer to C#.
 

julia crawford

Took the red AND the blue pills
Member
Oct 27, 2017
35,276
C# is a nice comfy language that's a good mixture of classical and nice i think. At least from my time doing Unity stuff in college. It's probably a good place to start. Really in truth when you get good at one language, for the most part you can carry what you've learned to other languages as well, so the end goal is really to be able to dabble in whatever suits the need/opportunity.

Personally i would PROBABLY choose to invest in Godot, it looks nice and being OSS is a huuuuuge plus. And if i'm not planning to make money/get a real job in the industry, being in a smaller scope that is specific to experimenting with games is very attractive.
 

stoff

Member
Oct 27, 2017
202
Easy, chose C#.
You want a general purpose language, that you can also use to dabble with in gamedev: There you have it.

I'd argue modern C++ is terrible for ... anything ... by now - with AAA gamedev as the only exception.

All other choices woud be esoterical. Even Rust.
And as a pure hobbyist - that's totally fine. Just chose whatever appeals to you.
I personally fell in love with Godot's GDScript, so I'm using that for my lo-spec hobby project. Will it ever be big? No. But I enjoy my time with it, which is what matters to me.

But the games industry will continue to be dominated by C++ and C# in the forseeable future. Unless a Rust miracle happens. Or... what ever happened to JAI?
 

1-D_FE

Member
Oct 27, 2017
8,259
I swear Unity could do C++ When I last used it like two-three years ago. Does it not now?

I can't speak for what enterprise licenses had access to, but it's never been available to the common public. It used to support JS, Boo (Python), and C#. Since almost everyone used C# (tutorial & help wise), they smartly just consolidated down to the single one. It's not like there's a ton of difference between the three anyways. If you could learn one, you could easily move over to C#.
 

SoneaB

Member
Oct 18, 2020
1,123
UK
I hear a lot about Rust though I don't see it replacing C++ and C# as the main go-tos any time soon but I think it might with time. I use C# and GML most of the time and tend to recommend them to anyone wanting to dabble in things though I am not really a great coder and tend to work with existing engines like Unity, GameMaker and very rarely Unreal.
If you are wanting to build things from scratch I hear Rust is wonderful. Not sure if you can use it in Unreal instead of C++ yet or in any other engines though. Godot maybe? Not used that in a long time so can't say for sure. For whatever reason me and GDScript never got on.
I do see a lot more visual scripting being used for things these days and I do use it myself for some things but I don't think I could undertake a whole project like that. It would just be too cumbersome.
 

SoneaB

Member
Oct 18, 2020
1,123
UK
I'm no dev and have only briefly dabbled in coding but would C# be a good language if I wanted to make a very simple point and click? I have some assets already created and a script written out.
As someone making a point and click adventure in C# it works just fine. And if you are willing to fork out a little cash and want to avoid some headaches I can recommend this https://www.adventurecreator.org
 

Edward850

Software & Netcode Engineer at Nightdive Studios
Verified
Apr 5, 2019
992
New Zealand
Just to note that the C++ that Unreal uses isn't exclusive to Unreal, that's just you having source access to their engine so the language there is universal. But the answer is C/C++, all core APIs are written in it and that's not going to change over night, no matter what you're doing it all goes back to C++. Heck some libraries still use C99, such as SDL2.

Xbox did have C++/CX for a while. They discarded that with the GDK and it's now back to plain C/C++ again.

If you want to do game dev, learn both C++ and C#. C# is harder to make mistakes on* as it does all the memory management itself (though I guess that really depends on how Unity manages it itself), but C++ is universal and necessary if you need to do high performance tasks, as it's designed around direct manipulation of memory (like assembly but in a controlled way, and more palatable). So you may find yourself doing both anyway. Plus they follow a similar-ish syntax up to a point so the skills are translatable. From there, outside of some obscure languages, you'll find yourself able to code in anything reasonably quickly.

*Kind of. C# can introduce a very different kind of mistake, you can have objects refer to eachother in such a way they escape garbage collection, and then become permanently inaccessible. You can also have the garbage collector just work against you and suck all the performance away as it keeps reallocating objects in pointless ways. That kind of control is what you give up in a managed language. C++ you can produce similar kinds of mistakes in memory allocation, but it should always be on your mind when using it as you also have to manually allocate the memory yourself as well in the first place.
 
Last edited:

turbobrick

Member
Oct 25, 2017
13,082
Phoenix, AZ
C++ is probably the most relevant in regards to games, though C# is still useful. I guess it depends on your goals. I personally find both of them pretty similar, but C# a little easier to learn.
 

trashbandit

Member
Dec 19, 2019
3,910
It remains to be seen how much adoption Rust will see in the next decade in gamedev, so C++ will still be a safe bet for engine tech. Even if Rust does become decently popular, so much existing infrastructure is written in C++ that migrating to Rust will probably take time, and no small amount of convincing. You'd essentially be banking on people opting to use Rust for parts of proprietary engines, and having it gain popularity through that. I struggle to believe Unity or Epic will commit to a full re-write of their engines in Rust, but maybe they'll experiment with some parts. For scripting, C# will probably still be incredibly popular, along with whatever scripting language dialects are packaged in with general use engines.
 
Last edited:

denpanosekai

Member
Oct 28, 2017
2,290
Just gonna pop in and say that SQL won't really be useful in the game industry but will earn you big bucks everywhere else 😉

And golang on the side.
 

Ninjadom

Member
Oct 25, 2017
5,195
London, UK
Is Apple's "SWIFT" programming language worth it?

www.apple.com

Swift - Apple Developer

Swift is a powerful and intuitive programming language for iOS, iPadOS, macOS, tvOS, and watchOS. Writing Swift code is interactive and fun, the syntax is concise yet expressive, and Swift includes modern features developers love.
 

wwm0nkey

Member
Oct 25, 2017
15,575
Going to elaborate a bit more / give my position in the "industry"

C#/Unity - "Enterprise "Game" Apps/Hobby":
If you are wanting to be in the Hobby department with maybe moving up to Enterprise applications (which has been my job for the last 7 years) then I 110% just doing Unity and C#, UE4/5 can be used in Enterprise if they are looking to "gamify" or work in the 3D space, but from my time being in the field, it's allllll unity for the most part. Then if you want to just do it as a hobby it's going to be easier and quicker to do C# than C++ honestly, though BP in UE4/5 is viable there, but I personally HATE visual scripting.

C++ - "Unreal and pretty much every other engine":
If you want to get into the AAA industry, learn C++, even if they are not using UE, C++ is very popular in other non-Unity engines. C++ might take a bit to get a grasp of and regardless will most likely take you more time than it would than in C# for not THAT much performance gain, but it's still a good language. Also random note, I would say VR is better in Unity than UE atm
 

Damaniel

The Fallen
Oct 27, 2017
6,536
Portland, OR
For small devs, probably Unity/C#. For larger devs, C++ is always going to be the first choice.

If I got to choose, I'd personally love to see a Go-based game engine, especially since it handles multithreading so well.
 

TubaZef

Member
Oct 28, 2017
3,565
Brazil
Programing languages and engines come and go. 10 yeas ago Java. Python and Lua would probably be among those options. So I think the most important thing is to have a good knowledge in logic, algorithms, data structures and be able to adapt to wherever language you need to use.

But anyway, C++ is here since the 80s and it's doesn't seem to be going anywhere, so you should have a good grasp of it anyway. Specially if you wanna work in big studios.
 

Briareos

Member
Oct 28, 2017
3,041
Maine
With respect to the poll, relevant to what? What do you want to actually do? Make a game? Learn some technology? Write an interesting renderer? Build a cool editor/tool? Write some backend event processing system for supporting transactions at scale?
Rust has a lot of hype, and feels like it will become more and more relevant in web development, especially for things that TS/JS can't handle. At the same time, it doesn't seem to have made inroads in the gamedev space, even though I've seen some hobbyist projects written in it.
Both Embark and Ready at Dawn have been involved in major Rust gaming initiatives. No one has released anything of note, but they are making serious investments. We use Rust internally for some tooling:
C++ feels like it will remain the industry standard in the AAA space, just because Unreal seems so mature and stable, but that's not necessarily relevant to a hobbyist who doesn't plan to enter the industry.
It will, but that doesn't have anything to do with Unreal per se. Tim has been hot on all sorts of weird/interesting functional languages, software transactional memory, etc. for a while now.
C# feels like a decent middle ground, because Unity has become the main indie game dev engine, but I don't know how developers feel about it nowadays.
Which developers? Indies use it for full games, for Unity, AAA use it for tools, for scripting VMs, etc.
 

@dedmunk

Banned
Oct 11, 2018
3,088
I'm no dev and have only briefly dabbled in coding but would C# be a good language if I wanted to make a very simple point and click? I have some assets already created and a script written out.

If you're just getting started I would start with something like Python if you're interested in learning to code.
 

poptire

The Fallen
Oct 25, 2017
9,979

There are indie games like Undertale and Hotline Miami created in stuff like Game Maker that might let you forgo a lot of the code.

As someone making a point and click adventure in C# it works just fine. And if you are willing to fork out a little cash and want to avoid some headaches I can recommend this https://www.adventurecreator.org

If you're just getting started I would start with something like Python if you're interested in learning to code.

Isn't Adventure Game Studio pretty much made to create simple point and click games with no coding at all?

Thank you all! I'm gonna look into all of this -- especially Adventure Game Studio. It's very affordable and looks like something I can definitely work with.
 
Jul 7, 2021
3,078
Does rust have easy to use, popular libraries for 3d rendering audio, physics, 3d math etc etc?

I doubt it. And when starting out having those libraries and having a large community to learn from is worth its weight in gold.

C# with unity is probably what your looking for if you want to do this as a hobby. I'm a full stack dev and found Unity pretty easy to work with, so I would wager youd find it the same.

Also c# skills there could be translated into .net in case you happen to have to work in That tech stack.

Frankly it's the 3d art and modeling and getting that stuff into Unity in the first place that I find hard as hell.