Are mobile platforms supported?
Wow, this is great! I didn’t know something like USharp or mono-ue existed. I do worry about the impact of garbage collection though, which I hear about all the time when it comes to Unity performance.
I am sure most people know this, but the new Live Coding feature in 4.22 and above has radically improved compilation time for c++.
Like I can change a few lines and see it in editor in 8 seconds.
There are some big caveats (like not adding new properties) but overall it is pretty much a game changer.
Unity’s garbage collection is garbage (lol) just because they use an ancient one.
From Mono 2 or something. they refused to pay Xamarin licenses to update to a newer version.
I see no advantages of using C# if you already have Unreal C++ with reflection and garbage collection, blueprints, Python.
It would be only overcomplicating engine development. Especially for editor tools and low-level systems, the only efficient choice is to use the same language as an original codebase.
What would actually interesting is a custom scripting language, a middle-man between C++ and blueprints. Simplified syntax, tailored for engine already allowing you to use C++ and source code. “Binary/asset” nature of blueprints can become problematic if team grows and starts to create a lot of systems/features in blueprints. It’s becoming harder and harder to collaborate and refactor things.
Custom scripting language would be excellent for technical designers, but it shouldn’t be seen as replacement of C++ for writing core tools/systems.
^^ This ^^
- Wholeheartedly agree with kjustynski / Just Krishna or whatever witness protection name doctor ergot is operating under these days.
Only good thing about C# would be that I wouldn’t have to write those god-awful-help-the-compiler-because-its-dumb-header files. When programming with C++ I find myself writing less small functions simply because keeping the implementation and header files synced is such a stupid chore, instead I just tend to write long functions that just do the stuff.
Only? Are other things better in C++? Excuse me but very long compilations, lack of possibility to remove c++ class in editor and bad code readability (due to macros and type def and so on) aren’t good things.
I imagine most/all of the epic devs code in C++ so can’t imagine there’s much enthusiasm to add another language.
In all honestly the C++ in UE4 really isn’t that hard to grasp if you can code already in a different language, just got to get your head round some differences like pointers and when to use :: instead of . .If you’ve got vax it usually corrects it for you anyway if you use wrong symbol. If you want an actual real programmer job at a big company in the gaming industry they usually want C++
This isn’t me being a ‘arn’t I so clever’ boast, quite the opposite, I’m not a professional programmer and I’m a bit of spanner and I can get my head round it. Nowhere near the level of someone like Mr Xavier but enough to make gameplay code and do what I need to. You can do it too if you just try
Try one of Tom Looman’s C++ tutorials and you’ll realise its not as scary as you thought it might be.
Those aren’t big enough of issues to warrant for a C++ and C# interop layer in my opinion.
Nobody says about difficulty. The speech is about convenience and c++ has some problems with it.
I look at CryEngine and watch how long they’re taking to wrap their engine into C#.
It’s far from being “done” and they’re on it for YEARS already.
Not sure if worth the effort.
I see nothing convenient in having 2 programming languages serving exactly the same purpose. And the entire community knowledge would split, making harder to find information for “your” language. And now some people would write plugins in C++, some in C#.
A language is just a tool.
The long compilation time in somebody’s project isn’t directly caused by used language. It depends more on build tools provided with the engine.
Unity only recently introduced proper incremental compilation for C#, previously small projects could compile for minutes every time. And launching Play In Editor is incredibly slow in Unity, partially because resetting scripting states (they’re fixing it finally).
Unreal Build Tool only rebuilds what gets in the dependency chain of changed code files. You can have a huge project and you won’t notice slower compilation while the project grows. Big codebase won’t slow down editor operations.
Also now we have Live++ integrated, so you can recompile changes in .cpp even while the game is running.
Yep, C# syntax is much cleaner and it’s initially unpleasant to switch to the older language, but t’s not a reason to overcomplicate the entire engine.
C++ syntax isn’t a problem. Just make possibility to delete and rename c++ files in UE editor and we will endure other inconveniences.
If Epic do add C# or some kind of scripting support, I hope they do it for the right reasons… As Doctor Ergot hints above, make it between BP and C++ in terms of difficulty. Then only use it for game design, NOT as a replacement for C++ and creating engine tools. But more importantly, build it entirely into the editor (as UDK-Unrealscript was before or Unity-Mono etc). It CANNOT ever function like this for instance… That would be a FAIL! :mad:
So what might a third coding option look like… Extending Blueprints as scripting text is one way to go (BP in text form)… But either way, Sweeney’s Reddit post hints that long-term Epic realize strategically they need to add text based scripting support into Unreal!!!
Meantime informal survey… I was back home with time to kill recently, so I looked around for a classroom based C++ course. In a heavily tech-driven economy, I couldn’t find one option sadly (nothing in academia or at firms specializing in tech-upskill etc). Lots of training websites list it, but most have dropped it quietly from courses on offer. I asked why, only to be told: ‘its no longer deemed a viable business proposition’ (outside of game dev surely).
But WHY is that???
Its not like C++ has fallen off the all-time programming charts: Example1 - Example2. I don’t need the tuition so much as the motivational push, as I’ve never liked C++. If you’re bidding on a project as a tech consultant, C++ is extra work bringing unwanted added risks! In general, C++ feels like something an accountant would dream up. Header files (Double-entry bookkeeping). Pointers (Impossible binder indexes). Its just too strict and detailed, and plagued with rare or exotic compiler errors. It eventually just bogs you down… But hey, if you’re the dedicated coder on an engine tool or game project, maybe you don’t care.
But what if you’re trying to ship an indie game in an ever leaner market… Is C++ a wise choice??? - IDK - Same goes for C#. After all, UE4-C# will never offer the simplicity of Unity-C# (along with its ‘magical update methods’)… I wonder, If Microsoft hadn’t been so envious of Java, would C# have ever happened?.. Besides all that, why is it that so many new and old languages feel like endless homages to C / C++?
Overall, I hope Epic go with something new entirely… Visual programming feels like a natural way to create games (prototypes anyway)… But node drag and drop has too many limitations… Maybe Epic will go with an entirely new kind of paradigm or scripting language that better suits game dev. The SkookumScript guys are busy working on something. Perhaps we’ll see some kind of programming shift in the near future…???
writing code in the same language as the engine is written seems pretty convenient to me…
So what happens if they add c# but you still cant delete files from within the editor?
seems a daft reason to want a whole language added whem it takes all of about 10 seconds to delete the file outside the editor.
Just lets hope Epic invents integrated scripting solution that do not require some sort of external runtime hell and other heavy bloat, it is enough already that word is gone mad with node.js and Electron bloat.
I say we vote to revive Unrealscript everyone loved that
maybe that was just me…
UE4 has Python already. I don’t like Python, but I think it can be extended to game scripting system.
On the other hand, I don’t care for any typed script/code since I discovered Blueprints. All is needed is the ability to version Blueprints, maaaybe diff them.
With the way things are with UE4 development, efforts and resources should be spent on improving and enhancing what’s already in the engine, not adding stuff only Unity migrants will be using, IMO.