If it could be done with a snap of a finger, sure I'd love this. C++ isn't my preferred language and I really hate how restrictive blueprints are space-wise. They're just a pain to manage.
Seriously, do devs still avoid learning about a tool because of the language it's written on? This makes no sense.
If it could be done with a snap of a finger, sure I'd love this. C++ isn't my preferred language and I really hate how restrictive blueprints are space-wise. They're just a pain to manage.
Still doesn't solve being able to work in the same script at the same time as other developers - you have to move to C++ to gain this basic necessity. This is a major UE4 flaw IMO.fwiw, you can diff and merge Blueprints in the UE4 editor itself
It has a garbage collector, and it has the same function as the one in Unity, but they don't work in the same way.I mean, C++ in UE4 abstracts pretty much all of that stuff away. It even has a garbage collector that works in pretty much exactly the same way as C#'s!
The problem is that it's all implemented in these huge macros that inject all this extra functionality into your code at compile-time, and it's a very fragile development environment (especially with regards to intellisense, which barely works at all in vanilla Visual Studio). If they can implement that in a more elegant way (maybe a backwards-compatible superset of C++, like what TypeScript is to JavaScript?) then they'll be golden.
Agreed. Given that you can copy-paste blueprint nodes as plaintext, a "store as text" option would be really nice.Still doesn't solve being able to work in the same script at the same time as other developers - you have to move to C++ to gain this basic necessity. This is a major UE4 flaw IMO.
It has a garbage collector, and it has the same function as the one in Unity, but they don't work in the same way.
CLR and java use a tracing garbage collector. it determines if an object has to be freed checking if it is reachable from some root object. If an object cannot be reached it is freed. Lower level (and generally less sophisticated) c++ garbage collection is reference counting. But each object has to count how many things reference it.Do they not? I thought they both kept count of how many references there are to an object, and periodically removed everything that no longer had anything pointing to it.
No I don't see how it would draw them towards UE over Unity which has a general perception of being easier to develop for.
Seriously, do devs still avoid learning about a tool because of the language it's written on? This makes no sense.
CLR and java use a tracing garbage collector. it determines if an object has to be freed checking if it is reachable from some root object. If an object cannot be reached it is freed. Lower level (and generally less sophisticated) c++ garbage collection is reference counting. But each object has to count how many things reference it.
They're both garbage collectors but people used to refer to the former when saying Garbage Collector, Reference counting was a different form of memory management.
Okay, I've just checked the docs, and apparently we're both wrong. Neither Unity nor UE4 use reference counting, they both use tracing to determine which objects can be removed. The difference seems to be that UE4's implementation is a whole lot more optimised.
Anyway my point was that you don't have to worry about memory management in C++ with UE4!
Lol. I didn't know that about UE4.Okay, I've just checked the docs, and apparently we're both wrong. Neither Unity nor UE4 use reference counting, they both use tracing to determine which objects can be removed. The difference seems to be that UE4's implementation is a whole lot more optimised.
Anyway my point was that you don't have to worry about memory management in C++ with UE4!
Sure you do. Even if you were working in a completely managed environment/language, you have to worry about memory allocation and how objects are referenced. Unreal's garbage collection implementation relies on their reflection/runtime type system and you can still just as easily leak memory you have allocated via new/malloc.
Yeah, but not a game dev. Started on a basic-like language, then Java, then php for my first job, then c#, then c/c++, where I'm still am. Around 15 years, when you add all up. And while some transitions were smother than others, there is always knowledge that I can apply, if not down right need it. I remember helping interns develop python scripts, they would thank me for days, but I never actually developed anything in python before, I just gave a suggestion of what I would have done in Java.
Yeah, this is a argument I can get behind.Nah. JavaScript as close to a "bad" language as it gets, but I really don't hate it because of that. Usually it's the frameworks and tools you have to work with what's problematic. At least for me. Node.js is fine, Typescript is transpired but not too complex so it gets a pass, it is not ideal, has some insane stuff but far from shit.
Frontend work? The amount of engineering around the fact that the web was never meant for these fucking apps creates an environment that is hell to work with. This is true for Node too but it's the frontend where hell gets loose.
It works the other way too. Swift is the best application language I've ever worked with and the way Apple has been handling UIKit and SwiftUI lately just completely scares me away.