PDA

View Full Version : what you think about .NET Framework


Daikrys
08-18-2005, 05:37 AM
hi everyone :rolleyes:

currently we working on an game thats written in C#
that means were using the .NET Framework

i was thinking if an .NET game would sell very well?

what do you think about it?
are you programming a .NET game too?

digriz
08-18-2005, 06:01 AM
HI Daikrys, welcome to the forums.

This has been discussed before a few weeks ago. It's worth doing a search for that info.

I think c# is great; i use it myself for tool development, but not for downloadable games. My reasoning is that if the end user doesn't have .net installed on their machine, they have to get the disributable from microsoft. This is a 23.1 Mb download...It would probably be bigger than your own games download size. Then, if you're using managed DirectX via c# the person will need to download the latest version of that..which is also pretty big., if they don't already have it. It's only directx 9..that has the managed version in it. This, depending on what platform you're running on, can be anywhere between 10k & 166Mb(according to the website)..

Potentially, using .net will limit your market.

One thing i'd suggest, if you do finish the game using c# is to make finding the .net redistributable easy to find on your website too. Don't let them go to microsoft, you have to jump through hoops to find it.

I believe there is someone else on here who is writing a c# game.

But not me.

papillon
08-18-2005, 06:06 AM
Every time I've tried to install .net to run a game

1. it messed up my computer in various ways that required days to iron out
2. the game STILL didn't work

I personally won't touch it. :)

Daikrys
08-18-2005, 06:30 AM
hm the .NET Framework will coming with Vista
when it will be released?

Warhammer Firewarrior is also using .NET

digriz
08-18-2005, 07:31 AM
hm the .NET Framework will coming with Vista

That's great, but what about Xp, 2000, ME, 98 & 95....I suspect it came packaged with xp but it was an early version and not 1.1 or 2.0.

I was wondering when Vista was going to come out as well. If you subscribe to MSDN, you get a copy of the beta version.

Laser Lou
08-18-2005, 07:44 AM
I think it depends on the type of game you're making. .NET would be overkill for a casual game, but it might be ok for other kinds of games.

Hiro_Antagonist
08-18-2005, 08:17 AM
1. it messed up my computer in various ways that required days to iron out
2. the game STILL didn't work

Have you tried the new Land of Legends demo, Papillon? It's in .NET, and I certainly haven't had any reports of it messing up anyone's computer. (though we do have a couple of cases where it won't run, which we're rushing to debug...)

Anyway, Daikrys, our game, Land of Legends is .NET. It's definitely a blessing and a curse. There are other threads about this on these forums, so be sure to do a search.

The short answer, though, is that you will need to integrate .NET framework and managed directX into your installer, which will bloat your installer size by about 60MB unless you including 'download on demand' install code like the Arena Wars people did. (That gives you a smaller core downlodable, but users that need .net/mdx will still have to download it, which the installer will do automatically.)

Because of all this extra downloading and/or size bloat, .NET is not feasible for casual games, and won't be until Longhorn has become widespread. (5 years? more?) But if your product is such that you can add 60MB to your installer and it's not the end of the world, then it's definitely a viable option.

-Hiro_Antagonist

papillon
08-18-2005, 09:27 AM
Sorry, but... Very very nervous about touching that again. I have enough computer problems. Maybe when/if I ever get around to going XP. (I'm on 2000.)

Hiro_Antagonist
08-18-2005, 09:47 AM
Sorry, but... Very very nervous about touching that again. I have enough computer problems. Maybe when/if I ever get around to going XP. (I'm on 2000.)
I'm very curous -- what problems did you have?

.NET and win2k are very friendly with one another as far as I know.

And the way that .NET works, to my knowledge, is such that it wouldn't mess up your computer.

Most of the resistance I've heard to .net from potential customers has been mostly voodoo theory. This is the first actual case I've ever heard of someone having large-scale problems from installing .net, and I'm very curious as to how/why it was installed, and what happened....

-Hiro_Antagonist

Daikrys
08-18-2005, 09:49 AM
i dont use directX so my setup get smaller ;)

some people at microsoft said that Vista will release at the end of 2006
but i dont know if is true :confused:

arcadetown
08-18-2005, 10:08 AM
I suggest avoiding .NET for casual games development. Sure it has potential to make good games but like an above poster said, it poses far to many problems for distribution. Not only do you need .NET framework that is a large download, you need a relatively hefty computer with good speed / drive space / memory plus a supported OS.

papillon
08-18-2005, 10:48 AM
It wasn't big things, as I remember it. It was *little* problems. Like all my fonts suddenly uninstalling themselves, program settings changing... Little things, but because they were little they took a lot of time to track down precisely what was wrong and fix it.

Maybe .net is *supposed* to mess with all your windows settings? (It's not a bug, it's a feature!) I count it as 'screwing up' if it touches ANYTHING I wasn't expecting it to.

Sadly, I cannot remember the details of anything more specific than having to reinstall my fonts and fiddle around with settings.

It's possible that it was something unrelated to .net - I *do* have weird computer problems from time to time (I'm the only person I know for whom Firefox crashes ten times more than IE ever did!). But both times the install caused me a lot of hassle to fix things - AND the game I'd installed didn't work anyway! So I remember .net as nothing but a giant heap of annoyance.

