Any plans for another scripting language besides blueprints/C++

@DarkS474 I would be SHOCKED if “better written documentation” existed for the support contract. The support contract gives you an email address, or perhaps phone number, you can call to ask questions, and the person on the other end, having already built up the knowledge, will tell you where to look.

Your expectation of “proper documentation” is, shall we say, not an expectation that anyone selling game engines in the market is prepared to fulfill. You may think that your expectation is “proper” and that learning the engine any other way is “wasting time,” but those funding the documentation efforts, and those using the engine to write games already, respectfully disagree.

I agree that there are things that are unnecessarily annoying to look up. For example, does “AddTorque()” add the torque in component, actor, or world space? It’s not documented anywhere, and I had to press F12 FIVE TIMES before I ended up in the PhysX SDK header that the data were forwarded to, and could see that it’s adding the torque in world space. If you believe that you are seriously hindered in developing games, because you have to spend 15 seconds looking up something like this, then I know of no effective way to help you make better games.

Comparing Skookum Script or Python to C# just doesn’t make any sense at all. Any scripting language as an option to use other than BPs instead of using C++ doesn’t need to be the same as C++ at all.
What matters is that those scripting languages just work and are easy to code with.

Just because you found out something in 15 seconds searching thru millions of lines of source code that doesn’t mean that it is usually the case because it is just not. The source code is not everywhere so easy to read with lot of comments and that applies to most software (why programmers rarely add comment lines is another big wrong practice in the industry as a whole). Most of the times you end up having to jump back and forth between many classes just trying to understand what any method is really doing and along with macros, aliases and so on it can take hours and sometimes even days to really grasp what some complex algorithms are actually made for.

@DarkS474 you should learn how to read code and how engine works. Thats the best way for any dev to make game. The document was written very well, and you can access source code. So what do you want more from them? The first time i learn ue, i though like you atm. But after 7 years learning, i think diffirent now. You should calm yourself and try to learn!

Exactly. Custom scripting language won’t make easier to understand the engine. Actually it can be more difficult if a given person doesn’t get C++ and doesn’t use C++ specific tools like Resharper++ (or at least Visual Assist) which make navigating large codebases doable :slight_smile:

I can code in assembly or in-line assembly if I need to and want so I should waste months searching thru millions of lines of C++ code that keeps changing and finding out what gets deprecated becomes another huge waste of time?

Scripting languages making it harder to understand how Unreal Engine works is quite a silly statement.
I really don’t get why there are some people telling that BluePrints are the best thing ever for coding anything including very complex algorithms and others telling that C++ is perfect to use even though there is no clean updated full documentation of all the UE4 APIs and searching thru millions of lines of code would be a simple easy and fast thing to do…
I don’t understand some that keep asking for C# which is just a bad Java clone and nothing more than that either.
And I absolutely don’t get how a scripting language like Skookum Script or Python would make it harder to use and understand Unreal Engine… Seriously… What really matters is achieving making a project either a game or anything else using Unreal Engine in the shortest time possible. Scripting languages can only help if available. Full updated public documentation like Apple does would help too with any language supported by the engine.

You youngsters with your fancy languages. Nothing beats the awesomeness of writing large sequences of numbers. We want to script in machine code.

@DarkS474 You joined forums 5 years ago. If you haven’t learned engine by now, no additional scripting language added to UE4 will help you.

I mean, at this point, it’s my “yes, it is usually as easy as pressing F12 or Ctrl-1 Ctrl-T” against your “I don’t want to learn in any other way than reading a tutorial written for exactly my use case.”

If you don’t like it, use something else!

Because 9 times out of 10, what the code does, is pretty obvious. It’s when someone else will have trouble understanding WHY it does what it does, that a comment is useful.
Comments very quickly fall out of sync with the code, too, because you can’t write a unit test to automatically enforce that the comment is correct.

That is a pretty childish statement. You don’t know me. You should refrain from writing silly things like that to anyone here.

