Squall
Squall

Reputation: 4472

How to port a PC game to Android written in C++

I want to create a simple game like Space Invaders. I know that I can use Android NDK, but I have to port the libraries that I use. I can not use third-party proprietary libraries.

I will use OpenGL, but OpenGL API seems different on Android. I have to use jpeg and png textures, and write texts. Can I compile libjpeg, libpng and freetype for Android?

I can not have specific implementation of the game engine (C++) and rendering routines (C++ and OpenGL), because that is the complex part.

There are components that I am disposed to implement for each platform. There is no problem with windowing system and user input, because I will use a specific implementation for each system, it is simple for me.

I use SDL and its extensions for audio on PC, but it is easy to use. I can use specific audio libraries for Android.

Thanks

Upvotes: 4

Views: 6363

Answers (1)

Alok Save
Alok Save

Reputation: 206536

Can I compile libjpeg, libpng and freetype for Android?

Yes you will have to recompile all the native libraries specifically for Android. Yes, you do need the source code for all 3rd party native libs you plan to use simply because Usually when we compile and link these libraries outside Android they are linked to glibc but unfortunately Android doesn't use glibc due to liscence and performance issues. Android uses a watered down version of glibc called libc. It has matching symbol names to glibc for most of the usual functionalities. But as far as i know the libc doesn't have some functionality related to Strings and it definitely doesnt have some posix support. If your native libraries are using any of the deprecated functionality you will have to find workaround for those by using alternative functionality supported by libc and coding your libs accordingly.

Also, as you righty pointed out you will have to use the NDK to interface Java(Android app/fwk) to native world(C++).

Though this sounds pretty simple in my experience compiling native libraries on Android(Android porting) has traditionally been very time consuming with no guarantee of sucesses.

Upvotes: 5

Related Questions