For a programmer, I *do* become a very helpless flailing-around-madly girlie when windows starts doing something unexpected. I may be overreacting. :) However, if I am, you can bet a lot of people who know less about computers than I do DEFINITELY will!

Hiro_Antagonist
08-18-2005, 10:54 AM
Like all my fonts suddenly uninstalling themselves, program settings changing... Little things, but because they were little they took a lot of time to track down precisely what was wrong and fix it.

Maybe .net is *supposed* to mess with all your windows settings?
No, .NET is absolutely *not* supposed to mess with your settings, and honestly, I really doubt that it did. I've never heard of anything like that happening before, and from what I know of .NET (I've been dev'ing in it for a while now, of course) that's not even the sort of thing it does. .NET is basically just a bunch of registered DLL's to let you run programs in a managed JIT compiler sort of thing. To my knowledge, it doesn't have any desire to touch your font settings, or your windows settings in general. All it does is integrate itself to the degree that you can run programs through it. In that regard, it's almost identical to Java (except .net is only for windows). And I would be equally suspicious if you had said Java had done these things...

I find it far more likely that whatever caused these symptoms also somehow interefered with .NET, rather than .NET causing all of these problems.

-Hiro_Antagonist

Hiro_Antagonist
08-18-2005, 11:01 AM
you need a relatively hefty computer with good speed / drive space / memory plus a supported OS.
I think those requirements are far less than you'd think. Most people who haven't worked with .NET too much tend to make these claims, but they aren't true.

Supported OS's are Win98 (maybe SE) and up.

HD space is abut 30MB for .NET, with a much smaller addition if you're also using Managed DirectX. Performance for most real-world applications is about 95% or so of C++ apps from what I've read.

Claims of massive perf hits and such are simply not true. There are a few pretty good .NET games out there that show it off better than LOL does. Arena Wars and Tin Soldiers: Alexander the Great and Tin Soldiers: Julius Ceasar are all very impressive. Being honest, LOL is a little more sluggish than it should be. That's more due to my inexperience in making highly optimized graphics code than a reflection of .NET's abilities.

-Hiro_Antagonist

Donavon Keithley
08-18-2005, 12:41 PM
Not only do you need .NET framework that is a large download, you need a relatively hefty computer with good speed / drive space / memory plus a supported OS.
You don't need the .NET Framework if you target Mono (http://www.go-mono.com) . You can even embed it in your application, and it will run on Windows, Linux, and OS X.

It has some limitations relative to .NET, mainly that (last I checked) it won't run so-called mixed-mode assemblies -- the sort of thing that Managed C++ creates. This eliminates Managed DirectX as an option. But you can always put your DirectX (or OpenGL, or...) code in a DLL and call into it through exported functions (P/Invoke).

I have a backburnered project that takes this approach.

Like Hiro_Antagonist says, the performance can be quite good, and a managed app could, in theory, out-perform a regular C/C++ app since the JIT compiler can take advantage of specific features of the user's hardware. We may see this during the transition to 64-bit CPUs.

As with any garbage collected language you have to be vigilant about not abusing the heap. When it's easy to create and discard objects, it's easy to get complacent.

Robert Cummings
08-18-2005, 01:19 PM
.net is a bad idea. Microsoft will have you believe it's everywhere but in reality the minority of your buyers will have it. Don't rely on them to install something in this competitive market. Chances are, if the demo doesn't run immediately, you lose the sale.

