Gamedev for enterprise

Hey all. Just to preface, I do not want to develop games and I’m not interest in moving into the games industry. I’m interested in getting involved in enterprise, lightweight (mobile and web) real-time 3D App development. I’m coming from 12+ years experience in offline rendering. Been using Houdini / Redshift for the past 3 years. Python programming for standalone / Houdini / Maya for the past 6 years.

Eventually, I’d be solo developing or at the most with a small team of 1-2 people down the road.

The reasoning of this post is to get experienced professional guidance from folks in this realm before I dedicate too much time to a less than ideal solution.

So, a few questions if you’d please guide me:

  • C++ is considered a lower level language than C# with better compile performance. However, I’ve been reading that Unity has less overhead than Unreal. So at a 1:1, which package has best potential in providing superior optimized performance in regards to running lightweight 3D Applications?

  • With 6 years Python experience, I’m coming in with more or less a blank slate with C++ and C#. I’ve heard that C++ is harder to pickup than C# (manual garbage collection, manual memory allocation, etc…). Is this substantially true or marginally so? I’m not interested in blueprints or any visual programming.

  • Generally which language, C# or C++ is going to be a more marketable skill in the 3D / VFX industry now and speculatively in the future? Are their many TDs out there using C# for anything? I want to get as much ROI as possible in my current field for the time spent learning one of these two languages.

  • Generally which package, UE4 or Unity is more common at enterprise level applications and inside of the 3D / VFX industry (outside of the games industry)? Epic has been moving hard into live action content, especially with the acquisition of Quixel.

  • Anything else you’d like to add or comment on that you think would be beneficial knowledge for someone like me to know in regards to real-time 3D application development before I dump the next 2 years of my life into learning this stuff?

Right now, I’m learning towards Unity primarily based on the licensing agreement. 5% royalties to Epic after X amount sold is not a deal breaker, but I prefer upfront costs that are clean and more quantifiable. However, I’d consider whatever other game development solution that would provide most potential in lightweight, enterprise app development and would yield best skill-set ROI.

Thank you for your time and reading all the way to the bottom. I appreciate that and any input you have for me.

  1. These days how fast or slow Unity and Unreal are has much more to do with the Engine architecture than C# vs C++ performance. Not that it couldn’t factor in, but odds are you’ll hit other performance bottlenecks first. I wouldn’t base your decision on conventional wisdom about language speed.

  2. C#, especially Unity C#, is quite easy to transition to from Python. The jump to C++ takes more effort between header files, syntax, and core concepts of the language. Working with well thought out API’s can go long way in both cases.

  3. C++ would be the more marketable skill. Outside of Unity, you see C# + .Net used from from time to time for tools, but I suspect most of us TAs are predominately working with Python + Qt for that. In my totally biased opinion, if you know Qt (either C++ or Python) there’s not much reason to choose .Net for a tool. Unless I guess you really love C# and the idea of writing tools that will only ever work in the Windows walled garden :grin:. C++ also has many other uses, such as writing high performance code in say, Maya.

  4. I have no clue which is used more in enterprise, but it could be Unreal due to Epic’s efforts to target other industries.

Last I’ll just say I wouldn’t fret too much about languages. Personally I’d start with exploring Unity. The C# knowledge you gain will also make C++ a bit easier to pick up in the future.

Thank you for the reply. You provided some valuable information, especially

These days how fast or slow Unity and Unreal are has much more to do with the Engine architecture than C# vs C++ performance.

Also, good to know on number 2. Part of me keeps on wanting to learn the most flexible tools of the trade as another part of me realizes I didn’t get into 3D Art to become a programmer (although I’m doing more python pipeline work now than I ever would of imagined in the past). C# seems like the logical decision if it’s a substantially easier transition from Python.

Might just need to ‘bite-the-bullet’ on number 3 and learn C# just for Unity as it doesn’t sound too applicable in the industry outside of that. However, I’m sure it has it’s uses as I’ve already done some very lite programming of C# Solidworks API to help deal with some CAD business (barely scrapped my way through it as it was my first encounter with C#).

Alright, Unity it is then. I’d be happy to hear from others in this community to gain as much understanding as I can. @Crispy4004 - Big thanks for sharing your knowledge with me as a primer.

So when you say non-game 3D realtime app development, what exactly do you mean by that?

Both engines you mentioned are incredibly capable, and can scale pretty well on mobile devices. But without having a better idea of the types of projects you’re thinking of tackling, I wouldn’t be able to say which engine might work better for you.

From a purely programming language perspective, C# is generally an easier transition for python programmers. But honestly C++ in Unreal isn’t that much bigger of a jump.

Let’s just say product training and real estate development on a mobile platform. From the sounds of it, unity would be the lightest and most accessible option. No AR/VR.

I know unreal has been making a push towards arch-viz, but not sure how well that translates on mobile.

That kind of work is pretty much what I used to do on mobile, and we used both Unreal and Unity depending on the project.

Both Unreal and Unity are rather capable on mobile, though most of my mobile experience with them is years old at this point, and at least in the case of Unreal we were targeting higher end mobile devices, but given the pace of mobile improvements that would probably be mid-range at this point.

So yeah, for that kind of use case I can’t see you going wrong with either.