C++ disadvantage when developing for mobile

Hi all, I’m starting to look into C++ more and more and am wondering if there are any disadvantages to writing your game in C++ when developing for mobile?

Will I be able to connect and play a build on an iPhone from Windows10 just as easily if I have a C++/BP game as opposed to a BP only game?

I’m looking for general differences I guess when choosing my approach (runtime speed and ease of coding aside, asking more for practical deployment to iOS and Android reasons).

Thanks!

Blueprints are C++ under the hood, so yes. You shouldn’t have any issues.

Thanks, but I’m pretty sure final builds need to be done on a Mac if your project is a C++ based project for instance, blueprints don’t need that I hear… so does that only apply to final builds? Can I still test my game easily (ie not final build) on both Android and iPhone when developing with C++ on Win10?

To run on device from windows requires bp only

Well, I’ll be…

https://docs.unrealengine.com/latest/INT/Platforms/iOS/QuickStart/2/index.html

I wonder if that’s because Blueprints are LLVM byte code (with a generic C++ wrapper), so the generic Blueprint reloading hooks work well enough to not require a recompile.

Thanks for the input!

Device = iPhone only or on Android as well?

How do developers play test on mobile with this rather large limitation?

From the Android Quickstart:

https://docs.unrealengine.com/latest/INT/Platforms/Android/GettingStarted/3/index.html

No matter what you use, C++ or Blueprints, you will have to use a Mac to sign and upload your game to the iOS store. However, you can do all of your testings and what have you without a mac if you are doing a Blueprint only project. If you are doing a C++ project will have to compile it using Xcode on a Mac.

From what I have been told the reason that this is not possible is due purely to restrictions Apple has put in place that dictate when and where you can compile Xcode. The reason that this does not apply to Blueprints is that they come pre-compiled so to speak. However, no matter what you use C++ or BP you will have to use a Mac when you want to sign and upload your project to the iOS store.

Thank you for the help, so no way to test your project on any mobile apparatus then without a Mac. That does suck quite a bit but I guess I’d have to get hold of a Mac eventually either way. Thanks again.

No, that is not correct. You can get your project on an iOS mobile device without using a MAC. What I was talking about was that to actually put the game on the iOS store to when you are ready to release it requires a MAC. Sorry for confusing you. So again you can use your PC to generate and deploy the required.IPA for an iOS device but you can only use that for testing. When you want to release the game for others, you will need a MAC to do the cert singing.

Ah my bad. That’s not so bad then, I guess the only thing is that you can’t launch on device from the editor onto iPhone with C++ then… I hope I got that right finally. :slight_smile:

Cheers!

Hi, me again. :slight_smile: I’ve been looking all over for some help how to do this for a C++ project, and again - I’m only looking at testing only right now from my windows machine onto iPhone (I’ll buy a Mac later on, but it’ll likely be slow and I’d rather use that only when I have to).

The only page I’ve managed to find is this https://docs.unrealengine.com/latest/INT/Platforms/iOS/index.html, but those guides show remote compiling on Mac and the iOS Quick Start section is for BP projects only (or at least it says so - maybe there are ways around it?). I mainly see people saying you can’t test (maybe they were assuming test + final release mind you) C++ projects so you’re the only resource that say one can work around it if testing only so I thought I’d ask again. :slight_smile:

Sorry to ask again, been struggling a bit… Thank you.

C++ iOS project requires a Mac to compile the application for the phone.
Blueprint ONLY iOS project can use the prebuilt iOS application, which in turn consumes Blueprint changes ( the docs go into more detail ), this is workable from PC or Mac.

Either Project type need to be packaged on a Mac for code signing and release for the App Store.

Thanks, I guess I must’ve misunderstood twice then, which I assumed… but thanks, time to get myself a cheap Mac then.

To be honest I am surprised to hear that it’s possible to even compile/launch a development blueprint build from windows to an iOS device… Considering the lengths apple goes to just to force every dev to buy a mac.

This is an intentional barrier apple has put in place…not an Unreal or C++ limitation.

Yea, I’m not a huge fan of how they operate when it comes to how they demand what people should use… there is however VMWare that runs as a virtual machine, I heard some people run OSX on windows and compile fine on it. If anyone has experience there it’d be great to hear it.

RumbleMonk, while it is possible to run OS X on PC Hardware ( look up hackintosh ), it requires specific models of hardware to be successful. You can probably find 2011 Mac Mini’s for fairly cheap. There are also Mac Mini in the cloud services where you can either pay for the time on the machine or a section of the machine allocated to you per month. I think it is more expensive and limiting that way, but it is more immediate.

While I have a 2014 MacBook Pro and my 2011 Mac Mini, I only leave the Mac Mini on all the time, which makes it reasonable to be my iOS build machine. I have compiled on it ( I think it is a i7 if I recall ), it doesn’t have much memory, making it fairly miserable to perform builds on.

My plan is to build a new machine in September with one of the new i9 18 core CPUs, and create a UnRaid OS base layer, and Windows 10 and a Hackintosh host OSes on it, splitting off 2 cores ( 4 threads ) for the Hackintosh OS, 1 core ( 2 threads ) for UnRaid, 2 cores for Docker, and the rest dedicate to Windows 10 ( or possibly splitting off 2 cores for a secondary Windows 10 OS for FastBuild distributed compiling ). This should give me what I am looking for out of my new dev / build machine.