C# going to beat C++ in game prog

Started by
200 comments, last by Emmanuel Deloget 17 years, 7 months ago
Quote:Original post by Anonymous Poster
Coolness


Daym, your brilliant rhetoric, skillfully and elegantly crafted sentences, fact filled posts coupled with the accomplished use of ad hominem, personal and strawman is most impressive. I tip my hat to you.

Miguel de Icaza on Mono

A bit outdated: Microsoft .NET vs. J2EE: How Do They Stack Up?

Quote:Also, Microsoft's IL runtime has at least one notable, if improbable, goal: eliminate the programming language as a barrier to entry to the framework. Java eliminates the platform barrier (within limits, of course: You can't make up for missing hardware resources with software, for example), but in order to work in J2EE, you have to work in Java. .NET wants to let you use the language of your choice to build .NET applications. This is admirable, though there are big questions as to whether and when the IL approach in .NET will actually become broadly useful (see above). Regardless, this points to a weakness in the single-language J2EE approach.


Btw CLR vs JVM if you prefere were implied by .NET vs J2EE. Before you yell next time though, it would do to read on how CLI specifications and the BCLs allow seamless consumption of assemblies across platforms and languages in a way java vm does not.
Advertisement
Quote:Original post by Excors
A correction from a long way back in this thread (I hope I didn't miss any responses to it in the past few pages):
Quote:Original post by Emmanuel Deloget
(BTW AOE3 was not written in C# - its game logic used C# as a scripting tool. I'm unable to find the source, but I remember having seen that on either sweng-gamedev or gdalgo mainling lists).

As far as I'm aware, which I like to believe is reasonably far in this case (from having poked around rather a lot in the AOM/AOE3 engine [both are basically the same except for the graphics]), there is no C# anywhere on the client side.

It has a custom scripting language called XS, which looks a bit like C, for doing a few things - mostly random map scripts, AI, and triggers in scenarios (hidden behind a graphical editor). The game logic is all in the engine, in C++ - the game is data-driven as opposed to script-driven, with units being defined in XML files and given long lists of properties and types and flags which activate bits of logic in the engine.

The .exe is full of hundreds of strings like "HCShipCrossbowmen2German" and "FortFrontier" (and "Age 2 Anubis" - I guess they forgot to remove all the AOM-specific code). The data-driven design does let them tweak a unit's stats without recompiling, but it seems to have failed at allowing much more than that...


I wouldn't be surprised if they used C# for the server-side multiplayer system, though. (AOM used ASP.NET and lots of SOAP via zone.msn.com, though I'm not sure what language(s); but I believe that was all rewritten for AOE3). That's possibly a more interesting place to use C#, since the issues of portability and deployment and GC pauses and general performance don't matter so much, while productivity and security and reliability and reducing memory leaks do matter more.


It seems that my imagination is sometimes more convincing than my eyes. Thanks for the clarification - and sorry for my mistakes.

This topic is closed to new replies.

Advertisement