About

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

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

Const correctness revisited…

September 13, 2009terence

I have always had a heck of a time reading and figuring out what ‘consts’ apply to. As some of you may well know, you should try to train yourself to use const as early and often as necessary. Read more at Const Correctness to get an idea when and where to use it.

Then I found this gem while reading Scott Meyers Effective C++, hope he won’t get mad me replicating some of it here:

char *hello = “Hello World”;    // non const pointer, non const data

const char* hello = “Hello World”;   // Non const pointer, const data

char * const hello = “Hello World”;  // const pointer, non const data

const char* const hello = “Hello World”;  ///const pointer and data

Basically the idea is to draw line on the asterix. If const appear on the left on the line, what is pointed to is const. If the const appear on the right, then the pointer is const.

Formating your class header…

September 12, 2009terence

This is more of a note to self about how to format a C++ header file based on what I think is important:


class MyClass

{

public:

<Public defined enums and constants>

public:

<Public variables OR Get/Set functions. Public variables are frowned upon anyways>

public:

<Public defined interfaces and constructors

private:

<Private variables>

private:

<Private functions>

};

The basic rules of thumb are:

  • Public interfaces are on top because that is the first thing programmers reading your code want to know without scrolling down through the rest of the file.
  • Protected interfaces follow
  • Private interfaces are last (and often don’t change)
  • Be consistent
  • Use white spaces
  • Split up constants, variables and interfaces with seperate “public/protected/privates”s

My first blog post on my new blog….

terence

This is my first posting after migrating from Lunarpages to Dreamhost. I have actually moved a while back but haven’t been able to get round to setting up the blog properly.

I’ve been busy working on our first iPhone game. It’s a little stuck right now and needs a good swift kick in the pants to get done. Our target is to have it out by Christmas. I’ve also been puttering around with developing a cross-mobile game engine currently called xPhone. Setting up the project and getting it on two targets (iPhone and Windows Mobile) is a lot of work.

I’ve also need to finish up our my technical workshop on Game Engines/Game Programming that I am teaching later this month.