Announcement

Collapse
No announcement yet.

I want Feedback from Epic about Mono for Unreal Engine

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

    #31
    Originally posted by KVogler View Post
    Well, I have quite a background as a Delphi programmer and still C++ is somewhat "weird" to me.
    Take for example the string handling. Im used to have a string as a basic data type. Now I started reading through the C++ primer, but still cant figure out how to concatenate strings mixed with integers (and storing it in a string variable. im not talking about cout << "text" << x << "more text"; here)...
    So C++ is perhaps not the most intuitive language.
    One reason why so many people like C# is the fact that it borrowed some nice stuff from Pascal, syntax-wise and also conceptionally.
    Today I wouldnt use the original Turbo Pascal anymore either, but Object Pascal is equally strong as C++.
    So introducing C# would offer a compromise between the two worlds.


    Can you then recommend good reading material that explains the specific parts that Unreal introduces to C++?
    String handling in C++ proper is awful, but in Unreal there's FString which operates a lot like C# strings. std::string is also pretty easy to use, but not as much as it could be.

    Here's a intro to c++ in Unreal: https://wiki.unrealengine.com/Entry_...to_UE4_C%2B%2B
    Last edited by Jared Therriault; 12-25-2014, 12:19 PM. Reason: Wrong URL!
    Procedural, modular, on-the-fly animation - iTween For UE4
    - Actors - Components - UMG - Ease In - Ease Out - Path-constrained Animation - $0

    Runtime Datatable
    -All the fun of DataTables dynamically loaded from text or Google Sheets while your game is running!

    Comment


      #32
      String handling in C++ proper is awful, but in Unreal there's FString which operates a lot like C# strings. std::string is also pretty easy to use, but not as much as it could be.

      Here's a intro to c++ in Unreal: https://wiki.unrealengine.com/Entry_...#If_Not_for_::
      Thanks I hope reading through this will lessen the culture shock..

      Comment


        #33
        I don't know why Epic needs to comment over this, they didn't made source code just for people to watch it, they didn't make plug-in system only for there own use, they did that so people can extend engine as they like without need of bothering them. If people want C#, people can implement C# if they wish... and this is what happening, so i don't see point of discussing this over and over again.

        Also fact that Unity uses C# does not mean every engine in the world is obligated to implement it. Unity is also written in C++, it could also let you use C++ to extend and code game, not because to make your life harder, but because it's simply easier this way, but because Unity developers don't want you to even see Unity source code they actually needed something like C# to let you make more serious development on that engine yet keep the source code in there hands, i bet you would not see C# in Unity if not that fact... why they would struggle with licencing issues otherwise?
        =========
        My Tutorials:
        Basic knowledge about Classes and UObject environment and stuff like that

        Comment


          #34
          Personally I believe that once Epic overhauls C++ documentation in more detail and code examples, the initial fear of learning C++ that some people have right now would be alleviated.

          Eventually all roads will lead back to C++ because that's what the engine is written in. The fact that we have access to the code warrants one has knowledge of C++ for advanced features.

          Unless everyone plans to remain a beginner/intermediate UE4 user?
          Linux Support page (Wiki): https://wiki.unrealengine.com/Linux_Support
          Linux Demos page (Wiki): https://wiki.unrealengine.com/Linux_Demos
          My Unreal Engine 4 Linux repo: https://github.com/3dluvr/UnrealEngine/

          Comment


            #35
            I was hoping for some kind of Unity like solution, but it appears that Xamarin is just re-packaging their mono license with this. For one man team licensing at $83/m for visual studio support is a bit too much.

            I develop game logic/server with F#, which rocks, but I am fine without it for now. Maybe .NET open sourcing move will give way to free versions of .NET, until then I'll use C++.

            Comment


              #36
              Originally posted by mxnko View Post
              I was hoping for some kind of Unity like solution, but it appears that Xamarin is just re-packaging their mono license with this. For one man team licensing at $83/m for visual studio support is a bit too much.

              I develop game logic/server with F#, which rocks, but I am fine without it for now. Maybe .NET open sourcing move will give way to free versions of .NET, until then I'll use C++.
              This exactly. I'd love to use .NET until I hit a hotspot that needed to be in C++, but right now that's not feasible. Here's hoping Microsoft's moves lead toward a free cross platform .NET.

              Comment


                #37
                Everyone keeps talking about open sourced C# from M$, but as far as I recall they only opened up portions of the platform (.NET) so it's not really that *everything* is open for free use.
                Linux Support page (Wiki): https://wiki.unrealengine.com/Linux_Support
                Linux Demos page (Wiki): https://wiki.unrealengine.com/Linux_Demos
                My Unreal Engine 4 Linux repo: https://github.com/3dluvr/UnrealEngine/

                Comment


                  #38
                  Originally posted by Veovis Muad'dib View Post
                  This exactly. I'd love to use .NET until I hit a hotspot that needed to be in C++, but right now that's not feasible. Here's hoping Microsoft's moves lead toward a free cross platform .NET.
                  Hey, forgot to mention, Visual Assist X (plugin for Visual Studio) makes C++ almost as smooth as C# when it comes to intellisense and auto completion. I've used it with Cocos2d, it completely changes the game for the better.

                  Comment


                    #39
                    Originally posted by amigo View Post
                    Everyone keeps talking about open sourced C# from M$, but as far as I recall they only opened up portions of the platform (.NET) so it's not really that *everything* is open for free use.
                    They open sourced everything but WPF and some other layers we can live without. Core framework is OSS. Their bet is now to suck everyone to host their apps on azure and use their overpriced cloud services.

                    http://blogs.msdn.com/b/dotnet/archi...en-source.aspx

                    Comment


                      #40
                      I may repeat / or lost the plot.

                      EPIC / Unreal - who ever you are angry about;

                      There is a choice, if I ran a company and a great suggestion came up, but it would not work, then I would turn it down.

                      This is made the way it is, and it works. Good for me.

                      Narg



                      .
                      http://www.seven-mountains.eu/

                      Comment


                        #41
                        Originally posted by Tim Sweeney View Post
                        Text
                        Wholefully agree, I'm happy that this is the consensus on the matter at Epic. My concern was the divide that bringing another language to the foyer would bring.

                        The divide between Blueprint and C++ Programmers is actually incredibly narrow considering how 'different' (for the user at least) the languages are, but the last thing I want to see is developers programming in different languages and making the barrier to programming even higher. If the engine is written in C++, it stands to reason that you'll get the most power and proficiency out of is by using it's native language. C# can never be more than an interface between itself and the engines C++.

                        Comment


                          #42
                          As an novice programmer / indie, I've gotta say that C++ is still the biggest barrier keeping me from working in UE4. I was able to work in Unrealscript somewhat, I got up to speed with C# in Unity really quickly, yet after a month attempting to grasp UE4 C++ I still had next to no idea how to code anything.

                          Obviously folks in this community already experienced in C++ are happy and want Epic to focus on other things, but the point is to draw in more users. For all the hooplah over how much better an engine and deal UE4 is, nearly a year later Unity is still far and away the standard amongst indies and C++ is likely the main reason for that. C# or not, the lack of any supported scripting language is holding UE4 back.

                          Comment


                            #43
                            Originally posted by goatytimes View Post
                            As an novice programmer / indie, I've gotta say that C++ is still the biggest barrier keeping me from working in UE4. I was able to work in Unrealscript somewhat, I got up to speed with C# in Unity really quickly, yet after a month attempting to grasp UE4 C++ I still had next to no idea how to code anything.

                            Obviously folks in this community already experienced in C++ are happy and want Epic to focus on other things, but the point is to draw in more users. For all the hooplah over how much better an engine and deal UE4 is, nearly a year later Unity is still far and away the standard amongst indies and C++ is likely the main reason for that. C# or not, the lack of any supported scripting language is holding UE4 back.

                            https://www.youtube.com/watch?v=vtcW...M7pfoRAKLuIcFi

                            Gave me a pretty good idea how to do simple stuff in C++. Did you view that playlist?

                            Anyway I hope that helps out some

                            Comment


                              #44
                              Originally posted by Tim Sweeney View Post
                              Therefore, my recommendation for developers who want to use UE4 but prefer C# over C++ is to bite the bullet and give C++ a thorough chance. All of us at Epic clearly see the many ways that programming in C# is more enjoyable than C++, from header-free source code to generics to rediced boilerplate code. However, C++ is a language that scales upward without limit, and the experience of whole-program debugging (engine and game together) is incredibly illuminating, as are the power and visibility that come from having the full C++ source and ability to call into any part of it.
                              I am a professional .NET developer, I've been using the blueprints for a couple of months now and im thinking on giving C++ a chance. Still I don't quite agree with your statements and I'm looking for someone to debunk my belief ^^
                              here is what I think about the all C# thing (correct me if I am wrong!):

                              - C# is not just more enjoyable, it is far more productive. Anything that can be done in C++ can be done in C# in less time.
                              - The reason why people still use C++ it is because they already have existing huge library that they would need to rewrite (costs too much).
                              - Blueprints needs to be learned like C#, so it is effectively another language but it is useless outside of UE4
                              - You already have the entire documentation and answer hub splitted in 2 (one for blueprints and one for C++), I think that the goal should be to replace blueprints with C#, not to add a third option.
                              - Roslyn (the new compiler) is open source, cross-platform, and it will be released really soon, and with a partership (either with microsoft or xamarin) I think you could get what you need.
                              - .NET framework (or still the mono version of it) makes a lot of things easier, just think about working with a file system, a database, HTTP messages, Cloud services
                              - Does C++ has these features? LINQ, PLINQ, async/await, Dataflow
                              - What about unit testing and dependency injection? it is at the same level?

                              I think that many of the people that talks about C# are actually talking about the Unity C# support which is missing 90% of the stuff.

                              The point isn't "is C# better than C++"? but "is C# better than blueprints?".
                              and of course, IT IS, in any way (even easier to learn).

                              Comment


                                #45
                                Originally posted by MaxiHori View Post
                                I am a professional .NET developer, I've been using the blueprints for a couple of months now and im thinking on giving C++ a chance. Still I don't quite agree with your statements and I'm looking for someone to debunk my belief ^^
                                here is what I think about the all C# thing (correct me if I am wrong!):

                                - C# is not just more enjoyable, it is far more productive. Anything that can be done in C++ can be done in C# in less time.
                                - The reason why people still use C++ it is because they already have existing huge library that they would need to rewrite (costs too much).
                                - Blueprints needs to be learned like C#, so it is effectively another language but it is useless outside of UE4
                                - You already have the entire documentation and answer hub splitted in 2 (one for blueprints and one for C++), I think that the goal should be to replace blueprints with C#, not to add a third option.
                                - Roslyn (the new compiler) is open source, cross-platform, and it will be released really soon, and with a partership (either with microsoft or xamarin) I think you could get what you need.
                                - .NET framework (or still the mono version of it) makes a lot of things easier, just think about working with a file system, a database, HTTP messages, Cloud services
                                - Does C++ has these features? LINQ, PLINQ, async/await, Dataflow
                                - What about unit testing and dependency injection? it is at the same level?

                                I think that many of the people that talks about C# are actually talking about the Unity C# support which is missing 90% of the stuff.

                                The point isn't "is C# better than C++"? but "is C# better than blueprints?".
                                and of course, IT IS, in any way (even easier to learn).
                                I agree with most of what your saying. I'm in the same boat, an experienced C# .net developer. From what i have experienced so far is that the C++ learning curve just adds to the existing learning curve of UE as a Tool, Blueprints and Game development in general. Having C# would be a great way to put aside some of that complexity until your more familiar with UE and the API's. I've had a play around with Mono for UE and while its still very much an alpha (or maybe pre-alpha) i was far more productive working in C# than i was in C++. C# has great tooling support like Resharper that also helps you discover what you need to learn as you code. C++ at the moment greatly lacks in the area of tooling. (good news is jetbrains is making resharper for C++)

                                The other thing that makes C# a great entry point is the fact that its very similar to other languages in syntax, Java, JavaScript and even PHP all have similar syntax. So chances are if you know one of them it will be easier to pick on C#. I look at some of the C++ syntax and go WTF is that?

                                In terms of C# replacing blueprints i think that's a bad idea. Blueprints still has its place, Its a great place to start for someone with no programming skills at all. And they complement the programming languages well.

                                To me Mono for C# is about breaking down the complexity of learning so i can focus on learning what actually makes Unreal Engine, and that's how all the parts fit together. Its also about being able to work in a development environment that helps you to right cleaner, better code. If Mono for C# was a mature product i would defiantly be using it right now as a starting point. That's not to say i won't learn C++ once i'm more comfortable with making games in UE. But having the easier to use language as an option opens up many doors for people. I put of learning UE because of the huge learning curve for a long time, until Unity screwed me over and now i'm glad they did. Its a far more enjoyable experience.

                                The argument about performance i don't think is a real issue. You can right poor performing blueprints and even poor performing C++ code. In the end its situation. There are always going to be restrictions that you need to be aware of. If you know performance is critical to you then stick to C++. Otherwise pick the method that will make it easier for you to learn and develop in. That might be Blueprints, C++ or C#. But for a lot of people out there its C#.

                                All i say is lets look at what it does bring to the table. A bigger audience never hurts.

                                Comment

                                Working...
                                X