Feature Overview

Index


Stack (stack.dimerocker.com)

Stack is where you manage your games with dimeRocker. In Stack you can set up leaderboards (high scores), achievementsmarketplace and inventory features. You can also configure social network deploymentanalytics, and payment gateway services.

Canvas

The canvas is where your game is displayed on social networks. It's an iframe coming from our deployment site http://drunleash.com. You can customize display properties of the canvas through options found in Stack.

API Calls

Most dimeRocker features are accessed through implementation of our API. A free and open source library for the Unity game engine is provided, and we're working to provide support for additional engines. The Unity package can be downloaded here. Documentation for the available API calls can be viewed here.

After adding the library to your game, you are unable to make API calls until your game's version ID and secret key are provided. These can be found in Stack in the Versions section. To test your game before it's deployed on a social network, you'll also need to provide your dimeRocker username and password.

When testing your game in the editor, you are unable to access the social network features (profile picture, friends list, etc.) that are available when your game has been deployed. This information can only be retrieved when your game is run on one of our supported social networks.

A user can make 500 API calls per game, per hour. This is important to keep in mind when integrating dimeRocker; if a user hits this limit, they have to wait until the hourly API limit reset occurs, so it's critical that this limit cannot be reached in your game.

Versions

Versions are what you use to deploy your game. You can upload a build of your game to a version and edit its display properties for the canvas. This is where you can choose the dimensions of your game, the loading screen, and more.

The purpose of having multiple versions is to easily switch between different builds. For example, if you wish to release a major update, you should create a new version in Stack and upload the new build. When you're ready to deploy it, simply click deploy and it will instantly switch to your new version on the canvas. Versions can also be useful for initial testing and demoing of your game.

When you make a new version, a new version ID and secret key is generated. You need to make sure you update this information inside your game. It's possible to edit the secret key, so you're able to keep the same secret key for all versions if desired. The secret key is used to identify you as the owner of the game and allows for API calls to be made from your game. It's very important that you protect the secret key.

Data Store (Game Save/Load)

Data store is the service used to save and load arbitrary user-centric information. For example, if you want to save a player's experience points, strength, stamina, etc., you can do so using the DataStore API. You can also use it to store player preferences. Consider saving and loading the music/sound effects volume, display options, and control settings the user chooses so that they can return to the game on any computer and have it still configured to their liking.

There is no single purpose for the data store; up to 64,000 characters per user can be stored for any reason. When you save, all previous information in the user's data store is overwritten. This means that if you save volume settings and then later save the user's experience points without also saving the volume settings again, those settings will be overwritten and may cause errors in your game.

Leaderboards (high scores)

Leaderboards are a set of values ranked in descending or ascending order. You can set up a new leaderboard in Stack. When setting up a leaderboard there are several fields to fill out, all of which can be fetched in-game if desired. The fields you don't plan to use can be safely ignored. After creating a leaderboard, an ID is generated that is used in your game when doing Leaderboard API calls. You can create as many leaderboards as you like. Consider creating daily, weekly, monthly, and all-time leaderboards.

When your game submits an entry to a leaderboard, a score must be supplied. The score is how the leaderboard entries are ranked. In the leaderboard setup you can choose to have the scores ranked in ascending or descending order. Ascending means that lower scores rank highest; an example is the fastest lap times in a racing game. Descending means that higher scores are best, as would be desired in a game where points are accumulated for positive actions (Space Invaders, Super Mario Bros., etc.).

There is the option to have leaderboards reset daily, weekly, monthly, or never. The latter option being the default. Daily resets happen every day at midnight. Weekly resets happen Sundays at midnight. Monthly resets happen at midnight on the last day of every month. The dimeRocker servers are on Pacific Standard Time (GMT-8).

The Val 1, Val 2, and Val 3 options are the names of columns in the leaderboard that can contain any arbitrary information to be saved alongside the score. For example, if you wish to save the amount of time it took the player to achieve their score, you could name Val 1 "Time" (or any name you want). When you post the score, be sure to supply the time value to the Val 1 parameter. When scores are shown in your game, you can include a Val 1 column to show the time it took for the user to achieve their score.

Achievements

Achievements are meant to be used as short-term and long-term goals for your players to aim for as well as to see their progression through the game. Adding achievements to your game can greatly increase its replayability.

You can set up achievements in Stack. Here you can choose a name, description, and an optional image associated with the achievement. This information can be accessed in-game through the Achievement API. If you don't upload an icon, the achievement is given a default dimeRocker icon corresponding to the number Gamer Points it awards.

Gamer Points are a global statistic used across all dimeRocker games. It works similar to Xbox Live and the PlayStation Network's trophies. There are four different levels of achievements; Bronze, Silver, Gold, and Black Metal. Each achievement level is worth 10, 20, 30, and 40 points, respectively. Each game can only create up to 1000 points worth of achievements. This means that you can have 100 bronze achievements at most. If your game design requires more achievements than this limit, please contact us.

The logic to determine if you should unlock/award an achievement to a player is left to the developer. The actual awarding of the achievement is done through our Achievement API. You can also unaward an achievement. This is useful if a user's achievements should be reset each week, for example. When you create an achievement, an ID is generated that is used in-game with your Achievement API calls.

Marketplace

The dimeRocker marketplace features allow you to create items, stores/shops, inventories, and in-game currencies. Whether or not these features involve micro-transactions is up to you.

Items

