Announcement

Collapse
No announcement yet.

Miguel de Icaza Calls For More Mono, C# Games

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

  • #51
    I like C#, Java, and Visual Basic... you people are nuts. If you don't like that they aren't as open source as you like, then just say so... but all three have FOSS implementations, and all three are easy and powerful languages.

    Since the community hasn't embraced D, you're all stuck with C and C++, which really aren't high level enough for simple game programming. I haven't tried Vala, but at least that seems interesting. I hope it takes off more.

    Comment


    • #52
      Using Microsoft technology is giving more power to Microsoft, and the world doesn't need that. They /really/ are evil... Just read the news (or the olds); they will do anything to crush the competition and get more money. So IMO it would be a mistake to start any project that uses C#.

      C with SDL/OpenGL is the most cross-platform thing you'll find (and I don't care about iOS or similar crap). For something more modern/safe and not too slow, there's D...

      Comment


      • #53
        Mono is more or less now relegated to making fart apps for iOS.

        Not all fart apps get approved...some apps are apparently too farty for Apple and get poo pooed by the six week arbitrary app rejection process while the rest are apparently not offensive at all.

        Comment


        • #54
          Originally posted by blackiwid View Post
          0. you did not mean me I think but I answer anyway ^^
          1. I did mention the framework thing, I hate exactly that, love modular bindings from the best projects more than some 2nd best solutions tied together to one big thing.
          And, quite simply, you're "wrong." The "best projects" don't actually offer better than the CLR ecosystem. Those many bindings are inconsistent, with different naming conventions, API conventions, error conventions, etc. Most of them are buggy or incomplete. Most of them are poorly documented. Few of them are at all any easier to use or understand than the cohesive CLR standard libraries. Things like WPF trounce the living shit out of GTK+ and have various advantages over Qt. XNA has absolutely no equal outside the CLR.

          This is something the Linux ecosystem has never figured out, aside from maybe the Qt folks (who aren't _really_ Linux ecosystem at all, they're their own platform): a ton of small little independently developed libraries are just a pain in the ass. Developers want a ready to go consistent platform; not a build it yourself hodgepodge of crap.

          4. I only know from civilisation IV that it is made in python (with c++ engine) so it works well but I dont have any counts how much games use what scripting languge on top of their c/c++ base. But if you have the choice between lua and python I think the way to go is clear.
          Individual games don't matter. Some games use home-brewed scripting languages. Most games have crap scripting. The larger game engines are where all the action is, and that action has players like C#/VB/JS (Unity) or UnrealScript (... Unreal).

          Yes, you can build a game in Python. You can also build a game in assembler. Both have been done commercially. Doesn't make either a smart(er) thing to do. Same goes for using C#.

          What matters is what people ARE developing games with, not what they WERE developing games with. Inthis market, C# is increasingly popular, and the little popularity Python ever had is dying out.

          5. I think Iphone has less users than android so I think its not important whats going on there.
          The iPhone _app sales_ are significantly larger than the Android ones. As a game developer even thinking about mobile (which is most of them today), I target iOS first and Android second. Because I'm going to make a lot more money off of the iOS release.

          Android has a larger marketshare of phones, but most of those are cheap little crappy devices sold to prepaid users who have no interest in apps or buying apps. Android is slowly killing the feature phone; it has made no dent whatsoever in iOS's popularity.

          That's based on actual games sales figures.

          6. so is python but ok you cant programm for linux windows and a handy one game but I want to see the pc game that fits on your handyscreen and is good enough to sell copies for pcs.
          Which doesn't get you that far if you want to make a lot of money. Which most of us do, because programmers get paid a lot of cash, artists are needed in droves, etc. Python gives you a few platforms. C# gives you many. Many platforms means more money.

          7. so and you even saw that some companys used unix-patents to fight against linuxcompanys or companys that used linux, so why do you think ms will not do much more against a maybe successfull clone of their technologie, they have more money for more and better lawyers.
          Because that goes against what they're trying to do with C#.

          Clearly though your conspiracy theory nonsense based on the fear mongering of tons of Linux bigots is right on track. Ballmer has a big red button in his office labeled "Sue All of Linux For Using C#" he's just waiting to hit, and all the C# dev groups report directly to the business lead asking what killer features need to be added to sway the would-be consumer OS over to his cunning trap. Which all of you have seen through, because you're so much smarter than he his, of course.

          8. I am not shure if he makes a conspirancy, but it would be possible that he got money from ms to do that, and people change and people do much stuff to get much money.
          He did not. He's just not a bigoted clown like most of you guys and has the capability to evaluate a technology based on its technological merits.

          C# is a good language built on top of a great runtime with a superb standard library and supported by literally best-in-the-world developer tools. But of course not a single person here screaming nonsense FUD about C# has actually ever _used_ any of that in a serious project, so I wouldn't expect you to know any of that. Most of you have never even used C++ or Python in a significant project, I'd wager.

          9. In our patent-system you dont can know what patents are out and who sues you and maybe also microsoft for patent-issues, maybe oracle sues ms and companys that use mono because some java-patents are "violated" by it or they mean it does.
          Logical assertion: any patent MS or Oracle has on C#/Java is going to fuck over just about any and every managed language there is. APIs cannot be copyrighted, much less patented. Language syntax also cannot be patented. Only low-level implementation details can be patented. That means the core techniques used to implement a statically-typed register-based JITing language VM.

          Worst case for Mono is that MS someday asserts that the implementation of some bit of the VM is infringing, and so they change the implementation and carry on. If there turns out to be a patent on some fundamental implementation technique that C#/CLR cannot exist without, every language is equally fucked, and so there's little point in worrying about it either way.

          10. give me a good reason why mono is better than python, python is easier to programm and its fast enough for most of the stuff and for what python is not fast enough mono is mostly not, too.
          Python sucks for large app development. All dynamic languages do. That's why C++, C#, and Java are still kings outside of the little toy mini-app and scripting niches of software development, despite C# being significantly younger than Python.

          How fast a language is, is mainly a question of the implementation
          No it isn't. Implementation can only take you so far. For all the sensational articles about JavaScript, for instance (which in the popular implementations is faster than any other dynamic language out there, aside from maybe LuaJIT) is still not able to generate as optimized code as C#.

          Some of those implementations can pull off impressive micro-benchmarks, but non-micro-benchmarks are pretty clear. C++ is king, C# has some nice tricks up its sleeve, and the dynamic languages have to rely on tracing and can only hope to win on small simplistic inner loops (which are better off on the GPU anyway, so not much of a win there).

          so that is not really a argument, but python has nicer code I had the eager to shoot myself in the head as I read about something like ArrayList, a list a dict and maybe seldom a tuple is good enough for most stuff and if you really need something else
          You're clearly not a game programmer. The number of generic off-the-shelf standard library data structures I can use is not that high. The ability to use and implement a wide variety of highly optimized data structures is key to getting consistent, non-laggy frameratese out of complex games. Python (and the other dynamic languages) make that impossible.

          When I implement a data structure, I have to care about details that Python programmers don't even know about. I actually care what assembly is being generated, what the exact in-memory layout of my objects are, when the memory management overhead (and where that overhead is at!) is, and so on. Python programmers just care about writing the least number of lines of code.

          For general app stuff, Python is better than C++. C# is better than Python, because it's about as easy (btw, IronPython and Boo are things that exist, if the C# syntax is not your cup of tea) and has more features and more "stuff". Python wins when you literally don't care about the structure, speed, or maintainability of yoru code. Which is basically scripts, mini-projects, and the crap the FOSS community tends to hack together and call production code (e.g., all of the crash-prone Python-based core apps in Fedora; I see more uncaught Python exception crashes on Linux than I do segfaults!).

          Maybe a stupid Point but I dont understand why a language has to be so ugly and to make easy things to get help to such stuff that is way to complex if you just need a list.
          Lists are dead easy in C# and very well documented. You're making a nonsense point.

          <- you have to not only double declare what you want you have to even declare what you wanna put into the list so you cant mix it. the same in python without that limitatation:
          That is part of the problem with Python. Dynamic typing is not a feature outside of scripting. Generics for containers -- the ability to define a container like an Array and then constraint the type of values in that container -- is a very complicated feature to implement, and it's implemented specifically because it's a huge win.

          That said, C# has untyped arrays if you want to go shoot yourself in the foot with them. They're not used that much, though, because using them usually means you're doing something stupid.

          But on the end linux-devs have no big wish in making things totaly interoperality
          That much is clear. They don't want to make things easy or convenient, either.

          so even javascript is more interessting (gnome-shell) today because thats what most developers are able to programm in because web-developing is a bigger market than one language/framework for application development can be.
          The Web IS one language/framework.

          Also, "what most developers can program in" doesn't mean much. Most developers -- like most people in general -- are morons. The Web has given us a huge increase in crappy apps, but has given us very, very, VERY few amazing apps. You'll be hard pressed to name any "applications" (rather than just HTML services) that aren't made by Google, I'd wager.

          And also Microsoft dont whats crossplattform apps (that run under linux)
          Microsoft's people really, really, REALLY just don't give a shit if apps are crossplatform. It has absolutely no bearing on their profits. MS Office could be made available for Linux, and the end result would be that they're spend a lot of time and money porting it just to have barely any increase in Office sales and no noticeable drop in Windows sales. Linux is not a serious contender in the desktop space. Microsoft was worried maybe for a brief while when Linux seemed to be shooting for the stars, but ever since most perceptive folks realized that the "Year of the Linux Desktop" is 15 years later and not ever going to arrive, Linux has stopped being considered any kind of a threat.

          Linux on the server is more relevant, but Microsoft figured out how to compete there. It's doing it the same way Red Hat competes there: concentrate on the users who need to pay big bucks because they need support or features that you will not find on any FOSS server platform. Web servers and home file servers have been won by Linux, and everybody knows it. Microsoft has absolutely zero interest in competing in a space where there is literally zero chance of ever turning a profit. Just like Red Hat has no problem with CentOS and other RH clones, Microsoft has no problem with CentOS and other Linux distros.

          The only place Microsoft is still "at war" with Linux is in the mobile/embedded arena, and really they're only at war with Android. Which is not "Linux" as we know it, because it's literally just the Linux kernel and then a bunch of Android-specific code that has nothing to do with the wider GNU ecosystem we think of as "Linux." There's a patent shitstorm going on there between everyone right now. C# patents are not going to be at stake there, though, as (again) Microsoft has nothing to win and a lot to lose by harming C#. Remember, at best Microsoft wins the mobile wars and other platforms that can use C# are irrelevant; at worst, Microsoft loses the mobile wars, but if C# is popular then they at least can keep selling developer tools for those platforms.

          Comment


          • #55
            Originally posted by elanthis View Post
            and really they're only at war with Android. Which is not "Linux" as we know it, because it's literally just the Linux kernel and then a bunch of Android-specific code that has nothing to do with the wider GNU ecosystem we think of as "Linux." There's a patent shitstorm going on there between everyone right now.
            No. They sued TomTom which used plain Linux. The patents they're using to extort money from honest companies that owe nothing to them, are a mix of trivial patents (cf. B&N ones) and patents related to obsolete standards that companies have to support because of Microsoft's abusive monopoly on the desktop (cf. the TomTom "long file names" one). They have nothing to do with Linux per se.

            C# patents are not going to be at stake there, though, as (again) Microsoft has nothing to win and a lot to lose by harming C#.
            Indeed, they won't sue now. They didn't sue people for using FAT for twenty years+. Then they sued TomTom for using FAT when FAT became an entrenched standard that no one could escape from, anymore. In particular, they began suing after they failed to offer a competitive platform against Linux in the embedded space (they were happy as long as TomTom was using Windows CE for their devices).

            Comment


            • #56
              Originally posted by peppepz View Post
              No. They sued TomTom which used plain Linux. The patents they're using to extort money from honest companies that owe nothing to them, are a mix of trivial patents (cf. B&N ones) and patents related to obsolete standards that companies have to support because of Microsoft's abusive monopoly on the desktop (cf. the TomTom "long file names" one). They have nothing to do with Linux per se.

              Indeed, they won't sue now. They didn't sue people for using FAT for twenty years+. Then they sued TomTom for using FAT when FAT became an entrenched standard that no one could escape from, anymore. In particular, they began suing after they failed to offer a competitive platform against Linux in the embedded space (they were happy as long as TomTom was using Windows CE for their devices).
              So the best solution is to not use any technology that is in risk of patents. For this matter is better to use fonts without antialiasing, to format all memory cards with EXT2, to not have conflicts with a patent attack 10 years from now, and of course to not use browsers, as they have support of Geolocation and maybe once a company like TomTom may attack our browser implementor for using a patented technology to locate where we are related with the router. Ahh, and I forgot about WiFi that our browser may use, it may be patented too, the same about the device.
              I'm a bit out of my mind when I am just hearing that patents and Mono. Not because they may not be there, but because if Paint.Net (or Pinta) is great software, people should not think about patents, copyright and such. Or if we think in just those terms, is better for the people thinking around it to improve the applications they really care, contributing fixes or patches.
              An application that is in patent trouble as technology covered may be LibreOffice, and no one (that comments here about how evil are Mono's patents) thinks how to reimplement Java bits in C++ or Python to avoid a patent attack, or to make a better opensource UI that being original, and to make sure that it will never be attacked by other Office suite makers. In this way we will all gain something and we will enjoy for what we have. If not, and just complaining, the Mono users will enjoy Sims 3 or Second Life running fast, and they will not care if it runs Mono or not, maybe EA or SL Corporation when they are attacked by MS by a patent. I will enjoy Gimp until Adobe will attack it, and so on.
              I think that the solution is to improve the OSS software to have that many functionality, that when it will be attacked by patents, even disabling 20% of functionality that may be infriging, we will have still a very powerful application.

              Comment


              • #57
                Originally posted by eagleoneraptor View Post
                What about Vala for games?
                Vala as language is great for games, yet the tooling is at least a generation away (like 5-10 years behind, I am thinking that you can be as productive in Visual C++ 6 as in Vala), because C# have a lot of things out-of-the box like written libraries, not so many bugs in their code generation (look in their bugzilla).
                Vala have other burdens in itself, for example the objects are GObjects which are a bit heavy-weights (even "heavier" than C# objects, because the GC of Mono right now is generational, removing short lived objects is in fact faster than updating references of the reference counter that Vala does). Also, even may not be as bad, the debugger of Vala is also bad (I know there is a lot of work for making things better).
                I'm a C# developer which I used Vala and I tried to do some projects with it (with success), but Vala does not scale with similar tools that you may have in the .Net world (I'm used with Resharper, a static analyzer on the fly that will hint to me typical mistakes I can make in my code, but there are a lot of other tooling like JustCode (a very fast refactoring toolset), bug detecting helpers, profilers (the free SharpDevelop have a great performance profiler, Mono have a great memory tracing profiler), the capability to add to a project a reference to assembly and Code completion works already for that piece of code, will make you think that Vala is a bit away.
                At the end, depends on the game, if I would start a game in C# and I supposedly want an extra performance, I think it would make sense to use Vala instead of C# for the final application (as GCC may generate faster code) on a desktop profile, but if my application needs to be present on more platforms (like, but not limited to: Windows, Mac OS X, iPhone and Android), Mono is a more natural target than Vala.
                What if startup performance (that JIT may be blamed for) is the stopping factor for your game (I don't know so many games that would be affected on this, but this is just to check a point. Most likely I would go to do AOT for all assemblies (like at the end of this page: http://www.mono-project.com/AOT ).
                At the end, is obviously that I'm biased for C#, but my bias is mostly because I'm thinking C# with tooling (some commercial), which Vala does not have (or to an enough extend to matter). If JetBrains would create a Vala IDE, it would be something, but we will have to wait for some time till this dream would happen.

                Comment


                • #58
                  Originally posted by JeanPaul145 View Post
                  The short answer is probably yes, but let me clarify:
                  First and foremost, it is important to realise that there is not one Lisp-language like there is Java, C++ or C. There are many dialects, and Clojure and Common Lisp are 2 distinct dialects. This is relevant because code written in 1 dialect will not usually work without extra effort in another, although porting will probably be a lot easier than going from C++ to C#, for example, since most dialects share a core of only a handful of so-called special operators, on top of which the rest of the language is built. So porting comes down to writing the functions and macros used in terms of the available operators in the target platform, instead of "syntax conversion". In fact, Lisp dialects have very little syntax, and this is a Good Thingtm IMO.

                  Now on to the actual answer:
                  On Android, there is certainly a Lisp available, it's called Clojure. The "problem" with Clojure is that when I first heard of it, it was slow on Android due to the fact that Dalvik VM is register-based instead of stack-based, which made features oft-used in Lisp like closures relatively expensive on Android, though not on the stack-based JRE. However, since then I've heard (but not verified in person) that Clojure has been updated to work well with register-based VM's, thereby making it interesting to use in Android. In addition, higher-end smartphones have gotten a *lot* faster since then, so the combination of the 2 may actually make Clojure on Android viable.
                  However, since Clojure is firmly rooted in the JRE, it probably won't work on iOS without a JRE running, including the extra overhead. In Android you don't get this overhead because AFAIK, as far as Clojure is concerned, Dalvik *is* its JRE.
                  And IIRC, MS has basically said that native code (and therefore using a JVM) is a big no-no on WP7, though they may have plans to change that by now.
                  So Clojure is probably not an option unless I'm wrong on at least the Apple stance.

                  Then there is Common Lisp. Common Lisp has many implementations based on common ANSI standard, so portably written code will work on any ANSI-compliant implementation. Now I haven't seen all of 'em by a long shot (I mostly use the very high-quality SBCL, which compiles directly to native binary code, and therefore is very fast in most cases) but it just might be the case that ECL will work for you, because it first compiles to C code. So what you could do (for Android and assuming Apple allows pure C code, which doesn't seem like a stretch looking at Objective C) is build your game with Common Lisp, use ECL to translate that to C as part of the compilation procedure, and then use the platform's means to get bindings to that C code.
                  This won't help you in WP7 though, but then again, short of writing C# code I think nothing will until MS allows unmanaged C/C++ code.

                  Hopefully my answer is helpful to you.
                  It is, thanks.

                  I am not keen on the idea of porting between variants of the same language - the ideal would be a compiler that could generate native code for each platform. Barring that, an interpreter that's embeddable into C would be the next best thing (as it would support everything bar WP7), but only if it provides a sane way to interop with C (i.e. the core code would be written in C and the script would call into that). I'll take a closer look for my next project.

                  Sadly, it seems that the only way to support all current platforms is to use C#. I say sadly, not because it is C# (which is a great language), but because the relevant tools are a bit overpriced and because limitations in iOS and WP prohibit the use of the most interesting facilities of the CLR (e.g. LCG, complex generics, dynamic languages like IronPython or IronRuby and powerful languages like F#).

                  Now, if someone could make F# or IronPython run on mobile phones - that would be awesome!

                  Comment


                  • #59
                    I against of it. Don't like C# / Mono...
                    I don't install that piece of sh*t to my PC.
                    Instead using python give better results for games.

                    Comment


                    • #60
                      Originally posted by ciplogic View Post
                      So the best solution is to not use any technology that is in risk of patents.
                      When did I say that? The best solution is to abolish software patents of course, but unfortunately that's not an easy goal, and it has to be achieved in each country of the planet. In the meantime, there are companies that, although they're competing in the same market as Microsoft, and by the same rules, choose to play fair (example: http://en.wikipedia.org/wiki/Open_Invention_Network) and there are others that instead don't care about having a good image, social responsibility etc. and choose the dirty way to get money. We can't ignore that.

                      It's easy to say "I don't care about patents" if you're not the one who is going to get sued.

                      That said, yes, I agree with you that free software developers should not refrain from implementing patented features, as it's a vendor/distributor's job to avoid violating the specific laws of each country (remember those crazy times when you couldn't export cryptographic software from the USA?). But jumping into the wolf's mouth for the heck of it, while proclaiming how the wolf has changed and won't eat lambs any more, is another thing. Imho.

                      Comment

                      Working...
                      X