[.net] 3d engine on .Net , worth?

Started by
70 comments, last by GameDev.net 19 years, 4 months ago
Quote:Original post by GodBeastX
I almost threw up while reading this thread. How are "portability" and "use .NET" in the same sentence? C# is an abomination in my book. The IT world is making my game dev hobbies more annoying every day... If you want to port you gotta have a common denominator. C/C++ are as common as they come. ANSI C libs are pretty much your limitation unless someone has a library ported for you already. Anything else you're gonna be kicking yourself in the head. And why would they put .NET on the X-Box? Are people hiring Visual Basic coders now to write state of the art gaming engines?


You have unfounded biases there. .NET is DESIGNED to be a portable system. Check the mono project out. You could even port .NET to unix if you wanted. In many ways, it's MORE portable than C/C++. And it's not a single language that is portable, it's the platform. In other words, all the languages that are supported.

Why is C# an abomination? It's an amazing language.
VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.
Advertisement
Quote:Original post by GodBeastX
C# is an abomination in my book.

Must be a pretty error-prone and misleading book... unless of course you are a distinguished engineer? or someone that actually has worked with the language before debunking it at least?

Quote:
The IT world is making my game dev hobbies more annoying every day...

Can you please tell us the story again about how certain language delegates came to your house and forced you to use a certain programming language again? That's always a great story to listen to!
*Takes a deep breath*

You know Oprah, it all started when I got hired as a software developer.

Just playing.

I know I'm being a bit hardcore on this, but most of that I guess comes from the company I work at. My bosses like to take routes like that, for example, using Java to do the user interface for part of our software. This year alot of our goal has been optimization which I have been pushing for the previous years. So I guess my anger is just undirected, but come on guys, you gotta admit, having extra layers on your code doesn't bother you at all? I'm a hard core cycle counter/assembly optimizing guy, so you might at least understand where I'm coming from.
Quote:Original post by GodBeastX
but come on guys, you gotta admit, having extra layers on your code doesn't bother you at all?

Maybe you can explain these "extra layers" that C# supposedly has?

Quote:
I'm a hard core cycle counter/assembly optimizing guy, so you might at least understand where I'm coming from.

I used to think that way too, until I saw collegues getting canned over it. I remember the "C++ is trash, it's slow, why would I use a high level language like that instead of ASM or C?" from people.

Any die-hard fan of a language is obviously a crack-pot engineer, as any real engineer will tell you that the language is just a tool and that you should pick the right one for the job at hand.
yes, and that code maintainability and flexibility is sometimes more important than execution speed.
-jonnii=========jon@voodooextreme.comwww.voodooextreme.com
At times ASM has it's place, but as a general rule, it's a good idea to always optimize algorithms, not code. A lot of newer languages like C# are very good for this because they are able to prototype new code fairly quickly, and it's a lot easier to find bugs. While I still work primarly in C++, I develop a lot faster an accurately in C#. It's a very advanced language, not gimped in any way, and in a lot of areas, is just as fast as C++.
VSEDebug Visual Studio.NET Add-In. Enhances debugging in ways never thought possible.
Maybe it's just the "old dog new tricks" theory. Java is most of the reason I turn my back to new found tricks. Perhaps C# isn't as bad as java, but it certainly feels like a marketing ploy from Microsoft. As for layers question, I should rephrase that to dependencies. Dependencies are already an issue with programs, and now .NET adds a framework "layer" to that list. I do believe in code maintainability, but I'd like to know why someone would say C/C++ is so hard to maintain? Maybe I'm just an OG coder in a world trying to phase out the OG-style. Turbo C++ for life :)
The statement:

"The obvious advantage is that, like it or not, .Net is the future because Microsoft wants it, so the sooner we migrate, the better."

should have read:

The obvious disadvantage is that, like it or not, .Net will never work on other consoles and operating systems. .Net will never perform better than C++. .Net will never be governed by a neuetral standards body.

C++ is an outstanding, mature, powerful language. Why would you not want to use it?

Go read Design Patterns. Learn the STL. Embrace Policies. Don't waste your time trying to use some other language. C++ is the dominant choice for 3d-engines for a reason. Frankly, it is better suited for the task.



No offence AzCoder, but it looks like you're the one that has to do some reading.

>> .Net will never work on other consoles and operating systems
Mono

>> .Net will never perform better than C++
You can tweak every test so one performs betrer or vice versa. And speed is not the only criteria. In most aplications is not even the first one.

>>C++ is an outstanding, mature, powerful language. Why would you not want to use it?
Stone age was great. Why did we ever evolve from that... (see point 5)

>>Go read Design Patterns. Learn the STL.
Design patterns apply to all languages. STL? What does .Net has to do with STL? If you are using C++ you still use STL as normaly and if you use C# you have simmilar librarys already implemented as core.

>>Don't waste your time trying to use some other language. C++ is the dominant choice for 3d-engines for a reason. Frankly, it is better suited for the task.
You would be stoned to death if you would say something like that 20 years ago when everyone was writing in C/ASM.

And most of all, language is just a tool. No more no less. Use the one it suits your problem.
You should never let your fears become the boundaries of your dreams.
No offense taken. Honestly, I have done a tremendous amount of reading over a substantial amount of time.

Let's really think about this:

Do you honestly think .Net is a viable choice for Linux, Mac, Playstation, or GameBoy Advance? If you were building a 3d game for Linux, would you base it on Mono?

Do you honestly think that using a jit compiler for real-time interactive 3d applications makes good sense from a performance perspective?

I will grant you that Design Patterns do apply to all languages. My point was that if you already know c++, your time is better spent learning additional design patterns than learning a new language like C#.

C++ is not the "Stone-Age". It has language features that are more advanced and not present in .Net. Like the STL. .Net does not support generic programming like the STL. At least not until they get the upcoming "generics". The STL is not simply another run-time library. It enables generic programming and supports approaches like policies and traits.

Ultimately, you should use whatever language you want. I am simplying trying to help people understand why the entire industry uses c/c++ instead of .Net. It is not because they are hesitant to move off of c++. It is because in many instances c++ is better suited for interactive 3d applications.

Most importantly, just because Microsoft wants you to use .Net is absolutely not a good reason to do it. Use your knowledge and make an educated decision for yourself.

Happy Coding To You (even in .Net)
;-)

This topic is closed to new replies.

Advertisement