There's no point in arguing: .net's no good for casual game development right now.

Dominique Biesmans
08-18-2005, 01:37 PM
You don't need the .NET Framework if you target Mono (http://www.go-mono.com) . You can even embed it in your application, and it will run on Windows, Linux, and OS X.


Yes, this approach seems quite interesting. An (older) article/post on a mono mailing list suggested you could reduce the overhead of embedding a minimal runtime to about 2Mb. Seems reasonable.

arcadetown
08-18-2005, 01:39 PM
There's no point in arguing: .net's no good for casual game development right now.
Ditto... if you're objective it to have a successful product on as many sites as possible you'll be shooting yourself in the foot as you'll find very few takers due to all the issues .NET introduces. I'm all for new technologies but in this industry it's just not a good move. Nuff said by me here.

Hiro_Antagonist
08-18-2005, 01:42 PM
.net is a bad idea. Microsoft will have you believe it's everywhere but in reality the minority of your buyers will have it. Don't rely on them to install something in this competitive market. Chances are, if the demo doesn't run immediately, you lose the sale.

If MS is trying to convey it's everywhere -- that's definitely not true. It's not everywhere. For at least 5 years, developers will have to assume their customers' machines won't have this technology. It's like Java in that respect.

It's also definitely *not* good for casual game development, where tiny download sizes are essential. Maybe Mono somehow offers tiny installer sizes and true wide-reaching compatability, but I'm skeptical. I'd love to be proved wrong though. =)

Anyawy, there are developers here (like myself) who are not developing traditional casual games. For those types of developers (like myself), .NET is totally viable, and in fact, very attractive.

I'd like to point out the LOL demo does run immediately. It also uses .NET. These two things are not mutually exclusive.

As I've said all along -- the main drawbacks to making a game on .NET are figuring out how to make an installer that installs this stuff gracefully and transparently, and accepting the larger installer size by having .NET/MDX installers built in.

-Hiro_Antagonist

Donavon Keithley
08-18-2005, 06:39 PM
An (older) article/post on a mono mailing list suggested you could reduce the overhead of embedding a minimal runtime to about 2Mb. Seems reasonable.
Interesting. Do you recall if that was compressed or uncompressed?

Just out of curiosity I pulled down the latest Mono build and made a minimal app that starts up the runtime and executes a Hello World C# app.

You end up needing seven DLLs from the distribution. Compressing everything up, it weighs in at 2.8 MB.

Not great for a casual game but it's within the realm of possibility. No doubt there's a lot of fat you could pare away.

Nikster
08-19-2005, 01:52 AM
Don't rely on them to install something in this competitive market. Chances are, if the demo doesn't run immediately, you lose the sale.


No different from using the latest Direct* but the same rule applies.


There's no point in arguing: .net's no good for casual game development right now.

Is this an opinion or a fact ?

Didn't .net come part as the SP2 install ? or was it even part of the original XP install ? The reason I ask is because going on some other thread on whether to abandon Win95 the lists given for people visiting etc, top of the list were people using XP, which wouldn't be a minority, infact it looked like a big majority.. look see (http://forums.indiegamer.com/showthread.php?t=4065) Just a thought.

As for me, I wouldn't use .NET to create a full games ATM, however I do use it for tools, it's a blessing sometimes. The property grid in .net makes me wet my pants for sure ;)

princec
08-19-2005, 02:35 AM
I did exactly that with the Java runtime. Comes in about 2.5mb. Ultratron weighs only 6.5mb which well under the sweet spot for casual games so I'd say it's definitely a good idea to seriously consider Mono. Or Java of course... one mustn't forget it's almost the same as C# :)

Cas :)

Nexic
08-19-2005, 03:30 AM
I have windows XP professional and I cannot get anything in .net to run on my PC. I have a fairly high spec machine, and I recently formatted and installed windows, and still .net programs will barely ever run, and if they do it is very slowly. I would never trust it...

If a fairly technical person like me can't get it to work on a high spec PC then what hope does the average, mid/low spec user have?

Nikster
08-19-2005, 03:42 AM
I cannot get anything in .net to run on my PC.
and still .net programs will barely ever run, and if they do it is very slowly.

make up your mind damnit ;) have a link to the .net files you tried ? I wouldn't mind having a go with them to see if they're plainly crap, come with bad installer or rely on .net 1.2 where 1.1 is only installed etc.

