Ok, its finally here the awesome iPad 3 with is uber super 2048 x 1536 pixel retina display resolution! Its availabl now in the US and March 16th in Canada, UK, France, Germany, Switzerland and Japan.
Prices go like this:
16GB – $499 / £399
32GB – $599 / £499
64GB – $699./ £599
The IwGame Engine is gonna kick some serious a** on iPad 3!
Will need to upgrade the graphics in cOnnecticOns to account for the higher resolution display
Hey everyone, we decided to make cOnnecticOns FREE for a few days to increase its visibility and hence visibility of the IwGame Engine. If you haven’t already downloaded it then please take a look at http://itunes.apple.com/us/app/connecticons/id505645452?mt=8
Please consider leaving us a nice review, it only takes 2 mins!
Great news. cOnnecticOns is now available on the Apple iTunes app store. Woohoo, passed fist time!
It’s available for almost a kings ransom ($0.99 in earth money). For those of you that are as bad off as me, here are a few promot codes so you can grab a FREE copy:
Hey everyone, some good news. We finally got the first version of the first IwGame Engine game cOnnecticOns up on the Android Market at https://market.android.com/details?id=com.pocketeers.connecticons. Playbook, Bada and iOS builds will be available within the next few weeks.
And the even better news is that we are on schedule for releasing the full source this weekend! We’ve had a bit of a delay because we decided to upgrade the game a bit. We added an extra zone with 10 additional levels, as well as a game editor to allow players to create and play up to 20 of their own levels. Oh, and players can also post their scores to Facebook using the new CIwGameFacebook class (coming in the next IwGame engine update 0.31 this weekend)
cOnnecticOns for Android, iPhone, Bada and Blackberry
The next update of the game will feature sharing levels between users using a web service, for which we will release the full source code, including the server side scripts.
The update after that will feature in-app purchase content using new classes that e are developing for the IwGame engine.
If you download the game then please consider leaving a nice review
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. You can find out more and download the SDK from our IwGame Engine page.
Well, Dan said a few weeks ago that “it’s only until you eat your own dog food that you know you have to improve the taste of it”. I thought about this and decided that we really needed to create a game using the engine to show its various features in action. So with this, I began work on a game (currently unnamed), but decided that the game would take a few weeks to finish off, so moved over to producing a completely new game from scratch but with a simpler design. The end result was a game that was created in less than 36 man hours, including art production, coding, design and scripts (I was aiming for 24 hours but I came across a a few nasty bugs that took a fair bit of time to fix). In addition,. I underestimated how difficult it would be to put levels together without an actual editor. I will very likely build an actual editor into the cOnnectiCons game itself to allow players to create their own levels. So the game ended up with 20 levels, with an additional 20+ levels coming later.
We have already started submitting the game to app stores, so when we release the source “Don’t go getting any ideas lol”. The source will be provided as a learning exercise, and not for someone else to make a quick buck off.
Ok, now that’s out the way, lets take a brief look at the changed that have arrived in IwGame v0.3:
Support added for particle based actors via CIwGameActorParticle and CIwGameActorParticles as well as XOML via ActorParticles and Particle tags. Particles can be defined individually or in batches using random parameters. Particles have position, linear velocity, angular velocity, scale velocity, colour velocity, depth velocity, velocity damping, lifespan and repeat
Support for Marmalade fonts has been added via CIwGameFont wrapper and a new XOML Font tag
All rendering now uses IwGx instead of Iw2D. This offers more control over rendering as well as makes the code more portable / versatile in the future
All internal rendering upgraded to sub pixel coordinates offering MUCH smoother rendernig
New 2D rendering class added CIwGameRender2d. This cklass allows batch rendering of primitives and rendering of text CIwGxFontPreparedData prepared text
New very powerful template system added to XOML. The template system allows you to create a complex piece of XOML using paramaters that can be passed in when the template is instantiated. Templates can also be instantiated from code using CIwGameTemplate::Instantiate()
CIwGame::addScene() can now auto bring a scene to the front of scene stack
New global actions added to XOML – Launch, setBGColour, SetCurrentScene and BringtSceneToFront
Actors and sprites now have a depth property allowing you to add 3D depth to them
Actors and sprites now have an origin attribute
Support added for sprites and actors for none uniform scaling
Support added for linked actors. A linked actor will utilise the transform, colour and visibility of the actor it is linked to. In XOML, you can use the new LinkedTo tag to set linkage or the more natural and readable method of defining actors within actor tags. This system allows complex multi-patr actors to be created and animated
Actors now support OnCreate and OnDestroy events in code and in XOML
Scenes now support OnCreate, OnDestroy OnGainedFocus and OnLostFocus events in code and in XOML
New text based actor and sprite types added CIwGameActorText and CIwGameTextSprite.
Animation system now supports linear, quadratic, cubic and quartic on / out easing in code and in XOML. In addition value interpolation can be enabled / disabled
Animations now support absolute and delta values
Animation timelines now support OnStart, OnEnd and OnRepeat events in code and in XOML
CIwGameAudio::PlayMusic now supports repetition with additional parameter in XOML
New CIwGameSlotArray class added for efficient resizable arrays
Actor Box2D collision system was broken and inefficient. The system has been completely reworked and now uses the new more efficient CIwGameSlotArray
CIwGameBox2dBody now has new awake and active methods
CIwGameCamera now supports velocity, damping and touch panning. Touch panning will pan the camera to follow the users finger
More than one scene can now receive input events using the new AllowFocus functionality in code and in XOML
New findClosestActor and findFurthestActor methods added to CIwGameScene
CIwGameBitmapSprite now supports colour per vertex
CIwGameSpriteManager supports enabling / disabling of batching and a new centre of projection property for depth used by depth sprites
CIwGameInput reworked to better support multi-touch
PlayTimeline, StopTimeline and SetTimeline now supports a second parameter which points to the scene or actor that the timeline change should be made to
Actors can now be marked for hit testing in XOML
Image files can now be loaded directly from XOML without the need for Marmalade resources files
CIwGameScene and CIwGameActor based objects are now marked as destroyed when they are removed so they cannot be found in a scene or actor search
CIwGameXmlNode now supports cloning
Bug Fix: Actors now take into account their visibility when being hit tested
Bug Fix: CIwGameActor::setCollidable no works
Bug Fix: StartTimeline action now restarts a stopped timline properly
Bug Fix: Clipping rect is now transform by the scenes transform (will not clip correctly against rotated scenes however)
Bug Fix: XML parser fixes
Bug Fix: CIwGame game scene switch scene bug fixes
Bug Fix: CIwGameAds::ErrorFromResponse fix that were causing some valid ads to be in error
Bug Fix: CIwGameAnim fixes
Bug Fix: Polygon based Box2D bodies now fixed
Bug Fix: Sprite rendering transform fixed
Bug Fix: CIwGameBitmapSprite with no loaded image no longer crash
Bug Fix: CiwGameString crashes fixed (were causing rare problems with XML system)
Bug Fix: Fixed issue with CIwGameXmlAttribute::GetValueAsColour not checking for correct parameter count
Bug Fix: On device scene shut down camera deletion fixed
Ok, that’s a shed load of changes, but I can assure you that they are all for the better. IwGame is now a professional grade and fairly stable engine that can be used to create games in as little as 36 hours!
Lets take a look at some of the new additions in more detail.
Templates
I want to start with my utmost favourite change to 0.3 which is templates. I am so in love with templates that I feel like I could almost marry one! They saved me so much time when developing cOnnecticOns. Templates allow you to create large sections of XOML as templates then instantiate those large
pieces of XOML somewhere else using custom parameters that you pass to the template when you instantiate it. Lets take a quick look at a super simple example:
Here we define a template called ActorTemplate that contains a basic InertActor definition. You may notice some strange markers in there surrounded by double dollars signs ($name$, $image$,$pos$, $scale$ and $depth$).
Now when we instantiate this template somewhere we would use:
The above XOML command will instantiate whatever is in the ActorTemplate template passing all of its parameters, replacing the double dollar definitions inside the template (Hmm, sounds very much like calling a function? Which I guess in some ways it is)
Templates can be as massive and as complicated as you like, allowing you to design and instantiate some very complex objects with very few lines of XOML.
Rendering Engine Upgrade
Up until version 0.29 of the IwGame Engine we used Marmalade’s Iw2D engine as the rendering core. As of v0.30 we have switched to Marmalade’s IwGx rendering system as it offers much more versatility as well as brings the engine into the realms of 3D rendering, which is where we will eventually be steering the engine.
To facilitate this change over and to keep the game engine code nice and readable, all rendering has been abstracted away into a nice simple class called CIwGameRender2d. CiwGameRender2d is and will in future be the centre point for all rendering that takes place within IwGame.
At the moment CiwGameRender2d offers:
Batch and none batch sprite rendering of quad based polygons
Rendering of prepared text from the Marmalade IwGxFont system
In the near future we will be adding support for various other types of primitives, 3d models and hopefully our own custom shaders etc..
Lastly, all rendering now uses sub-pixel accuracy which looks much much smoother.
Text and Fonts
IwGame now supports definition of Marmalade fonts and custom rendering of those fonts using a new text based sprite and actor. Text based sprites and actors are treat just like any other sprite or actor objects, so they can be spun, scaled, linked, colour changed etc.. Unlike generic actors text based actors can be instantiated without deriving your own class from CIwGameActorText
3D Sprites / Actors
Another one of my favourite additions to 0.3 is 3D sprites. All sprites and actors can now have a depth value (think iof this as a z value) that allows you to project sprites into 3D. This system is great for create parallaxing effects etc..
Oh and sprites / actors also get an adjustable origin and none uniform scaling
Linked Actors
Actors can be created within other actors to form a parent / child relationship. Inner actors will be linked back to their containing actor forcing them to be transformed by their parent actors. This system allows you to create a very powerful intuitive multi-part actor system complete with animations per actor part. Note that all positions, depths etc will be relative to the container actor, so for example, if the parent actor has a Depth value of 1.0f and the child actor has a Depth value of 1.0f then the child’s effective Depth will be 2.0f. Here’s an example showing parent / child actors:
In the above XOML the parent actor level1 contains three children actors that will all follow theLevel1 actors visual transform.
Particle System Actors
This actor is special in that it is optimised for creating, displaying and updating a complete system of sprites (kind of like its own sprite manager). The advantage of this actor is that it does not have to deal with each particle as a separate actor object. The CIwGameActorParticles actor supports both manual and auto generation of particles. Auto generation can be controlled using a number of a control parameters.
Particles have a number of properties that can be adjusted:
Visual
Position
Velocity
Velocity Damping
Gravity
Scale
Scale Velocity
Scale Velocity Damping
Angle
Angle Velocity
Angle Velocity Damping
Colour
Colour Velocity
Colour Velocity Damping
Depth
Depth Velocity
Depth Velocity Damping
Active state
Visible state
Lifespan – Duration of particle in seconds
SpawnDelay – The amount of time to wait before spawning for the first time
Lives – Number of times the particle will re-spawn (-1 for infinite)
The particle actor system allows auto generation of particles within certain limits as well as manual generation. Patricles can be defined and placed both in code and in XOML.
Animation Frame Easing
Animations now support in and out easing on a per frame basis using the “Ease” attribute of the frame tag or in code. Valid values of easing include:
linear – No easing
quadin / quadout – Quardatic in / out easing
cubicin / cubicout – Cubic in / out easing
quarticin / quarticout – Quartic in / out easing
Time lines now in the Events System
Its now possible to attach actions to timeline events such as OnStatr, OnEnd and OnRepeat. So for example, each time an animation repeats you could play a sound effect or maybe when an animation finishes yu kill destroy the actor or start a particle system off going etc..
Animations now support delta / absolute coordinates
Every animation can now be specified as absolute or delta. An absolute animation will write its interpolated frame values directly into the target objects properties (such as position), whilst a delta animation will update the current target properties. So for example, a delta animation for position would adjust the position by dx, dy, where dx and dy is the current interpolated frame value.
Automatic Touch Panning for Cameras
Cameras now have X and Y axis touch panning. When a camera is touch pan enabled it will track the users finger drag on screen to determine a velocity to move the camera by. Touch panning can be enabled on the X an Y axis independently.
Other cool changes
Multi-focus scenes – More than one scene can now receive input events
Local images can now be loaded from XOML
There are many other changes but I don’t really have the time to go through them all. There’s also a mound of bug fixes that weer found during development of cOnnecticOns.
We will be releasing the full source to cOnnecticOns later this week along with an additional 10-20 levels.
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. You can find out more and download the SDK from our IwGame Engine page.
The Universe conspired against me this week, first of all landing me with a nice flu, followed directly by some horrible sickness bug that featured projectile vomiting of the likes only seen in movies such as the Exorcist! Thankfully the Universe decided to give me a break this week so an IwGame Engine update got finished.
Most of the changes this week are XOML related as this is the general direction we want to take the game engine. A good mix of XOML mark-up and solid coding should make games and media apps very quick and easy to develop.
Oh and we got a new logo for the IwGame Engine woohoo! Feel free to use the logo in any of your IwGame powered products, or if you want to link to us.
Ok, onto the list of iwGame Engine changes for v0.29:
New style system added to XOML. Actors and scenes can now use a style to reduce repetition
Actors and scenes now handle events such as OnSuspend, OnTapped, OnBeginTouch etc.. When an event fires it executes a collection of actions
Actions added to XOML to allow definition of collections of actions that can be executed. Many default actions are suppported such as ChangeScene, KillScene, PlayTimeline, PlaySound etc.. Custom actions can also be added toextend the system
CIwGame now handles touch begin touch, end touch and tapped events
CIwGame now has new Postdraw() method for adding in custom post draw rendering
Actors can now be made tappable and now handle OnTapped(), OnBeginTouch() and OnEndTouchEvents()
Actors have new HitTest() method that can be used to check if a point is inside the actors visual
XOML now supports creation of cameras
XOML now supports creation of variables and update of variables using actions, supports string, bool, int, float, vec2, vec3 and vec4
XOML files can now load other XOML files with new LoadXOML tag as well as LoadXOML action
Scenes now support a type field
CIwGameBitmapSprite now supports image transforms (flips. mirrors etc) which can be also applied to actors visuals using FlipX and FlipY attributes
You now change the current time of a CIwGameAnimInstance and CIwGameAnimTimeline
Bug Fix – Actor visibile state now works properly
Bug Fix – CIwGameShape::setShape() now works
Bug Fix – Transform is now reset after CIwGameAdsView finishes rendering
Bug Fix – JPEG file detection fixed, was not detecting certain types of JPEG files
Bug Fix – CIwGameString::FindNext() crash fixed
Quite a few changes and bug fixes. Note that someo f the bug fixes directly affected IwGameAds so an update to that API will be released shortly.
Lets take a look at the changes in more detail.
XOML Variables
XOML got variables, but why? Well, there are a number of reasons:
We want to be able to define values that can be read by the main code
We want to change these values via actions
When we implement the UI system we are looking to add data binding capabilities that will rely on values
You can later modify the value of that variable using a SetVar action, more on this later.
Each scene contains its own variables collection and the global resource system also contains a global variables collection.
XOML Styles
XOML now supports the styling of actors and scenes using the new Style tag. XOML styles enable you to create a set of properties and values that are common across a range of objects then apply tat style the to them all. Hers a quick
The TestActor Player2 will be assigned all of the values in the properties defined in the style saving you a whole bunch of typing as well as making your mark-up much more readable and easier to maintain.
XOML Events And Actions
Actors and scenes now support various events that can fire off user defined actions. The following events are currently defined:
Scenes:
OnSuspend – Called when a scene is suspended
OnResume – Called when a scene is resumed
Actors:
OnTapped – Called when the user taps an actor
OnBeginTouch – Called when the user begins to touch an actor
OnEndTouch – Called when the user stops touching an actor
More will be added as we think of them or when requested. You can also add your own custom events youself. Check out the CIwGameActor class for a reference on how to do this.
Events wouldn’t really be much use unless we could carry out some kind of action when the event occurred. Actions are defined in XOML using the Actions tag, heres an example:
You actually create a group of actions that are all executed when the action is called by an event.
The following actions are currently supported:
ChangeScene – Changes the currently focused scene to the specified scene
SuspendScene – Suspends the specified sceme
ResumeScene– Resumes the specified sceme
HideScene– Hides the specified sceme
ShowScene– Shows the specified sceme
ActivateScene – Activates the specified sceme
DeactivateScene – Deactivates the specified sceme
KillScene – Destroys and removes the specified sceme from the game, all contained resources amd actors will be also be destroyed
HideActor – Hides the specified actor
ShowActor – Shows the specified actor
ActivateActor – Activates the specified actor
DeactivateActor – Deactivates the specified actor
KillActor – Kills and removes the specified actor
PlayTimeline – Plays the specified timeline. If no timeline is supplied then the current actor / scenes timeline will be restarted (depends on where the action was defined)
StopTimeline – Stops the specified timeline. If no timeline is supplied then the current timeline will be stopped. (depends on where the action was defined)
SetTimeline – Changes to the specified timeline. If no timeline is supplied then the current timeline will changed and restarted. (depends on where the action was defined)
PlaySound – Starts playing a sound effect
PlayMusic – Starts the playing specified music file
StopMusic – Stops the music player playing
LoadXOML – Loads a XOML file into scene or globally. If a scene is provided then the XOML will be loaded into that scene
SetVar – Sets the value of a variable
Again, more will be added as we think of them or when requested. You can also add your own custom actions youself. Check out the CIwGameXomlAction_Actors class for a reference on how to do this.
Coupled together the events and actions system provide a very powerful way of creating fully interactive content without having to write a single line of code.
Loading Other XOML Files
It is now possible to load other XOML files from a XOML file using the new LoadXOML tag. Heres an example:
You can also (as shown in the actions section) load a XOML file from an action.
Using this system you can create fully interactive navigation based content. Think adventure games, books, magazines and informational apps etc..
Scene Cameras
Cameras can now be defined in XOML and attached to scenes. You can also switch a scenes camera using the animation system.
Image Transforms for Sprites and Actors
Sprites and actors can now use an image transform allowing you to flip the source image used to render the object. The ne FlipX and FlipY attributes are now available in XOML.
Well thats it for this update. IwGame now has some very cool features that should hopefully make game / app development much easier and quicker for everyone.
We are going to assess the possibility of wrapping up Marmalades cool UI system with XOML very soon, will keep you all posted on how that goes. I am also looking at producing a new article on in-app purchasing with the Marmalade SDK, which will form the basis of in-app purchasing for the IwGame engine.
We currently don’t have a clue as to how many developers are using or planning to use IwGameAds. Please let us know by selecting one of the following options
Merry Christmas everyone, I hope all you nice, well behaved developers were left something nice from Santa!? Santa left me an HTML 5 game development book, so who knows, you may see some HTML 5 related tutorials appearing on drmop.com soon. Who knows, an HTML 5 version of IwGame may appear one day.
2011 has been a busy year, we’ve (Pocketeers Limited) released BattleBallz Chaos paid and free versions on iPhone, iPad, Android, Samsung Bada and Blackberry Playbook. We’ve also released Funky Cam 3D paid and free versions on iPhone, iPad, Android and Samdung Bada. In addition, we developed Murder Detective, Hampton Bridge Murder for Tournay Software on iPhone, iPad, Blackberry Playbook and Android as well as helped Honey Badger Studios port their Zixxby game over from Android to iPhone, iPad and Blackberry Playbook using the Marmalade SDK.
Now for a quck appraisal of the apps we developed this year:
Funky Cam 3D FREE has shipped over 500k units on Android, around 100k units on iOS and about the same number on Samsung Bada. Revenue income from Funky Cam 3D FREE is around $10-$20 per day (15k-20k impressions per day) across all platforms. Income from paid versions of Funky Cam 3D is very poor across all platforms. Funky Cam 3D FREE is currently the No 1 downloaded app for Samsung Bada on Samsung Apps. Reviews have been a mixed back, some love it whilst some hate it
BattleBallz Chaos got a fair bit of publicity in association with the Marmalade SDK, being featured on stage at the Blackberry Dev Con 2011 as well as in an official Blackberry Playbook gaming advert, Pocketeers also received a fair bit of attention from the Blackberry press because of the speed at which we converted the game over Playbook and had it live on the store (less than 24 hours). BattleBallz Chaos paid sales have been better than Funky Cam 3D by around 200%, but ad revenue has been incredibly bad (less than $1 per day). Reviews have been pretty positive across all platforms, although we have had some Android compatibility issues which has skewed our Android ratings somewhat.
This year was our entry into the mobile market, we came in from console development, so we have had a lot to learn. In summary:
Know your audience – We expected mobile gamers to play similar games to console (not so). We have been watching the top 100 apps and games over this year and discovered that mobile gamers do not want console style games. Instead they want low intensity, easy learning curve gaming, less competitive game play with highly colourful quality graphics and animations. Mobile gamers also expect a walk through or some kind of game introduction as opposed to a help screen that’s hidden away in the menu system.
Marketing is the key – App stores are filled with hundreds of thousands of apps so getting noticed is incredibly difficult. Genuine free apps for obvious reasons require less marketing as users are much more likely to download them because they don’t have to pay anything. Most app stores base their rankings on number of downloads in the last X hours / days, because of this Marketing is best done in bursts to increase the chances that users will discover and and install your app in a short period of time. To rise up the charts quickly requires a lot of marketing in a short period of time.
Ad Mobs v Facebook advertising – Both are quite useless unless you have a LOT of money to spend on a campaign, although we did find that Facebook ads did work better than AdMobs
Freemium – Although we have not tested the great freemium theory, a majority of app revenue is coming from the sale of additional levels perks , items and other in-game consumables (much like the Zygna facebook model), so this is something we are going to test out in 2012.
Android platform – Whilst the Android platform is cool and all, it just isn’t much use for making money. In fact, if the Marmalade SDK did not support the Android platform ten we would most likely drop it altogether. Its ok, if you want to make a few bucks from ads, but not worth investing a significant amount of money into. That said, we are yet to try out a freemium based model of monetisation, so we will give it another chance this year.
Price playing – We discovered that we can increase the visibility of an app or game by regularly dropping the price to very low or even free. Users notice the price drop and download discounted products in droves (everyone likes a bargain!). This can push your apps position up in the charts temporarily. We have found that dropping our price to free for 2 days can give you a sales boost for 7-14 days.
Lite versions – We found that releasing a limited lite version of BattleBallz Chaos didn’t affect sales much, we had very few converts to the paid version. That said, BattleBallz Chaos is the completely wrong type of game for the mass mobile market
Cross promotion – We found that cross promoting apps and games worked quite well. We placed a large full sized ad into each of our apps, effectively advertising each others availability. We may try a system such as OpenFeint’s in 2012 to increase exposure
Don’t expect to get rich quick and don’t expect anything to be easy – We’ve spoken to many mobile developers this year and the general consensus is that mobile development is easy, but marketing is incredibly difficult. Very few developers actually make it into the top 50/100 which is where the money is at. The journey to the top is long and difficult so be prepared for the long haul and wave good bye to a lot of time and money. if you are not prepared to gamble then walk away from mobile development altogether.
Cross platform is a MUST – If we had simply developed our products on either Android or iOS we would probably have packed up mobile development this year and moved onto something else. If it wasn’t for the Marmalade SDK’s cool cross platform technology we would probably not have stuck with it. Going cross platform will increase the chances of a hit as you are catering for many platforms with very little extra effort or costs. Going cross platform also generally increases your return on investment (ROI).
Don’t believe app the hype – App publishers, app stores and ad networks will say anything to hook you into using their services. Just be sure to research them before putting in the effort. Their advertised figures will usually be massively out of date. Insist on current figures and see what other developers are saying about them around the web.
We also began the development of IwGame this year, an open source cross platform game engine for the Marmalade SDK community. We began development of IwGame for a number of reasons:
Lessen the learning curve for Marmalade developers and provide a solid game engine on top of the Marmalade SDK
To help promote the Marmalade SDK to mobile developers
To help promote Pocketeers Limited’s development services and apps
So far we are very pleased with IwGame and plan on continuing its development all the way through 2012. We also plan on putting our own internal engine on hold for a while to focus on creating games and apps with IwGame to show developers live apps and games created using the IwGame engine. Also, depending upon the success of IwGame this year, we may port the engine to Windows Phone 7 and HTML5.
Well me, Santa and the elves have been very busy bees this week and between us we managed to hammer out another update to the IwGame Engine before Christmas (Thanks Santa, couldn’t have done it without those delicious mince pies!)
Here are the latest changeds for IwGame v0.26:
Bug fix – Actor crash bug when no camera assigned to the scene
Bug fix – Fixed CIwGameHttp crash bug
Bug fix – Fixed ad rendering crash bug
Bug fix – Deleted scenes are now removed at the end of a frame and not immediately
Bug fix – Scenes with no attached camera didnt set transform correctly
Bug fix – Sprite hit test could be called before transform was set up
Accelerometer support added to CIwGameInput
Compass support added to CIwGameInput
CIwGameAdsMediator added to mediate ad requests between multiple ad providers to improve fill rate
Support for VServ, Mojiva, Millenial Media and AdModa ad providers added
ExtraInfo added to ad requests to allow custom information to be passed to ad providers
Added URLDecode method to CIwGameString
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. You can find out more and download the SDK from our IwGame Engine page.
I want to include a big thank you to all those that have reported bugs and documentation errors, especially Phillip who saved me many hours of proof reading.
As you can see from te list of changes there are a fair few bug fixes (sorry about that), but more importantly some new stuff:
New Ad Networks Added
Yes, we now support six ad providers (twelve ad providers indirectly), a couple which also deliver ads from other networks providing you with access to 12 ad networks in total. Here’s the complete list:
Inner-active
AdFonic
Vserv – Also provides support for InMobi, BuzzCity, JumpTap, ZestAdz / Komli Mobile and Inner-active
Mojiva
Millennial Media – Also provides support for AdMob, Amobee, JumpTap and Mojiva
AdModa
Many thanks to those ad providers that bent over backwards to support our integration efforts.
New Ad Mediation Support
Now we have so many ad providers we need some way of mediating ad requests between them all. Ad Mediation is the process of going through a list of prioritised ad providers requesting an ad, if the ad provider does not provide an ad then request an ad from the next provider. Keep on doing this until you get an ad that you can use. This should hlpe you attaina near 100% fill rate and maximise your apsp potential ad revenues.
IwGame provides automated ad mediation using the CIwGameAdsMediator. To use the mediator you create a CIwGameAdsMediator, populate it with ad party’s then attach it to the CIwGameAds object as shown below:
// Create ad mediator and attach it to the main ad object
CIwGameAdsMediator* ad_mediator = new CIwGameAdsMediator();
IW_GAME_ADS->setMediator(ad_mediator);
// Create Inner-active ad party and add to the mediator
CIwGameAdsParty* party = new CIwGameAdsParty();
party->ApplicationID = "Your inner-active App ID";
party->Provider = CIwGameAds::InnerActive;
ad_mediator->addAdParty(party);
// Create AdModa ad party and add to the mediator
party = new CIwGameAdsParty();
party->ApplicationID = "You AdModa App ID";
party->Provider = CIwGameAds::AdModa;
ad_mediator->addAdParty(party);
// Create AdFonic ad party and add to the mediator
party = new CIwGameAdsParty();
party->ApplicationID = "Your AdFonic App ID";
party->Provider = CIwGameAds::AdFonic;
ad_mediator->addAdParty(party);
As you can see, incredibly simple. The process of attaching the ad mediator will ensure that the ad object will attempt to collect ads from all ad parties should previous parties fail to collect an ad. You do not need to make any changes to the ad view, the system is completely automated.
Support for Accelerometer and Compass added to CIwGameInput
CIwGameInput now has support for reading the devices accelerometer and compass devices allowing you to integrate these alternative input methods into your games.
Well that’s it for this update. More features coming soon (probably in the new year).