Advertisement

Remake a Direct3D 11 C++ application for Android (help me choose a library/engine)

Started by November 03, 2018 09:54 PM
5 comments, last by andriyndev 6 years ago

Hello everyone!

I want to remake a Direct3D 11 C++ application for Android. I'm not familiar with any engines or libraries on the current time, only with pure Direct3D and OpenGL (including OpenGL ES), but I'm ready to learn one. Which library/engine should I choose? On the current time I'm considering LibGDX for this purpose, but I heard that it's not very suitable for 3D. I was also considering OpenGL ES (with Java) but I think it will be tricky to improve the game in this case (I'm planning to use an animated character, particles in the game). Performance is one of the main requirements to the game. I would also wish to have a possibility to compile the code for iOS or easy remake the code for this platform.

Thanks in advance!

If you intend to target iOS also, it seems using an engine that targets both platforms would be preferable to using e.g. Java + OpenGL ES. The latter choice would likely require you to rewrite some or all of your code for iOS, and would also probably be more work than using an existing engine. (You can increase code sharing between iOS and Android by using C/C++, but you'd still have to deal with portability issues that most engines will handle for you.)

I'll also note that Java + OpenGL ES shouldn't limit you in terms of what you can accomplish design-wise, and I'd be surprised if it limited you in terms of performance (unless you're doing something particularly demanding). I think the most compelling reason to pursue other options is probably portability, as discussed above.

As for engines, what springs to mind immediately is LigGDX (I can't comment on its suitability for 3-d other than that it seems to support it), Unity, or one of the Cocos2d branches (not sure off the top of my head what the state of 3-d support is there). I've also seen Godot recommended often, but I don't have any experience with it myself.

Advertisement

Recommendations will depend on what exactly the application is, how big it is, what it does, what percentage is graphics / other code etc, application is rather a vague term.

Just as a heads up, there is no need to use much java on android, you can use it just as a thin layer to call your c++ code compiled with NDK, or you may be able to go native completely and have no java code. c++ then is cross platform and you can have an android / PC / iOS build.

You can break your programm for 3 parts:

1) Data layer

2) Graphics layer

3) Bisness logic/Scripting/Gameplay layer

Probably you must develop most flexible Data/Graphics Layer. And make your programm crossplatform. Or take an engine (like Unity, NDK, libGDX) and develop from scratch, again.

4 hours ago, lawnjelly said:

c++ then is cross platform and you can have an android / PC / iOS build.

Just to clarify for the OP, even if you used C++ primarily or exclusively, you'd still likely need a fair amount of platform-specific code in this scenario.

Thank everyone for answers! I think I'll use LibGDX.

This topic is closed to new replies.

Advertisement