I know a lot of companies use their own proprietary engines to make their games, but I'm curious to know. Between Unity and Unreal, which of the 2 engines is better for gameplay programming? Is C++ better than C# when it comes to coding certain mechanics, or vice-versa? Are there any companies who's own engines are closely similar to UE or Unity?
Unity or Unreal for gameplay programming
This is a very subjective topic, with no clear “winner” eigther way. Major games of all genres have been made with both engines. Historically, Unreal has always shined more when it comes to graphics, but that is also depending on the skills of an artist. As for gameplay, both engines are creating a various amount of gameplay-scenarios.
The following excepert is now only my own personal opinion:
I don't like Unity, personally. It's messy, it's clunky. You can get things done but it never really feels satisfying or “clean”. Having to work with netcode, for example, is like 10x the effort it takes in Unreal to get things going, and then you'll have many more bugs. But it's also easier to get into with C# as opposed to C++.
As for Unreal, I like it a bit more, but personally more for Blueprints than C++. I am an expert in C++, but Unreal uses an (IMHO) very dated representation of C++, with (for example) pointers instead of references everywhere; no exceptions; and in general the codebase is so large that tools like Intellisense have a hard time working at all. Blueprints have its own set of problems, mainly performance (due to a terrible backend-implementation, and not due to that its a visual language like some people will claim) and people who are only used to textual languages have a hard time working with it (again some people will tell you that visual coding is inherently harder to understand, which I personally disagree). But whether you choose C++ or blueprints, you'll also be able to implement all the gameplay that you are going to every need, even though C++ makes it easier to get things to crash.
To answer your last part, custom engines come in many forms and variations, a lot of proprietary engines that I've heard about are more like frankensteined together set of tools, without the finesse that both Unreal and Unity have (despise me dislinking Unity). I'm presonally developing my own engine in my free-time (for over 11 years now), and it's kind of a mix of some of the parts I like about both Unity and Unreal. It does look very similar to eigther, with my own variant of “blueprints" and an “asset explorer” similar to Unreal, and has a feature-set that is comparable to both engines (albeit not in the breadth of available systems, especially in the 3D-deparment). In general it's going to be very hard for custom engines to reach a level of the big Us, especially in the corporate world, where deadlines, feature-creep and the desire not to introduce new engine-bugs might hamper development. It's arguable a bit easier for me to do it as a lone guy with too much time on my hand, as I can just rewrite stuff and expand as I need, throw away old things as I see fit, without any “stakeholders” holding me back.
But yeah. That's only my own two cents. You'll probably get a lot of different replys, but the concensus is (hopefully) going to be that you can use whather you want.
Unless that is one of those funny bot-spam questions and I've just wasted my own time writing this. If you are a real human @bass3922 just disregard this last part.
@Juliean Thank you for your reply. It was very informative and inciteful to what is used in the industry. I have been using Unreal almost exclusively because that's what I used in school, so I am more aware of its capabilities than Unity, but I know there are tutorials online on YouTube that can teach me more of both.
Don't worry, your reply reached a real person. ?
bass3922 said:
Between Unity and Unreal, which of the 2 engines is better for gameplay programming?
Subjective. Both have their own good scenarios. Both have scenarios where they're a nightmare.
bass3922 said:
Is C++ better than C# when it comes to coding certain mechanics, or vice-versa?
Yes, and this is always true. People invent programming languages to solve problems. C# solves some problems easier than C++, sometimes with far less human effort. The reverse is also true, some things are easy in C++ but difficult in C#. And some tasks are difficult in both languages but trivially easy in others.
C++ is generally considered “lower level”, where you must concern yourself with more details around resources, although you need to be mindful of them in all language. Which language you would want to use depends on which problems you are solving and the context they're in.
bass3922 said:
Are there any companies who's own engines are closely similar to UE or Unity?
Those are the two big publicly available engines, but there are a bunch of them.
Look at the site's Start page and you'll find a list of 15. Or go to the list on Wikipedia for 200 or so game engines, a mix of private and public.
But just because engines exist doesn't mean you'll use them. You're not going to work with the Slipspace engine unless you're working on Halo. The Sims engine is used by The Sims and nobody else. Etc.