Yes, there is a lot of of C++ under the hood in Unity, but I also remember the days when writing game engines in C and Pascal dialects actually the majority of the code looked something like:
procedure MyProc; assembler;
asm
(* assembly *)
end;
Yet 30 years later we seem to have forgotten how bad those compilers were targeting home computers and how much they have improved in all these years.We need more success stories like Unity to keep driving the industry forward.
The next fight was to move from C and C++ to Java and C++. This still hasn't happened in console gaming because the overhead needed for gc is not palatable to aaa developers that have to milk every byte of ram in the machine.
Regarding GC and consoles, how do the UE 4 developers approach it, just disable the GC related features then?
The UE4 GC is purpose built, simple (mark and sweep), and limited to only certain objects/allocations. The only time I've seen significant GC times/hitches was related to a bug that resulted in thousands of small allocations every second. I would much prefer if Epic dropped the GC - losing tight control over object lifetimes is as bad or worse than any potential performance overhead issues in my experience - but failing that I don't think its inclusion is a serious concern for shipping on consoles.
Also, does Unity still not give you the source code? I assume they'll change this soon enough; you get the source code with ue4.
I kind of see it like blender vs maya or something. Lots of people are using blender, and it's very powerful. But industry is using Maya (because it's more powerful), and that won't change for a bit I think (good for autodesk).
I regret every non-art unity asset store purchase I made. Need behavior trees pick one of 10 crappy maintained assets etc etc. Constantly felt like I needed to purchase something to fill some gap in unity or spend tons of time developing my own solution.
I don't feel that way at all in UE4.
I believe that the issue isn't that they don't want to share, but that the code is a pile of patchwork that would need to be re-engineered before presenting it to anyone outside the company.
Unity has better marketing. The captured larger audience and thus got more content on their asset market and it has became default engine for beginners (C# seems much easier to learn than C++).
Unity is like Visual Basic of gamedev.
Large swathes of even professional programmers have now come into the industry never having had to really deal with manual memory management. (And I happen to think that's fine.)
Given that, and the rising popularity of indie/amateur games, I fail to see how one couldn't count C/C++ as a negative as far as market penetration is concerned.
Since I started from Assembler, it's hard for me to estimate how hard is C++ to some beginner. Managing memory came as a natural extension of understanding how the computer works.
> I'd attribute the ability to work with it from a managed language with a large part of its success relative to UE4.
You are probably right, but I simply cannot feel it. Thus "seems".
> Given that, and the rising popularity of indie/amateur games
I believe indie games reached their peak in 2011/2012 and got a huge drop in quality/quantity ratio since.