&#169&#59; Ţĩмό Şąļσмāĸ

Hi, it's me again. ;)

I've posted many posts in this thread, but try to stand me. Okay. This could be a silly question, but does any big game house use C#, VB.NET or J# to program DirectX Is it possible

Timo



Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

The ZMan

Many big companies use it for tools, EA mentioned it in a game postmortem and microsoft Flight Sim also mentioned it.

However there are no games from what you would consider a big company. The current known (if you know more then tell me) list is here

There's several reasons.

1. Most big companies release their games on multiple platforms, right now C++ is the only way to do this efficiently

2. Most game programmers are C++ experts - they've been using it for years and arre very efficient at what they do

3. The very very top games (quake, halo, half life...) need a level of optimisation that is just not possible in managed languages but don't forget most games outside those don't require this e.g. any casual download game.

Its all about using the right tool for the job.

 






Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

The ZMan

Since this was a different question you should start a new thread. I split this one out.




Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

Timo S

Is C# going to be more popular because of Windows Vista I wondered if some game companies use it when making new games to Vista. So what does Microsoft With what language it makes for example Flight Simulator X (Tested it and it's not bad :D)

Timo





Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

The ZMan

Well Vista includes WPF for development (though don't forget WPF is also availalbe to download for WIndows XP) so WPF might make more managed developers (not just c#). Remember though that WPF isn't really about games, well not high performance ones, so that probably won't increase managed code in games.

XNA GSE will probably increaseit - well we all hope so.

Last I talked to flight sim guys it was all C++ (maybe the occasionaly bit of assembly)






Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

Nightmare_BE

Aint the torque engine (http://www.garagegames.com) managed code

I fully agree WPF is not for games, it more like GDI.

I still prefer navite code like c++ for game development cause its just much faster, so u get higher FPS with it.





Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

The ZMan

No its all C++

However GarageGames have announced a new product TorqueX which is managed code and uses the XNA framework.

>I still prefer navite code like c++ for game development cause its just much faster, so u get higher FPS with it.

Like all things in computer science.... it depends... yes the very best C++ programmer with all the very best algorithms will be better than any managed code. However I've been hiring and firing developers for a very long time and its pretty rare to find that developer (though its easy to find people who think they are that developer). On the other hand its very easy to find C++ developers who will create many hard to find/debug errors which are difficult or impossible to create in managed code. Also if you look at all the games out there, only the very top level of game actually require the max FPS.... bejewed etc just don't.






Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

Nightmare_BE

i think most algorithms have nothing much to do with programming skills but with math skills ;)

I learned c++ only for game development, all my other project are writen in .net managed code. I was first playing with the directx sdk on vb.net and for what i was doing i only had an averange of 10 FPS on managed code. Made the same thing on c++ and the result was an averange of 100-150 FPS.

I first noticed when i run the SDK samples in managed code and then in native code, i noticed the difference. So thats the only reasson i learned c++.

I think managed code can be used for small games, game like tetris or platform games like super mario, but for racing games, first person shooters with big maps, dynamic lod heightmaps, ... managed code just cant handel it :(





Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

The ZMan

Most of the managed SDK samples run 95% or more the speed of their equivalent native versions. If you were seeing 10fps vs 150 fps then there was something going on much worse than the managed code overhead. If this was the old VB DirectX wrapper (rather than Managed DirectX) then that may have been the problem.

As for 3rd person shooters etc - well since noone has done it yet we will have to agree to disagree for now. I don't think you will see a Crytek, or HalfLife2 becuase those games do require ultimate control but I also don't think that managed code should be relegated down to the very small games. I suspect that with XNA framework becoming more prevalent we will see some much bigger games in the next year.






Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

HolySmokes

In my opinion, the use of C# or the like, is the way that many games will be produced going forward. The concept that you have to build a game for all platforms is frankly driving the technology into producing drivel.

It is time for the artists, designers and others to take the game design, in a respectful manner out of the hands of the "computer science" types with their "efficient" algorithms. Game companies continue to make small profits on difficult to design games. If large companies like Microsoft, EA and so forth are trapped in the land of the semi-colon and the interesting work is being done in the land of MacroMedia flash or if Microsoft is lucky, the land of XAML and Expressions, then the big companies using C++ will fail in game design.

My recommendation is that any person entering into the career of game design, should focus on higher levels of technology like XNA, graphics, quality control, testing and game design. Efficiencies of coding through products like XNA, or similar from other companies is likely to be the way to go rather then pounding the keys doing C++. The beauty of Macromedia or similar, along with the speed of development indicates where things are going. Take a look at the profit margins at the big companies and ask yourself which one should you invest in.

My answer is XNA or similar.






Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

Kaishain

What about games like Runescape by Jagex (jagex.com), for example

Runescape is made in Java, I'm guessing to make it multi-platform. However, if you were to focus on the Windows platform, which language would you use Would VB or C# be enough Or would you need to make it in C++






Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

ToddNR

I'm not sure which language they are using, but Vanguard: Saga of Heroes is being developed on the XNA platform:

http://www.gamespot.com/news/2004/05/10/news_6097001.html part=rss&tag=gs_news





Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

The ZMan

Before anyone gets too excited this is a story from 2004, long before XNA framework and XNA Game Studio express... this was back in the vague days of XNA when noone really knew what it was. I suspect that they are using XACT and XINPUT and quite a lot of marketing hype and no managed code.




Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

Jubber

Interesting thread. I disagree with Holy Smokes comments though. I've worked (for my sins) in computer games for about 14 years (I first learnt to code on the Speccy and BBC micro) - and in all this time I've seen control of gameplay mechanics moved from the coders who used to make the games into the hands of producers, designers and artists, just as you suggest. I've also seen a lot of terrible games and games companies going to the wall as they fail to handle four year development cycles. These cycles extend because of featurecreep - "Can you 'just' add this new feature " and C++ written in such a way that debugging becomes problematic, the stack topples over, memory leaks out of the console and forms a nasty puddle on the floor. C++ is a very easy language to write horrendous code in and I would like to see a move to C# which addresses some of these problems. For good, bug free code that can be maintained in my experience - Assembler (bad), c++ (not very good), c (same as C++), Pascal (good), Basic (bad), BBC Basic/VB (fairly good), c# (very good) - but of course this needs to be balanced against the capacity of these sorts of high and low level languages to crunch the numbers. c# seems like a good compromise, and produces fast code as far as I can tell so far - though I've only been writing in it for a week and a half. Already have an entire rotating sprite engine up and running with scaling, fonts, music, sounds and pixel shaders - which tells me something about C# and the game XNA framework in general - ie its great for game development. Not portable to PS3, PSP or Wii sadly.

In my experience some coders are maths nerds who obsess over their class inheritance and some coders are game coders who think their way round problems. Some should be involved in gameplay and some should not and there isn't a hard and fast rule. Similarly many designers want to 'control' the direction the coder takes by demanding new features as they think them up. Some designers (less) take the mechanics the coders give them and use them in interesting combinations to create gameplay. Think Miyamoto.

Designers are often promoted game testers and know next to nothing about actual game design. Its all about the rules baby. Use the rules you have to create gameplay, and reward the player - never punish them. Still, some coders know this better than the artists and designers and some don't. When you're in charge of a team you need to figure this out for each person - many producers try and use a fixed rule like the one you suggest and the game suffers as a result. And people get frustrated and quit. And the development cycle gets extended. Then the publisher gets scared and withdraws funding. Then the company collapses and 200 people lose their jobs. I have seen this happen.





Re: Game Technologies: General Do any big game companies use C#, VB.Net or J#

Flavious

I'd also like to echo some of the sentiments in favor of .NET as a viable game platform. And I'm talking FPS, not minesweeper.

I've been programming in C++ for 10 years, and after reluctantly trying C# with the release of VS2005 earlier this year, I'm finding it downright difficult to return to C++. C# is just so freaking cool. Everything is cleaner. Man, it's beautiful! My only real objection so far is the inability to code in SSE/3DNOW!, and on a lesser note, concerns over P/Invoke and GC, as well as portability with other platforms. OK, so that's a considerable list, but performance by and large is very good, and I suspect it will only get better as time goes on.

Personally, I don't think there's any question that eventually, everyone will be developing games and indeed everything else with this sort of technology, just as C++'s domination was inevitable after C. I think the real question is when. And I for one am hoping it's far sooner than later

Cheers