IwGame Engine Tutorial – Installation

New here? What’s IwGame? IwGame is an open source free to use cross platform game engine for iPhone, iPad, Android, Bada, Playbook, Symbian, Windows Mobile, LG-TV, Windows and Mac, built on top of the Marmalade SDK.

Firstly, download the latest version of the IwGame SDK from http://www.drmop.com/index.php/iwgame-engine/

If you haven’t already installed the Marmalade SDK then grab a copy from http://www.madewithmarmalade.com

IwGame is currently provided as a Marmalade library project and test bed project giving examples of how it should be used.

The IwGame zip archive that you downloaded contains the following important folders:

IwGame
	Docs – Contains documentation
	h – Contains IwGame engine headers
	Libs – Contains IwGame dependencies such as zlib and libpng
	Source – The full source to IwGame
	Examples – Contains example apps
	TestBed – A test bed app that shows IwGame usage and integration

To open up the test bed app go to IwGame\TestBed and open the IwGame_TestBed.mkb Marmalade project file, this will open up the test bed project in Visual Studio / XCode.

If you take a look at the solution explorer you will see a IwGame filter / folder. If you drill down you will be able to see the source files and the Marmalade project file that make up the engine.

Now lets take a look at the IwGame_TestBed.mkb project file to find out how to integrate IwGame into your project.

From the MKB we can see that we only need to add two commands to integrate IwGame into our project:

options
{
	module_path="../IwGame"
}

subprojects
{
	IwGame
}

These commands will tell Marmalade where to locate the project.

Once you have updated your project MKB with the above changes, run your MKB file again to regenerate your project. You can of course place the IwGame engine anywhere you like, just remember to change the module path.

Note that if you already have something in module_path then you can quite easily tag IwGame into the path like this:

module_path=”module_path=”$MARMALADE_ROOT/modules/third_party;../IwGame”

4 thoughts on “IwGame Engine Tutorial – Installation

  1. Andrew Sargeant says:

    Hi,

    I attempted to run the Test Bed project, but it failed build. My software details:
    Max OS X 10.7.3 (Lion)
    Xcode 4.3.1
    Marmalade SDK 5.2

    The errors/warnings it showed were:

    LLVM GCC 4.2 Warning: Invalid C/C++ compiler in target IwGame: com.apple.compilers.marmalade

    LLVM GCC 4.2 Warning: Taking address of Temporary
    – references line:
    sprite->setSrcRect(&brush->getSrcRect());
    in CIwGameActorImage::SetFromBrush

    LLVM GCC 4.2 Error: Invalid use of incomplete type ‘struct png_struct_def
    – references line:
    CIwGameImage_png_encode* pd = (CIwGameImage_png_encode*)png_ptr->io_ptr;
    in void CIwGameImage_png_write_data

    LLVM GCC 4.2 Error: Forward declaration of ‘struct png_struct_def’
    typedef struct png_struct_def png_struct;
    in png.h

    Xcode also suggests validating project settings and updating to their recommended settings, which gets rid of most of the above issues, but then gives me about 1000 Format string is not a string literal warnings and one error remains:

    Semantic Error: Taking the address of a temporary object of type ‘CIwRect’ on line:
    sprite->setSrcRect(&brush->getSrcRect());
    in CIwGameActorImage::SetFromBrush

    I think what you guys are heading for is awesome, but do you have any thoughts on these errors? If required, I can email you the Xcode project if that helps?

    Cheers,

    Andy

  2. drmop says:

    Hi Andrew,

    You need to fall back to version 0.33 of IwGame as you are using a version of Marmalade below 6.0. In order to use 0.34 and onwards you will need Marmalade 6.0+

    Mat

  3. zukka says:

    Hi .. I attempted to run the Test Bed project, but it failed build. My software details (other examples work):
    Windows Vista Professional
    Marmalade 6.1
    IwGame 0.4

    1>d:\iwgame\source\iwgameaudio.cpp(110): error C2653: ‘CIwSoundWAV’ non è il nome di una classe o di uno spazio dei nomi
    1>d:\iwgame\source\iwgameaudio.cpp(110): error C3861: ‘Create’: identificatore non trovato
    1> IwGameAnim.cpp
    1> Generazione del codice in corso…
    1> Compilazione in corso…
    1> IwGameAdsViewAnimator.cpp
    1> IwGameAdsView.cpp
    1> IwGameAdsMediator.cpp
    1>d:\iwgame\source\iwgameadsmediator.cpp(16): warning C4005: ‘_DEBUG’: ridefinizione macro
    1> argomenti della riga di comando: vedere la precedente definizione di ‘_DEBUG’
    1> IwGameAds.cpp
    1>d:\iwgame\source\iwgameads.cpp(20): warning C4005: ‘_DEBUG’: ridefinizione macro
    1> argomenti della riga di comando: vedere la precedente definizione di ‘_DEBUG’
    1> IwGameActorParticles.cpp
    1> IwGameActorExt.cpp
    1> IwGameActor.cpp
    1> IwGameActions.cpp
    1> IwGame.cpp
    1> Game.cpp
    1>d:\iwgame\testbed\source\game.cpp(138): error C2039: ‘setGroup’: non è un membro di ‘CIwGameAudio’
    1> d:\iwgame\h\iwgameaudio.h(119): vedere la dichiarazione di ‘CIwGameAudio’
    1> ActorPlayer.cpp
    1> Generazione del codice in corso…
    ========== Compilazione: 0 completate, 1 non riuscite, 0 aggiornate, 0 ignorate ==========

  4. drmop says:

    TestBed is no longer supported or updated, we should have removed it. This will be replaced with a full test bed in the future

Leave a Reply