ANDROID
iOS
COCOS2d-X
Unity

The SOOMLA Project is an open source framework for virtual economies in mobile games. Our goal is to allow mobile game developers easier implementation of virtual currencies, virtual goods and in-app purchases. The framework includes:
Didn't you ever wanted an in-app purchase one liner that looks like this:
[StoreInventory buyItemWithItemId:@"[itemId]"]
The ios-store is our ios-falvored code initiative part of The SOOMLA Project. It is an iOS SDK that simplifies the App Store's in-app purchasing API and complements it with storage, security and event handling. The project also includes a sample app for reference.
Apart from calling the IAP api, the day to day interaction with SOOMLA will be to update balances of virtual goods. This is done through StoreInventory. Here are 3 basic examples:
Give the user 10 pieces of a virtual currency with itemId "currency_coin":
[StoreInventory giveAmount:10 ofItem:@"currency_coin"];
Take 10 virtual goods with itemId "green_hat":
[StoreInventory takeAmount:10 ofItem:@"currency_coin"];
Get the current balance of a virtual good with itemId "green_hat" (here we decided to show you the 'long' way. you can also use StoreInventory):
VirtualGood* greenHat = (VirtualGood*)[[StoreInfo getInstance] virtualItemWithId:@"green_hat"];
int greenHatsBalance = [[[StorageManager getInstance] virtualGoodStorage] balanceForItem:greenHat];
Didn't you ever wanted an in-app purchase one liner that looks like this:
StoreInventory.buy("[itemId]");
The android-store is our first open code initiative as part of The SOOMLA Project. It is a Java API that simplifies Google Play's in-app purchasing API and complements it with storage, security and event handling. The project also includes a sample app for reference.
Apart from calling the IAP api, the day to day interaction with SOOMLA will be to update balances of virtual goods. This is done through StoreInventory. Here are 3 basic examples:
Give the user 10 pieces of a virtual currency with itemId "currency_coin":
StoreInventory.giveVirtualItem("currency_coin", 10);
Take 10 virtual goods with itemId "green_hat":
StoreInventory.takeVirtualItem("green_hat", 10);
Get the current balance of a virtual good with itemId "green_hat" (here we decided to show you the 'long' way. you can also use StoreInventory):
VirtualGood greenHat = (VirtualGood)StoreInfo.getVirtualItem("green_hat");
int greenHatsBalance = StorageManager.getVirtualGoodsStorage().getBalance(greenHat);
Haven't you ever wanted an in-app purchase one liner that looks like this ?!
StoreInventory.BuyItem("[itemId]");
The unity3d-store is the Unity3D flavour of The SOOMLA Project. This project uses android-store and ios-store in order to provide game developers with in-app billing for their Unity projects.
We've created a unitypackage and an example project:
Unity 4.0 - unity3d-store v1.01
Unity 3.5 - unity3d-store v1.01
Unity 4.0 - unity3d-store v1.01 example
Unity 3.5 - unity3d-store v1.01 example
Apart from calling the IAP api, the day to day interaction with SOOMLA will be to update balances of virtual goods. This is done through StoreInventory. Here are 3 basic examples:
Get VirtualCurrency with itemId "currency_coin":
VirtualCurrency coin = StoreInfo.GetVirtualCurrencyByItemId("currency_coin");
Give the user 10 pieces of a virtual currency with itemId "currency_coin":
StoreInventory.GiveItem("currency_coin", 10);
Take 10 virtual goods with itemId "green_hat":
StoreInventory.TakeItem("green_hat", 10);
Get the current balance of green hats (virtual goods with itemId "green_hat"):
int greenHatsBalance = StoreInventory.GetItemBalance("green_hat");
Haven't you ever wanted an in-app purchase one liner that looks like this:
cocos2dx_StoreController::buyMarketItem("[itemId]");
The cocod2dx-store shows you how to use The SOOMLA Project's android-store and ios-store in your cocos2d-x project. In cocos2dx-store there are 3 relevant scenes: MainScene, StoreAScene and StoreBScene:
Apart from calling the IAP api, the day to day interaction with SOOMLA will be to update balances of virtual goods. This is done through StoreInventory. Here are 3 basic examples:
Add 10 coins to the virtual currency with itemId "currency_coin":
string itemId("currency_coin");
cocos2dx_StoreInventory::addCurrencyAmount(itemId, 10);
Remove 10 virtual goods with itemId "green_hat":
string itemId("green_hat");
cocos2dx_StoreInventory::removeGoodAmount(itemId, 10);
Get the current balance of green hats (virtual goods with itemId "green_hat"):
string itemId("green_hat");
int balance = cocos2dx_StoreInventory::getCurrencyBalance(itemId);
We want you!
Fork -> Clone -> Implement -> Test -> Pull-Request. We have great RESPECT for contributors.
MIT License. Copyright (c) 2012 SOOMLA. http://project.soom.la