<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DrMop &#187; Marmalade SDK</title>
	<atom:link href="http://www.drmop.com/index.php/categories/programming/marmalade-sdk/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.drmop.com</link>
	<description>Mobile Game and App Programming Tutorials</description>
	<lastBuildDate>Sat, 19 May 2012 22:16:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Marmalade SDK 6.0.2 Released</title>
		<link>http://www.drmop.com/index.php/2012/05/11/marmalade-sdk-6-0-2-released/</link>
		<comments>http://www.drmop.com/index.php/2012/05/11/marmalade-sdk-6-0-2-released/#comments</comments>
		<pubDate>Fri, 11 May 2012 14:51:39 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[AirPlay SDK]]></category>
		<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Blackberry Playbook App Development]]></category>
		<category><![CDATA[C++ Programming]]></category>
		<category><![CDATA[Game and App Development]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Samsung Bada Development]]></category>
		<category><![CDATA[Marmalade SDK Update 6.0.2]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1667</guid>
		<description><![CDATA[Marmalade have just released 6.0.2 of their awesome SDK. Looking at the change list there are some very welcome bug fixes: Exporters: Added support for Maya 2013 and Max 2012 iOS: touches are no longer passed to the surface below the web view iOS: s3eOSReadString now handles split keyboards correctly iOS: added s3eEdkAppGetInitialOpenURL to get [...]]]></description>
			<content:encoded><![CDATA[<p>Marmalade have just released 6.0.2 of their <a title="Marmalade SDK download 6.0.2 update" href="https://www.madewithmarmalade.com/downloads" rel="nofollow" target="_blank">awesome SDK</a>. Looking at the change list there are some very welcome bug fixes:</p>
<ul>
<li>Exporters: Added support for Maya 2013 and Max 2012</li>
<li>iOS: touches are no longer passed to the surface below the web view</li>
<li>iOS: s3eOSReadString now handles split keyboards correctly</li>
<li>iOS: added s3eEdkAppGetInitialOpenURL to get the initial open URL</li>
<li>android: fixed icf splash screens when fixing rotation</li>
<li>playbook: s3eOSReadString now cancels properly</li>
<li>IwHTTP: fixed to work without threads</li>
<li>Added menu options to Windows simulator for Retina display</li>
<li>OSX: fixed to make building extensions possible</li>
<li>Android splash fixed when using dispfixrot=2</li>
<li>android: building of EDK modules</li>
<li>ios: WebView orientation (IwGX and s3eWebView) on iPad</li>
<li>android: fixed crash with image property in CImagePtr when loading a png file</li>
</ul>
<p>There is however a crash issue with Bada builds</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/05/11/marmalade-sdk-6-0-2-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Pocketeers Limited is taking on New Mobile Projects</title>
		<link>http://www.drmop.com/index.php/2012/05/03/pocketeers-limited-new-mobile-projects/</link>
		<comments>http://www.drmop.com/index.php/2012/05/03/pocketeers-limited-new-mobile-projects/#comments</comments>
		<pubDate>Thu, 03 May 2012 14:05:55 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Blackberry Playbook App Development]]></category>
		<category><![CDATA[Cool news]]></category>
		<category><![CDATA[Digital Publishing]]></category>
		<category><![CDATA[Game and App Development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[IwGame Engine]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Nintendo]]></category>
		<category><![CDATA[Pocketeers Limited]]></category>
		<category><![CDATA[Samsung Bada Development]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[Game projects wanted]]></category>
		<category><![CDATA[Mobile projects]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1568</guid>
		<description><![CDATA[&#160; Need a mobile game or app developed across multiple platforms (iPhone, iPad, Andriod,Bada, PlayBook etc..) at little extra cost? Or maybe you need a rapid prototype of your next game or app idea creating as proof of concept? Pocketeers Limited a UK based mobile app and game developer (established in 2002) responsible for the [...]]]></description>
			<content:encoded><![CDATA[<p><!--adsandwich--><br />
<div id="attachment_1569" class="wp-caption aligncenter" style="width: 266px"><a href="http://www.drmop.com/wp-content/uploads/2012/05/Pocketeers_Logo_256x256.png"><img class="size-full wp-image-1569" title="Pocketeers_Logo_256x256" src="http://www.drmop.com/wp-content/uploads/2012/05/Pocketeers_Logo_256x256.png" alt="Pocketeers Limited Mobile Developer Logo" width="256" height="256" /></a><p class="wp-caption-text">Pocketeers Limited Mobile Developer</p></div></p>
<p>&nbsp;</p>
<p>Need a mobile game or app developed across multiple platforms (iPhone, iPad, Andriod,Bada, PlayBook etc..) at little extra cost? Or maybe you need a rapid prototype of your next game or app idea creating as proof of concept?</p>
<p>Pocketeers Limited a UK based mobile app and game developer (established in 2002) responsible for the creation of the IwGame Engine are looking to take on additional gaming and app projects. Pocketeers will consider any size project, but will favour those projects that utilise the IwGame engine / Marmalade SDK. Pocketeers have worked with clients large and small including the likes of Electronic Arts, Destination Software, Ideaworks, Honey Badger Studios, Tournay Software, and others.  Pocketeers provide a full range of services including design, coding, art work, audio and testing at very competitive prices.</p>
<p>For more details you can contact Pocketeers Limited via the web at <a href="http://www.pocketeers.co.uk/?page_id=8">http://www.pocketeers.co.uk/?page_id=8</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/05/03/pocketeers-limited-new-mobile-projects/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marmalade Job Post &#8211; Playalla Need Word Game Developer</title>
		<link>http://www.drmop.com/index.php/2012/04/30/marmalade-job-post-playalla-need-word-game-developer/</link>
		<comments>http://www.drmop.com/index.php/2012/04/30/marmalade-job-post-playalla-need-word-game-developer/#comments</comments>
		<pubDate>Mon, 30 Apr 2012 09:41:27 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[AirPlay SDK]]></category>
		<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Blackberry Playbook App Development]]></category>
		<category><![CDATA[C++ Programming]]></category>
		<category><![CDATA[Cool news]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Marmalade SDK Jobs]]></category>
		<category><![CDATA[Samsung Bada Development]]></category>
		<category><![CDATA[Marmalade SDK Job]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1540</guid>
		<description><![CDATA[Hi Everyone, Another job posting has come across my desk recently so here it is. A new start-up called Playalla is seeking a  C/C++ Marmalade SDK developer for a short term contract (around 3 months) to help them finish their word games. Playalla already have a prototype of their game up and running based on [...]]]></description>
			<content:encoded><![CDATA[<p>Hi Everyone,</p>
<p>Another job posting has come across my desk recently so here it is. A new start-up called Playalla is seeking a  C/C++ Marmalade SDK developer for a short term contract (around 3 months) to help them finish their word games. Playalla already have a prototype of their game up and running based on match-3 game play. Ideally they are looking for a developer that has previous experience with creating word games. The work can be carried out remotely so is ideal for a freelance game developer.</p>
<p>If you are interested then please send a few details about yuorself, your experience (games released etc..) to Wissam at <a href="mailto:wissamharoun@hotmail.com">wissamharoun@hotmail.com</a></p>
<p>Mat</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/04/30/marmalade-job-post-playalla-need-word-game-developer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Marmalade Job Post &#8211; BeInToo Need A Developer</title>
		<link>http://www.drmop.com/index.php/2012/04/27/marmalade-job-post-beintoo-need-a-developer/</link>
		<comments>http://www.drmop.com/index.php/2012/04/27/marmalade-job-post-beintoo-need-a-developer/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 19:35:57 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[AirPlay SDK]]></category>
		<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Blackberry Playbook App Development]]></category>
		<category><![CDATA[C++ Programming]]></category>
		<category><![CDATA[Game and App Development]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Marmalade SDK Jobs]]></category>
		<category><![CDATA[Samsung Bada Development]]></category>
		<category><![CDATA[Marmalade SDK Job]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1525</guid>
		<description><![CDATA[Hi Everyone. The guys over at http://www.beintoo.com/ that developed the awesome BeInToo gamification and rewarding technology are looking for a capable Marmalade SDK developer that can use the EDK to bring their SDK over to Marmalade. If you know your way around the EDK and know enough about the Android / iPhone SDK&#8217;s then you should probably get [...]]]></description>
			<content:encoded><![CDATA[<p>Hi Everyone.</p>
<p>The guys over at <a href="http://www.beintoo.com/" rel="nofollow" target="_parent">http://www.beintoo.com/</a> that developed the awesome BeInToo gamification and rewarding technology are looking for a capable Marmalade SDK developer that can use the EDK to bring their SDK over to Marmalade. If you know your way around the EDK and know enough about the Android / iPhone SDK&#8217;s then you should probably <a href="http://www.beintoo.com/contacts.html" rel="nofollow" target="_parent">get in touch.</a></p>
<p>The work can be carried out remotely and does not have to be done on-site which is great for freelance developers.</p>
<p>You can take a quick look at the RESTful API to see what the SDK is all about <a href="http://documentation.beintoo.com/" rel="nofollow" target="_parent">http://documentation.beintoo.com/</a></p>
<p>Good luck</p>
<p>Mat</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/04/27/marmalade-job-post-beintoo-need-a-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Game Engines Review</title>
		<link>http://www.drmop.com/index.php/2012/04/25/game-engines-review/</link>
		<comments>http://www.drmop.com/index.php/2012/04/25/game-engines-review/#comments</comments>
		<pubDate>Wed, 25 Apr 2012 13:08:13 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[AirPlay SDK]]></category>
		<category><![CDATA[Cool news]]></category>
		<category><![CDATA[IwGame Engine]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Pocketeers Limited]]></category>
		<category><![CDATA[Mobile Game Engines]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1504</guid>
		<description><![CDATA[I came across a cool web sit the other day that shows many of the different game engine solutions for mobile platforms at http://mobilegameengines.com. The list itself is very comprehensive and includes information relating to the engines as well as reviews from actual engine users. If you have a spare 5-10 mins please consider leaving a [...]]]></description>
			<content:encoded><![CDATA[<p>I came across a cool web sit the other day that shows many of the different game engine solutions for mobile platforms at <a href="http://mobilegameengines.com/" rel="nofollow" target="_blank">http://mobilegameengines.com</a>. The list itself is very comprehensive and includes information relating to the engines as well as reviews from actual engine users.</p>
<p>If you have a spare 5-10 mins please consider leaving a review for the IwGame Engine at <a href="http://mobilegameengines.com/iphone/engines/40-iwgame-engine" rel="nofollow" target="_blank">http://mobilegameengines.com/iphone/engines/40-iwgame-engine</a></p>
<p>And possibly also a review for the Marmalade SDK at <a href="http://mobilegameengines.com/iphone/engines/11-marmalade" rel="nofollow" target="_blank">http://mobilegameengines.com/iphone/engines/11-marmalade</a></p>
<p>A BIG thank you to anyone that gets the time to leave a review</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/04/25/game-engines-review/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>IwGame Engine v0.34 Released &#8211; Modifiers, Box2D Joints and Marmalade 6.0 fix</title>
		<link>http://www.drmop.com/index.php/2012/04/17/iwgame-engine-v0-34-released-modifiers-box2d-joints-and-marmalade-6-0-fix/</link>
		<comments>http://www.drmop.com/index.php/2012/04/17/iwgame-engine-v0-34-released-modifiers-box2d-joints-and-marmalade-6-0-fix/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 17:23:33 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[AirPlay SDK]]></category>
		<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Blackberry Playbook App Development]]></category>
		<category><![CDATA[C++ Programming]]></category>
		<category><![CDATA[Cool news]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[IwGame Engine]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Pocketeers Limited]]></category>
		<category><![CDATA[Samsung Bada Development]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[IwGame Update]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1442</guid>
		<description><![CDATA[New here? What&#8217;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. You can find out more and download the SDK from our IwGame Engine page. Well this release is a [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.drmop.com/wp-content/uploads/2012/01/IwGameLogo2.png"><img class="aligncenter size-large wp-image-705" title="IwGameLogo2" src="http://www.drmop.com/wp-content/uploads/2012/01/IwGameLogo2-1024x300.png" alt="" width="512" height="150" /></a></p>
<p>New here? What&#8217;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 <a title="Marmalade SDK" href="http://www.madewithmarmalade.com/" rel="nofollow" target="_blank">Marmalade SDK</a>. You can find out more and download the SDK from our <a title="IwGame Engine" href="http://www.drmop.com/index.php/iwgame-engine/" target="_self">IwGame Engine page</a>.</p>
<p>Well this release is a little earlier I’m afraid, we wanted to get UI functionality into 0.34, but 0.33 had a compile issue with the recent Marmalade 6.0 release so we decided to do a release now.</p>
<p>Below is the list of changes for IwGame 0.34:</p>
<ul>
<li>Fixed Marmalade 6.0 compile error</li>
<li>JPEG loading support has been removed as this is now supported by Marmalade image classes</li>
<li>New extensions system added (pass true for enable_extensions in IwGame::Init() to enable, enabled by default) – Extensions are none standard IwGame code that will be added over the coming months to support game specific features</li>
<li>Actions now have a 4th parameter</li>
<li>New modifier system added that allows you to add functionality units to actors and scene. This enables a build from blocks style development</li>
<li>New AddModifier action that can be used to add a modifier to an actor or scene and modifier its behaviour in real-time</li>
<li>New ChangeModifier action that can be used to change the active state or remove a modifier from an actor or scene</li>
<li>Actors can now be marked as draggable. A draggable actor can be moved aruond by the user using their finger</li>
<li>New SetProperty action added for actors. You can now directly change the properties of an actor using actions. Can also be used to add torque and force onto actors under control of the physics system</li>
<li>New AddProperty action added for actors. This action can be used to add a value onto the peoperties of an actor</li>
<li>IwGame now supports brushes in code and in XOML. Brushes can be created and attached to actors saving you from having to specify image and SrcRect for each actor. This enables actor styling across any actors</li>
<li>CIwGameActorImage can now be instantiated from XOML using the ActorImage tag</li>
<li>New XOML atlas inner tag added to animations to allow auto generation of sprite atlas frames</li>
<li>Support has been added for joints (distance, revolute, prismatic, pulley and wheel joints are supported in code and in XOML)</li>
<li>A scenes physics update can now be changed between constant time step and variable</li>
<li>Box2D materials now support bullet, fixed rotation and gravity scaling parameters</li>
<li>Checks for duplicates added to resources, variables, actions, modifiers, class creators</li>
<li>New CIwGameActorConnector extension actor added – This actor will size and orientate itself so that it connects two static / dynamic points in space (can target moving actors)</li>
<li>New CIwGameModFollowHeading modifier extension added – When added to an existing actor the actor can be controlled using headnig and speed instead of velocity</li>
<li>CIwGameImage::CreatePNG() now supports RGBA_8888</li>
<li>Two basic Hello World examples added, one that displays text in code and another that uses XOML</li>
<li>BUG FIX: IwGameBox2d now coompiles on Mac without error</li>
<li>BUG FIX: CIwGameBox2dBody::setFixture() now behaves as expected</li>
<li>BUG FIX: Collision flags are now restored when turning an object from none collidable to collidable</li>
<li>BUG FIX: Memory leak in CIwGameActorImage::SetSrcDest(), SetSrcRect() and SetDestSize()</li>
<li>BUG FIX: Fixed problem with html parsing in CIwGameAds::ExtractLinkAndImageFromtHTML()</li>
<li>BUG FIX: CIwGameImage::CreatePNG() crash bug fixed</li>
</ul>
<p>Lots of changes and a few bug fixes for good measure. The most interesting changes include Box2D physics joints (been playing with them all week and they are awesome), the new modifiers system, draggable actors and the ability to set actor properties directly using actions. Lets look at some of these new changes in more detail:</p>
<h2>Box2D Joints Support</h2>
<p>Physics joints enable you to connect physical bodies together in a variety of ways. The following types of physical joints are currently supported:</p>
<ul>
<li>Distance – A distance joint limits the distance of two bodies and attempts to keep them the same distance apart, damping can also be applied</li>
<li>Revolute – A revolute joint forces two bodies to share a common anchor point. It has a single degree of freedom and the angle between the two bodies can be limited. In addition a motor can also be applied to the joint</li>
<li>Prismatic – A prismatic joint limits movement between the two bodies by translation (rotation is prevented). The translational distance between the two joints can be limited. In addition a motor can also be applied to the joint</li>
<li>Pulley Joint – A pulley joint can be used to create a pulley system between two bodies so that when one body rises the other will fall.</li>
<li>Wheel Joint – A wheel joint restricts one body to the line on another body and can be used to create suspension springs. A motor can also be applied to the joint</li>
</ul>
<p>All joints share the same base class IIwGameBox2dJoint</p>
<p>Joints can be created in code and attached to a body using CiwGameBox2dBody::addJoint(). Joints can later be removed using removeJoint(). You can also search for existing joints using getJoint() and findJoint()</p>
<pre>        &lt;ActorImage Name="Crate1" ...... /&gt;
        &lt;ActorImage Name="Crate2" ...... &gt;
            &lt;Joints&gt;
                &lt;Joint type="distance" ActorB="Crate1" OffsetA="0, 50" OffsetB="0, -50" Frequency="10" Damping="0" SelfCollide="true" /&gt;
            &lt;/Joints&gt;
        &lt;/ActorImage&gt;</pre>
<p>The easiest way to create and attach joints is using XOML. Below is an example showing how to create and attach a distance joint between two crates:</p>
<h2>Actor and Scene Modifiers</h2>
<p>IwGame supports modifiers using the IwGameModfier system. Modifiers can be thought of as small functional building blocks that can be stacked in an actor or scene to extend the functionality of that actor or scene. For example, a typical modifier for a scene could be one that tracks the players scores / hi-scores, change day / night settings or detects special gestures. An actor modifier example could be a modifier that allows the actor move around using heading and speed or even a modifier with functionality specific to your game such as make a baddy that walks left and right on a platform. The idea is to allow developers to build games and apps up from smaller re-usable building blocks and be able to add them using code or XOML. Below is a quick example showing how to attach a modifiers list to an actor in XOML:</p>
<pre>     &lt;ActorImage Name="Baddy1" ....... &gt;
          &lt;Modifiers&gt;
              &lt;Modifier Name="AddThrustMod" Active="true" Param1="1" /&gt;
              &lt;Modifier Name="ShootPlayerWhenClose" Active="true" Param1="1" /&gt;
          &lt;/Modifiers&gt;
     &lt;/ActorImage&gt;</pre>
<p>Here we have added two modifiers to the Baddy1 actor which modify its behaviour. Note that up to 4 parameters can be passed to the modifier</p>
<p>Modifiers can also be attached in code like this:</p>
<pre>    // Find the modifiers creator
    IIwGameModifierCreator* creator = IW_GAME_MODS-&gt;findCreator("addthrustmod");
    if (creator != NULL)
    {
        // Create an instance of the modifier
        IIwGameModifier* mod = creator-&gt;CreateInstance();
        if (mod != NULL)
        {
            // Set up the instance
            mod-&gt;setName("addthrustmod");
            mod-&gt;setActive(true);
            mod-&gt;setParameter(0, "1");

            // Add the modifier to the actor
            actor-&gt;getModifiers()-&gt;addModifier(mod);
        }
    }</pre>
<h2>Draggable Actors</h2>
<p>Any actor can now be set as draggable, allowing the user to tap it and drag it around the world. You can make any actor draggble in XOML by adding Draggable=&#8221;true&#8221; to its definition.</p>
<h2>Setting / Updating Actor Properties from XOML</h2>
<p>Its now possible to set or update actor properties directly from an action in XOML. Using the new SetProperty / AddProperty actions</p>
<h2>Extensions System</h2>
<p>From v0.34 of IwGame a new optional extensions system has been added. The extensions system is basically a collection of actors, scenes, actions, modifiers and other elements that are not part of the base IwGame engine. The extensions system provides support for game specific objects and other functionality that can be used to make creating specific types of games much easier. There&#8217;s not many extensions available yet but many more will be added in the future</p>
<h2>IwGame Usage Changes</h2>
<p>Please note the recent changes that have been applied to IwGame Usage. The new usage terms are shown below:</p>
<p>You are free to use IwGame in your projects in part or in whole as long as the header comments remain in-tact. Whilst you are not obliged to mention your usage of IwGame in your products it would be great and beneficial to let us know as we can publicise your product on our blog and other web sites / services (Our blog receives over 200,000 hits per month) However, if you use any part of the IwGame extensions system, which includes extension actors, extension scenes or extension modifiers then you are required to mention usage of the IwGame Engine in your product.</p>
<p>You may not claim the IwGame engine or its documentation as your own work or package it up and include it in any kind of middleware product without express prior written notice from an executive of Pocketeers Limited with the correct authority to grant authorisation. You may not publicly host any source code that is part of the IwGame Engine, the source will be hosted at <a title="IwGame Engine" href="http://www.drmop.com/index.php/iwgame-engine/">http://www.drmop.com/index.php/iwgame-engine/</a></p>
<p>These changes apply to all versions of the IwGame Engine.</p>
<p>Well that&#8217;s it for this update</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/04/17/iwgame-engine-v0-34-released-modifiers-box2d-joints-and-marmalade-6-0-fix/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Marmalade 6.0 is out NOW!</title>
		<link>http://www.drmop.com/index.php/2012/04/16/marmalade-6-0-is-out-now/</link>
		<comments>http://www.drmop.com/index.php/2012/04/16/marmalade-6-0-is-out-now/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 20:20:48 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[AirPlay SDK]]></category>
		<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Blackberry Playbook App Development]]></category>
		<category><![CDATA[C++ Programming]]></category>
		<category><![CDATA[Cool news]]></category>
		<category><![CDATA[Game and App Development]]></category>
		<category><![CDATA[HTML Programming]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[JavaScript Programming]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Samsung Bada Development]]></category>
		<category><![CDATA[Marmalade 6.0]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1429</guid>
		<description><![CDATA[**** IwGame does not compile with Marmalade 6.0. To fix please comment out the following line at the top of IwGameImage.cpp for now. We will release an early update this week to fix it **** //#include &#8220;pngstruct.h&#8221; Ok, its not often I look in my email box and find good news, but today I saw [...]]]></description>
			<content:encoded><![CDATA[<p>**** IwGame does not compile with Marmalade 6.0. To fix please comment out the following line at the top of IwGameImage.cpp for now. We will release an early update this week to fix it ****</p>
<p>//#include &#8220;pngstruct.h&#8221;</p>
<p>Ok, its not often I look in my email box and find good news, but today I saw an email from Marmalade announcing Marmalade 6.0. I took a quick look over the changes list and the new features and it looks pretty awesome. I&#8217;m a little disappointed that there&#8217;s no native web deployment, but there&#8217;s plenty of other cool features to be playing with including:</p>
<ul>
<li>Web Marmalade &#8211; You can now develop apps with HTML5 / CSS3 and Javascript. Marmalade have used the same standard as Phone Gap to make it compatible (smart move IMO). This is pretty awesome in itself, but to be honest I&#8217;m waiting for the full native bridge exposure and documentation. You wont be making any real time smooth arcade style games with 6.0 but its great for apps and none arcade style game development. Either way I&#8217;m going to be getting my hands dirty with Javascript (the most lawless language on Earth <img src='http://www.drmop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )</li>
<li>iPad retina support</li>
<li>New native UI enhancements including Toolbar, Table, Picket / Listbox , Tab / Tap Group, Activity indicator and Navigation bar</li>
<li>New Mac anehancements such as support accelerometer and location in the simulator</li>
<li>And a mass of bug fixes, including the notorious Facebook extension which has been upgraded to the latest on  Facebook SDK for iOS. Also native support for JPEG images</li>
</ul>
<p>To see the full list of changes check out Marmalades web site at <a href="https://www.madewithmarmalade.com/marmalade/whats-new" rel="nofollow" target="_blank">https://www.madewithmarmalade.com/marmalade/whats-new</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/04/16/marmalade-6-0-is-out-now/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>IwGame Engine Tutorial – Basic introduction</title>
		<link>http://www.drmop.com/index.php/2012/04/08/iwgame-engine-tutorial-basic-introduction/</link>
		<comments>http://www.drmop.com/index.php/2012/04/08/iwgame-engine-tutorial-basic-introduction/#comments</comments>
		<pubDate>Sun, 08 Apr 2012 17:42:37 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Blackberry Playbook App Development]]></category>
		<category><![CDATA[C++ Programming]]></category>
		<category><![CDATA[Game and App Development]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[IwGame Engine]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Pocketeers Limited]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Samsung Bada Development]]></category>
		<category><![CDATA[IwGame Engine Tutorial]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1273</guid>
		<description><![CDATA[What is the IwGame Engine? Welcome to the home of IwGame, the free open source cross platform mobile 2D game engine for smart phones, tablets and emerging technologies developed by Pocketeers Limited. IwGame is designed and written on top of the Marmalade SDK the ultimate  cross platform SDK for smart phones tablets and emerging technologies. In [...]]]></description>
			<content:encoded><![CDATA[<h2>What is the IwGame Engine?</h2>
<p>Welcome to the home of IwGame, the free open source cross platform mobile 2D game engine for smart phones, tablets and emerging technologies developed by <a href="http://www.pocketeers.co.uk">Pocketeers Limited</a>. IwGame is designed and written on top of the Marmalade SDK the ultimate  cross platform SDK for smart phones tablets and emerging technologies. In order to use the IwGame game engine you will need to download and install the Marmalade SDK.<br />
IwGame supports the following platforms:</p>
<ul>
<li>iPhone, iPod and iPad</li>
<li>Android phones and tablets (1.5+ including Ice Cream Sandwich)</li>
<li>Samsung Bada 1.0 / 2.0</li>
<li>Blackberry BBX (Playbook)</li>
<li>Symbian</li>
<li>WebOS</li>
<li>Windows Mobile</li>
<li>Mobile Linux</li>
<li>LG-TV</li>
<li>Windows Desktop</li>
<li>Mac OSX</li>
</ul>
<p>IwGame is free to use at your own discretion and the code base is open source . You do not need to submit bug fixes or improvements, but we would be very happy if you did.</p>
<p>You can find out more and download the IwGame Engine from the IwGame Engine home</p>
<p>The IwGame engine has been in development since November 2011 and has had 14 releases to date</p>
<p>The original IwGame concept set out to achieve the following:</p>
<ul>
<li>Create a game layer on top of the Marmalade SDK allowing developers to get game code up and running incredibly quickly without having to learn the ins and outs of the Marmalade SDK</li>
<li>Create a solid feature rich gaming SDK that does not rely on the underlying platform</li>
<li>Enable developers and designers to create content without writing any code</li>
</ul>
<p>In around 6 months time we achieved all three of the above aims and more:</p>
<ul>
<li>IwGame now supports a wealth of features that enable developers to create 2D games quickly and efficiently</li>
<li>IwGame boasts a vast array of features, including all the basic game development features such as scenes, sprites, actors, animation, audio, input, mark-up language. IwGame also supports advanced features such as HTTP communications, unified Ads API, Facebook API and unified in-app purchasing.</li>
<li>We wanted to put the IwGame engine into the hands of designers as well as programmers. We also wanted a way to separate game and UI layout design from code. We accomplished both of these aims by introducing the XOML mark-up language into the IwGame engine, allowing programmers and designers to not only design the layout and general interaction of games and apps but also define animations, resources, variables, conditions, events and actions. We also made the whole system extensible allowing developers to extend the language to fit whatever needs they may have.</li>
</ul>
<h2>Platform Independence</h2>
<p>The IwGame engine strives to provide platform independence, so the developer has to deal less with the differences that separate platform from platform and spend more time dealing with creating a game. Because IwGame is built atop of the Marmalade SDK, this platform independence is mostly catered for, although there are a number of areas where the Marmalade SDK falls short:</p>
<ul>
<li>Screen size independence – IwGame uses a virtual canvas system, allowing each scene to specify a working resolution that the developer can rely on not changing from device to device. The scene will scale all its content to fit the target display resolution with no extra effort on the developers part</li>
<li>Frame rate independence – Regardless of the target platform speed, all transient variables within a game are scaled by time to ensure that animations and movement etc do not suffere slow down or speed up on different platforms</li>
<li>In-app purchasing – IwGame allows the developer to set-up and utilise in-app purchasing in a platform independent manner</li>
<li>Unified Ads – IwGame provides a mediated unified Ad API that allows the developer to serve ads to their apps regardless of platform and from a number of different ad providers</li>
</ul>
<h2>Scene / Actor Concept</h2>
<p>The most important concept behind the IwGame engine is the Scene / Actor system. IwGame uses scenes to hold collections of Actors. A game can be made up of a single scene or more usually a collection of scenes. For example, your main game can be built up of the following scenes:</p>
<ul>
<li>Game world background scene</li>
<li>Game world foreground scene</li>
<li>In-game HUD scene</li>
<li>In-game menu scene</li>
<li>End of level dialog</li>
</ul>
<p>Actors represent the game objects that live and work in your gaming world. An actor has logical, visual and physical components associated with them. The logical component is the game logic that gives the actor its purpose in the game world, the visual component is how the actor will appear on screen, usually some kind of sprite and finally the physical component tells the system how the actor will behave under physics (this component is optional). Actors can be defined hierarchically, allowing the developer to create complex objects that consist of multiple actors that are all connected with each actor having its own independent logic and visual but sharing the parents visual transform. Actors also support functionality components that can be stacked allowing the creation of vastly complex game objects from many smaller independent modules.</p>
<p>Scenes can be hidden, moved and animated, all actors contained within a scene will obey the scenes visibility, colour and transforms.</p>
<p>Creating a game is a case of creating scenes that represent the different components of a game then creating and adding actors that define the games behaviour.</p>
<h2>Resource Management</h2>
<p>IwGame supports resource management on a local per scene and a global basis. The resource management system will take care of cleaning up resources at the correct time. For example, all resources that are local to a scene will be destroyed when the scene has been destroyed. Global resources will remain present throughout the duration of the game, unless removed manually. The resource manager handles many different types of resources including images, animations, timelines, shapes, materials, fonts etc..</p>
<h2>Animation</h2>
<p>IwGame supports a very powerful key frame based animation system supports the following features:</p>
<ul>
<li>Time based frame and interpolated named animations</li>
<li>Delayed and looped animations</li>
<li>Support for boolean, float, vectors (2d, 3d and 4d), rect (for image frames), string and custom frame data types</li>
<li>Resource manager that tracks and manages sets of animations (scene local and global)</li>
<li>Animation data re-use using animation instances</li>
<li>Animation time lines to support multiple simultaneous animations that can target object specific properties such as the colour of a scene or the position of an actor</li>
<li>Time line manager that tracks and manages sets of animation time lines</li>
<li>Callback notifications for animation instance started, stopped and looped events</li>
<li>Animations and animation time lines can be defined and attached to actors and scenes using XOML</li>
<li>Support for OnStart, OnEnd and OnRepeat events in code and in XOML</li>
<li>Linear, quadratic, quartic and cubic in and out easing</li>
</ul>
<p>Scenes and actors can contain an animation timeline that will be applied to the scene or actors properties. For example, you may set up a timeline that contains animations that target position, scale, rotation and colour then attach that to a group of actors. The group of actors will all take on the animation properties of the timeline.</p>
<h2>XOML Mark-up Language</h2>
<p>By far the best feature of the IwGame engine is its built-in XML mark-up language (can be thought of as HTML for game development). XOML enables designers and developers to both create interactive content. XOML is a little more than a simple mark-up language as it allows the definition of variables, conditions, actions and events. Its entirely possible to create a complete interactive presentation, app or game using XOML. XOML also contains features to help create styled content using styles and templates.</p>
<p>Lets take a look at a typical piece of XOML:</p>
<pre><span style="color: #008000;">&lt;!-- Create a scene to contain our logo actors --&gt;</span>
&lt;<span style="color: #0000ff;">Scene</span> Name="IntroScene" Style="GenericSceneStyle" Camera="IntroCam" Timeline="camera_zoom" Current="true" OnGainedFocus="GainedFocus" Batch="false"&gt;

    &lt;<span style="color: #0000ff;">Actions</span> Name="GainedFocus"&gt;
        &lt;<span style="color: #0000ff;">Action</span> Method="SetBGColour" Param1="64, 128, 200, 255" /&gt;
    &lt;/<span style="color: #0000ff;">Actions</span>&gt;

    <span style="color: #008000;">&lt;!-- End of logo actions --&gt;</span>
    &lt;<span style="color: #0000ff;">Actions</span> Name="NextScene"&gt;
        &lt;<span style="color: #0000ff;">Action</span> Method="LoadXOML" Param1="Menu.xml" /&gt;
        &lt;<span style="color: #0000ff;">Action</span> Method="KillScene" Param1="IntroScene" /&gt;
    &lt;/<span style="color: #0000ff;">Actions</span>&gt;

   <span style="color: #008000;"> &lt;!-- Create a camera--&gt;</span>
    &lt;<span style="color: #0000ff;">Camera</span> Name="IntroCam" Position="0, 0" Angle="0" Scale="1.0" /&gt;

    <span style="color: #008000;">&lt;!-- Create delayed fade out animation --&gt;</span>
    &lt;<span style="color: #0000ff;">Animation</span> Name="fade_out" Type="vec4" Duration="5" &gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="255, 255, 255, 255" Time="3" /&gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="64, 128, 200, 0"  Time="5"/&gt;
    &lt;/<span style="color: #0000ff;">Animation</span>&gt;

    <span style="color: #008000;">&lt;!-- Create a zoom animation for the camera --&gt;</span>
    &lt;<span style="color: #0000ff;">Animation</span> Name="camera_zoom" Type="float" Duration="5" &gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="2"  Time="0.0" Easing="quadout" /&gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="0.75" Time="2.0" /&gt;
    &lt;/<span style="color: #0000ff;">Animation</span>&gt;
    &lt;<span style="color: #0000ff;">Timeline</span> Name="camera_zoom" AutoPlay="true"&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="camera_zoom" Target="Scale" Repeat="1" StartAtTime="0" OnEnd="NextScene" /&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="fade_out" Target="Colour" Repeat="1" StartAtTime="0" /&gt;
    &lt;/<span style="color: #0000ff;">Timeline</span>&gt;

    <span style="color: #008000;">&lt;!-- Define logo image --&gt;</span>
    &lt;<span style="color: #0000ff;">Image</span> Name="logo" Location="logo.png" Preload="true" /&gt;

    <span style="color: #008000;">&lt;!-- Create animations for the logo pieces --&gt;</span>
    &lt;<span style="color: #0000ff;">Animation</span> Name="x_axis" Type="vec2" Duration="4" &gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="500, 0"  Time="0.0" Easing="quadout" /&gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="0, 0" Time="2.0" /&gt;
    &lt;/<span style="color: #0000ff;">Animation</span>&gt;
    &lt;<span style="color: #0000ff;">Animation</span> Name="x_axis2" Type="vec2" Duration="4" &gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="600, 0"  Time="0.0" Easing="quadout" /&gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="0, 0" Time="2.25" /&gt;
    &lt;/<span style="color: #0000ff;">Animation</span>&gt;
    &lt;<span style="color: #0000ff;">Animation</span> Name="scale_axis" Type="float" Duration="4" &gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="1"  Time="0.0" Easing="quadout" /&gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="1.25" Time="2.0" /&gt;
    &lt;/<span style="color: #0000ff;">Animation</span>&gt;
    &lt;<span style="color: #0000ff;">Animation</span> Name="spin_axis" Type="float" Duration="4" &gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="180"  Time="0.0" Easing="quadin" /&gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="90"  Time="1.0" Easing="quadout" /&gt;
        &lt;<span style="color: #0000ff;">Frame</span> Value="0" Time="2.0" /&gt;
    &lt;/<span style="color: #0000ff;">Animation</span>&gt;
    &lt;<span style="color: #0000ff;">Timeline</span> Name="orbit1" AutoPlay="true"&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="x_axis" Target="Position" Repeat="1" /&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="scale_axis" Target="ScaleY" Repeat="1" /&gt;
    &lt;/<span style="color: #0000ff;">Timeline</span>&gt;
    &lt;<span style="color: #0000ff;">Timeline</span> Name="orbit2" AutoPlay="true"&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="x_axis" Target="Position" Repeat="1" /&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="scale_axis" Target="ScaleY" Repeat="1" /&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="spin_axis" Target="Angle" Repeat="1" /&gt;
    &lt;/<span style="color: #0000ff;">Timeline</span>&gt;
    &lt;<span style="color: #0000ff;">Timeline</span> Name="orbit3" AutoPlay="true"&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="x_axis2" Target="Position" Repeat="1" /&gt;
        &lt;<span style="color: #0000ff;">Animation</span> Anim="scale_axis" Target="ScaleY" Repeat="1" /&gt;
    &lt;/<span style="color: #0000ff;">Timeline</span>&gt;

    <span style="color: #008000;">&lt;!-- Define the logo actors --&gt;</span>
    &lt;<span style="color: #0000ff;">InertActor</span> Name="logo" Position="0, 0" Size="1024, 300" Angle="0" SrcRect="0, 0, 1024, 300" Image="logo" Timeline="orbit1" /&gt;
    &lt;<span style="color: #0000ff;">InertActor</span> Name="logo" Position="0, 0" Size="1024, 300" Angle="0" SrcRect="0, 0, 1024, 300" Image="logo" Timeline="orbit2" Colour="255, 255, 255, 128" /&gt;
    &lt;<span style="color: #0000ff;">InertActor</span> Name="logo" Position="0, 0" Size="1024, 300" Angle="0" SrcRect="0, 0, 1024, 300" Image="logo" Timeline="orbit3" Colour="255, 255, 255, 64" /&gt;

    &lt;<span style="color: #0000ff;">ActorText</span> Name="Text1" Position="0, -260" Rect="-400, -50, 800, 100" Angle="0" Font="trebuchet_12" AngularVelocity="0" Text="Developed By Pocketeers Limited" Colour="255, 255, 255, 255" Scale="1.5" /&gt;
    &lt;<span style="color: #0000ff;">ActorText</span> Name="Text2" Position="0, 250" Rect="-200, -50, 400, 100" Angle="0" Font="trebuchet_12" AngularVelocity="0" Text="www.drmop.com" Colour="255, 255, 255, 255" Italic="true" Scale="1.5" /&gt;

&lt;/<span style="color: #0000ff;">Scene</span>&gt;</pre>
<p>This XOML defines the complete animation sequence that can be seen in the Puzzle Friends / cOnnecticOns game. Three logos spin onto the screen and 2 lines of text zoom into place.</p>
<p>XOML also now supports data binding, which allows developers to bind variables to properties of actors or scenes. Any changes to bound variables will be reflected in object that they are bound to.</p>
<p>Lastly, XOML is extensible allowing the developer to extend the language to support their own needs.</p>
<h2>Input and Audio</h2>
<p>IwGame provides access to the various input devices on the device including:</p>
<ul>
<li>Single and multi-touch input</li>
<li>Button and key states (including support for Android back and menu)</li>
<li>On screen keyboard input</li>
<li>Accelerometer</li>
<li>Compass</li>
</ul>
<p>Actors handle events that deal directly with touch events, including OnTapped, OnBeginTouch and EndTouch. These events can be handled directly in code or actions can be attached in XOML.</p>
<p>Scenes also handle menu and back button presses using the OnBackKey and OnMenuKey events</p>
<p>IwGame provides an API that provides access to the devices audio playback systems</p>
<ul>
<li>Compressed WAV software sound effect playback</li>
<li>MP3 playback via the devices media engine</li>
<li>Support for multiple simultaneous sound effects</li>
<li>Control over volume and pitch</li>
</ul>
<p>Music and sound effects can be played directly in XOML via actions, allowing the developer to tie music and sound effect playback to specific events declaratively.</p>
<h2>Physics</h2>
<p>The Box2D physics engine is integrated into the IwGame engine allowing physics to be attached to any actor. IwGame supports shapes, joints (distance, revolute, prismatic, pulley and wheel) and physics materials that can be defined and attached to actors, putting them under control of the Box2D physics system. Actors will also receive collision events from the Box2D collision system, allowing the actor to respond to collisions.</p>
<p>Gravity and world scale can be set on a per scene basis.</p>
<h2>Facebook API</h2>
<p>IwGame currently supports basic Facebook interaction providing log-in and allowing the developer to post information to the users wall stream.</p>
<h2>Unified In-App Purchasing</h2>
<p>IwGame provides unified in-app purchasing for both iOS and Android. A single easy to set-up API can be used to track products and purchase them regardless of platform.</p>
<h2>Unified Ads API</h2>
<p>IwGame provides a platform independent ad collection, display and processing system called IwGameAds. The whole system is automated and once set-up will collect ads from a variety of ad providers using ad mediation and display them using a slick animation system. The system also handles ad clicks directing the user to the target URL.</p>
<p>The following ad providers are currently supported:</p>
<ul>
<li>Inner-active</li>
<li>AdFonic</li>
<li>Vserv – Also provides support for InMobi, BuzzCity, JumpTap, ZestAdz / Komli Mobile and Inner-active</li>
<li>Mojiva</li>
<li>Millennial Media – Also provides support for AdMob, Amobee, JumpTap and Mojiva</li>
</ul>
<h2>So why use IwGame Engine?</h2>
<p>IwGame was designed by game developers for game developers. IwGame is built on many years of game development experience, using tried and tested game development techniques. IwGame provides a mass of out-of-the-box features that would take many months to develop and test from scratch. Above all else, using XOML enables the developer to create games insanely quickly (our recent game cOnnecticOns took just 3 days to create from scratch). Lastly, using separation of coding and game layout / design, XOML encourages easy and smart game development, where designers can take care of the design / layouts and programmers can take of the gaming logic.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/04/08/iwgame-engine-tutorial-basic-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IwGame Engine v0.33 Released – Unified Android and iOS in-app purchasing</title>
		<link>http://www.drmop.com/index.php/2012/04/06/iwgame-engine-v0-33-released-unified-android-and-ios-in-app-purchasing/</link>
		<comments>http://www.drmop.com/index.php/2012/04/06/iwgame-engine-v0-33-released-unified-android-and-ios-in-app-purchasing/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 17:40:27 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[Apps and Games]]></category>
		<category><![CDATA[C++ Programming]]></category>
		<category><![CDATA[cOnnecticOns]]></category>
		<category><![CDATA[Cool news]]></category>
		<category><![CDATA[Game and App Development]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[IwGame Engine]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Pocketeers Limited]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Puzzle Friends]]></category>
		<category><![CDATA[Android in-app purchasing]]></category>
		<category><![CDATA[iOS in-app purchasing]]></category>
		<category><![CDATA[IwGame Engine Update]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1239</guid>
		<description><![CDATA[New here? What&#8217;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. You can find out more and download the SDK from our IwGame Engine page. I can tell you one thing, testing in-app [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.drmop.com/wp-content/uploads/2012/01/IwGameLogo2.png"><img class="aligncenter size-large wp-image-705" title="IwGameLogo2" src="http://www.drmop.com/wp-content/uploads/2012/01/IwGameLogo2-1024x300.png" alt="" width="512" height="150" /></a></p>
<p>New here? What&#8217;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 <a title="Marmalade SDK" href="http://www.madewithmarmalade.com/" rel="nofollow" target="_blank">Marmalade SDK</a>. You can find out more and download the SDK from our <a title="IwGame Engine" href="http://www.drmop.com/index.php/iwgame-engine/" target="_self">IwGame Engine page</a>.</p>
<p>I can tell you one thing, testing in-app purchasing from scratch is NOT an easy task, in fact its a pain in the a** to be quite honest. However, like anything that&#8217;s cool its worth doing. Its been a while coming but we finally put together a unified API for in-app purchasing on the Android and iOS platforms. To see the end product in action check out <a title="Puzzle Friends  FREE for Android" href="https://play.google.com/store/apps/details?id=com.pocketeers.puzzlefriends" rel="nofollow" target="_blank">Puzzle Friends on Android</a> (the new name for the free version of cOnnecticOns (I must have been off my head when I invented the name cOnnecticOns <img src='http://www.drmop.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ). The iOS version is currently with the great Apple reviewers in the sky.</p>
<p>Ok, here is the list of changes for 0.33:</p>
<ul>
<li>In-app purchasing added for Android and iOS (IwGameMarket)</li>
<li>Scenes can now be augmented after they have been created (like partial classes)</li>
<li>Scenes can now be layered visually</li>
<li>New SetAllTimelines action added to XOML that will set the timeline of all scenes</li>
<li>SetVariable action now allows you to specify the scene in which the variable lives</li>
<li>Resources can now be tagged with a tag name</li>
<li>New RemoveResource and RemoveResources actions that allow removal of resources from global resource manager</li>
<li>New CallActions action added that enables execution of other actions lists</li>
<li>Actor now has ScaleX and ScaleY bindings</li>
<li>Relative actor depth is now 0 for linked actors</li>
<li>UDID removed from IwGameAds for iOS</li>
<li>Scenes now have a ClipStatic property that will force the clipping area of a scene to stay in place on screen instead of moving with the scenes camera</li>
<li>BUG FIX: Scene NotifyResuming now called properly</li>
<li>BUG FIX: CIwGameAnimInstance::setAnimation() no longer crashes if NULL is passed</li>
<li>BUG FIX: IwGameAdsView sprites are now updated correctly</li>
</ul>
<p>The most interesting addition this update is the well hidden IN-APP PURCHASING for iOS and Android. With the aid of copy and paste lets take a look at the changes in more detail:</p>
<h2>IwGameMarket &#8211; Unified In App Purchasing API for iOS And Android</h2>
<p>Its an incredibly tough job to get noticed in the app stores these days with approaching half a million apps available in the larger stores (insane competition), its an even tougher job persuading Joe public to part with their money for your app. Many developers are turning to developing freemium titles as a means to increase visibility (app users are much more likely to download a free app) and earn money by offering the app in a limited form then allowing users to purchase additional content and game features. As of IwGame v0.33, basic in-app purchasing is now available for iOS and Android using a wrapper around Marmalade&#8217;s EDK in-app purchase extensions called IIwGameMarket.</p>
<p>IIwGameMarket is a not a concrete class however so you cannot just create one and use it. Instead it provides a basic interface for creating the platform specific market class as well as access to common functionality. At the moment the following marker classes are available:</p>
<p>CIwGameMarketiOS – Uses iOS in-app purchasing<br />
CIwGameMarketAndroid – Uses Android market billing<br />
CIwGameMarketTest – This version is a test class that you can use to simulate purchases / errors etc in the simulator.</p>
<p>IwGameMarket is designed to allow you to initialise and set-up and use in-app purchasing in a platform agnostic fashion, allowing you to query / purchase content very easily.</p>
<p>IwGameMarket works using a product list system, where you create and add CIwGameMarketProduct products to the IwGameMarket. Each CIwGameMarketProduct represents a single consumable / none consumable product that can be purchased.</p>
<p>Setting up the IwGameMarket is very simple, you simply call IIwGameMarket::Create() which initialises the correct market for the platform that your game or app is running on then set-up a few handlers, depending upon which messages you want to handle. Below shows a quick example:</p>
<blockquote>
<pre>IiwGameMarket::Create("Your android public key");
IIwGameMarket::getMarket()-&gt;setReceiptAvailableHandler(PurchaseComplete, NULL);
IIwGameMarket::getMarket()-&gt;setErrorHandler(PurchaseError, NULL);
IIwGameMarket::getMarket()-&gt;setRefundHandler(Refunded, NULL);	// Android only</pre>
</blockquote>
<p>Note that if you are releasing for iOS only then you do not need to supply your Android Market public key, simply pass no parameters to Create().</p>
<p>In this example, we have told IwGameMarket that we want to be notified when a purchase receipt is available, when an error occurs or when a transaction refund has happened.</p>
<p>When done with the market don&#8217;t forget to clean it up using:</p>
<blockquote>
<pre>IIwGameMarket::Destroy();</pre>
</blockquote>
<p>Now that the market is set-up we need to add products, below shows a quick example:</p>
<blockquote>
<pre>// Which OS are we running
int os = s3eDeviceGetInt(S3E_DEVICE_OS);

// Create product 1
CIwGameMarketProduct* product = new CIwGameMarketProduct();
product-&gt;Consumable = true;
product-&gt;ID = 1;
product-&gt;Name = "10 Coins";
if (os == S3E_OS_ID_IPHONE)
	product-&gt;ExternalID = "com.companyname.gamename.coinsx10";
else
	product-&gt;ExternalID = "coinsx10";
product-&gt;Purchased = false;
IIwGameMarket::getMarket()-&gt;addProduct(product);

// Create product 2
product = new CIwGameMarketProduct();
product-&gt;Consumable = true;
product-&gt;ID = 2;
product-&gt;Name = "50 Coins";
if (os == S3E_OS_ID_IPHONE)
	product-&gt;ExternalID = "com.companyname.gamename.coinsx50";
else
	product-&gt;ExternalID = "coinsx50";
product-&gt;Purchased = false;
IIwGameMarket::getMarket()-&gt;addProduct(product);</pre>
</blockquote>
<p>In this example, we create 2 products, our first represents 10 in-game coins, whilst the second represents 50 in-game coins. The ExternalID property is the product ID as defined in the in-app purchase section of your app in iTunes Connect for iOS or the product id of the in-app purchase in the in-app purchase section of your Android Market product control panel for Android. ID can be anything you like but will need to be unique.</p>
<p>Now that the system and product set-up are out the way, lets take a look at how to purchase a product. Firstly you need to call PurchaseProduct() passing in the ID defined in the CIwGameMarketProduct that you added earlier:</p>
<blockquote>
<pre>if (IiwGameMarket::getMarket()-&gt;PurchaseProduct(product_id))
{
}</pre>
</blockquote>
<p>You then need to add code to the callbacks that we added in our set-up:</p>
<blockquote>
<pre>int32 MarketScene::PurchaseComplete(void* caller, void* data)
{
	int type = IIwGameMarket::getMarket()-&gt;getLastPurchaseID();
	if (type == 1)	// 10 coins
	{
		GAME-&gt;AddCoins(10);
	}
	else
	if (type == 2)	// 50 coins
	{
		GAME-&gt;AddCoins(50);
	}

	return 1;
}

int32 MarketScene::PurchaseError(void* caller, void* data)
{
	// Display an error to the user

	return 1;
}

int32 MarketScene::Refunded(void* caller, void* data)
{
	// Only available on th Andriod platform
	CIwGameString id = IW_GAME_MARKET_ANDROID-&gt;getRefundedID();

	// Player was refunded so take back the items(s)

	return 1;
}</pre>
</blockquote>
<h2>Augmenting Scenes</h2>
<p>Another cool new feature in v0.33 is the ability to augment a previously created scene and add extra stuff to it after the fact. You can for example have a basic common scene that provides the basic background of the scene. This gets loaded by many other scenes and serves as its basic background. After its been loaded you can declare the scene a 2nd time and add additional elements which will then be integrated into the original scene.</p>
<h2>Layered Scenes</h2>
<p>Scenes can now be depth sorted (visually only). This is incredibly useful as previously scenes would always be drawn in the order in which they were added to the game class. There is no limit to the layer number of a scene.</p>
<h2>Tagged Resources</h2>
<p>Resources can now be given a tag name, allowing you to identify groups of resources. New actions have also been added that allow the removal of specific resources or groups of tagged resources from the global resource manager. We added this new features because we found that sometimes it is very useful to have resources in the global resource manager so they can be shared across scenes, but later needed a way to remove those resources when done with them.</p>
<h2>Calling Actions Lists</h2>
<p>Its now possible to call an actions list from an action. This is great if you want to define lots of different action sets then pick and choose which ones you want to use. </p>
<p>And that&#8217;s it for this update, please enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/04/06/iwgame-engine-v0-33-released-unified-android-and-ios-in-app-purchasing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>IwGame Engine v0.32 Released – Data Bindings and Conditional Variables</title>
		<link>http://www.drmop.com/index.php/2012/03/15/iwgame-engine-v0-32-released-data-bindings-and-conditional-variables/</link>
		<comments>http://www.drmop.com/index.php/2012/03/15/iwgame-engine-v0-32-released-data-bindings-and-conditional-variables/#comments</comments>
		<pubDate>Thu, 15 Mar 2012 16:52:01 +0000</pubDate>
		<dc:creator>drmop</dc:creator>
				<category><![CDATA[AirPlay SDK]]></category>
		<category><![CDATA[Android App Development]]></category>
		<category><![CDATA[Blackberry Playbook]]></category>
		<category><![CDATA[Blackberry Playbook App Development]]></category>
		<category><![CDATA[C++ Programming]]></category>
		<category><![CDATA[cOnnecticOns]]></category>
		<category><![CDATA[Cool news]]></category>
		<category><![CDATA[Game and App Development]]></category>
		<category><![CDATA[iOS App Development]]></category>
		<category><![CDATA[IwGame Engine]]></category>
		<category><![CDATA[Marmalade SDK]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Samsung Bada Development]]></category>
		<category><![CDATA[Conditional actions]]></category>
		<category><![CDATA[Conditional variables]]></category>
		<category><![CDATA[Data Binding]]></category>
		<category><![CDATA[IwGame Engine Update]]></category>

		<guid isPermaLink="false">http://www.drmop.com/?p=1046</guid>
		<description><![CDATA[New here? What&#8217;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. You can find out more and download the SDK from our IwGame Engine page. A lot of bugs (mostly minor) have [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.drmop.com/wp-content/uploads/2012/01/IwGameLogo2.png"><img class="aligncenter size-large wp-image-705" title="IwGameLogo2" src="http://www.drmop.com/wp-content/uploads/2012/01/IwGameLogo2-1024x300.png" alt="" width="512" height="150" /></a></p>
<p>New here? What&#8217;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 <a title="Marmalade SDK" href="http://www.madewithmarmalade.com/" rel="nofollow" target="_blank">Marmalade SDK</a>. You can find out more and download the SDK from our <a title="IwGame Engine" href="http://www.drmop.com/index.php/iwgame-engine/" target="_self">IwGame Engine page</a>.</p>
<p>A lot of bugs (mostly minor) have been reported since the forum went live so we decided to release 0.32 now and push in-app purchasing to another future release (hopefully 0.33).</p>
<p>We finally got cOnnecticOns approved for BlackBerry PlayBook, its now on sale on <a title="cOnnecticOn for PlayBook" href="http://appworld.blackberry.com/webstore/content/95862/" rel="nofollow" target="_blank">BlackBerry App World</a>. Version 2.0 also went live today for <a title="cOnnecticOns Puzzle Friends for iPhone, iPad  and iPod Touch on iTunes" href="http://itunes.apple.com/app/connecticons/id505645452" rel="nofollow" target="_blank">iOS on iTunes</a> and for Android on the <a title="cOnnecticOns Puzzle Friends for Android" href="https://play.google.com/store/apps/details?id=com.pocketeers.connecticons" rel="nofollow" target="_blank">Android Market</a> / <a title="cOnnecticOns for Android on the Amazon App Store" href="http://www.amazon.com/Pocketeers-Limited-cOnnecticOns/dp/B007ECMTE2" rel="nofollow" target="_blank">Amazon</a>. Not happy with Samsung however, the game has been knocked back on Bada 1 and 2 numerous times for minor issues that should be footnotes!</p>
<p>Ok, on with the changes, here is the list of changes for 0.32:</p>
<ul>
<li>New XOML RemoveAllScenes action added &#8211; This will remove all scenes excluding the scene that is provided</li>
<li>Data bindings now added to XOML &#8211; You can now create a bindings list which pair properties up to variables. Changes made to those variables will bautomaticaly be applied to the object that they are bound to.</li>
<li>Actors and Scenes now support data bindings</li>
<li>Conditions variables now added to XOML &#8211; A condition variable allows you to string together some basic logic based on the value of other variables, these can then be attached to Actions to create conditional actions</li>
<li>Actions and Action groups now support conditional variables</li>
<li>IIwGameXomlResource now have parents</li>
<li>CIwGameString now supports encoding / decoding to / from hex</li>
<li>CIwGameSprite now has a RebuildTransformNow() method</li>
<li>CIwGameSprite now has an update method where the trabnsform will be rebuilt. This ensures that all transforms have been buuilt before rendering</li>
<li>CIwGameScene now has a PreDestroy() method which gets called when a request to destroy a scene is received</li>
<li>CIwGameActorImage now has a SetSrcRect() method</li>
<li>Added sound and music volume control to CIwGameAudio</li>
<li>CIwGameSound now accepts a paramater that allows you to specify volume, frequency and panning when playing a sound effect</li>
<li>BUG FIX: PNG lib fix for Visual Studio 2008</li>
<li>BUG FIX: Mac compile issues</li>
<li>BUG FIX: CIwGameSprite setScale() fixed</li>
<li>BUG FIX: Precision issues graphical glitches at lower resolutions</li>
<li>BUG FIX: Actor collilsion size now read corrctly from XOML</li>
<li>BUG FIX: CIwGameActorText text aligment now applie correctly</li>
<li>BUG FIX: When an actor or scene has a timeline attached, the first frame was not benig set before displaying the object</li>
<li>BUG FIX: CIwGameTextSprite hit test fixed</li>
<li>BUG FIX: CIwGameAds &#8211; VServ local now set correctly</li>
<li>BUG FIX: CIwGameScene &#8211; Initial camera transform is now built correctly</li>
<li>BUG FIX: CIwGameString::URLEncode now calculates correct buffer size</li>
<li>BUG FIX: CIwGameString::URLDecode now checks for the correct character</li>
<li>BUG FIX: Infinite loop removed from CIwGameXmlNode::GetAttribute()</li>
</ul>
<p>The most exciting changes for us at least are the XOML data bindings and conditional variables / actions. They enable the creation of some very complex and ultra re-usable stuff. We are planning on starting a library of useful generic classes and XOML layout files that can be used as plug-ins to help create games and apps even quicker. Our first experiment with this is to create a set of XOML files and scene classes that handle ScoreLoop integration. If this is successful then we will release this as a plug-in library that you can simply drop into your own games and style with your own styles. Will blog about this in the near future.</p>
<h2>XOML Data Binding</h2>
<p>Data binding is the ability to map properties of objects to XOML variables. Changes to those variables will be immediately reflected in all properties of all objects that are bound. Lets take a look at a quick example:</p>
<p>We declare a global variable that holds a profile name:</p>
<pre>    &lt;<span style="color: #0000ff;">Variable</span> Name="ProfileName" Type="string" Value="None" /&gt;</pre>
<p>Next we create a bindings set that contains a single property called “Text” that is bound to the “ProfileName” variable that we just defined:</p>
<pre>    &lt;<span style="color: #0000ff;">Bindings</span> Name="SC_ProfileBindings"&gt;
        &lt;<span style="color: #0000ff;">Binding</span> Property="Text" Variable="ProfileName" /&gt;
    &lt;/<span style="color: #0000ff;">Bindings</span>&gt;</pre>
<p>We now attach our bindings list &#8220;SC_ProfileBindings&#8221; to a text actor:</p>
<pre>    &lt;<span style="color: #0000ff;">ActorText</span> Name="NameLabel" ......... <span style="color: #ff0000;">Bindings="SC_ProfileBindings"</span> /&gt;</pre>
<p>Now if we change the ProfileName variable in XOML or in code, our NameLabel actor&#8217;s Text property will be automatically updated.</p>
<p>We opted to use independent binding lists (as opposed to in-line bindings as used in XAML / MXML) because they are re-usable, the same bindings list can be used across many objects. They are also much more readable as bindings are not intermingled with normal property values.</p>
<p>Note that if you also have a timeline animation that updates the same property then the timeline is given priority and the timeline will write over the binding value.</p>
<p>Binding lists can be attached to scenes and actors. The following properties can be bound:</p>
<p>CiwGameScene:</p>
<ul>
<li>Position</li>
<li>Angle</li>
<li>Scale</li>
<li>Colour</li>
<li>Clipping</li>
<li>Timeline</li>
<li>Binding</li>
<li>Camera</li>
<li>Type</li>
<li>Active</li>
<li>Visible</li>
<li>AllowSuspend</li>
<li>AllowResume</li>
</ul>
<p>CIwGameActor:</p>
<ul>
<li>Position</li>
<li>Depth</li>
<li>Origin</li>
<li>Angle</li>
<li>Scale</li>
<li>Colour</li>
<li>Velocity</li>
<li>Angular Velocity</li>
<li>Timeline</li>
<li>Binding</li>
<li>Type</li>
<li>Active</li>
<li>Visible</li>
<li>Collidable</li>
<li>HitTest</li>
</ul>
<p>CIwGameActorImage (in addition to those present in CIwGameActor):</p>
<ul>
<li>Size</li>
<li>SrcRect</li>
<li>Image</li>
</ul>
<p>CiwGameActorText (in addition to those present in CIwGameActor):</p>
<ul>
<li>Text</li>
<li>Rect</li>
</ul>
<p>Binding sets that are defined outside a scene will be assigned to the global resource manager, whilst bindings defined inside a scene will be assigned to the scenes resource manager.</p>
<p>Data bindings offer a way to create complex scenes and user interfaces without having to manually update the properties of the individual elements</p>
<h2>Conditional Variables and Actions</h2>
<p>XOML supports a new variable type called a condition variable. A condition variable is a variable that contains an expression that is defined by a list of variables, operators and values. Lets take a look at a quick example:</p>
<pre>    <span style="color: #008000;">&lt;!--Create a bog standard int variable that contains the current level /--&gt;</span>
    &lt;<span style="color: #0000ff;">Variable</span> Name="current_level" Type="int" Value="1" /&gt;

    <span style="color: #008000;">&lt;!--Create a condition variable that tests the current level is between 1 and 9 /--&gt;</span>
    &lt;<span style="color: #0000ff;">Variable</span> Name="low_level_extras" Type="condition" <span style="color: #ff0000;">Value="current_level GTE 1 AND current_level LT 10"</span> /&gt;</pre>
<p>We create an integer variable called current_level and assign it the value of 1. Next we create a new variable called “low_level_extras” that is of type “condition”. The most interesting part of our condition variables is the value, which is:</p>
<pre>     current_level <span style="color: #ff6600;">GTE</span> 1 <span style="color: #ff6600;">AND</span> current_level <span style="color: #ff6600;">LT</span> 10</pre>
<p>Unlike normal variables which contain constant values of some kind, condition variables contain dynamic expressions that are evaluated at run-time. The end result of a condition variable is always either true or false. The above expression in terms of C code would read like this:</p>
<pre>     <span style="color: #0000ff;">bool</span> low_level_extras = (current_level &gt;= 1 &amp;&amp; current_level &lt; 10);</pre>
<p>Condition variables aren&#8217;t much use on their own and are usually used in conjunction with actions to provide conditional action functionality whereby an action or actions group will only be executed if a certain set of conditions are met. Lets take a look at a quick example:</p>
<pre>    &lt;<span style="color: #0000ff;">Actions</span> Name="NextScene"&gt;
       &lt;<span style="color: #0000ff;">Action</span> Method="LoadXOML" Param1="MainScene.xml" /&gt;
       &lt;<span style="color: #0000ff;">Action</span> Method="LoadXOML" Param1="LowLevelExtras.xml" <span style="color: #ff0000;">Condition="low_level_extras"</span> /&gt;
       &lt;<span style="color: #0000ff;">Action</span> Method="KillScene" /&gt;
    &lt;/<span style="color: #0000ff;">Actions</span>&gt;</pre>
<p>The above actions group is called when we click a button to start a game. The actions group starts by loading the MainScene XOML file which creates the main game scene. Next the condition variable “low_level_extras” is checked to see if It is true, if current_level is between 1 and 9 then the variable will return true and the additional XOML file “LowLevelExtras” will be loaded. If however the current_level variable is less than 1 or greater than 9  then the additional XOML file will not be loaded.</p>
<p>This is just a very simple example showing how conditional actions can be used to re-use and extend XOML code.</p>
<p>And that&#8217;s it for this update. Thank you to all those who have downloaded cOnnecticOns on one platform or another and massive thanks to those who left us a review, you are awesome.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.drmop.com/index.php/2012/03/15/iwgame-engine-v0-32-released-data-bindings-and-conditional-variables/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

