Announcement

Collapse
No announcement yet.

Why Mono Is Desirable For Linux

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

  • Originally posted by narciso View Post
    The report was in May and there's no fix yet, so if games use the latest version of mono they'll suffer from this performance issues.
    I think you seem to understand that is not a Mono issue, but a MonoGame issue. Are different things, right? Also, it appears if you read the bug report, that there is a resize issue that happen all time because of a change in the MonoGame framework (not in Mono!)
    Thanks goodness that the bug report gave a profile file, so we also can check how much time is asked for various operations. I tried with my best understanding to see what is slow on this bug:
    Code:
    3476  milliseconds (wrapper managed-to-native) OpenTK.Platform.X11.Functions:XGetWindowProperty (intptr,intptr,intptr,intptr,intptr,bool,intptr,intptr&,int&,intptr&,intptr&,intptr&)
    4050   milliseconds (wrapper managed-to-native) System.Threading.Thread:Sleep_internal (int)
    238     milliseconds OpenTK.Graphics.GraphicsContext:get_CurrentContext ()
    270     milliseconds OpenTK.Graphics.GraphicsContext:<GetCurrentContext>m__6 ()
    107     milliseconds OpenTK.Graphics.GraphicsContext:get_IsCurrent ()
    204     milliseconds OpenTK.Platform.X11.X11GLContext:get_IsCurrent ()
    298     milliseconds OpenTK.Platform.X11.XLock:.ctor (intptr)
    232     milliseconds: OpenTK.Platform.X11.XLock:Dispose ()
    So excluding the Sleep call (which doesn't use CPU), that is used here and there, for 4 seconds, most of calls are in OpenGL/X11 stack.
    I understand, is Mono's fault anyway, but is just for no reason!

    Comment


    • I think linux ports, using mono or other libraries should be polished, they should run equal or better than windows counterparts. That would give linux a better reputation as a gaming platform, and more dev's would invest time and money porting games.

      Comment


      • Originally posted by narciso View Post
        I think linux ports, using mono or other libraries should be polished, they should run equal or better than windows counterparts. That would give linux a better reputation as a gaming platform, and more dev's would invest time and money porting games.
        Yes, this seems eventually a more balanced post, but what does not make justice is that Mono should not be in any wording in the first phrase. It will make give the impression that Mono is somewhat related with OpenGL drivers, right? Or if it would be told, it had to be along other things which are known to be slower: Doom 3 has a scripting engine that is way slower than Mono, GCC has sometimes regressions, video drivers are almost always an issue with Linux. My laptop has an AMD video card, and yes, it is detected just as occupying an PCI express port.
        Also, as you appear to be more on Qt's side, as all libraries, have their own issues, so you should extend wording to put a balance. So let's see what some people think at Nokia about abstraction penalty.
        At the end to run equal or better than Windows counterpart is in many way the interest of the community to make it happen: if you shun Mono as your platform and you don't at least give bug reports, the Mono developers will not know about them, so they cannot fix them. Later, when supposedly the Bastion 2 game appears, and video drivers are fixed, Bastion 2 will be hit on a bug that maybe would appear earlier, but never appeared because lack of testing or interest. Who will be at fault? Bastion developers because they don't have resources to fix all bugs they encounter in production? Linux users that did not spend time before on fixing at least some of the issues by reporting bugs and profile data?
        Last edited by ciplogic; 19 September 2012, 11:30 AM.

        Comment


        • Originally posted by narciso View Post
          I think linux ports, using mono or other libraries should be polished, they should run equal or better than windows counterparts. That would give linux a better reputation as a gaming platform, and more dev's would invest time and money porting games.
          100% agreed. But 99% of the time, the porting or performance issues are in the low quality of graphics drivers on Linux, nothing else.

          Comment


          • Originally posted by directhex View Post
            I'm not the one who claimed they "didn't work properly". That was you. Where's your evidence?
            Where's yours that they work properly? If you have ever used Debian for any length of time than you know they have a history of packages that pass their automated tests but don't work properly because no one bothers using said package.

            Comment


            • Originally posted by yogi_berra View Post
              Where's yours that they work properly? If you have ever used Debian for any length of time than you know they have a history of packages that pass their automated tests but don't work properly because no one bothers using said package.
              He doesn't have to supply evidence. He didn't make the original claim. You did. The burden of proof is on you.

              Comment


              • Originally posted by yogi_berra View Post
                Where's yours that they work properly? If you have ever used Debian for any length of time than you know they have a history of packages that pass their automated tests but don't work properly because no one bothers using said package.
                well, there's the part where we run the runtime test suite on package compilation, so the build logs include those results

                But as has been pointed out, the burden of proof is on the one making wild claims

                Comment


                • .Net

                  Originally posted by kazetsukai View Post
                  Enough claims. Facts:
                  • C++ / Qt work, NOW, on all platforms
                  • C# / Mono does not fully work, has caveats and bugs
                  • C++ / Qt are both very mature technologies and are proven for general purpose application development
                  • C# / Mono is not
                  • C++ / Qt are very resource friendly
                  • C# / Mono is not
                  • C++ has had massive mindshare and support for well over 20 years now
                  • C# doesn't have even close to the level of support C++ does, to this day.


                  Therefore:
                  There is no legitimate reason, ever, to choose Mono/C# over C++ and Qt. As another poster said, it is just laziness and incompetence.
                  Look, I love Linux and everything but seriously? Have you even Read a manual on WCF and LinQ checked out Asp.net or read the speck for GDI+ and DirectX in C#. .Net is like the Idea of Java but fast and sexy. I agree that C++ is a great language but you can do sooooo much more with C#. Open your mind. You can create extention methods for already created classes, even if thy are in DLL's then access then with the dot operator obja.Dostuff() where obja is an instance of a class in an assembly. I mean seriously I could write a book on all the things you can do in C# that you cannot in unmanaged languages. and maybe fill half a hand full of things that I can only do in a low level language but not in C#. Dude GTK is just that a graphics toolkit originally created for Gimp. C# is SOOOOOOO much more. I can dynamically write a service contract that works over tcpip/http/inproc and services clients without having to worry about security XML or memory management. In many cases .Net out-performs traditional C++ code for instance C# generics beat C++ Templates any day of the week because the code is not just expanded with the new type. Only one instance exists in memory in C# whereas C++ has a separate instance per instantiation. C# is not like Java, it gives you all the low level access if you want it, the power is there, it works with the native OS instead of trying to define it's own windowing system based on an object oriented graphics API like Java did, and why Java was so slow. I can write managed code in a SQ server CLR stored procedure, using a syntax I know instead of having to learn another stored procedure language. I can insert, update, and select from any data source using the same syntax (LinQ)

                  for instance
                  var foo = from p in products
                  where p.Category.ToString() == "language"
                  select { p.name, p.id, p.catagoryID, p.countryOfOrigin }

                  I can do this because the categoryID in products is a foreign key so it auto builds that Category object for me and lets me do a comparison. The same syntax would work if it was an Array() of product objects etc. I can build SOA applications (Service Oriented Applications) where the business logic is hidden behind service contracts that accepr and return defined data, then use multiple endpoints, named pipes or shared memory for local application and tcpip or http for access via the web. The same service contract. I can use differnce contracts from diferent companies to built a franken service oriented app/web app that delivers more than I alone could have build in, for instance I could use service contracts from google maps or whatever. C# and .Net is a Monster. I can enumerate the methods in an assembly/dll and their parameters/return types. As well as load unload them dynamically. I can even create custom types on the fly, and intgrate this ability into an existing pattern like factory design pattern. There is just so much. We're talking a new way of doing things not just the best X86 optimized code, we're talking mulch-threaded apps, which C++ templates does not take advantage of at all BTW and C# generics does. You are right, Mono is not there yet, .net is. .Net also does not have a whole bunch of dependancies like GTK does, it needs .net that's it. MS has invested the whole cow on this one I'm gonna bet on .net, Learn about it, you might just get hooked as well.

                  Comment


                  • Just one recent example of how Mono benefits Linux.

                    Project Eternity, the new RPG by Obsidian (makers of Fallout: New Vegas, Planescape:Torment and other great RPG games) was aiming to support Linux only after hitting 2.2 million. After selecting the Mono powered Unity platform for their game they have found that supporting Linux will be so easy that they are committing to doing it here and now. This is instead of Linux users having to bet on twice the amount asked for originally being pledged, they get support now (the 2.2 million goal is as of this writing still +400.000$ away). In addition if the 2.2 million goal is reached instead of Linux support Obsidian have now pledged that something new and amazing will be added instead (to be revealed in their next update).

                    Thanks to Mono, Project Eternity will now be big, better and Linux supported.



                    For a lot of these Kickstarter gaming projects Mac and Linux support are popular requests and often ones that will only be fulfilled if the amount of money pledged is significantly higher than what is asked for. Thanks to Mono and Unity offering excellent cross platform development and deployment this is likely to improve significantly as it speeds up such development goals and lets developers commit to them without having huge costs in experience, development time or support effort. So as Linux gamers, you get more games and any additional money is spent not making code cross platform capable but to make the actual game experience better for everyone.

                    So there you go Linux users, more quality games for your desktop. Thanks to Mono.. you are welcome.

                    Comment


                    • Originally posted by maxpfc View Post
                      ...
                      I agree that C++ is a great language but you can do sooooo much more with C#.
                      ...
                      What language was the .NET runtime, and the C-octothorpe compiler written in? I'll bet a beer the language is C++ or C. When they are written in C-octothorpe or Visual Basic then you could make such a claim without being laughed at.

                      Comment

                      Working...
                      X