Items can be any "thing" that the player can get, whether that be a magical sword, an extra level, or the game itself. Items are used with lockers and storefronts. If the item is being purchased from a storefront then a wallet is also required. Items can be placed in a store using Stack. Items can only be put in a user's locker by using the Storefront and Locker APIs.

When setting up an item in Stack, it can be given a name, description, and price. This information can be retrieved using the Locker and Storefront APIs, assuming the store or locker contains the item. The price is global amongst all currencies. For example, if the item price is 10, it will cost 10 of any of your in-game currencies.

Storefronts (Stores/Shops)

A store is what is used to sell items to the user, using either in-game currency or real money. When you set up a store in Stack you can choose its name and description, both of which can be accessed in-game through the Storefront API. After creating a storefront, an ID is generated that is used with the Storefront API.

After you have created a store, you have the option in Stack to manage the items it sells. When you click to manage a store, items currently in it are listed. To add more items, click the "Add Item" button. You will see a list of items available to add to the store. You must already have created an item for this to work. If you have already added an item to the store, it will no longer appear in this list.

Stores are not user-centric. If you add an item to a store, all users in your game are able to see it. Use your own in-game logic to set limitations on stores. Whether that be limiting quantities or making price modifications using the DataStore API, there are many customizations you can do using custom game logic.

To use a Storefront in-game, you must also have created at least one wallet and one locker.

Wallets (Game Currencies/Money)

Wallets are used to store in-game money for users. After creating a wallet in Stack, an ID is generated which is used in the Wallet and Storefront APIs.

Another setting you need to choose when creating a wallet is whether or not it deals with real money transactions (RMT). For a player to get RMT currency, they need to go through a payment gateway (SuperRewards). You can also give the user this currency in-game using the Wallet API. We strongly recommend doing so conservatively; if the currency is easy to obtain in-game, there is little incentive for users to purchase items using real money.

By creating multiple wallets, you can have multiple currencies. This is a good way to separate RMT currency from non-RMT currency. For example, you can have "Coins" which are earned in-game, and "Cash" which is made available by spending real money. You can choose to sell items in a store using either currency, or both.

Wallets can be credited or debited using the Wallet API. They are automatically debited if the user buys an item using the Storefront API. If the user does not have enough money to purchase the item but tries to do so anyway, the transaction will fail.

Lockers (Inventory)

Lockers are a user-centric inventory system. Items you create in Stack can be placed in a user's locker using the Locker and Storefront APIs. Making multiple lockers in Stack allows you to better organize where the user's items are. For example, your game might have a locker for keeping track of items in the user's "backpack." You may also have a locker that keeps track of what items a user has on their "farm."

After creating a locker, an ID is generated which is used with the Locker and Storefront APIs.

Facebook Deployment

To deploy your game on Facebook, complete the Facebook Deployment configuration in Stack. Before this information can be filled in, you need to create a Facebook app.

  • Go to http://www.facebook.com/developers/
  • Set up a new application.
  • In Basic Settings, copy the Application ID, API Key, and Secret to the Facebook application settings in Stack.
  • In Canvas Settings, set the Canvas Page URL and copy it to the Facebook application settings in Stack.
  • Set the Canvas Callback URL to the URL displayed in the Facebook Deployment instructions in Stack.
  • Set Render Method to iFrame.
  • Set iFrame size to Resizable.
  • Set Canvas Width to Full Width (760px).
  • Set Quick Transitions to On.
  • In Connect Settings, set the Connect URL to http://drunleash.com/
  • Save your settings on Facebook and Stack.

Using Google Analytics

  • Go to http://www.google.com/analytics/
  • Sign up for a Google Analytics account. We recommend you create a new Google email address for this as we will require the password for that email account in the future. This will enable us to present your analytics inside our dashboard.
  • Create a profile based on http://drunleash.com
  • Enter the tracking code from Google in the tracking code field on Stack.
  • Check the Enable Google check box on Stack.
  • Submit your changes.

After you've completed these steps, you can record any analytics you need by executing a call from your game to the JavaScript on the surrounding page. The JavaScript function is "record_analytic(key, value)". Keep in mind that this only works for in-game analytics and will not track any social or viral analytics.

Payment Gateway Services

If you're looking to make money on your game you will need to use a payment gateway. SuperRewards is the gateway provided by dimeRocker. To use SuperRewards you will need to create a Real Money Transaction Wallet. Your game can only have one RMT Wallet. This currency will automatically be linked to the payment gateway. Users can then purchase that currency via the payment gateway. Then you can make items linked to the wallet so they can be purchased using the RMT currency.

To bring up the payment gateway for the user, you need to use StoreFront API's ShowRMT/Hide RMT functions. Showing RMT will hide your game and replace it with the payment gateway options. With SuperRewards your users have many options available to pay (credit cards, pay-pal, mobile phones, stored value cards), including an offer wall where they can take surveys, etc, and earn the currency that way (SuperRewards pays you instead). In most cases the transaction will process within 15 minutes, but in some cases (depending on the payment method) it can take longer.


dimeRocker Master Server (Unity)

The Unity Master Server is used for polling and connecting peer-to-peer multiplayer sessions in Unity. To use the dimeRocker Master Server, choose Create dimeRocker Object from the dimeRocker menu. Click on the newly created "dimeRocker" game object; in the inspector there is a checkbox to enable the dimeRocker Master Server.


After enabling this service, the following variables are changed on game start to work with the dimeRocker Master Server:

MasterServer.ipAddress
MasterServer.port
Network.natFacilitatorIP
Network.natFacilitatorPort
Network.connectionTesterIP
Network.connectionTesterPort