I was in a similar boat as your programmer up until the middle of last year when Unity did away with the perpetual license (I have owned one since 2012). The biggest hurdle I had to get over was the Unreal way of doing things.
Pros:
- You don’t have to worry about Mono not being updated (try a foreach loop on mobile in Unity and see what happens)
- You can make BP nodes in C++ so the non-programmers can do things
- Forums have people who know a lot of stuff (Rama is one of the C++ gurus I see around)
Cons:
- ReSharper or VAssistX is almost a requirement because VS intellisense is really slow
- I will admit that Unity has better documentation but UE4s is not unusable
- The asset store isn’t as big as Unity (could be a con depending on how reliant you guys are)
- Asset management is way better in Unity
Notes:
- It takes a bit to get used to the terminology (coming from Unity)
- It will also take a little more effort to find an answer to a solution since BP is everywhere, C++ not so much.
- BP->C++ performance shouldn’t be that noticeable (I’d still write a minecraft/terraria world generation algorithm in C++ though)
- You can make a C++ project and always use BPs but a BP project to a C++ one is a nightmare (so I’ve heard anyway)
- UDK is way different than UE4 (I tried it once and it was a bad experience)
I would do it again in a heartbeat knowing what I do now even though I was very against UE4 at the beginning. For tidbits of things to get excited for have him look up delegate methods and the built in damage system for starters.