Advertisement

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

Started by November 30, 2012 05:27 PM
64 comments, last by sankrant 11 years, 11 months ago
ah, another question, Can I get into functional programming using C#? Laziness, monads, im learning that, it might be helpfull.
C# has support for some things that are considered staples of functional programming (lexical closures, first class functions, etc.) but it's an eagerly evaluated language so accomplishing true lazy evaluation semantics can be messy. Generally it isn't designed to be programmed in the same way as, say, Haskell. They're just different thought models.

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

Advertisement

[quote name='ApochPiQ' timestamp='1354307971' post='5005833']
The only obstacle to this - and I emphasize only - is adoption by console manufacturers. Until C++ is displaced there, it will continue to be heavily used for major game development that involves consoles.
We use mono on the consoles. It is a little more difficult to debug, but not so much more than C# using the various awful debuggers out there.
[/quote]

I've seen mono on... well, let's say, "certain non-PC platforms." It's not terrible - has some ways to go - but the obstacle I perceive isn't technical feasibility, it's political buy-in. Until those tools get first-class status from the manufacturers, C++ will be preferable in many cases, just because it's the path of least resistance.

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

C# is used often in middleware since it makes programming GUIs for Windows so much easier. My guess is a significant percentage of middleware development is in C# if their development platform is Windows based ( some arn't ). Good tools engineer use a variety of programming languages to get the job done of course, Python, Ruby, Perl, etc. What'ever works.
After a kind of resistance in microsoft C# feels like a lag...

Edit : Hey people, I got the answer

No language can replace any other language.
Nothing matches C++ when CREATING a game-engine, and C# is strong at USING that game engine, and tools.

After a kind of resistance in microsoft C# feels like a lag


What?


Nothing matches C++ when CREATING a game-engine


Maybe for you this is the case, but others have quite happily created their engine either mixing C++ in their code or created purely in some other language WITHOUT issues.
Advertisement

[quote name='sankrant' timestamp='1354331415' post='5005927']
After a kind of resistance in microsoft C# feels like a lag


What?


Nothing matches C++ when CREATING a game-engine


Maybe for you this is the case, but others have quite happily created their engine either mixing C++ in their code or created purely in some other language WITHOUT issues.
[/quote]

Other than C++? I like Haskell. Working on mastering it :)
The C# use in AAA games will only increase, is my prediction based on the high quality of the language and the crop of C# programmers which will come to maturity in their fields in the coming years. The .Net Framework is here to stay and C# is the core of it - make no mistake about capabilities, too.


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


The .Net Framework is here to stay and C# is the core of it


I hope this is the case, but I'm not as confident as you are. MS are no longer pushing .net the way they were. Look at the failure of WPF, and the subsequent return to C++ in winRT.

I know these aren't related to games directly, but this is microsofts bread and butter. If it's not working for them there, you have to wonder if they'll continue to push .net.

Personally I hope they do, as C# is a much nicer language to work in that C++.
if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight
That's true, yet we have the limit of being on the outside of major decision making. Several years ago or more, OpenGL was surging and some people were complaining about DirectX and wondering if MS was getting ready to either kill support or starve it to death. Both OpenGL and DirectX are going strong now.

Here is why the OpenGL to DirectX comparison is relevant to .NET Framework: Cross-platform needs have given increased demand for OpenGL and derivative technologies from Google, Apple, Sony, Samsung, and others - mobile devices - mainly laptops, tablets, and smartphones. This puts pressure on Microsoft to find ways to compete indirectly against OpenGL and Linux related tech. They chose .NET Framework as the mainstream for Windows application development with their flagship C# language with huge investments in money, time, talent, and reputation. They knew that they could not compete with OpenGL in quantity of market segments so they focused on quality of Windows based development and implementation.

It is much more cost effective to improve existing technologies rather than replace the whole .NET Framework fleet with another huge set of them. I believe there is evidence to consider that the Great Recession caused a temporary market saturation of .NET Framework software, applications, and end user devices during the economic downturn. Microsoft is able to track such trends with fairly good accuracy in most market segments, though the gaming industry seems to be one of the least predictable. At the time, they prioritized because of market uncertainty.

The .NET Framework has kept pace with DirectX progress. Hardware, third-party software, and chip architecture is interdependent on stable technologies of low level APIs such as DirectX and OpenGL to interface applications, from a marketing standpoint. As the frameworks have matured in growth, there is less to accomplish in innovations so most support involves customer implementation demands (such as shader upgrades), hardware compatibility, and backward compatibility. The frameworks matured so they are generally self-sustaining and needing less support. Each framework fork maintains its role in the marketplace, so why upset the flow? The .NET Framework is technologically mature and Microsoft depends on it in many ways.

The popularity of .NET with developers means that it needs to be "pushed" less. You are right about other technologies getting major effort, such as new mobiles, NVIDIA partnership, and the famous (or infamous, depending on your love or hate of MS) online store. Now the strategy of Microsoft is to get the return on their investments by these areas.

Massive sets of technologies are not easy to develop, change, or eliminate. Customers and partners depend on .NET Framework. The efficiency of development in the framework is popular. Microsoft is harvesting the crop now which grew from .NET investment of more than a decade.

More energy is now focused on marketing the products from existing technologies in this improving economic cycle, like a surfer catching the next incoming wave - good strategy for Microsoft and other companies. This is what you see actually happening.


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