I’m curious to this, one of my favorite games is DUSK, which is made in Unity with a lot of texture (and rendering?) modification.
Textures are not problematic, it's a task for artists. I'm not sure what you mean by rendering or "modifications". Do you mean shaders? Or the engine?
Shaders were originally in CG, but are now HLSL style. More precisely, CG was pretty much Direct3D 9 style shaders, while currently HLSL is D3d 11 style wrapped in macros. The shaders can be cross-compiled to OpenGL (ES), Metal and Vulkan. Very specific things are hard to do and may require manual tweaking.
It works perfectly well on Mac, so what complex behavior causes problems?
Unity is a modular system, it doesn't come with everything pre-installed. Additional packages provided by Unity or 3rd party providers can be installed via Unitys own package manager. Let's say you want to implement AI-agents in your game, to give NPCs specific behavior outside of pre-scripted behavior. You'd use the ml-agents package for this provided by Unity (
https://unity.com/products/machine-learning-agents). This allows you to run training, tests and inference of your models in Unity. It's using an internal communications API including a proxy and for some reason, on some machines, it's not working properly. Connecting to other ports won't work. For some, disabling the firewall solved the problem, for others changing the proxy environment configuration did the job, others had to turn off gatekeeper and yet for some it won't work at all. There are more such behaviors and some packages are not available for macOS at all (they don't work), so the "basic" features work, but more advanced ones do not. There used to be a package for baking specific lighting textures, which didn't work on macOS (maybe it does now, not sure). So if you don't need this feature, everything is fine. If you're using it in Windows and then want to port it to Mac, you either simply can't use this feature or you have to work around it (additional effort to port things).
Don't get me wrong, bugs are common and happen everywhere, but why does a macOS user/developer have to work around these issues when Windows gets a mouse click and it works (most of the time)? Again, for very, very simple games, this might not be an issue at all. It all depends on the game.
As a complete outsider I’m guessing that rendering is a sticking point because of Metal vs DirectX vs Vulkan issues.
Yes and no, depends on what you do. The graphically very simple project I've worked on today has no problem with this. Going from Metal to DX is "a click of a button". The focus here wasn't graphics though, it was training some agents.
hx! Very helpful - I believe CARLA is a spin-off from Udacities Self Driving Car nanodegree program?
Yes, at least that's what they're using or used in the past. They originally provided a simulator before CARLA, maybe that evolved into CARLA or inspired it heavily. I've not had a look at the program since they originally launched it, but still have that original simulator somewhere on a hard disk.
Soory for O/T: Can you comment on the best sim environment for autonomous vehicles? Thx very much!
Hard to say what's best. Also depends on the vehicle and what you want to do. I assume you mean cars and not things like a forklift in a warehouse (more robotics). I'd say CARLA is probably the best choice as it's free and works with consumer hardware and provides most of what one can ask for unless you're a car manufacturer.
If you want to go custom sensors and use the results in a production environment (real cars) then Nvidia Drive Sim is your best bet. It's by far the best simulator I've seen so far, but requires two Nvidia boxes to run ($500k each). I wanted to buy it for research and teaching a long time ago, but since I would have needed about 10 to 20 of these I scratched the idea (the $ can buy way more Dell systems with Nvidia GPUs) and we went AirSim/CARLA.
Looking back, a good decision as Nvidia will provide a free version later this year (probably not all features, but the full feature set is probably only interesting for car manufacturers). There's currently early access for those in the Nvidia developer program. While I am in this program, I've not had the time to try it yet. I hope I can have a closer look at it in the next two or three months.
That being said, custom sensors can be integrated in AirSim/CARLA, it's just not very well documented. It's something a colleague is working on right now, but documentation is (as usual) poor. We're using AirSim for anything drone related as it provides hardware-in-the-loop for the autopilot of our choice (PX4). That way our autonomous drones can be fully simulated and we can jump onto the real thing right away.
Also CARLA has that "Apple" feeling. It doesn't eat up too many resources, can be run on laptops, the learning curve isn't too steep and similar to Apple, I enjoy using it.