vidalsasoon
08-19-2005, 07:40 AM
Depends when you plan on shipping your game.

The longer the better.

Hiro_Antagonist
08-19-2005, 08:31 AM
Didn't .net come part as the SP2 install ? or was it even part of the original XP install ?
Nope. It definitely wasn't part of original XP option, and if it was part of SP2 at all, it must have been some optional, user-selected add-on.

I've heard people say it's part of SP2, yet I've not seen any evidence of this. (Including my own SP2 machines.)

-Hiro_Antagonist

Hiro_Antagonist
08-19-2005, 08:37 AM
If a fairly technical person like me can't get it to work on a high spec PC then what hope does the average, mid/low spec user have?
Nexic -- have you tried installing one of the commercial games w/ .net included in the installer? (Arena Wars, Tin Soldiers, or better yet, LOL?)

I would be very curious if LOL would run on your machine. My money is on the fact it will. We've had a few reports of it not running, and we're actively working to debug the problem. (It sounds like the same problem on all of these machines so far, whatever that is.) Even still, on those machines, the .NET installation itself appears to be fine, because they're reporting a .NET-trapped error in the .NET exception handler. The problem is more likely in the managed directx layer, or something about our game itself. (The demo is available at http://download.shrapnelgames.com/downloads/LOL_SETUP_DEMO.exe)

I say this because there's a lot of voodoo suspicion of .NET out there. And yes, people sometimes encounter problems when they have to install all of the components seperately and manually. (As was the case with our early beta builds.) But now that we've got a full installer with everything built in, we've had very few reports of problems.

When it boils down to it, users don't even know a good .NET game is using .NET, other than them maybe seeing the .net/mdx installers popping up during the game installation process.

-Hiro_Antagonist

princec
08-19-2005, 08:38 AM
It is available from Windows Update as a "recommended download"; it is not part of any service pack.

Cas :)

gosub
09-19-2005, 11:17 AM
Just out of curiosity I pulled down the latest Mono build and made a minimal app that starts up the runtime and executes a Hello World C# app.

You end up needing seven DLLs from the distribution. Compressing everything up, it weighs in at 2.8 MB.


Which 7 DLLs do you need to distribute to get the application to run? How did you know which ones were used? I'm going the .NET route (C# is great), and I'd like to have it run without the Microsoft .NET framework.

Thanks,

Jeremy

wazoo
09-19-2005, 01:35 PM
Nope. It definitely wasn't part of original XP option, and if it was part of SP2 at all, it must have been some optional, user-selected add-on.

I've heard people say it's part of SP2, yet I've not seen any evidence of this. (Including my own SP2 machines.)

-Hiro_Antagonist

Not to drag this thread on further, but the Managed DX interfaces are part of SP2, so I'm curious why .NET wouldn't be. I mean it's pretty much the ONLY chance someone would get the .NET runtimes on their machine without a specific install.

Let's back that statement up a bit. At least when *I* shoved SP2 on my machine a year or so ago that's what I seemed to get from it.

If there were too many complaints about the size of SP2, then perhaps MS has decided to drop the .NET and MDX components from it..*shrug*

On the support.microsoft.com site I did find lots of hits pertaining to release notes for XP SP2. I only had time for a cursory glance, but I didn't see any specific "These components are what we shove on your machine" type info which is exactly what we would need...

*sigh*

You'd think that'd be hit #1...

