Is there any chance of C# bieng adopted by the AAA game studios, as a replacement to C++?

Started by
64 comments, last by sankrant 11 years, 4 months ago
Can you enumerate the game languages of the past please?

Assembler? Assembly was left by the Game Devs because we changed the way, the game's were developed. We introduced the concept of game engines to write games. C took the crown.

C? We started using C++ because C++ emmerged as a superset, and we could use any C library from C++.

C++ : Here the codebase increased to massive momentum. It was adopted as the industry standard for game engines.

Fringe languages : Pascal? Well pascal was more productive than C and as fast. Compare it to C#.

Basic? Compare it to python. Never intended for game dev.


C++ will always (for a very very long time) remain the industry standard for writing game engines. (C++ is much much more stronger in case of the AAA game engines)

Practically speaking, C++ is here to stay for enourmously long time, and majorly used, perticularly in the case of development of game engines, if not any other areas.

Note : By game engine I mean renderer, physics, script and sound infrastructure which does the heavy lifting. I love C# when writing the actual game (not engine).

Don't bother about creating game engines. Create good games with C#. Enjoy. :)
Advertisement

Similar things were said about languages in the past which are almost never used now for game related programming, but at the time were said to last until the earth is destroyed.


I have already answered you about this. The ASM-> C -> C++ shift was possible because all those languages are strictly related to each other, allowing a "gentle" shift.

Look.. I am not a C++ "geek". I use it because it allows me to do what I need to do with the smallest investment in time. AAA studios are not using C++ because they are crazy.. they are business oriented companies, they do what they have to do to stay where they are... C++ advantages over C were evident and to industry moved to C++.. as soon a new viable option will be REALLY available, nobody will stay with C++, I didn't swear any kind of alliance to it. Actually I am constantly evaluating possibilities to move away from it.. and not with forums rants, but with facts.. one example? The dedicated server for my new game uses Go.. was it a good decision? I don't know, I spent lots of time rewriting the basic network classes.. now if I need a protocol change, I need to implement it in C++ on my game client side and in Go for the server side.
I also developed ad shipped a product with a C++ DX10 backend and a C# front end.. and I was as enthusiastic as you about it... but the moment you start adding PhysX, XAudio and so on to the picture you realize it isn't really worth the hassle of constantly switch from one world to the other.

It is always easier to use a technology with the language it was coded in... in Go for example you can do OpenGL.. but consider the hassle on Windows, setup git, setup msys, go and get one of the OGL bindings hoping it is the "best" one.. sometimes it works, sometimes it doesnt, i spent a weekend trying to link a Go program that used glew on windows..no party. Using C/C++ all this is just, literally, 1 minute work. Apply this to PhysX, Havok, FMOD, XAudio, CUDA, C++ AMP and any other third party library you have and you'll soon see that the amount of effort needed to "project" these into something else than C/C++ isn't something to underestimate.

Again, I love C# and I absolutely adore F#, nothing else would make me happier than being able to use these everyday.. but, this is my job, I can't risk a project failure to promote the language I like and not the "right" language for the job.. it's not going to happen, but if it'll happen, I'll be the first to jump in the pool an party.

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

kunos,

I see that you are quite skilled and adaptive, so you will be just fine with future changes. In 5 to 10 years - more like 3, what you used and issues you faced recently will be gone forever. With all due respect to your abilities and so forth, you seem to have no idea about the revolution coming fairly soon in game development technology.

It will be years before the most common languages used in gaming today finally fade into oblivion. However, I am letting people know that immense tech changes are coming on the horizon. Wait until Apple becomes twice or thrice as large as Microsoft with the other tech animals yapping and snapping at the heels of Windows platforms. Microsoft has strength in software innovation and this is what will save them, since they are increasingly outnumbered.

Middle level programmers are to a large extent going to be replaced by software and hardware advances. Among the corporate goals is to end the need for much of the line by line coding, once the huge advances arrive. Many current professional programmers think that their C++/C experience is job security. The innovations in automation and code completion, including in C#, will reduce much of the demand for line by line coding and debugging. A new framework in C# must surely be on the horizon which will deliver such innovations if Microsoft is to avoid a collapse. In that case, C++ will prove far too cumbersome for the agile artificial intelligence in the development software of better suited languages for such innovation such as C#. This core .NET Framework language was created with this long range vision from its start as an eventual replacement for C++ in the 21st century. The next framework for C# (based on .NET) will introduce the revolutionary technologies which were conceived in the minds of leading software engineers even before C# was conceived. Didn't you see that XNA was used as a test platform for extending their technology goals to far greater innovations in the next generations? Here is a classic case of people not seeing the forest because of the trees before them.

Everybody will forget that 3Ddreamer warned of massive corporate, market, and technology upheavals in game development in the coming several years, but many game coders will be glad that they were inspired somewhere in the mist of time to be ready for the tech storm.

However, as credit to you - like I said, your adaptiveness will keep you working.

Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer


kunos,

I see that you are quite skilled and adaptive, so you will be just fine with future changes. In 5 to 10 years - more like 3, what you used and issues you faced recently will be gone forever. With all due respect to your abilities and so forth, you seem to have no idea about the revolution coming fairly soon in game development technology.