I don’t need any tutorials. I need full documentation just like Apple delivers to all developers. I can code in any language including assembly, I have an extensive DSP background I don’t need video tutorials to learn things… but I don’t go around on forums telling that it’s so easy to wander thru millions of lines of uncommented and undocumented source code because that is not.

And no it’s not pretty obvious at all. Most open source code is full of quite obscure functions and classes with plenty of macros that oblige anyone trying to figure anything out to waste months if it isn’t anything involving just a couple of APIs …

Bad programmers don’t comment code and that is the worst practice in the industry as a whole which causes any software house to waste time and money because employees working on any code change thru the years and if the task is to waste time trying to figure out what another employee did years ago with no clean comments explaining everything it means that it is going to require many hours, weeks or months depending on how complex the functions and classes involved are.
Any DSP algorithm can be written in a so complex and obscure way with C++ and inline assembly that not commenting it properly can make it very hard to mantain thru the years, fix bugs and improve so that a new programmer usually could be forced to rewrite the code from scratch. The same applies to many other complex algorithms and 3D engines are full of those.

lol it’s easy to see why Epic is reluctant to bring back scripting.
Each developer has own taste, what’s good for some will always be bad for the other.
If you look around “professional” game engines have been moving away from scripting in favor of visual scripting, but “indie” engines chose to keep scripting around.

C# is so complex that if you can use it I don’t know why not c++ then.
Compilation times are shorter, but then BPs deliver the same feature.

I particularly want scripting to achieve a game where players can code, not to simply replace c++ which I don’t think is necessary for developers.

Tell that to Carmack :rolleyes:

No, I only meant that with a custom scripting language (which might a great team workflow upgrade), you would still need to grasp the basics of Unreal C++ in order to understand the engine’s code. It’s not like Epic will rewrite engine core and tools into a scripting language :wink:

And I never browsed a million lines of code. I check on specific classes and methods. Even if I don’t know what class hides under specific UI, it’s easy to find with the Widget Reflector.
Easy to find code implementing tools/system I touch, every single asset shows up which class it is. Only the understanding rendering code eludes me, but it’s because I don’t spend any time on rendering :wink:

C++ + Blueprint is awesome complete combination. The only thing that still sucks is compilation/code reloading times, but that’s the nature of C++.

If any scripting language is considered to be added, I think it’s absolutely necessary to give it supertight integration with existing tools

You can still have good code by naming stuff appropriately by using functions and variables. Complex math and algorithms, however, does need comments.

  1. After working as a web dev for years and having knowledge about Java and C#, I begin to question one’s ability as a programmer after reading they say that Java is better than C# and that bad programmers don’t write comments.
    If you like Java more than C#, great, but C# clearly has better syntax and much more investment in improvements than Java.
    Bad programmers need to write comments to make it easier to other programmers to understand their bad code. Your code (vars/methods/classes names) should be enough for ppl to understand what you are doing and if they aren’t it’s because you are bad at naming or bad at structuring your code. Comments are justified in some cases, but should be used sparingly.

  2. I’m not experienced with Unreal but I have been researching about it in the last weeks.
    I think that the problem is that while BPs are great for artists and productivity, they have performance issues.
    Naturalisation has its caveats and is hard to use and maintain plus makes the game package bigger.
    Unreal creating BPs was a shoot in the foot in my opinion, because now everyone is using it, all tutorials use it, but it’s still not good enough for more complex games because of performance issues.

You clearly need to go beyond theoretical research because this statement is not true.

2 Likes

Can you make a game using only BPs then?
If not, why?
I’m not asking if it’s possible, but if it’s a good idea.
As far as I could see there are some games with like 80/90% done in BPs and the rest in CPP.

Perfect combination for me would be to write +90% of the game with a middle-scripting language, well integrated with UE Framework-API and with fast compile times. Then BP for very specific things like UI/Widegs, AnimGraphs, etc, and then only if needed, some touches here and there in C++ .