Sign in to follow this  
sankrant

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

Recommended Posts

sankrant    121
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. :)

Share this post


Link to post
Share on other sites
kunos    2254
[quote name='3Ddreamer' timestamp='1354940042' post='5008356']
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.
[/quote]

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. Edited by kunos

Share this post


Link to post
Share on other sites
3Ddreamer    3826
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

Share this post


Link to post
Share on other sites
sankrant    121
[quote name='3Ddreamer' timestamp='1354955479' post='5008433']
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
[/quote]

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.

Share this post


Link to post
Share on other sites
kunos    2254
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 [img]http://public.gamedev.net//public/style_emoticons/default/tongue.png[/img]

Share this post


Link to post
Share on other sites
sankrant    121
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.

Share this post


Link to post
Share on other sites
MichaBen    481
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.

Share this post


Link to post
Share on other sites
sankrant    121
[quote name='MichaBen' timestamp='1354963602' post='5008459']
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.
[/quote]

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.

Share this post


Link to post
Share on other sites
3Ddreamer    3826
[quote name='kunos' timestamp='1354958296' post='5008446']
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
[/quote]

Microsoft bought most of them. LOL


Clinton

Share this post


Link to post
Share on other sites
[quote name='sankrant' timestamp='1354962421' post='5008455']
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.
[/quote]

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.

Share this post


Link to post
Share on other sites
way2lazy2care    790
[quote name='sankrant' timestamp='1354970861' post='5008478']
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.
[/quote]
That's a rather poor mindset. To say, "there is no real alternative," for general game development assumes a lot about the requirements of games. A lot of commercial games would work just fine in C# and Java. Some games might even work better. It's a pretty bold assumption that all games have technical requirements outside the realm of anything but low level languages.

Share this post


Link to post
Share on other sites
kunos    2254
[quote name='Inferiarum' timestamp='1355005261' post='5008616']
I am still waiting for Go to be more widely recognised
[/quote]

well.. don't wait. Use it [img]http://public.gamedev.net//public/style_emoticons/default/smile.png[/img] . As devs it's our responsibility to support a language by using it in our productions... how do they say in the movies? Put your money where your mouth is. That's what I am doing it. If we all sit down and use C++ while we wait for Go, D, Rust or whatever to become mainstream we'll be coding with C++ forever.
The best ad for a technology is a killer application using it.

Share this post


Link to post
Share on other sites
sankrant    121
It's like chicken-egg situation. Start using go for non trivial parts. But as you move ahead, you will find that some things are close to impossible :( You drop to C, and end up using C++.

Share this post


Link to post
Share on other sites
kunos    2254
[quote name='sankrant' timestamp='1355055597' post='5008774']
It's like chicken-egg situation. Start using go for non trivial parts. But as you move ahead, you will find that some things are close to impossible [img]http://public.gamedev.net//public/style_emoticons/default/sad.png[/img] You drop to C, and end up using C++.
[/quote]

hm... honestly I can't see what's missing in Go to force you to drop to C. .. it's absolutely usable for a simple game without expecting bad surprises... most game oriented bindings are already done.. I seriously can't think about a single thing un-doable with Go.
Using it for a big game tho, that is a jump into the unknown at the moment, we need to get there step by step.

It's also important Google keeps this project going. Go 1.1 is expected to hit the internet next year, afaik it'll be mostly about runtime performances.. if the Go guys can deliver this, I think things might get really interesting.
Edited by kunos

Share this post


Link to post
Share on other sites
sankrant    121
I might rather wait for Rust. I don't have guts to bet on Go. Actually I don't have guts for automatic garbage collection. I will wait for Rust. Till then there's nothing wrong with C++. It just takes time, Much like haskell.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this