It will be years before the most common languages used in gaming today finally fade into oblivion. However, I am letting people know that immense tech changes are coming on the horizon. Wait until Apple becomes twice or thrice as large as Microsoft with the other tech animals yapping and snapping at the heels of Windows platforms. Microsoft has strength in software innovation and this is what will save them, since they are increasingly outnumbered.

Middle level programmers are to a large extent going to be replaced by software and hardware advances. Among the corporate goals is to end the need for much of the line by line coding, once the huge advances arrive. Many current professional programmers think that their C++/C experience is job security. The innovations in automation and code completion, including in C#, will reduce much of the demand for line by line coding and debugging. A new framework in C# must surely be on the horizon which will deliver such innovations if Microsoft is to avoid a collapse. In that case, C++ will prove far too cumbersome for the agile artificial intelligence in the development software of better suited languages for such innovation such as C#. This core .NET Framework language was created with this long range vision from its start as an eventual replacement for C++ in the 21st century. The next framework for C# (based on .NET) will introduce the revolutionary technologies which were conceived in the minds of leading software engineers even before C# was conceived. Didn't you see that XNA was used as a test platform for extending their technology goals to far greater innovations in the next generations? Here is a classic case of people not seeing the forest because of the trees before them.

Everybody will forget that 3Ddreamer warned of massive corporate, market, and technology upheavals in game development in the coming several years, but many game coders will be glad that they were inspired somewhere in the mist of time to be ready for the tech storm.

However, as credit to you - like I said, your adaptiveness will keep you working.

Clinton


Yeah, OK.... For some reason you think that, C# is the future mega tech.
But why C#?
Why not lisp?
Or haskell.
They have the same possibility of displacing C++.
Why only C#?
Why not Clojure?
Or Obj C?
Why only C#?
Whats so special about C#. Game scripting can be done in Lua too. And engine development has no real alternative other than C/C++. There will be no alternative for a long time. That's clear.
hey Clinton.. while you're at it... would you mind to give me a couple of numbers for the Lotto too? That would be really appreciated tongue.png

Stefano Casillo
TWITTER: [twitter]KunosStefano[/twitter]
AssettoCorsa - netKar PRO - Kunos Simulazioni

I urge the moderator to close this thread and give the conclusive post if possible. I have got the answer, I will use C# for games, but C++ will remain strong in the Engine and Backend development, for long time in the future. That's clear.

Personally I don't mind using something else then C++ for game development, as long as the language has a decent support in terms of tools and libraries, and the language itself is decent enough. I wouldn't mind having a language that doesn't feature any undefined behaviour (everything is either defined or an error) and with pointer safety (dangling pointer protection and leak detection). However, the garbage collector system that several languages introduces is in my opinion not the way to go, as it's a counter-productive method to conceal the symptoms of pointer errors, rather then fix the problems itself. The technology behind garbage collectors is interesting, but it does not belong in a release version of an application, but as part of a debugger, to tell the developer when exactly you are leaking memory, and using a dangling pointer should trigger an assertion you can debug to fix the actual problem, rather then obscure the problem.

Personally I don't mind using something else then C++ for game development, as long as the language has a decent support in terms of tools and libraries, and the language itself is decent enough. I wouldn't mind having a language that doesn't feature any undefined behaviour (everything is either defined or an error) and with pointer safety (dangling pointer protection and leak detection). However, the garbage collector system that several languages introduces is in my opinion not the way to go, as it's a counter-productive method to conceal the symptoms of pointer errors, rather then fix the problems itself. The technology behind garbage collectors is interesting, but it does not belong in a release version of an application, but as part of a debugger, to tell the developer when exactly you are leaking memory, and using a dangling pointer should trigger an assertion you can debug to fix the actual problem, rather then obscure the problem.


Totally agree. The day there is a real alternative, I will jump ship, but there is not today, and I don't think there is any will to bring up an alternative. People are just fine using C++, if they use it.

The fact is, there is no real alternative, and nothing will come up as mid level language, if not counting rust or D, which are far from mature.

hey Clinton.. while you're at it... would you mind to give me a couple of numbers for the Lotto too? That would be really appreciated


Microsoft bought most of them. LOL


Clinton

Personal life and your private thoughts always effect your career. Research is the intellectual backbone of game development and the first order. Version Control is crucial for full management of applications and software. The better the workflow pipeline, then the greater the potential output for a quality game. Completing projects is the last but finest order.

by Clinton, 3Ddreamer


I urge the moderator to close this thread and give the conclusive post if possible. I have got the answer, I will use C# for games, but C++ will remain strong in the Engine and Backend development, for long time in the future. That's clear.


The problem is there is no conclusive answer. My company is firmly placed in mid-core casual browser games and you will never see C++ anywhere. Our 'engines' (if you can even call it that) are ActionScript and 'backends' are a mix of Java/Python/PHP. We've toyed with some real time stuff and a Java server was more then capable of handling the load even with all that so horrible garbage collection going on. It's only now that we are finally branching out in to mobile that the idea of using C++ is even considered.

This topic is closed to new replies.

Advertisement