Announcement

Collapse
No announcement yet.

Why C++ for Unreal 4?

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

    This weekend I'm gonna get my hands dirty.

    Also, I again disagree on the 'visual' discussion, I still think that 'visuals' have nothing to do with 'structure'; you can represent a structure visually, or in plain words, or by any other mean. That doesn't change the fact that 'visual', imho, means something that is communicated through vision.

    I strongly disagree that Unity has bugs that prevent people from finishing their stuff. Of course it has bugs, many of them, but there's always a workaround or some alternative. I mean, that surely shouldn't be taken into account when choosing Unity or not. Chances are you won't hit a bad bug that will prevent you from finishing your game.

    I'm not telling that Unity is good or something, but please let's bash it for the real reason why it sucks, and game-breaking bugs aren't one of the reasons for >99% of the cases.

    Comment


      Originally posted by NegInfinity View Post
      In case of Unity you have 98% chance of hitting at least one game engine bug during game development and 80% chance of that bug not being fixed, and 30% chance of that bug being game breaking.
      That has always happened with all the engines or SDK I've worked (video game consoles, controllers, etc...).
      In any project you always have to find workarounds. Having the UE source is nice, although you can also pay for it in Unity. Anyway that doesn't mean you have the resources (time, knowledge) to fix it for yourself...

      Both C++ and C# has their place and the one who chooses to ignore one is only hurting himself. This "war" against C# reminds me of when asm/c programmers were against C++ because it was slower to write code, more convoluted... in the end it was clear that when the code grows in complexity and size, we need better ways of dealing with it.

      Comment


        Originally posted by SaffronCR View Post
        Both C++ and C# has their place and the one who chooses to ignore one is only hurting himself.
        I could ask the same kind of question regarding every single programming language in existence. Every language has their place and you WILL ignore most of them. By your logic you'll be hurting yourself no matter what you do.

        I've come to conclusion that choice of the language depends on programmer's mindset. And C# is not very compatible with mine. That's all there is to it.

        Originally posted by SaffronCR View Post
        in the end it was clear that when the code grows in complexity and size, we need better ways of dealing with it.
        And that is exactly why I prefer C++. It provides more tools for dealing with both size and complexity compared to C#.

        Comment


          Originally posted by NegInfinity View Post
          I could ask the same kind of question regarding every single programming language in existence. Every language has their place and you WILL ignore most of them. By your logic you'll be hurting yourself no matter what you do.

          I've come to conclusion that choice of the language depends on programmer's mindset. And C# is not very compatible with mine. That's all there is to it.
          That's your view, mine is that you can actually learn most languages and use it to your advantage. For example when I started with C/C++ programming I did everything with it, with a C mindset. Then I learned html, java, C#, SQL... and nowadays I select the most useful for each task. For example I programmed a multiplayer online game which uses SQL for handling matches and user data (a single SQL query beats anything you can do in C++, and there's a reason LINQ was created and is widely used), C# is a lot faster of writing than C++ in most situations and that's why it's chosen for writing tools nowadays. And when you need to work close to the hardware and optimize, C/C++ or even asm is your only choice.

          Obviously if you feel confident that C++ can handle all your needs, good for you. In my case I approach every new technology with an open mind and try to stay always updated, because until you don't really know how to do things in a new way you can't really tell if it that new thing is really useful, or when it's useful. For example, approaching FPGA programming with a C++ programmers mind is going to make you hate it, when FPGA is a really powerful tool in electronics.
          Last edited by SaffronCR; 11-05-2015, 06:58 AM.

          Comment


            Originally posted by SaffronCR View Post
            you can actually learn most languages
            You can only get "acquainted" with them so you can write stuff in them at very mediocre level. Not "learn".

            Originally posted by SaffronCR View Post
            Then I learned html, java, C#, SQL... and nowadays I select the most useful for each task.
            You put html and sql in the same category as java and C#.
            Also there's no mention of lisp, prolog, haskell, and other languages.
            I find that disappointing.

            Originally posted by SaffronCR View Post
            In my case I approach every new technology with an open mind
            Exactly what I tried with C#.

            Originally posted by SaffronCR View Post
            feel confident that C++ can handle all your needs
            I never said that. The "right tool for the job" principle applies. In my case C# fails to provide any significant advantage over C++ in the area I work with. That's all there is to it.
            Last edited by NegInfinity; 11-05-2015, 07:12 AM.

            Comment


              You can only get "acquainted" with them so you can write stuff in them at very mediocre level. Not "learn".
              That depends on the time and effort you put into it.

              I never said that. The "right tool for the job" principle applies.
              Then there's not much to add.

              Comment


                Originally posted by NegInfinity View Post
                I've come to conclusion that choice of the language depends on programmer's mindset. And C# is not very compatible with mine. That's all there is to it.
                The choice of language has nothing to do with the programmers mindset. A proper choice of language is the one which fulfills all of your projects needs, which has nothing to do with the programmer at all.

                Also, you claiming C# isn't compatible with your brain is just a blatant excuse for laziness. Sorry, but it is. You have a human brain. It can understand far more than you think it can. Stop limiting yourself by be so negative...

                Originally posted by NegInfinity View Post
                And that is exactly why I prefer C++. It provides more tools for dealing with both size and complexity compared to C#.
                This is a subjective statement. Both languages have plenty of tools for dealing with both size and complexity. In fact in my experience, out of the box, C# has more tools for this. Also, C++ is a terrible language for implementing very very large projects.


                Choosing one language for everything is just a terrible and stupid idea. Choose what works best, not for you, not for the language, but for your project's needs.

                Again, C# isn't a language you all can just compare to C++ directly really.. They are completely different beasts. C# is and was never meant to compete in who is better with C++. You guys are discussing which is better, Language A meant for tasks G, and language B meant for tasks J. If you honestly are choosing between C++ and C# with your project, I REALLY think you need to reassess what you're trying to do with the project.
                Youtube
                Machine Learning C++ Plugin
                Lindenmayer System C++ Plugin

                Comment


                  Originally posted by SaxonRah View Post
                  The choice of language has nothing to do with the programmers mindset. A proper choice of language is the one which fulfills all of your projects needs, which has nothing to do with the programmer at all.

                  Also, you claiming C# isn't compatible with your brain is just a blatant excuse for laziness. Sorry, but it is. You have a human brain. It can understand far more than you think it can. Stop limiting yourself by be so negative...


                  This is a subjective statement. Both languages have plenty of tools for dealing with both size and complexity. In fact in my experience, out of the box, C# has more tools for this. Also, C++ is a terrible language for implementing very very large projects.


                  Choosing one language for everything is just a terrible and stupid idea. Choose what works best, not for you, not for the language, but for your project's needs.

                  Again, C# isn't a language you all can just compare to C++ directly really.. They are completely different beasts. C# is and was never meant to compete in who is better with C++. You guys are discussing which is better, Language A meant for tasks G, and language B meant for tasks J. If you honestly are choosing between C++ and C# with your project, I REALLY think you need to reassess what you're trying to do with the project.
                  True. I think the whole C# vs. C++ debate only exists because these are the two choices today in the two most popular game engines, Unity and Unreal. Normally the question of which one to use doesn't even come up. Modern enterprise software with databases and lots of web aspects is developed with either C# or VB.NET (and the .NET framework in general) or Java. Those technologies exist specifically to be more productive in this type of scenario. Those are also the cases where language performance is way less dramatic as the bottleneck is almost always on database or network.

                  Comment


                    Originally posted by SaxonRah View Post
                    A proper choice of language is the one which fulfills all of your projects needs, which has nothing to do with the programmer at all.
                    That's nonsense.
                    You acquire language knowledge and then get hired as developer working with that language specifically.

                    Sure any decent programmer can tinker in 3 to 5 other languages, but people tend to specialize in one or two of them.
                    So, if you hire a Python developer and then make him write C# programs, your project utilizes human resources inefficiently.

                    Originally posted by SaxonRah View Post
                    Also, you claiming C# isn't compatible with your brain is just a blatant excuse for laziness. Sorry, but it is. You have a human brain. It can understand far more than you think it can.
                    I actually worked with C# for decent amount of time and know my stuff.
                    Claiming that all human brains are the same is lack of understanding of human nature.
                    Different people think differently.

                    I want full control over every single aspect of the program and full predictability. C++ provides that. Most of the other languages - including C# - don't.
                    That's what I meant when spoke about mindsets.

                    Originally posted by SaxonRah View Post
                    Also, C++ is a terrible language for implementing very very large projects.
                    That's your subjective opinion.
                    You're saying that because it is incompatible with your mindset and you don't know how to utilize C++ for large projects.

                    Originally posted by SaxonRah View Post
                    Choosing one language for everything is just a terrible and stupid idea.
                    Didn't I already post that "The \"right tool for the job\" principle still applies" in this thread?
                    I guess some people have trouble paying attention.

                    -----

                    I think it would probably the best to nuke or close this thread. It is just plain old language war, with very small amount of useful info.

                    Comment


                      NegInfinity
                      Me

                      That's nonsense.
                      You acquire language knowledge and then get hired as developer working with that language specifically.

                      Sure any decent programmer can tinker in 3 to 5 other languages, but people tend to specialize in one or two of them.
                      So, if you hire a Python developer and then make him write C# programs, your project utilizes human resources inefficiently.

                      I'm sorry but i think your education was misguided, you should have learned how to solve problems, not how to write in a single language. the language is irrelevant. you should be able to solve pretty much any problem regardless of language, unless the language doesn't support a feature.

                      I actually worked with C# for decent amount of time and know my stuff.
                      Claiming that all human brains are the same is lack of understanding of human nature.
                      Different people think differently.

                      Of course people think differently, that doesn't change a humans ability to understand something. Try thinking about it differently.

                      That's your subjective opinion.
                      You're saying that because it is incompatible with your mindset and you don't know how to utilize C++ for large projects.

                      No, what i said is c++ is terrible for very very large projects... its much better to utilize multiple languages in a large project. C++ alone IS a terrible solution for a gigantic project. Just look at the size of unreal engine 4, which isn't even that big of a project mind you. It has C++, Objective C, C, C#, Python, JSON, HTML and others. Unreal Engine 4 is only about 55.6% C++


                      Didn't I already post that "The \"right tool for the job\" principle still applies" in this thread?
                      I guess some people have trouble paying attention.

                      You did, but you didn't say that it's dumb to choose a single language for everything... It wasn't directed towards you specifically. I mean, I did try to separate that by two whole lines.

                      I think it would probably the best to nuke or close this thread. It is just plain old language war, with very small amount of useful info.

                      I disagree, there has been good civil conversation. Granted this thread would be more suited in general discussion.
                      Last edited by SaxonRah; 11-09-2015, 12:28 AM.
                      Youtube
                      Machine Learning C++ Plugin
                      Lindenmayer System C++ Plugin

                      Comment


                        Processing 2.0 for life, let's use that for all game engines from now one please.
                        Website/Portfolio: http://www.VictorBurgosGames.com

                        Join me on stream: https://www.twitch.tv/VictorBurgosGames for UE4 Game Dev. If you need help, just stop by and ask!

                        Currently looking for exciting new opportunities! Available for work!
                        https://forums.unrealengine.com/comm...ars-experience

                        Comment


                          Dear Community,

                          For anyone wanting to learn UE4 C++ I have posted an entry-level wiki guide here!

                          I discuss the essential basics you need to know to get used to both C++ and UE4 C++

                          Rama's Entry-Level Guide to UE4 C++
                          https://wiki.unrealengine.com/Entry_...to_UE4_C%2B%2B

                          C++ is just like any other language, you just have to start coding in it to get used to it, its like riding a bike. You wan't learn to ride a bike until you just... start doing it!

                          My guide covers the most essential basics that will allow you to begin having fun coding in UE4 C++ very quickly!!

                          Please do not worry about being perfect, just start, and then your perfection will grow over time as you code in UE4 C++ more and more!

                          Have fun today!



                          Rama
                          Last edited by Rama; 11-09-2015, 03:52 AM.
                          100+ UE4 C++ Tutorials on the UE4 Code Wiki, including UE4 Multi-Threading!

                          UE4 Marketplace: Melee Weapon Plugin & Compressed Binary Save System Plugin | Rama's C++ AI Jumping Videos | Vertex Snap Editor Plugin

                          Visit www.ue4code.com to see lots of videos about my C++ Creations! ♥ Rama

                          Comment


                            It's a matter of performance (C++) versus productivity (C#). People is reluctant to use C++ because it has a lower level of abstraction compared to other languages and this is typically at the expense of productivity. In other words, the game run faster with C++ but you spend lots of time to finish your code.

                            Comment


                              C++ is multi-paradigm language, and not enforce programmer to use only one.
                              You can write data handling in DOD, interfaces in OOP and yet another stuff with simple C-like standalone functions.
                              Don't want inheritance? No problem.
                              Don't want virtuals? Your choice.
                              Define your class and treat her like you want, not like paradigm want.

                              I think this is main reason why I like C++

                              Comment


                                Originally posted by derloopkat View Post
                                It's a matter of performance (C++) versus productivity (C#). People is reluctant to use C++ because it has a lower level of abstraction compared to other languages and this is typically at the expense of productivity. In other words, the game run faster with C++ but you spend lots of time to finish your code.
                                Err. You got it wrong. People are reluctant to use C++ because it is complex. It is loaded with huge number of features, can be high level, low level, or almost anything you'd want it to be, but it doesn't hold your hand so when you shoot your own foot, language assumes it is obviously because you wanted that to happen. The goal of the language is to bring programmer maximum amount of power and make available any technique programmer would want to use.

                                The reason is complexity. As for level of abstraction, C++ is as high level as C# if not higher level.

                                Comment

                                Working...
                                X