C# in the future
by Pablo Alonso · in General Discussion · 02/08/2005 (4:58 pm) · 87 replies
Some time ago I heard that c# was gonna become really strong with the realease of longhorn and xbox 2, but I have no idea if there's any studio actually using it for a game, anyone has any info?
Thanks
Thanks
About the author
#62
@Gary: Unlike Java, C# compiles into native machine language, not just byte code. When you run it, it's compiled to the machine's native assembly language. This allows for machine-specific optimizations from the compiler. It's a very cool feature.
@Mike: I agree, this debate is pointless. I never cease to be amazed by people who program that are rigid and refuse to think outside the box at solutions other than those they are used to. Innovation comes from doing things differently. Oh, well.
03/15/2005 (10:26 am)
@Ryan: Someone mentioned Tribal Trouble, which is written in Java, and it's pretty CPU intensive what with all the AI and 3D rendering going on. It's not a business application. Saying that C# won't ever be fast enough is silly, considering that processor speeds get faster and you also ignore incremental optimizations and changes in the language itself. To declare it flat-out impossible is religion, not reason.@Gary: Unlike Java, C# compiles into native machine language, not just byte code. When you run it, it's compiled to the machine's native assembly language. This allows for machine-specific optimizations from the compiler. It's a very cool feature.
@Mike: I agree, this debate is pointless. I never cease to be amazed by people who program that are rigid and refuse to think outside the box at solutions other than those they are used to. Innovation comes from doing things differently. Oh, well.
#63
A quote from their forums:
In my opinion, the Axiom/RealmForge and OGRE/Yake/Yap duo *is* the future of indie game development and other engines like Torque and 3D GameStudio just cant compete (despite their pricey commercial price tags).
03/15/2005 (4:18 pm)
Speaking of AxionmA quote from their forums:
In my opinion, the Axiom/RealmForge and OGRE/Yake/Yap duo *is* the future of indie game development and other engines like Torque and 3D GameStudio just cant compete (despite their pricey commercial price tags).
#64
Lets see...a full-blown engine supported on LInux, Max, and PC, which has already made complete games, has a great community, plenty of tools, and is only getting better....or a 3d engine that is still in development? Hmm. Tough choice.
03/15/2005 (4:22 pm)
I'm left scratching my head. Looking at screenshots and OGRE and such, I have no idea how they can claim that it looks "great". The graphics are similar to the original TGE, and can't even touch TSE.Lets see...a full-blown engine supported on LInux, Max, and PC, which has already made complete games, has a great community, plenty of tools, and is only getting better....or a 3d engine that is still in development? Hmm. Tough choice.
#65
03/15/2005 (6:01 pm)
Don't forget Xbox and PS2...
#66
BTW, how exactly did they get Tribes: AA on the PS2 looking so good? How did the engine run that well? The visuals stayed way up there and it ran without much lag - even with bots.
03/15/2005 (6:04 pm)
That's very true. I'm sorry. I had forgetten that Tribes 2 was more or less ported over to PS2 and that Xbox has a game on it.BTW, how exactly did they get Tribes: AA on the PS2 looking so good? How did the engine run that well? The visuals stayed way up there and it ran without much lag - even with bots.
#67
03/15/2005 (6:06 pm)
I actually ment the PS2 announcement we made at GDC. A few lucky people got to see a Marble rolling around on a PS2.
#68
03/15/2005 (6:09 pm)
Oh, wow. Well, for the record, Tribes: AA is a Torque PS2 game done several years ago, and runs great.
#69
And "In my opinion, the Axiom/RealmForge and OGRE/Yake/Yap duo *is* the future of indie game development and other engines like Torque and 3D GameStudio just cant compete (despite their pricey commercial price tags)." ... I don't get it? Torque is freaking cheap... o_O ... $100 for the standard version which means you can make $250,000 a year annually? If you're making more than that a year, then coughing up an extra $500 is NOTHING. And in my opinion, Torque is better. Thats why I chose Torque over Axiom, RealmForge, and OGRE.
03/15/2005 (6:25 pm)
Personally, I think C# is a good language. Its a little easier than full blown C++, and provides nearly equal speed. But, like you guys said C++ is just a better language overall, and I don't see C# being enough to take the place of C++.And "In my opinion, the Axiom/RealmForge and OGRE/Yake/Yap duo *is* the future of indie game development and other engines like Torque and 3D GameStudio just cant compete (despite their pricey commercial price tags)." ... I don't get it? Torque is freaking cheap... o_O ... $100 for the standard version which means you can make $250,000 a year annually? If you're making more than that a year, then coughing up an extra $500 is NOTHING. And in my opinion, Torque is better. Thats why I chose Torque over Axiom, RealmForge, and OGRE.
#70
03/15/2005 (6:28 pm)
I know. I don't understand that comment about Torque either. Torque is far superior, and it is dirt cheap relatively.
#71
I don't quite get it; saying that C# will never be used for serious game development because it doesn't support feature X right now doesn't make sense to me; I haven't seen one single feature mentioned here that would be difficult to add to C# or the clr. Saying that it would help things if feature X was added makes sense to me, but saying that it will never, ever be used sounds presumptuous.
03/15/2005 (7:55 pm)
@Pat: That's great about the PS2. You guys are awesome.
#72
-Ron
03/15/2005 (8:01 pm)
C# is a nifty little language, currently doing all my day time (@ work) dev in it with a sprinkle of C++ MFC/COM+-Ron
#73
That said, it is not proof that C# isn't a viable game development platform or that these engines specifically suck. Though the demos don't really show it much, OGRE and Axiom both have full feature sets supporting all the standard shader technology that TSE sports (HLSL etc etc) if you have the hardware to push it. The freznel demo is an example of this.
Again, I'm not saying one engine is better than another, I'm just saying not to rule it out and pan it simply because you haven't done enough research and/or there aren't many commercial games using C# yet. OGRE is an extremely powerful rendering engine (read about its features), and Axiom follows its design. But they are most certainly not complete game engines like Torque.
As always, it's a matter of choosing the tool that suits you. It just bugs me when people proclaim something obsolete and crap when they evidently haven't done appropriate amounts of research. For instance, most people still don't realize that C# compiles to native machine code just like C++ does.
03/15/2005 (8:03 pm)
I also don't understand that comment from the Axiom forums ($100 is definitely not expensive), and I'm certainly not saying that Axiom can compete with Torque as a game engine, but then Axiom and OGRE both specifically state that they are designed as pure rendering engines and do not try to be complete game engine packages.That said, it is not proof that C# isn't a viable game development platform or that these engines specifically suck. Though the demos don't really show it much, OGRE and Axiom both have full feature sets supporting all the standard shader technology that TSE sports (HLSL etc etc) if you have the hardware to push it. The freznel demo is an example of this.
Again, I'm not saying one engine is better than another, I'm just saying not to rule it out and pan it simply because you haven't done enough research and/or there aren't many commercial games using C# yet. OGRE is an extremely powerful rendering engine (read about its features), and Axiom follows its design. But they are most certainly not complete game engines like Torque.
As always, it's a matter of choosing the tool that suits you. It just bugs me when people proclaim something obsolete and crap when they evidently haven't done appropriate amounts of research. For instance, most people still don't realize that C# compiles to native machine code just like C++ does.
#74
03/15/2005 (8:08 pm)
I just want to say that I wasn't knocking on C# being used in Axiom at all, I was just confused by that comment.
#75
03/15/2005 (8:18 pm)
Btw, there are a few commercial projects that use OGRE. Have a look at the featured projects page. Some of those are freeware, etc, but a few are also published titles. Not that this really says much either way, but a few people seemed to have assumed that OGRE has not been used in anything other than demos.
#76
However you should take into consideration that Axiom/RealmForge are not yet finished. I am not suggesting that they are the best solution at the moment but that they will be once they are completed. Additionally the licensing of them provides them as free, provides their source and a community which allows you to extend/evolve the source as well. A lot of work has been put into a really well designed modular framework for both and from a techical standpoint (just comparing design and API) I would consider RealmForge to have a better design especially for scripting, modularity, portability, extensibility, and a data-driven nature. However, you are entitled to your opinion of the best platform for your task, RealmForge/Axiom/OGRE and the other open-source frameworks which they make use of have come about by the selfless contribution of time by many for developing quality products that are available (in both binary and source form) to everyone, there is no sale to be made, so no underlying motive for marketing tactics, its just there for if you decide to use it and i can say that many are and will.
$100 is cheap sure, however 3D Game Studio is the relativly expensive one, especially the full version and compared to its feature-set. However, hobbiests or academic projects can find this cost to be preventitive and it certainly prevents its use in open-source projects.
03/15/2005 (8:34 pm)
Jasons right, Axiom does pretty much all of the latest features in rendering engine technology as well as all forms of shaders and is cross-platform and very well designed. It really helps a lot to have access to (and the ability to modify the source code) for the more serious projects. OGRE is actually far more powerful then Torque in that department as shader support just recently arrived with TSE. OGRE/Axiom are increadible rendering engines however, demos are primarily just a matter of what media you put into them and how long you spend on them, if you actually wanted to compare the engines you should have compared the features or API. However you should take into consideration that Axiom/RealmForge are not yet finished. I am not suggesting that they are the best solution at the moment but that they will be once they are completed. Additionally the licensing of them provides them as free, provides their source and a community which allows you to extend/evolve the source as well. A lot of work has been put into a really well designed modular framework for both and from a techical standpoint (just comparing design and API) I would consider RealmForge to have a better design especially for scripting, modularity, portability, extensibility, and a data-driven nature. However, you are entitled to your opinion of the best platform for your task, RealmForge/Axiom/OGRE and the other open-source frameworks which they make use of have come about by the selfless contribution of time by many for developing quality products that are available (in both binary and source form) to everyone, there is no sale to be made, so no underlying motive for marketing tactics, its just there for if you decide to use it and i can say that many are and will.
$100 is cheap sure, however 3D Game Studio is the relativly expensive one, especially the full version and compared to its feature-set. However, hobbiests or academic projects can find this cost to be preventitive and it certainly prevents its use in open-source projects.
#77
03/15/2005 (9:38 pm)
If it compiles to native machine code then how is it cross platform?
#78
03/15/2005 (9:54 pm)
Because it's compiled at runtime.
#79
Some info here: http://msdn.microsoft.com/msdnmag/issues/04/03/ScientificC/default.aspx
See the section titled "Is the JIT Compiler Getting Any Better?"
03/15/2005 (10:19 pm)
That actually opens it up to optimizations that aren't practical with native C++, since its compiled for the same environment that its run in. That's the same thing that draws people to use Gentoo Linux.Some info here: http://msdn.microsoft.com/msdnmag/issues/04/03/ScientificC/default.aspx
See the section titled "Is the JIT Compiler Getting Any Better?"
#80
It's not just C#, but any .NET language. Once you get used to the idea, you see its beauty. It really is quite revolutionary, although it hasn't had time to really reach its potential yet. You choose the language you're best with (C++, C#, VB, Python, etc)--it all compiles to native machine code at run-time. Not to mention you get all kinds of other capabilities like object reflection, etc supported in the .NET library.
You can even add a custom language (ie, TorqueScript!) if you can write the compiler (from TorqueScript to .NET byte code), and it will do the exact same thing. When you run the program, it would compile the TorqueScript-originated byte code into native code. So all script code becomes native code with full optimizations because it's compiled at run-time. Is that cool, or what? :)
03/15/2005 (10:51 pm)
@Pat: Mike said it. It compiles at run-time from the bytecode into native code for whatever platform it's running. Mono will compile to Windows, Linux, or Mac native machine code just like C++ would if you compiled it on those platforms. Except the dynamic nature of the compiler (JIT) allows it to change each run depending on circumstances and thus can take advantage of any environment changes that may happen (ie, you get a new video card or install a CPU with shiny new instruction sets or more resources are suddenly freed up, etc). There's a lot of potential there!It's not just C#, but any .NET language. Once you get used to the idea, you see its beauty. It really is quite revolutionary, although it hasn't had time to really reach its potential yet. You choose the language you're best with (C++, C#, VB, Python, etc)--it all compiles to native machine code at run-time. Not to mention you get all kinds of other capabilities like object reflection, etc supported in the .NET library.
You can even add a custom language (ie, TorqueScript!) if you can write the compiler (from TorqueScript to .NET byte code), and it will do the exact same thing. When you run the program, it would compile the TorqueScript-originated byte code into native code. So all script code becomes native code with full optimizations because it's compiled at run-time. Is that cool, or what? :)
Daniel Moorehead
I just posted the link to the high performance game written with C#. Additionally companies have contacted my about use of RealmForge in high-performance comercial apps and MMORPGs as well as academic institutions and organizations for expiremental games, so i hardly see C# as falling by the side-line, especially considering how small optimizations are becoming less and less significant due to increasing CPU speeds and development budgets and costs continue to soar. With everyone worried about the costs and time requirements for developing games for next generation platforms, it is simply a matter of time before game developers began to leverage .NET quite a bit as a whole. Rapid application development, portability, connectivity, and reusibility are big issues... and ones which .NET addresses.
I agree with Mike Parker on his point that the language is less important then the quality of the design (which *really* efects performance) and that working with what you know is the best decision, not what could *potentially* be faster in certain cases, especially with indies. However, this debate is to empahsize *this fact*, that you should work with what is the best tool for the job and can get it done the fastest, not what you just assume may have slightly faster execution of *certain* operations. .NET is not an interpeted language, it is run as native code that is optimized for your architecture, it is hardly a slow platform and i am positive (and have seen first hand) that game developers are makign use of it.