Announcement

Collapse
No announcement yet.

How is Mono worse than other projects that implement Microsoft technologies?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • RealNC
    replied
    It doesn't actually matter what is written in C#. It's just a programming language. The core issue is the MS-centric .NET framework and its fake portability.

    Leave a comment:


  • directhex
    replied
    Originally posted by kraftman View Post
    Just parts of C# and compared to other high end C/C++ games it's nothing. Don't follow the Elanthis moron way, because you'll loose quickly.
    Sigh.

    Games are almost never written in one language. You have a graphics engine, a physics engine, AI, sound, scripting, etc.

    In almost all cases, the graphics engine is C or C++. Nobody denies that.

    However, in almost all cases, the scripting engine is NOT C or C++, because that makes game development much harder and more expensive, by requiring your artists and designers to also be programmers.

    Instead, scripting engines are usually something more user-friendly. Lua is a popular choice. UnrealEngine has its own language, UnrealScript. Civilization 4 used Python.

    And now, developers are starting to use C# - specifically Mono, not Microsoft.NET, for scripting (and sometimes more).

    The Sims 3 is probably the biggest deployment of Mono as a core game engine component, but there are others which are famous, such as Second Life (whose performance when moving from their in-house LSL scripting engine to Mono went up by dozens of times). Or Unity3D, which is the most popular game engine for mobile game development, and is also powering new Linux ports of games like Wasteland 2. Even Crytek's CryEngine recently gained the option to use Mono for scripting, to the cheers of developers.

    Leave a comment:


  • kraftman
    replied
    Originally posted by directhex View Post
    The Sims 3.
    Just parts of C# and compared to other high end C/C++ games it's nothing. Don't follow the Elanthis moron way, because you'll loose quickly.

    Leave a comment:


  • directhex
    replied
    Originally posted by XorEaxEax View Post
    Hmmm define 'high-end' games, I'm unaware of any high-end, as in AAA or even AA style titles written in C#. On the other hand if we are to compare C# vs Java then the Java title Minecraft sweeps the floor with anything done in C# in terms of sales and overall impact I'm sure.
    The Sims 3.

    Leave a comment:


  • zerothis
    replied
    Originally posted by BlackStar View Post
    So effing what?

    Wine is not covered by a community promise at all, so it's even worse - yet noone cares. I wonder why that is.
    I care. I don't do wine and I take every opportunity to discourage it.

    Leave a comment:


  • XorEaxEax
    replied
    Originally posted by fuzz View Post
    Minecraft is not a very good example for Java (and is definitely not high-end).
    Certainly not high-end, but still a good example for Java as the game is extremely successful for an indie game.

    Originally posted by fuzz View Post
    It would probably run a lot better if it was written in a faster language.
    Of course, but the comparative 'slowness' of Java doesn't seem to have hampered it's popularity. Which in turn is likely due to people simply thinking the game 'idea' is so good that the the relatively poor graphics by todays standards doesn't matter.

    Personally I applaud the idea of gameplay being the first and foremost focus of game development, that doesn't mean that there's anything wrong with awesomely good-looking graphics but seriously looking at the so-called AAA-titles these days I see very little explorative/interesting gameplay while the only thing really moving forward is the quality of the graphics. I realize that the money at stake in these hollywood-style productions means there's vey little room to 'gamble' but maybe it's time rethink this model, particularly when pc/console gaming will be facing increased competition from the mobile space.

    Leave a comment:


  • fuzz
    replied
    Originally posted by XorEaxEax View Post
    Hmmm define 'high-end' games, I'm unaware of any high-end, as in AAA or even AA style titles written in C#. On the other hand if we are to compare C# vs Java then the Java title Minecraft sweeps the floor with anything done in C# in terms of sales and overall impact I'm sure.
    Magicka, Schizoid, and Terraria (apparently) use XNA. Those are relatively successful. A wide arrange of Xbox Live Arcade uses XNA. I don't think anything "high-end" is done in anything other than C/C++.

    Minecraft is not a very good example for Java (and is definitely not high-end). It would probably run a lot better if it was written in a faster language. But as a Java example I'd say Runescape is much more polished and stable than Minecraft, and is considered pretty successful. Whether or not I like the game is a completely different story, but I give Jagex a lot of credit.

    Leave a comment:


  • XorEaxEax
    replied
    Originally posted by elanthis View Post
    Not true. Mono is faster than Python, Ruby, Perl, and the other bazillion interpreted FOSS languages that many non-trivial parts of the modern Linux desktop are all written in ...
    Well comparing a compiled language like Mono against interpreted languages is anything but a fair comparison, and those 'non-trivial' parts where interpreted languages are used are all areas where performance doesn't matter, particularly since whenever speed is needed these languages will call on native code.

    Originally posted by elanthis View Post
    C# is the only mainstream language aside from C/C++ that is actually capable of being used for high-end games, I might note. Java comes fairly close, but fails in a few minor areas.
    Hmmm define 'high-end' games, I'm unaware of any high-end, as in AAA or even AA style titles written in C#. On the other hand if we are to compare C# vs Java then the Java title Minecraft sweeps the floor with anything done in C# in terms of sales and overall impact I'm sure.

    What this proves however is that you do not need a super fast language to create a great game, as great games really aren't about pushing as many polygons as possible or having the greatest texture antialiasing, the realization of this is what the indie games sector is now reaping the benefits from. You can certainly create great games in Python, Ruby, Lua <insert your favourite language here> since they can all have a native code library and hardware accelerated graphics do the heavy lifting these days.

    If however you do need to get every last cycle out of the machine then you will turn to C/C++ and possibly assembly for particularly critical parts.

    Originally posted by elanthis View Post
    As in, Oracle actually does sue people over Java patents while Microsoft so far has not?
    Isn't it copyright on API's (insane!) at this stage? Meanwhile Microsoft is running around suing companies for using long filenames, sure as hell rather have nothing to do with anything originating from that company but each to his own.

    Originally posted by elanthis View Post
    This has been largely corrected in the most recent Mono releases, which have switched from the Boehm GC (popular in many languages) to a new, custom, high-performance GC.
    Interesting, I was surprised to see Go beating Mono from day one given that Go is such a new language with an admitted poor naive gc, perhaps Mono will stand up better in upcoming benchmarks with this new GC.

    I wish the Mono devs the best in their endeavours as a cross-platform game development solution, Miguel and his team certainly love C# and I wish upon everyone the chance of making a living out of working on things they love to do.

    Leave a comment:


  • Larian
    replied
    Originally posted by elanthis View Post
    Mono allows compatibility with a variety of Windows apps that otherwise we could not run, the same way that other cross-platform language runtimes do.
    Such as? I'm unfamiliar with any practical use of Mono in my daily computing life, but I never claimed to know everything. Can you give some examples?

    C# offers many of the advantages of Java and had a Free implementation long before Sun decided to release Java under the GPL.

    . . .

    Mono can be embedded as a scripting engine for applications. Used most famously, IMO, by Unity3D.
    Do you mean the same C# and Unity3D which (to my knowledge), don't work under Linux as of this writing?

    Leave a comment:


  • elanthis
    replied
    Originally posted by kraftman View Post
    It's not only because of patents, but mono is hell slow,
    Not true. Mono is faster than Python, Ruby, Perl, and the other bazillion interpreted FOSS languages that many non-trivial parts of the modern Linux desktop are all written in (especially on Fedora and Ubuntu, both of which have love-affairs with Python and its highly inefficient interpreter).

    C# is the only mainstream language aside from C/C++ that is actually capable of being used for high-end games, I might note. Java comes fairly close, but fails in a few minor areas. Actually, Mono is even more suitable for high-end games than official .NET is, thanks to technologies like Mono.simd.

    immature
    It's 8 years old. You use plenty more immature software than that, I'd wager.

    and resource consuming.
    Again, not true. Especially when compared to contemporary interpreted languages, which are the only viable alternatives to Mono in the FOSS world.

    The runtime can be more resource consuming than a C/C++ app, but then the runtime does so very much more than the C/C++ runtime libraries ever have or likely ever will do. Much of that is what makes C#/.NET such a fantastic environment for developing applications.

    Some people say it's lightyears behind java
    As in, Oracle actually does sue people over Java patents while Microsoft so far has not?

    in some things (like implementation of garbage collector),
    This has been largely corrected in the most recent Mono releases, which have switched from the Boehm GC (popular in many languages) to a new, custom, high-performance GC. Some benchmarks have shown it out-performing Microsoft's own GC, which has otherwise been considered the most efficient and advanced GC in any large-scale production language to date.

    There are also many mono fanboys and evangelist who behave like idiots and who say idiotic things like: "don't talk about mono if you didn't write a mono app" - Icaza. I don't have to write a single mono application to say it sucks.
    ... no. You pretty much just proved his point, while being ironic and hypocritical at the same time. You have absolutely no idea what you're talking about, you're just quoting and spreading misinformation you acquired from other clueless bigots, and you have zero grounds on which to base any of your falsehoods besides "I just know it, trust me, I'm like super smart and stuff, I went to school and everything."


    And of course, as usual, the Mono detractors never mention any of the points in favor of C#/.NET, which led it to be invented at Microsoft (NO, it was not some plan by the CEO; CEO's don't invent technology, especially at Microsoft), which led de Icaza to fall in love with it, and which has led so many contributors and so many application writers to use Mono since its inception.

    Mono/C# is a type-safe language with a rich runtime, making it suitable for building large and complex applications that Python and such have always utterly failed to be useful for.

    Mono allows compatibility with a variety of Windows apps that otherwise we could not run, the same way that other cross-platform language runtimes do.

    C# was designed from the ground up to be easy to provide tooling support for, resulting in exquisite IDEs that allow for a very rich and powerful set of code analysis, debugging, refactoring, and comprehension tools that are very difficult to provide in C/C++ and literally outright impossible to provide for any dynamic languages.

    C# offers many of the advantages of Java and had a Free implementation long before Sun decided to release Java under the GPL.

    .NET offers a rich runtime for multiple languages allowing mixing of those languages, which no other Open Source projects provide besides Java (but Java's implementation is not nearly as flexible or performance) or Parrot (which is almost as old as Mono but which has yet to actually produce anything of any actual value or any working code that anybody finds useful for real-world development).

    C# has innovated several features, offering certain ideas and concepts that are not available in any other statically-typed compiled C-like language anywhere (aside from the languages that have since cloned C#'s features, but you haven't heard of many of them because they're all also .NET languages, but not popular ones).

    Mono can be embedded as a scripting engine for applications. Used most famously, IMO, by Unity3D.

    Mono offers AOT compilation and several other innovations over upstream .NET, making it not only a work-like but in some cases a serious improvement over Microsoft's implementation. It's one of the few FOSS projects that actually takes an upstream idea and improves it, rather than just copying it endlessly.

    Leave a comment:

Working...
X