Big Bad Robots is an indie game developer but we also do contract development. We have developed on all kinds of platforms (PC,Handheld,Consoles) but now primarily focus on iOS,Android and Unity. Contact us if you looking for developers with over 20 years experience in software and game development at biz -at- bigbadrobots.com

Integrating C++ via the Android NDK.

November 16, 2009terence

I finally had enough time to look at developing on the Android platform and got my test integration of C++ code with the Android NDK working. The biggest hurdle proved to be familiarity with the Android development environment itself. The following tips apply to NDK 1.6r1:

1) You DO NOT have to have surround your functions with a various extern “C”‘s. Unlike what people are saying out there about having to do it you do not have to do it.

2) Check the names of the class to make sure the packages match your JNI interface. (i.e. if your class with the native interfaces are com.examples.HelloWorld…..your JNI class should be Java_com_examples_HelloWorld_<class>

3) Check your android.xml file for the proper package export. When you refactor/rename things in the Eclipse editor it will not update the package export. This will result in Android not being able to find your JNI interface and complain in logcat.

As of 1.6r1, the NDK is something still to play around with and not really ready for production development. That seems to be way the Google Android teams seems to like to run things. Although the OpenGL ES 1.0 libs are available, other supporting libraries are not (i.e. those to load png or jpg’s for texture. The audio libraries). My initial experiments on writing xPhone with Android has a initial platform would prove daunting to say the least.

Android NDK 1.6 release 1

October 6, 2009terence

I was checking the Google Android site and noticed that the Native Development Kit release 1 is out. The exciting part of this release, is that now we can natively write games in C++ with access to the OpenGL ES 1.1 api. This should mean that we can start looking at developing proper games on this platform. This will also mean, that I will need to figure out how to get xPhone to start compiling against the NDK. Unlike my research into Windows Mobile and it’s broken Graphics API support at this time,  this means working with a 3D API versus having to support Direct Draw.

Still need to poke around it more. The bad part will probably be working via Eclipse to get things done. I already have to use 2 other IDE’s (Visual Studio and Xcode) and so a third is fairly unproductive.

Windows Mobile & Unicode

September 17, 2009terence

I was working on integrating tinyxm into the current xPhone build to handle configuration files and was having a heck load of problems. It seems that that Windows Mobile doesn’t like it when you don’t specify the UNICODE/_UNCODE predefines and use other data types. Understandably a mobile device should Unicode ONLY targets because phones need to be able to support multiple language out of the box. Still, it didn’t help with me having to play around with compiler settings until I was blue in the face.

That’s part of challenge of cross platform development is that everything is different on different platforms even down to the way text works.

Configuration files…

September 14, 2009terence

I have been doing some research on how to approach configuration files for the xPhone Game Engine (A cross platform game engine for Smartphones). The design objectives are:

  • Human readable – Should be able to read and change configuration
  • Used only for initialization and not run time configuration
  • Any library used should be small and minimal impact because we are targeting embedded devices

The choices are either to:

  • Wrap up tinyxml and have configuration as xml files. xml files are barely human readable though
  • Use libconfig, which allows for more human readable. Problem is integration with scripting language in the future
  • Code another ini type library

My current favorite is still leaning for xml because:

  • tinyxml will be useful if the user of the game engine wants to read/write their own game data in xml format
  • xml is supported by python which is the scripting system I would use for the tools and ingame scripts