Announcement
Collapse
No announcement yet.
How is Mono worse than other projects that implement Microsoft technologies?
Collapse
X
-
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.
-
Originally posted by kraftman View PostJust 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.
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:
-
Originally posted by XorEaxEax View PostHmmm 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.
Leave a comment:
-
Originally posted by fuzz View PostMinecraft is not a very good example for Java (and is definitely not high-end).
Originally posted by fuzz View PostIt would probably run a lot better if it was written in a faster language.
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:
-
Originally posted by XorEaxEax View PostHmmm 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.
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:
-
Originally posted by elanthis View PostNot 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 ...
Originally posted by elanthis View PostC# 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.
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 PostAs in, Oracle actually does sue people over Java patents while Microsoft so far has not?
Originally posted by elanthis View PostThis 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.
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:
-
Originally posted by elanthis View PostMono 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# 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.
Leave a comment:
-
Originally posted by kraftman View PostIt's not only because of patents, but mono is hell slow,
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
and resource consuming.
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
in some things (like implementation of garbage collector),
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.
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:
Leave a comment: