Is .NET Relevant to Game Developers? 563
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?"
That Giant Sucking Sound... (Score:3, Insightful)
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...
Re:That Giant Sucking Sound... (Score:2, Insightful)
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.
.NET is Java (Score:0, Insightful)
Nothing new under the sun, been there already for 4-5 years.
Web Forms - a fancy name for Java servlets.
C# - an alias for Java programming language.
CLR and
Web Services - nothing more that classes interacting using XML
After demonstrating to us for years why Microsoft technologies are superior to Java and why we should stick to them, here we go - we find out that the system registry sucks, that we have problems with the versioning (DLL Hell), that MS languages are propriatory to only a limited number of platforms out there (ONE!), that COM sucks and here we go - DA! DA! we reinvent the wheel.
After all, Java addressed all these issues 4 years ago, so if MS is to be acclaimed is that they finally realized there's a better technology and concepts out there and they adopted it in order to survive the massive shift of people towards their competitors.
"Where do you want to go today?" Would you want to go to a company whose "Next Generation Services" is something 4 years old and desperately tries to play a catch up game? What about all the other statements - "PC will never dissapear" whould you still believe in those?
Uh huh (Score:5, Insightful)
Yes
Will all games be written with
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
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
XML Thing... (Score:4, Insightful)
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?
Re:Dotnet won't rule the world. (Score:3, Insightful)
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
(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
These parts of
Or, I may be talking out of my ass here.
*) Read: GNU-Linux and friends...
Is it really the end of COM? (Score:5, Insightful)
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
Re:Dotnet won't rule the world. (Score:1, Insightful)
Re:What exactly is the point of .NET? (Score:3, Insightful)
short memories (Score:5, Insightful)
Re:Doubtful. (Score:4, Insightful)
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.
Re:What exactly is the point of .NET? (Score:4, Insightful)
Seriously? I doubt many people will actually pay any attention to the answers.
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.
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.
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.
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.
You can cut the framework down for custom applications.
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.
Re:Dotnet won't rule the world. (Score:3, Insightful)
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.
Yahoo! Games (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 [yahoo.com] either earn low marks, or are not written by professionals, or both?
A Caviet for .NET (Score:4, Insightful)
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
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
What I do remember with shocking clairity was having the epiphany that if everything has to be routed through a
MS is pushing SOOO very hard for
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.
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 ?
The bigger picture (Score:2, Insightful)
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
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
Re:Uh huh (Score:5, Insightful)
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
Zealot - n.
The most overdone word in the geek lexicon.
Re:That Giant Sucking Sound... (Score:2, Insightful)
Re:DirectX 9.0 for Managed Code (its out already) (Score:3, Insightful)
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#.
Re:That Giant Sucking Sound... (Score:3, Insightful)
Re:Dotnet won't rule the world. (Score:3, Insightful)
Re: not the same as with Atari or CBM (Score:5, Insightful)
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.
Re:That Giant Sucking Sound... (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.Re:That Giant Sucking Sound... (Score:2, Insightful)
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?
OpenGL and .NET (Score:3, Insightful)
Wrong question (Score:2, Insightful)