Game Maker's Garage Forum

Game Creation => Other Languages & Tools => Topic started by: WarHampster on January 09, 2011, 11:42:14 AM

Title: Dot net is the best
Post by: WarHampster on January 09, 2011, 11:42:14 AM
I'm breaking my vow to never share projects until they are reasonably far along in development because I am a very happy programmer.

(http://i33.servimg.com/u/f33/11/03/78/78/teaser10.jpg)

Hint: this is what SC3D was supposed to be.

Anyway I've had this running for a while, the reason I'm excited is that I now have it running on Windows, OSx, and potentially Linux. Check out the Mono project, it is a cross-platform runtime for dotnet (it runs on everything from the big three [Windows, OSx, Linux] to iOS). It was a struggle getting all the frameworks set up, but now I can recompile my project for any platform without changing the code.

Also C# is seriously the best language.
Title: Re: Dot net is the best
Post by: Gan on January 09, 2011, 12:13:10 PM
I agree. I'm taking a joy ride in C# too at the moment. I love not having to worry about pointers and memory management.
Title: Re: Dot net is the best
Post by: Mystor on January 09, 2011, 12:17:36 PM
C# is amazing.

I don't have that vow, but I am making a RTS in it atm, (not very far along due to work, just have most of the pathfinding down)

Its so fast, efficient, and hopefully can be distributed everywhere.

<3 C#

Aaannddddd... Drumroll please

Apparently (I just checked because I felt like it) Unity is now FREE and runs on windows and Mac.

In addition, it can be programmed with C#

I think I just fell in love again O.o
Title: Re: Dot net is the best
Post by: x on January 09, 2011, 06:41:44 PM
I dislike C#, I call it "I can't believe its not Java".

Java > C#.
Title: Re: Dot net is the best
Post by: Gan on January 09, 2011, 08:42:07 PM
A few dislikes of Java are the available IDEs(especially Netbeans) and the confusing libraries. Should I use awt or swing!?
Title: Re: Dot net is the best
Post by: x on January 09, 2011, 09:10:02 PM
Quote
A few dislikes of Java are the available IDEs(especially Netbeans) and the confusing libraries. Should I use awt or swing!?

You don't really need and IDE. Although BlueJ/Eclipse are good.

You can use either .awt or .swing, or both.
http://edn.embarcadero.com/article/26970
You can have just done a simple Google search and got a succinct explanation.
Title: Re: Dot net is the best
Post by: GMG Mike on January 10, 2011, 02:26:53 AM
I'd like to see a Java IDE that mimics REALbasic - automating all of the GUI code, but also allowing you to double click on a button or whatever other object and getting a nice list of all possible "events". It would shield all of the GUI code from you.
Title: Re: Dot net is the best
Post by: WarHampster on January 10, 2011, 05:14:54 AM
I think of C# as Java with more features, more flexibility, and better libraries (I agree with Gan that the Java libraries are generally confusing)... I'm not sure why a Java programmer wouldn't like it.

Care to explain, x?
Title: Re: Dot net is the best
Post by: x on January 10, 2011, 07:18:49 PM
Quote
I think of C# as Java with more features, more flexibility, and better libraries (I agree with Gan that the Java libraries are generally confusing)... I'm not sure why a Java programmer wouldn't like it.

Care to explain, x?
I think of C# as an overly ambitious rip off of Java, with lots of unnecessary features that bog you down, a more buggy VM and with less open source projects.

I feel C# has far worse class libraries, especially for beginners. C# I have found (and so have others) runs much slower with objects and typically uses 3-10000 times time the memory. This brings me to my next and most major problem, C# has a HORRENDOUS garbage collector in my experience. Java is more portable (none of this mono nonsense, it is supported right out of the box). Java works much better on servers. Java scales better. Java is free, no matter your level of development. With the newest version of Java, much of it is actually compiled from byte-code at run time, making it faster than C# overall (arguably) whereas C# was definitely the faster language previously. Java has way better enums. Java has better threading support, mainly with concurrency.
This is all my opinion of course.

Thats about all I can think of off the top of my head.

Oh and Mike: http://www.jetbrains.com/idea/features/gui_builder.html
Title: Re: Dot net is the best
Post by: Mystor on January 10, 2011, 08:05:02 PM
I think I may be the strange one, but one of the things I look for in a language is a lack of a UI creator or the like.

My biggest problem with unity is that I want to be able to simply code, I don't want to have to deal with (inevitably) clumsy UIs which get in the way of me trying to find what I want to find.

What I want to be able to do is write everything in code, because then it is in its purest code.  I am not a visual thinker.

Anyways, I like externalizing level content, and it is difficult to do that with most GUIs.
Title: Re: Dot net is the best
Post by: x on January 10, 2011, 08:46:42 PM
Quote
I think I may be the strange one, but one of the things I look for in a language is a lack of a UI creator or the like.

My biggest problem with unity is that I want to be able to simply code, I don't want to have to deal with (inevitably) clumsy UIs which get in the way of me trying to find what I want to find.

What I want to be able to do is write everything in code, because then it is in its purest code.  I am not a visual thinker.

Anyways, I like externalizing level content, and it is difficult to do that with most GUIs.

I am totally with you on this, which is perhaps the root of my dislike of all "visual" Microsoft languages.
Title: Re: Dot net is the best
Post by: Mystor on January 10, 2011, 09:29:07 PM
Quote

I am totally with you on this, which is perhaps the root of my dislike of all "visual" Microsoft languages.
The reason why I like M$ Visual C# is not because of the GUI editor, I simply like the code editor.  It is one of the easiest editors which I have ever used.  Intellitype is amazing.

EDIT: When I was using straight up Visual C# I was using XNA, now with Unity, I expect to have an almost empty stage and simply create everything in code, just using the Unity engine to power it.
Maybe I will grow to like the unity GUI... I will never know.

And I like C#, I could probably use Java if I wanted to, and I wouldn't mind too much, but Intellitype is something which once you use it, you don't want to use anything else anymore.
Title: Re: Dot net is the best
Post by: Gan on January 10, 2011, 09:41:40 PM
Yeah I agree.
Though I really like simple visual IDEs. VS is one of the best in that area.
Title: Re: Dot net is the best
Post by: x on January 11, 2011, 06:50:02 AM
Either way, C++ is the language for me.
Title: Re: Dot net is the best
Post by: WarHampster on January 11, 2011, 07:38:44 AM
Quote
I think of C# as an overly ambitious rip off of Java, with lots of unnecessary features that bog you down, a more buggy VM and with less open source projects.

I feel C# has far worse class libraries, especially for beginners. C# I have found (and so have others) runs much slower with objects and typically uses 3-10000 times time the memory. This brings me to my next and most major problem, C# has a HORRENDOUS garbage collector in my experience. Java is more portable (none of this mono nonsense, it is supported right out of the box). Java works much better on servers. Java scales better. Java is free, no matter your level of development. With the newest version of Java, much of it is actually compiled from byte-code at run time, making it faster than C# overall (arguably) whereas C# was definitely the faster language previously. Java has way better enums. Java has better threading support, mainly with concurrency.
This is all my opinion of course.

Thats about all I can think of off the top of my head.

Oh and Mike: http://www.jetbrains.com/idea/features/gui_builder.html

With dot net you really do need to think about how the garbage collector and the cli work to make things efficient, I'm still learning but the language gives you much more power over memory management than Java does. This has the downside of being slightly more involved but can result in faster programs... simple things like taking advantage of the difference between how classes and structs are stored in memory can make a big difference on efficiency, whereas in Java you don't really have control over any of that. I guess its really just a matter of personal preference, because I've found that threading in C# was really easy... and I've actually never used an enum. Whatever :P
Title: Re: Dot net is the best
Post by: x on January 11, 2011, 06:11:23 PM
Quote

With dot net you really do need to think about how the garbage collector and the cli work to make things efficient, I'm still learning but the language gives you much more power over memory management than Java does. This has the downside of being slightly more involved but can result in faster programs... simple things like taking advantage of the difference between how classes and structs are stored in memory can make a big difference on efficiency, whereas in Java you don't really have control over any of that. I guess its really just a matter of personal preference, because I've found that threading in C# was really easy... and I've actually never used an enum. Whatever :P

You should be using enums. Threading in C# is a nightmare compared to Java. What you mentioned about C#'s garbage collector is exactly the problem I'm talking about. If I wan't to manage memory I will use C++ or C, programming is a bad place my half measures, and C# is basically built around half measures.

If I want to quickly whip up a cross platform piece of software Java is faster and simpler than C#. If I want to make a complex piece of software that runs FAST C++ is the go, leaving C# in a sort of no mans land. Where its moderately fast, but no-where near C++, where its moderately cross platform, but nowhere near Java, where its moderately easy to program with, but nowhere near Java, where it sort of lets you manage memory, but nowhere near C++.

They tried to mix the power of C++ with the simplicity of Java and only half got there.

Its an in between language. Personally I think the .NET languages that go to extremes are the only good ones, like VB and F#.
Title: Re: Dot net is the best
Post by: WarHampster on January 12, 2011, 01:03:22 PM
I really don't know what you're talking about with threading... I learned how to use threads with C# and didn't have much trouble. Granted I wasn't doing anything particularly involved but w/e. Obviously if you need maximum speed you should use C++ and if you want maximum ease of use you use Java, but what if you want to program in a comfortable syntax and only dip into memory management if you need to? I'll give an example:

I helped a friend out with a gamemaker-like program that he was (is?) writing in C#; he was having trouble with some annoying windows GUI quirks. Where in Java I would have been at the mercy of swing and awt, I was able to solve the problem by directly assessing winapi functions through P/Invoke. The point is that C# gives you more control, and while this can make things more difficult you only need to exercise that control if you need/ want to tweak minute details of how the program runs.
Title: Re: Dot net is the best
Post by: x on January 12, 2011, 06:51:25 PM
Quote
I really don't know what you're talking about with threading... I learned how to use threads with C# and didn't have much trouble. Granted I wasn't doing anything particularly involved but w/e. Obviously if you need maximum speed you should use C++ and if you want maximum ease of use you use Java, but what if you want to program in a comfortable syntax and only dip into memory management if you need to? I'll give an example:

I helped a friend out with a gamemaker-like program that he was (is?) writing in C#; he was having trouble with some annoying windows GUI quirks. Where in Java I would have been at the mercy of swing and awt, I was able to solve the problem by directly assessing winapi functions through P/Invoke. The point is that C# gives you more control, and while this can make things more difficult you only need to exercise that control if you need/ want to tweak minute details of how the program runs.

This is what C# was engineered to do, and on the surface appears to do well.

But the fact is, in Java, you probably would never have run into this problem, thus saving your time (although removing the fun of messing with the windows API :P).

Look, I'm not saying C# is a bad language, (in fact my main problem is only with the .NET part of it) I'm just saying its not as good as the alternatives. Its a middle child, and middle children are always runty. Take the time to learn Java properly, and then tell me which you prefer.  ;)
Title: Re: Dot net is the best
Post by: WarHampster on January 12, 2011, 08:32:20 PM
I'm not speaking from a lack of experience, I've been taking Java at school for... two and a half years or something.

Whatever, whatever, any language is the best if you can make good stuff with it.
Title: Re: Dot net is the best
Post by: x on January 12, 2011, 09:14:27 PM
Quote
I'm not speaking from a lack of experience, I've been taking Java at school for... two and a half years or something.

Whatever, whatever, any language is the best if you can make good stuff with it.

Anything can be done in any language, if you know how. Thats the joy of programming!
Title: Re: Dot net is the best
Post by: Gan on January 12, 2011, 11:04:27 PM
I've made a space ship game in Java and have found C# and even Obj-C easier to use with less headaches. (I like the VS libraries)
Title: Re: Dot net is the best
Post by: x on January 27, 2011, 02:32:30 AM
http://forums.indiegamer.com/showthread.php?t=24340

Some of you C# lovers might be able to find a nice job.