I'm also actually a bit surprised that the user facing side of DirectX doesn't mention ANY of this. ( http://www.microsoft.com/directx )

ie. if you already have XP SP2 then you don't need to download the DX runtime listed here..

Or something...oh well.

Ish
09-19-2005, 01:45 PM
I use C# for the day job and C++ for my games development. The size of the .net platform and its non-portability to other platforms (I'm targetting Windows and Mac OS) ruled C# out for me. Mono was only in its infancy when I started work on my game but even now it's not something I'd considered and sounds worth investigating if you can package it up small.

I do find myself missing some of the more convenient language features of C# but being a long time C++ developer I have a decent collection of tools to get me by.

I downloaded the latest ATI drivers the other day including the control panel and was interested to note that that now requires the .net framework installed.

cliffski
09-19-2005, 03:31 PM
I downloaded the latest ATI drivers the other day including the control panel and was interested to note that that now requires the .net framework installed.

Thats insane. And another reason to shun ATI. I want the simplest possible drivers that work and dont crash please. Not a ton of memory sapping bloatware that crashes and burns and uses up my system tray for zip all reason.

gosub
09-19-2005, 06:50 PM
I use C# for the day job and C++ for my games development.

I use C++ for my day job, and C# for my games development! No way did I want to worry about pointers or GC for a game. Eventually .NET will be on all the computers, but I was hoping to make a version using DirectX 8.0 and no .NET. If I can use Mono, great! If not... too bad, it stays on .NET.

-Jeremy

Donavon Keithley
09-19-2005, 07:05 PM
Which 7 DLLs do you need to distribute to get the application to run? How did you know which ones were used?
Unfortunately just earlier today I cleaned out the directory where I put temporary little projects, including that one. So yesterday I could have told you but today I can't, sorry.

The way I figured out which DLLs were needed was very empirical: run the app, get a message box saying that such-and-such DLL can't be found, add that DLL, and repeat until it runs. :) Once it was running I checked to make sure no other DLLs besides the usual kernel32 etc. were somehow being loaded into the process.

Donavon Keithley
09-19-2005, 07:24 PM
Thats insane. And another reason to shun ATI. I want the simplest possible drivers that work and dont crash please. Not a ton of memory sapping bloatware that crashes and burns and uses up my system tray for zip all reason.
There are actually three things here: the driver, the "ATI Control Panel", and the "CATALYST Control Center". The control panel is the thing that sits in the system tray. It's this control center thing that requires .NET. (Both are optional.)

I haven't yet installed it but they describe it like so:

"ATI’s all-new Catalyst Control Center goes far beyond traditional driver configuration software—it’s a feature-rich and stable 3D acceleration control application that puts you in complete command of your ATI visual processing unit (VPU).... Safe GPU overclocking, custom profiles, and assignable hotkeys are just a few of the many new features."

(Now they just need to add a "control console" to finish off their customer confusion strategy.)

cliffski
09-20-2005, 02:27 AM
"ATI’s all-new Catalyst Control Center goes far beyond traditional driver configuration software—it’s a feature-rich and stable 3D acceleration control application


sounds like they had some coders with nothing to do. Keep it simple. Its a driver. On the day video card drivers are bug free and stable on every game released, with no compatibility problems, on THAT day and not before, I'm happy for them to work on 'l33t new features'. Till then...

Savant
09-20-2005, 02:35 AM
sounds like they had some coders with nothing to do. Keep it simple. Its a driver. On the day video card drivers are bug free and stable on every game released, with no compatibility problems, on THAT day and not before, I'm happy for them to work on 'l33t new features'. Till then...
Finally, I can agree with something Cliffski says. :)

I really wish hardware companies would give their coding teams something to do. They're bored. Really bored. And they're bloating every driver into a 50MB installation of ... nothing.

Install a mouse driver or sound card driver lately? Man ... hope you weren't doing anything for the next 1/2 hour as it needs to download a massive file and install a 100 'features' you have no use for. And, hey, here's 3 system tray icons that you have no use for and serve no purpose other than to suck up system resources.

wazoo
09-20-2005, 05:33 AM
I agree entirely. We all know that getting someone to upgrade their video drivers is hard enough without needing the .NET framework as well..

I DID contact ATI though via their developer email account and they've provided me with links (that I can post on a support page) to JUST the bare bones video drivers installs for each platform.

It's a shame they couldn't be found from the homepage, but I'm still gratefull to them nonetheless for providing them for me.

Thanks ATI!

gosub
09-20-2005, 09:00 AM
The way I figured out which DLLs were needed was very empirical: run the app, get a message box saying that such-and-such DLL can't be found, add that DLL, and repeat until it runs. :) Once it was running I checked to make sure no other DLLs besides the usual kernel32 etc. were somehow being loaded into the process.

I'm going to post my results in the "Game Development & Technical forum"

-Jeremy

Jason Chong
09-23-2005, 08:50 AM
I'm going to post my results in the "Game Development & Technical forum"

-Jeremy


Wouldn't it be simpler to just use tdump.exe (free borland C++ commandline compiler) or some other gnu tools to dump the win32 binary and see which dll it imports from ? Much less hassle.

Donavon Keithley
09-23-2005, 10:26 AM
That doesn't catch DLLs loaded at run-time via LoadLibrary. As I recall a couple of them were not bound at load time.