Announcement

Collapse
No announcement yet.

is c++ mandatory for VR development? since has been stated to be 10 times faster than blueprints

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

    is c++ mandatory for VR development? since has been stated to be 10 times faster than blueprints

    the source (well is a little old now): https://forums.unrealengine.com/show...ance-Benchmark
    (btw is that 'Blueprint Profiler' already done?)

    even if that's not totally right, is there some good practices to be used when you are developing for VR using blueprints in order to avoid bad performance?

    could a 80% c++ project be ruined in performance for the 20% blueprint part of it?

    Thanks.
    Last edited by osakaro; 08-23-2015, 10:20 AM.

    #2
    Originally posted by osakaro View Post
    ...is there some good practices to be used when you are developing for VR using blueprints in order to avoid bad performance?
    Build your actor and component classes all in C++; use Blueprints for basic commands, never for long/complex code.


    Originally posted by osakaro View Post
    could a 80% c++ project be ruined in performance for the 20% blueprint part of it?

    Thanks.
    Yes and no. Depends on how experienced the blueprint scripter is. A Blueprint designer will always make better performant Blueprints if he also can program in C++ and understand how both systems work together.
    However better documentation is needed to clarify things, if you look around the forums for blueprint code you'll see most people are writing (and selling) Blueprints that are very bad in performance and doing systems that should've been done in C++ classes.
    Ticking everywhere when you could simply use events, using "Get All Actors of Class X" all the time, casting types in loops, etc and etc... Such things can destroy a game's performance, not just on VR; they are the easy route to get stuff done quick, but are not the answer to everything like some think.
    | Savior | USQLite | FSM | Object Pool | Sound Occlusion | Property Transfer | Magic Nodes | MORE |

    Comment


      #3
      Practically, your gameplay code its NEVER going to be the bottleneck. Graphics and animation take a LOT more than gameplay.
      If you are bottlenecked by gameplay code, you are doing something really, really, really wrong. Maybe you are doing tens of pathfind requests per tick, or iterating in odd ways.
      If you code it properly, there is little practical difference beetween c++ code and blueprints. Just make sure the design its properly done. As little code on Tick as possible, and try to get the stuff going in events, If you need some code to execute a lot of times, think on making it on a timer. You dont need to do AI every Tick, but you could make it twice a second with a timer, decreasing CPU usage massively. Tick should be avoided like the plague, specially in VR, becouse VR needs high framerates, and tick is run once every frame, if do calculations on a timer, then thats not tied to framerate, and will run the same at 120 fps than at 30. Also, remember there is some calculations that dont need to be done in sync, and you could use multithreading, but thats an extra thing. UE4 has fairly poor multithreading for graphics right now, until C++12 and vulkan are done, so in a quad core cpu you have at least 2 cores being idle a lot of the time. If you have really huge calculations to do, you could offload them into other threads, using that performance that wouldnt be used otherwise.
      Allways try to be GPU bound, not CPU bound. Take a lot of care with animations, in the game im making, animation takes HALF of the total cpu time, wich is massive(working on optimizing that atm).
      In short, dont worry about doing blueprint code, if you get slowed by blueprint execution speed, then you are doing really wrong that will also be slow on C++ ( just less).
      UDK and UE4 programmer and Unreal engine 4 betatester. Currently working on commercial VR games for PSVR.
      Deep knowlegde of C++ and blueprints. Open to freelance work.
      Games released, Deathwave(Steam), VRMultigames(Steam), DWVR(Steam,Oculus,PSVR):
      http://store.steampowered.com/app/463870
      http://store.steampowered.com/app/500360
      http://store.steampowered.com/app/520750

      Comment


        #4
        thanks for the answers!

        Comment


          #5
          It's not so much about performance, it's about restrictions (just try to compose blueprints and configure them). Working with binary assets (=Blueprint) which can't be handled (and merged) by version control systems like Git is a pain ... But so is C++ in general. It's a little bit of Catch-22.

          Comment


            #6
            I find that blueprints have almost no performance impact in VR (unless you want to do a O(N*N) or polynomial time stuff, but that's bad whether you use blueprints or C++).

            What DOES have a huge performance impact though is translucent particles. Press F5 and try to avoid having red in your scenes.
            Toggle between lit and unlit modes and watch your framerates very carefully. Also, watch the number of triangles you put into your scene. If you have to, take advantage of level streaming and levels of detail to reduce poly counts.

            Comment

            Working...
            X