Slashdot Mirror


Is .NET Relevant to Game Developers?

andrew stuart asks: "We've heard an awful lot about how .NET is the future and how .NET signals the end for COM based Windows development, but how far does this go? Is it really the end of COM? Will ALL Windows programming be done with .NET? What about games development? Will games be developed with .NET? If games aren't developed with .NET and Microsoft is killing COM, then what future for games development on Windows? Will there be DirectX for .NET?"

24 of 489 comments (clear)

  1. That Giant Sucking Sound... by ackthpt · · Score: 3, Insightful
    CLR produces slow code. A trend I observed decades ago appears thus: As hardware capability and processing speed advance, software takes advantage in ways previously unthinkable due to severe degradation of overall performance. Windows isn't fast, it also has overhead, loading up memory with libraries the session might reference. Put .net with it's CLR on top and you get the feeling you've been here before. Yes! It was when people complained how slow Java was.

    Well, it's pretty much the same thing. (And before that was UCSD Pascal and P-code) Interpreters don't have brute strength speed that assembler, or even earlier C++ had. Sure, they're quick for instantiating a zillion objects from an already loaded class, but are awful for anything doing heavy calculations. For heavy math/memory moving you'll need tighter native compiled code libraries, which I'm already finding to be a headache. That and unless your game runs in a browser, your players will have to have the .net Framework (~20 meg, of which I note 1.1 is now downloading on Microsoft update.)

    So what else does .net have to offer? This whole XML thing? Can't say I've ever considered that a necessity for game play. Maybe it'll allow the player to enjoy games which are Office compatible or such, doesn't seem relevant. I feel .net is not for game programmers, at least action games. Probably fine for strategy games which don't have to do a lot of iterating potential moves.

    Then again, maybe this explains the long delays for Star Wars: Galaxies and Duke Nukem Forever...

    --

    A feeling of having made the same mistake before: Deja Foobar
    1. Re:That Giant Sucking Sound... by Anonymous Coward · · Score: 2, Insightful

      What utter nonsense. The CLR isn't that slow at all, and if you do find that you'd like to call a library written in another language, it's trivial to do that in .NET.

      Your argument sounds very like the "proofs" we were all given that games would always be written in asm, not in C++. Look at what tosh that is.

    2. Re:That Giant Sucking Sound... by Tony+Hoyle · · Score: 2, Insightful

      The CLR is really very slow. When I first came across it at an MSDN demo they were running it on really fast machines and it still obviously dragged on the simple app they were writing. I've got the misfortune of having to do some stuff in it (mostly a frontend to the C++ backend because we *need* speed) and I'd estimate it goes between 10 and 20 times slower than native code (~5 seconds to generate a single web page on a Dual P4).

    3. Re:That Giant Sucking Sound... by nightcrawler77 · · Score: 4, Insightful

      I hear a lot of complaints about the lack of deterministic finalization, but I really have to wonder why people care so much about when the memory is actually freed for a particular object.

      Most complaints center around the fact that you don't know when your destructor is going to execute. That's a valid concern, but there is nothing that really separates a destructor from a regular method. If you have some clean-up that needs to happen, put it into a Dispose() method and call it yourself. Pretty simple.

      "But the memory isn't freed after I call Dispose()!"...who cares? Just let go of your reference and let the GC handle it. You've executed your cleanup code, so why do you care that there is a block of memory out there that you can't even see that's still allocated? It's not going to leak, so just let the GC do it's job.

      --

      "Power corrupts, and absolute power corrupts absolutely." -- Lord Acton

    4. Re:That Giant Sucking Sound... by juggleboy · · Score: 2, Insightful
      3. DirectX is already available for .NET. Check DirectX 9 SDK [microsoft.com], you can use it with C#, VB.NET, etc. There are sample projects everywhere.

      Also available is DirectX for for Visual Basic. Yet for some reason I don't see many Visual Basic games being released.

      If you want to do stuff like Diablo/Starcraft in .NET - as long as the user has sufficient memory I don't see why you can't.

      On the other hand, if you could code your Diablo/Starcraft clone in C++ and halve the system requirements, why on earth would you dream of coding it in .NET?

  2. Uh huh by stratjakt · · Score: 5, Insightful

    Will games be written with .NET?

    Yes

    Will all games be written with .NET?

    No

    Will games be written with SDL and OpenGL?

    Yes

    Will all games be written with SDL and OpenGL?

    No

    Will more games be written with .NET than are written for Linux?

    Yes

    Will it really be any different from the way it is now?

    No

    Was this article posted just to give zealots a chance to yammer about MS world conquest and other conspiracy theories?

    Yes

    --
    I don't need no instructions to know how to rock!!!!
    1. Re:Uh huh by bogie · · Score: 4, Insightful

      "Was this article posted just to give zealots a chance to yammer about MS world conquest and other conspiracy theories?

      Yes"

      Actually No. The only zealous act here is what you say in your 7th point which bashes linux users. The poster asked directly about the future of gaming on Windows. The entire post along with its many questions on how this relates DIRECTLY TO GAMING ON WINDOWS is below if you feel like reading it again.

      "We've heard an awful lot about how .NET is the future and how .NET signals the end for COM based Windows development, but how far does this go? Is it really the end of COM? Will ALL Windows programming be done with .NET? What about games development? Will games be developed with .NET? If games aren't developed with .NET and Microsoft is killing COM, then what future for games development on Windows? Will there be DirectX for .NET?"

      Zealot - n.
      The most overdone word in the geek lexicon.

      --
      If you wanna get rich, you know that payback is a bitch
  3. XML Thing... by redragon · · Score: 3, Insightful
    So what else does .net have to offer? This whole XML thing? Can't say I've ever considered that a necessity for game play. Maybe it'll allow the player to enjoy games which are Office compatible or such, doesn't seem relevant.

    XML is great for game development. Would I ever distribute a game that uses XML at run time? Probably not. Will I use it for development, and "compile" things down later? Heck yes. A lot of developers forget how nice it is to be able to let your artists play with all sorts of settings and make things dynamically, XML isn't the nicest interface, but easier than bugging a programmer to tweak something for you. However, you really don't need .NET for XML. It's easy to use, sure. However, Xerces C++ interface isn't that bad, and just about anyone can stick a simpler interface on it.

    I tend to agree that the CLR is slower than compiling down to machine code. However, I've also seen some pretty cool Java based game development. I think it comes down to the game itself...if it's pushing hardware limits, then .NET is a no go. If it doesn't push the hardware, why not?

    --
    - Sighuh?
  4. Re:Dotnet won't rule the world. by danro · · Score: 2, Insightful

    How many highgrade professional games are written in Java currently?

    None.
    But that is largly because of javas lingering performance issues.
    Everything running on a VM has to have some extra overhead compared to native code, but .NET, unlike Java has the luxury of not having to be platform independent, and should have less of a problem in this departement.
    (In fact, not being platform independent is a plus for MS. They will need something to prop up their OS business in an age of increasingly commoditized* operating systems.)

    I think .NET may have the potential to become suitable for games programming.
    These parts of .NET will of course be hopelessly tangeled with the windows operating system (moreso than the winforms parts), ie. hard to port and utterly unusable on other operating systems.

    Or, I may be talking out of my ass here.

    *) Read: GNU-Linux and friends...

    --

    "First lesson," Jon said. "Stick them with the pointy end."
  5. Is it really the end of COM? by Jack+William+Bell · · Score: 4, Insightful

    The rest of the questions asked have already been answered, so I am going to tackle "Is it really the end of COM?"

    Uh... Was Windows 95 the end of MS/DOS? Was COM the end of DDE? Microsoft has a tendancy to wrap up stale old code in fresh new interfaces and let their Marketing people slap a new name on it. Sometimes those interfaces aren't all that fresh; ActiveX was mostly just a rename of COM with a couple of extra methods.

    So the answer is no. At least not right away. Maybe ten years from now, but by that time Microsoft will be pushing some new technology without admitting that their new thing has .NET under the hood...

    --
    - -
    Are you an SF Fan? Are you a Tru-Fan?
  6. Re:Dotnet won't rule the world. by Anonymous Coward · · Score: 1, Insightful
    think about where all that increased power has gone.
    It's gone into making more complex game worlds and better graphics. Either that, or it isn't being used.
  7. Re:What exactly is the point of .NET? by telstar · · Score: 2, Insightful
    "I can't see it being useful for cross-platform GUI apps because there's no guarantee that .NET really is cross-platform."
    • For many users and industries, they don't care if something is cross-platform. They invest their money in a single platform, and as long as their stuff runs on it, they're happy.

  8. short memories by avandesande · · Score: 4, Insightful

    Rember how many years before game programmers moved away from dos booting games to windows games (for performance reasons) the same thing will happen with dot net. Ask me again in 5 years.

    --
    love is just extroverted narcissism
  9. Re:Doubtful. by gpinzone · · Score: 3, Insightful

    Which is why there was much backslapping when a Chinese archaeologist claimed to have found a fork in a cave in China dated to about 3000 BC - it's not that they have not discovered forks, it's that they have moved on.

    How do you know if the Chinese inventor of the fork just didn't market his or her idea well enough for it to catch on? Either that or maybe people resisted the change since they didn't want to give up the simplicity of braking twigs off trees to eat? Just because a technology is superior doesn't make it the popular choice.

  10. Re:What exactly is the point of .NET? by soulhuntre · · Score: 4, Insightful

    Could someone explain to me exactly what .NET is good for, that couldn't be better accomplished using Java, or Win32/C++, or PHP? Seriously.

    Seriously? I doubt many people will actually pay any attention to the answers.

    I can't see it being useful for games, because it's going to be slower than C++.

    While it may be slightly slower (and I mean slightly) the problem is easily solved and/or irrelevant. because your calling the highly optimized stuff in DirectX for most of the graphics work your speed issues are minimal and any core routing that is really slowing you down can be coded in something else without forcing the whole project into a less useful environment.

    I can't see it being useful for cross-platform GUI apps because there's no guarantee that .NET really is cross-platform.

    For most developers the issue of cross platform is irrelevant. In general I can support most biz needs via a web service anyway or in Windows. The rest of the world is Mac (and there WILL be a Mac implementation because Office on the Mac is a good cash source) or Linux - and Linux is irrelevant for this type of thing.

    I can't see it being better than any of the various web development solutions (PHP, cold fusion, etc...)

    Then you haven't looked very hard. The Web controls, event model and code behind features are light years ahead of CF and PHP. mod_perl isn't even a player.

    I can't see it being useful for enterprise server side apps because Java is more mature, more reliable, and has a VM implementation on lots of different platforms.

    The enterprise level apps I have been involved with are either Intranet based (and this .NET is perfect) or Windows based. In both cases .NET is a great environment and has strong advantages over Java. Besides, given how much Sun is throwing their weight around with Java most firms see java as a single source tool and Sun is a much less attractive partner.

    I can't see it being useful for PDA/Phone apps because the framework is too heavyweight.

    You can cut the framework down for custom applications.

    So I know that it's new and shiny and Microsoft....but what, exactly, is it good for? What can you do with .NET that you can't do better with something else?

    It's as good or better than Java, runs as fast as C++ and is much easier to code for than Win32. The web event model rocks and the ability to mix languages kicks ass.

    In short, it's good.

    --
    --> Fight tyranny and repression.... read /. at -1!
  11. Re:Dotnet won't rule the world. by Mr.+Shiny+And+New · · Score: 3, Insightful

    This has been an entire /. article before, if I recall. And I think mainly it isn't worth the trouble; it means that games won't work on the latest hardware; it means you have to reboot to play games; it means that you have to essentially single-task. no more printing, downloading, whatever.

    The task of building a "game" distro would be complex; a game company would have to spend lots of time building it; otherwise, it has to be outsourced. If you're not building it, why are you shipping on only that OS? If you are concerned only with certifying on one platform, why not just pick a popular platform and say "we only support X". It's easier and keeps the users happier.

  12. Yahoo! Games by yerricde · · Score: 2, Insightful

    How many highgrade professional games are written in Java currently?

    Do you claim that Java platform games such as Cubis and Bookworm available at Yahoo! Games either earn low marks, or are not written by professionals, or both?

    --
    Will I retire or break 10K?
  13. A Caviet for .NET by RembrandtX · · Score: 3, Insightful

    A while ago our MS rep came in for his bi-monthly visit. And he let something slip.

    The next desktop version of windows is supposed to be a database structured OS. SO basically everything from word documents, to e-mail, to images are essentially .NET datatypes.

    Sounds kinda cool actually. Now walk with me ...

    Any file could be shared with another computer, by basically sending it to a 'routing' computer.
    So e-mail wouldn't be like it is now, nor would web pages, they would be sent to a .NET server which would pass the 'package' on to the reciepient. [This is all out of memory, which is fuzzy .. so who knows if im getting it all EXACT.]

    What I do remember with shocking clairity was having the epiphany that if everything has to be routed through a .NET server (which our REP said would make it a lot more secure than it is now .. har-har) then WHO is going to be making those servers ?

    MS is pushing SOOO very hard for .NET now .. because simply - if it DOESNT get widely adopted than Stage II(tm): Take over the server market by making the desktops REQUIRE MS.NET routing servers, will be as successful as Licence 6.0.

    Whats the easiest way to get rid of Apache ? make windows not play with it. They can't control the *nix OS's out there, and they cant put the genie back in the bottle, but they CAN alter their OS to ignore the genie, and maybe make it look like he is wearing a dunce cap.

    That being said. .NET [or Dot-Nyet as my russian friends call it.] is kinda neat. Once you get used to the 10-15% loss of speed. And the higher memory requirements on your servers.

    I'm just afraid that this innovation in programming languages is more about gaining control, than improving computer science.

    After all - most of our cars still run on gasoline WHY ?

    --

    --Ne auderis delere orbem rigidum meum, non erravi pernicose!
  14. The bigger picture by seangw · · Score: 2, Insightful

    We shouldn't be looking at how current implementations of .Net would slow current methodologies in game development.

    I remember back in the 80s receiving an apple magazine with printed basic code for games. It was great, you could always reference the code line by line, very simple.

    How could we get information out if we're using this new "object oriented" design? Modify class X with method Y and add the following code?

    It's a bad example.

    With the new Gigabit ethernet going straight past the PCI bus on new motherboards (875?) we are being given a unique chance to utilize remote computing abilities and storage.

    CLR is in it's early incarnation as v1.1. When did we all start respecting DirectX (some of us still may not) over openGL as a graphics standard? For me it was probably around DirectX5-7.

    Optimizations to the CLR don't have to be done in each language that compiles into it, but in the CLR itself.

    In response to some comments about XML usage in .Net, there is definitely going to be a use for XML.

    When building BSPs for games, character models, maps, assets, and other game information, we will eventually be able to bring models over from one game to another thanks to a common language (XML) and possibly common framework (.Net).

    I'm not a big proponent of .Net currently, it seems to be more of a developing mindset than a language for commercial use right now (as a developer, I infrequently recommend .Net unless there are specific reasons to go with it). Think though how these tools can apply to tomorrows development (both game, application, and networking) methodologies.

  15. Re:DirectX 9.0 for Managed Code (its out already) by nick+this · · Score: 2, Insightful

    And there were DirectX interfaces for Visual Basic, too, but for some reason Id decided not to do Doom 3 in VB. Go figure.

    It's really a question of appropriateness. C# isn't appropriate for games. My guess is that the whole reason for Managed DirectX is to allow apps to do visualization and stuff... so that managers can look at sales figures as a cluster of three-d spheres or something stupid, not to write a 3d shooter with.

    That's not to say you couldn't... wrong tool for the wrong job, but you could probably do it. You could probably fry an egg in a toaster, too... it would just be messy as hell. Not to mention stupid. Kinda like game programming in C#.

  16. Re:Dotnet won't rule the world. by Hard_Code · · Score: 2, Insightful

    Then again, I do NOT want arbitrary games to have complete superuser access to all my hardware. What an absolute nightmare. Some sort of "special" kernel mode that disables many things and gives utmost priority to one process might suffice. But then again, you can sort of already get this with a modular kernel, process nicing, and an intelligent schedular.

    --

    It's 10 PM. Do you know if you're un-American?
  17. Re: not the same as with Atari or CBM by ip_vjl · · Score: 4, Insightful


    Remember back in the **OLD** days when Atari, Commodore and Apple games weren't launched from the OS, they were loaded from a boot floppy because we really didn't have OS's back then? (Unless you purchased CP/M, of course.)

    Well, Knoppix has demonstrated an absolutely ridiculous level of competence at autodetecting hardware, and since . Would the gaming industry consider the possibility of using Linux as a development platform in a trend back to using bootable disks for games?



    For those systems, the interactive basic interpreter would probably be considered what most people thought of as the OS.

    If I remember correctly, a number of C64 games were launched directly from the basic interpreter.
    LOAD "MYPROGRAM, 8, 1"
    or something like that.

    As far as the Atari, the reason you directly booted into games was that with only 64k of memory in the system, you *needed* to displace the basic interpreter and free up 16k of RAM that it occupied. It still loaded a stub of the DOS (for disk access) and then would autoload any file named AUTORUN.SYS

    Additionally, since the OS was ROM based, the systems were "instant on" (or very close). So shutting down the system to play a game (and vice versa) wasn't a huge deal.

    Nowadays, I have a computer with 512Mb ram, and it takes a little bit to boot into the OS, so shutting down the system just to play a game seems stupid. As another poster pointed out, thats what consoles are for. For a general purpose computer, not being able to launch games alongside with other apps would be annoying.

  18. OpenGL and .NET by Ridge · · Score: 2, Insightful

    So, I worked on CsGL and am doing the new library (which is available as linked off the CsGL homepage). Anyway, from my tests, the .NET examples I've done so far, this includes all of the redbook samples, the majority of the nehe lessons, and a number of others, finds that the .NET versions run between 1-5% slower than the c/c++ versions. Admittedly most of the samples are somewhat simplistic and of course we're ultimately going through the native library and then through (hopefully) hardware accelleration, but to me that's quite acceptable. The main performance issue at this time is array performance, particularly multidimensional arrays, which are extremely slow. However, I understand in the 2.0 version of the .NET framework array performance will be improved, particularly multidimensional arrays.. As always the Mono team is improving performance and support.. Oh I did mention the new OpenGL binding is cross platform didn't I? The new library supports GLUT, as such one could develop cross platform OpenGL apps in their .NET language of choice. It runs fine under Microsoft's runtime as well as Mono on Windows, and I've had reports of many of the samples I've done running under Mono on linux and freebsd. Of course there's bugs (and surprisingly finding linux testers with OpenGL and Mono is like pulling teeth), but hopefully they'll be corrected. It'd also be nice if someone would contribute GLX support, but that's not important for this discussion...

  19. Wrong question by almaw · · Score: 2, Insightful

    Hmmm... it's the wrong question to ask. A much more interesting one is "will there even *be* any major games for PCs in one/two/five years' time?". After all, it's much cheaper developing for xbox, ps2, etc. as you don't have to test on thirty-five different graphics cards, etc. What's more, consoles are steadily increasing in power, and with the advent of consoles with VGA ports and/or HDTV, the last remaining reasons to use a PC for games (higher resolution and a mouse) will go away. Combine that with the cheapness of consoles these days (xbox is now only £130 in the UK, the price of a mid range graphics card for a PC) and what's the point of developing for PC, which has a smaller market and lower returns?