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
Nobody will bother to make 'a C++ out of C#'.

C# is primarily meant for the enterprise, and will be developed in that capacity.

C++ is meant for creating underlying high performance infrastructure and low level code. It will be developed in that capacity.

So for the future, I will be choosing C++ to make the heavy lifting infrastructure/base of my software (game engine), and C# or my favurate language to make the real part (the game).

As an indie, you might be loving to code in C# (as I do), but indie developers do not create game engines for that matter!! :) (be happy)


Advertisement

[quote name='3Ddreamer' timestamp='1354857369' post='5008002']
What I am saying is that C# and support is evolving to some day replace C++ to a large extent but must go through the same basic vetting process that happened in C++. I expect that C# will do it better in its life cycle than C++ is doing it.


sadly I don't think it'll go that way. C++ is a very closed relative of C, the 2 can mix in the same codebase and the boundaries between the 2 become quite blurred.
C++ allowed C "engine" developers to slowly get use to it without throwing away what they had and was working.. they could experiment with a little of C++ flavor here and there without compromising the structure and without feeling unsafe about it,because they knew they could just switch back to C if and when cornered.

The problem with C# is that you can't "inline" C code into it. The boundary between the "native" side and the "managed" side is VERY defined.. devs from one side can't "play" moving stuff here or there.. everything is much more "frozen"... plus you have the marshaling cost to consider every time you want to move something around.

To make C# (or any other language) a viable option to replace C/C++ in the game engine realm you need to create a compiler that can seamlessly include .c, .cpp or .cs files IN THE SAME PROJECT.

I have more hopes for a C++ evolving into something more C#-ish (add modules and optional GC and you're there) than the entire world to adopt C# for everything.
[/quote]

C++ getting more C#-ish, is IMHO far from being a reality. Adding optional GC, will make it more like Rust Programming Language.

C++ is now stealing ideas from functional programming languages. The world requires and always will require, one and only one mega multi-paradgrim language. I don't see C++ going away anytime soon, from the realm of game engines, and C++ going away is unimaginable in case of AAA game engines.

I say, don't bother much. Make beautiful games with C#.
I think most realistically C# will see a larger dedication toward interop performance. Good programmers are able to get lots of performance out of C++, but in my experience most C++ code in games 1. does not require good performance and 2. is not performant even if it requires good performance. Iterative games are hugely bad for this. Personally I expect the day of single language games to be near an end.
C# useful in creating AAA games? yes. It also depends on what one considers the definition of AAA to be as well as how c# is used. In-fact, games like Minecraft, Binding of Isaac, Terraria, Bastion, and Angry Birds, can be AAA quality fun without requiring the AAA quality graphics and expenditure in resources (note: yes i know they are not all c# games, infact AB is C++ i believe).

Unity 4 engine is a great example of a mixed language engine that includes c# (albeit for scripting, but much much much faster scripting). XNA has been a huuuugely successful framework spawning many .net game projects. SharpDX which is a managed DirectX API is powering various efforts like MonoGame (on the WinRT side).

C# compile times are also magnitudes lower than C++ allowing much faster development iterations almost to the point of eschewing the classic need for scripting, especially with dynamic c# and reflection which even with their performance hits, still rival classic scripting languages in speed and direct-access. The fact that scripting languages are even used period is reason enough to argue that C++ is not needed to create AAA games because you need alot of extra cycles to execute those slow bastards. The cycle times required to parse and execute script languages as well as run the core engine could likely be performed entirely by C# with cycles to spare. Sure, the engine portion likely wouldnt run as fast as the C++ version, but the game portion would run faster and you could probably make it up in the difference.

When it gets down to it, if you measure the quality of a language with something as obtuse as "can i make the most purdy pictures with it?" as your only criteria for its worth, you're only hurting yourself. In-fact, based on that argument alone, all "AAA" games should be written wholely in assembler/microcode because nothing is faster period and therefore it is the language most capable of AAA development.

Well there's nothing "System Level" about game engines, so there's no reason to need a "System programming language there", a game engine is a game engine, it's not a vidcard driver and it needs no low level access by design.


You could maybe argue this for PC games, but not for consoles.

You could maybe argue this for PC games, but not for consoles.

I dunno. Is that more a function of it being impossible, or is it just a function of only having low level language apis provided by most of the console manufacturers?
It's purely a function of lack of adoption on the part of console creators.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

[sup]Since we are now on the hardware demands...[/sup]

[sup]Every few years there is a major hardware advance and we are overdue for the next major one. In five years or so, performance advantage which a highly advanced C++ team can currently treasure will not be nearly as much of an issue. Other languages such as C# will be more valued for being less convoluted ( in implementations and not C++ itself ) to indies and small teams. [/sup]

[sup]What if general hardware performance doubles or triples in a few years? Workflow will be valued more than language performance, I predict. Even now, we are seeing more artist friendly tools on the increase which improve game appearance but might be at the cost of some performance. As hardware advances to better handle all the demands, this will gain in working philosophy.[/sup]

There is a particular company which I am not going to mention. It claims an increase in game performance while increasing game assets by multiples over what we see in the top games today. They claim a release of their technology in a few years at most.

Now...

[sup]The C++ geeks ( bless them all, really ) and C++ nerds ( yeah, them, too ) have quite a few years typically until retirement age ( it's a tease, so please laugh ), but the increasing number of programmers in streamlined languages like C# and Python are a taking down of the programming aristocracy which will surely mature and crest in the coming years. [/sup]

[sup]People are talking about the coming trend more, so no programmer and game developer should be surprised when it becomes clear to everybody.[/sup]


[sup]Clinton[/sup]

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

''
As the hardware gets more powerfull... We will not require fine grained control. Down with C++!
''

As the hardware gets more powerfull *OUR Needs will GROW*, and everything now which is called graphically intensive will be called crappy....

''
There will be a time when C++ geeks will be no more.
''

Believe me, Earth will be destroyed some day. That's a universal fact.

C++ will only die, when we start creating gamse withought a game engine.

And microsoft (C++), apple (obj-C) will make sure, that there is a supply of young C/C++ programmers, who will than take charge of the game engines in the future. That's 30 years minimum. C++ is changing all the time, it will get more functional. As platforms like Google Glasses come into play, C++ compilers will be the first to get hands on.
Libraries like openGL/DirectX are writern in C/C++. Do you know why? Because most languages have a C API. What about C#? If you use C#, you get locked in to the CLR. Suppose, hypothetically I write my Engine in low-level C#. My team wants to use LUA for scripting. They cannot.

This will always be like that till John Carmack is alive. 50 years more maybe?

Till there are console games, till we create game engines to program a game C++ will remain the Industry standard, for game engines only.

Create games with C#. Use an existing game engine if you somehow hate C++.
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 know because I programmed in two of those now nearly extinct languages in gaming which once dominated everything. The Titanic was said in denial to be "unsinkable", even as the water was rising to overflow the bulkheads. The time for C++ may be years in the future but it is coming far sooner than you think.


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

This topic is closed to new replies.

Advertisement