Announcement

Collapse
No announcement yet.

[FEATURE REQUEST] A full rework of Blueprint system

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

  • replied
    Cool it guys.

    To put it plainly, everything OP bullet-pointed is impossible. Take it from people who use the engine everyday and understand how it works on a fundamental level. I understand DamirH's frustration, because people who claim to have used programming languages and IDE's should easily be able to understand why that is, or at least know where to look to and work it out on their own.

    Blueprint is not, and was never supposed to be a replacement for C++. Both have their own merits and have distinct, unique purposes in the UE4 workflow.

    All this aside - why on *earth* would we want Epic spending their time and resources developing a C++ IDE? They are making a game engine, and there are plenty of perfectly suitable IDE's out there already. This falls into the same line of questioning as "why can't I create art assets in UE4".

    People are unreasonably terrified of using C++ as if it's some kind of dark art. It really isn't.

    Leave a comment:


  • replied
    Originally posted by DamirH View Post
    "Blueprints aren't what I thought they were, so please redo them from the ground up, either breaking every existing UE4 project in the process or creating a parallel codepath that will exponentially complicate the entire engine maintenance"

    Also, google is your friend: https://docs.unrealengine.com/latest...nts/index.html

    PS. If I sound like a jerk, good. Requests like these are inane, have no place in what is presumably supposed to be a community of intelligent, mature developers; and are probably in large part to blame for Epic developers not being as active on the forums as before. I wouldn't want to explain why there can't be a "make an MMO" button for the umpteenth time either.
    So close your mind and shy away from answering a simple question? Not simple to make, yes. But... I take this "request" as an idea. An idea that asks if implementation is possible. That's a question that any level of developer may ask. Can we implement "y" to improve "x"? I feel that's a bit different than "make MMO button". Your response falls in line with the ******* responses posted for the umpteenth time.

    Leave a comment:


  • replied
    Originally posted by Raildex_ View Post

    Wrong. Blueprints get compiled automatically, C++ not.
    ...this is exactly what I said:
    Originally posted by DamirH View Post
    Having the convenience of compiling when you click "Play" (BPs do that) ...
    Originally posted by Raildex_ View Post
    Not to mention that Hot Reload sometimes (more often actually) doesn't work.
    True, which is a feature that's been in active development for a long while. Should give people asking for this an idea just what the scope of the thing they're asking for actually is.


    Originally posted by Raildex_ View Post
    As I said, I can overlook the long compile time if I have the lazyness of skipping that compile button and clicking Play directly and having my new changes after compiling.
    So effectively, you want the Play button to double as the Compile button and run the game afterwards? Considering you'd be saving the <1s it takes to click on the Play button after compiling, I am not quite convinced of the "time invested to develop / time saved" ratio.

    Originally posted by Raildex_ View Post
    €dit: Checking if there are any changed files in the sources (Makefiles do that) and compiling on demand would make C++ in my case much more appealing.
    Thinking about it, why not letting the Editor check every X timeunits for changed files and compiling automatically?
    I am not even going to bother with this, Just Krishna already explained it far more succint and polite than I ever could hope for.

    Originally posted by Raildex_ View Post
    Does UE even compile only files that have changed? To me it always looks like it compiles everything, even with incremental build.
    Yes it does to the extent that a reflectionless programming language allows: https://docs.unrealengine.com/latest...ion/index.html <---Look for bUseUnityBuild.

    Leave a comment:


  • replied
    Originally posted by Raildex_ View Post
    Thinking about it, why not letting the Editor check every X timeunits for changed files and compiling automatically?
    Because it would try to compile unfinished code/features most of the times?
    I do save edited files all the time, but it doesn't mean I'm ready to compile. It would actually increase the time needed to get the job done.
    It would be annoying even with blueprints - interrupting work for a moment and then complaining about half-finished code...

    Leave a comment:


  • replied
    Originally posted by DamirH View Post
    Having the convenience of compiling when you click "Play" (BPs do that) wouldn't change the fact that compiling would still take just as long because of the nature of C++, the compiling of which already uses all your CPU cores so the "compiling on a separate thread" remark is just silly.You don't have to switch between VS and Unreal, there's a "Compile" button right next to the Play button, you can technically edit your code in Notepad and compile from the editor all the time.
    Wrong. Blueprints get compiled automatically, C++ not. Not to mention that Hot Reload sometimes (more often actually) doesn't work. As I said, I can overlook the long compile time if I have the lazyness of skipping that compile button and clicking Play directly and having my new changes after compiling.

    €dit: Checking if there are any changed files in the sources (Makefiles do that) and compiling on demand would make C++ in my case much more appealing.
    Thinking about it, why not letting the Editor check every X timeunits for changed files and compiling automatically? Does UE even compile only files that have changed? To me it always looks like it compiles everything, even with incremental build.
    Last edited by Raildex_; 02-19-2018, 11:27 AM.

    Leave a comment:


  • replied
    Originally posted by janherca View Post

    I am requesting something I think is pretty reasonable. Sequencer is a new rework of Matinee and the Audio system is being reworked. Of course, I am not asking for a new Blueprint system that makes old unusable, just a new system that brings easiness for the C++ part.
    Thanks for the opinion anyway.
    TL;DR
    Adding text editor to Unreal's editor won't solve any of C++ issues! It would use the very same compilers, linkers and everything that comes with C++.

    1) Blueprints compile so fast because compiler speed truly depends on how many blueprints you changed. This is kind of blueprint-only magic. C++ compilers (or C# in Unity) also try to do this, it's optimized well - from like 2 minutes of full rebuild to just 7 seconds. Still it's not instant "compile & play" experience. Integrating text editor and compiler into editor won't change it.
    2) And if you would integrate IDE with editor you'd rely on hardcore version of code hot reload. 4 years passed and still hot reload in UE4 doesn't work flawlessly. I often end up with throwing few bad words, closing editor and compile project normal way.
    3) C++ and tools like VS are with us for decades. Developed for Epic and us "for free". Still, it takes time to "only" improve UHT, UBT, support for different IDEs.

    And comparing it with Sequencer or Audio engine doesn't make any sense. These are kind of tools which need to be integrated into the engine. Old versions of these systems couldn't be developed further without writing it from scratch. And Sequencer is kind of unique tool.
    Writing new text editor while there are many of them out there? It's reinventing the wheel. It wouldn't help you write code faster.

    EDIT

    Originally posted by janherca View Post
    - a context menu options "Switch to code"/"Switch to editor " and an internal automatic conversion between changes in a blueprint and in the C++ code,
    Cannot be done. Blueprint-generated code isn't ready to be further edited by human

    Originally posted by janherca View Post
    - full support of any C++ class, enum, interface, etc in both code and blueprints (with no exception),
    You already have full support for any C++ class, enum and interface in... C++. Adding C++ editor to the editor's UI won't improve anything in BP.

    Originally posted by janherca View Post
    - always save any class in common C++ files and save the blueprint graph in a secondary text file that describes the graph elements
    And that's exactly what we're doing today: combining C++ with BP. Source code for blueprint is a huge and messy text file. That's why you can copy-paste part of blueprints.

    Originally posted by janherca View Post
    - a C++ simple editor with intellisense inside UE4 to avoid the need of and external tool (or the option to work with VS if is the desired selection of the dev),
    Well, if somebody ever used Intellisense with huge codebase (i.e. Unreal's source code) - he knows it works like a ****, terribly slow. Meanwhile, Blueprint's context menu works instantly.

    Originally posted by franktech View Post
    So, does it make sense to build another layer on top of C++ that's also Node based?
    But this is Blueprint exactly... You already have it...
    Last edited by Moth Doctor; 02-19-2018, 11:19 AM.

    Leave a comment:


  • replied
    DamirH - No worries dude!

    Leave a comment:


  • replied
    Originally posted by franktech View Post
    Didn't feel he really read mine.
    Sorry man, I must've missed it, sometimes I leave long posts for later and it slips my mind! I'll rectify right away.

    Edit: Eh, don't want to necro an old thread, but yeah I used a bit of a hard terminology there, with "complaints" etc... my bad!
    Last edited by DamirH; 02-19-2018, 07:56 AM.

    Leave a comment:


  • replied
    Originally posted by janherca View Post
    DamirH you sound a bit rude in your answer. I am requesting something I think is pretty reasonable.
    That's DamirH - no prisoners! ... He's happy with the way things are and if he scares away a few devs, then good! You were lucky imo, Damir actually read your post. Didn't feel he really read mine. Just unloaded all weapons and exited the game!

    Anyway, I agree its good to ask about the state of BP. Overall blueprints are magical and brilliant for prototyping games. But can they be improved? Definitely! Once nativization is rock solid and once Epic continues to add more functionality. Often to make a finished game you need 3rd-Party plugins. That means C++, even if its someone else's code. But if the plugin author finds the product too much to maintain versus the revenue, what then...???

    Can you get away without any plugins at all? BP is still missing some surprisingly simple things. Random examples: Datatable-Saves / Split-screen helpers etc. You can't make runtime changes to Datatables and save out to a simple database format like CSV/Excel, or alter split-screen from horizontal to vertical at runtime etc etc. Those kinds of things should be built-in without needing plugins imho.

    So, does it make sense to build another layer on top of C++ that's also Node based? Well, even if Epic saw merit in the idea, I can imagine how long that would take and how error prone it would be in the early days, just like BP was. Development takes a lot of incubation time... Even for the next iteration of the engine it would be very risky. But here's a thought, why not hit up the Lumberyard forums and see what they think of the idea, as their node solution is younger iirc. Its not a bad idea to explore at least. If LY did do something similar and it worked, others would sit up and take notice. And if it failed, at least it would make an interesting case study!
    Last edited by UnrealEnterprise; 02-19-2018, 12:01 PM.

    Leave a comment:


  • replied
    Originally posted by janherca View Post

    DamirH you sound a bit rude in your answer.
    That was the intent. Neither Sequencer nor the Audio system even come close to the complexity and depth of integration that BPs have in UE4. You're asking for an entire engine rewrite. Blueprint nativization is already a thing I linked you to and you can inspect the generated C++ code after it nativizes.
    Originally posted by Raildex_ View Post
    I'd love to have an in-editor C++ Editor that compiles as soon as I click on Play.
    As a single developer, C++ is a pain in the ***. Even if you create a single class, compiling always takes atleast 10-20 seconds for me.
    I can condone the long compile times if I wouldn't have to switch between VS and Unreal. Automatic compiling would be great, too(and also compiling on a separate thread of course).
    Having the convenience of compiling when you click "Play" (BPs do that) wouldn't change the fact that compiling would still take just as long because of the nature of C++, the compiling of which already uses all your CPU cores so the "compiling on a separate thread" remark is just silly.You don't have to switch between VS and Unreal, there's a "Compile" button right next to the Play button, you can technically edit your code in Notepad and compile from the editor all the time.

    Honestly, most of the people here talk about things they barely have any understanding about. I'll just step back and ignore... silly threads like these from now on.

    Leave a comment:


  • replied
    I'd love to have an in-editor C++ Editor that compiles as soon as I click on Play.
    As a single developer, C++ is a pain in the ***. Even if you create a single class, compiling always takes atleast 10-20 seconds for me.
    I can condone the long compile times if I wouldn't have to switch between VS and Unreal. Automatic compiling would be great, too(and also compiling on a separate thread of course).

    Leave a comment:


  • replied
    Originally posted by DamirH View Post
    "Blueprints aren't what I thought they were, so please redo them from the ground up, either breaking every existing UE4 project in the process or creating a parallel codepath that will exponentially complicate the entire engine maintenance"

    Also, google is your friend: https://docs.unrealengine.com/latest...nts/index.html

    PS. If I sound like a jerk, good. Requests like these are inane, have no place in what is presumably supposed to be a community of intelligent, mature developers; and are probably in large part to blame for Epic developers not being as active on the forums as before. I wouldn't want to explain why there can't be a "make an MMO" button for the umpteenth time either.
    DamirH you sound a bit rude in your answer. I am requesting something I think is pretty reasonable. Sequencer is a new rework of Matinee and the Audio system is being reworked. Of course I am not asking for a new Blueprint system that makes old unusable, just a new system that brings easiness for the C++ part. Perhaps I haven't explained it clearly, but the idea is to have an integrated code editor inside Unreal (there are a lot of C++ opensource editors), and a tool to make C++ programming in the visual style Blueprints work but with an interanl and automatic conversion to C++ that you can see anytime.

    Of course I see my suggestion is not the typical "small feature add" to the engine. This is more a kind of "big feature suggestion" for the future.

    Thanks for the opinion anyway.

    Leave a comment:


  • replied
    Originally posted by CyberDev View Post
    Is it true that using the blueprint to c++ converter often never works and gives many problems ? I'm so attached to blueprints, but I need (working)performance gains!
    They're few issues blocking nativization of the entire blueprint codebase.
    https://issues.unrealengine.com/issu...t&sort=&page=1

    But they're fixed lot of them recently.
    Let's take this one: https://issues.unrealengine.com/issue/UE-42614

    Still some issues waiting in line, but it looks like they really want to finish this up. It's possible they would do it by 4.20 or 4.21. If you're not releasing game soon, you could benefit from it from Day 0

    Leave a comment:


  • replied
    Is it true that using the blueprint to c++ converter often never works and gives many problems ? I'm so attached to blueprints, but I need (working)performance gains!

    Leave a comment:


  • replied
    If performance is slow, then you can restructure BP in many ways eg dont include a lot of bp in tick, or it may be suffice to run at 10fps? (not every tick). Nativize the offending BP, or convert to C++. With BP, you trade performance with ease way of coding.

    Leave a comment:

Working...
X