Join the dR Tune-Up Program!
We are looking for the best ideas, prototypes or finished games and we will provide the support and expertise to help you grow your game.
Apply NowContact Us
- Email support@dimerocker.com.
- Twitter. Follow us @dimerocker
- IRC. Join us in #dimerocker on irc.freenode.net.
- On Facebook. Here's the official dimeRocker page.
- dR User Voice Page.
Frequently Asked Questions
There's no magical formula for having your game go viral, though by implementing social hooks your game can better attract new users and maintain player interest. Leaderboards, achievements, publishing to friends' walls, and a game design that encourages sharing and competition help to keep users engaged.
Absolutely. We maintain an open source project on Github where the code can be modified, branched, and otherwise improved. If you've made a change, we encourage you to let us know.
This is a security feature to prevent external JavaScript from being able to execute methods in the drClient script. Because of Unity's browser communication functionality, it's possible to call a method simply by knowing its name and the name of the game object the script is attached to. Since the drClient is open source, a potential attacker can easily look up the methods available in the API reference. Without knowing the game object's name however, executing arbitrary functions becomes considerably more difficult.
The drClient code is freely available under the liberal MIT license. You're encouraged to take the library and make as many modifications to it as you wish. If you want to contribute your enhancements back, we have a project set up on GitHub.
Not currently, though we're investigating how our system might work on mobile devices using Facebook Connect. Stay tuned for updates.
We support 500 API requests per hour. If your game design requires more than this, please contact us.
Currently we support the Unity game engine, with Flash support coming soon. We plan to support additional platforms in the future.
Currently dimeRocker supports deployment to Facebook and MySpace. We plan to seamlessly support additional social networks in the future. dimeRocker has been built from the beginning with the intention of being able to deploy anywhere, which will make supporting multiple networks in the future easier.
dimeRocker is free for anyone to use. A small percentage of the revenue from micro-transactions is shared to cover our costs.
While dimeRocker was built with games in mind, you can just as easily host other types of applications as well, provided they're built using one of our supported engines (see this question).
Each game can award a maximum of 1000 points to a user's Gamer Score. You are unable to create more achievements than this amount in Stack. If your game requires more achievements than this limit, please contact us and we can work around the issue to satisfy your requirements.
This is a similar concept to Xbox Live's Gamerscore. Each achievement is worth a certain number of points; 10 for Bronze, 20 for Silver, 30 for Gold, and 40 for Black Metal (configurable in Stack). Each awarded achievement increments the user's Gamer Score. This score is the sum of all awarded points in games on the dimeRocker network; that is, if a user has earned 120 points from one game and 530 from another, their total Gamer Score will be 650.
These are the username and password you use for logging into stack.dimerocker.com. Inputting this information allows you to test dimeRocker features from within the Unity editor. Less information is available then if your game were deployed to a social network, but it's helpful for testing features like stores, lockers, etc.
dimeRocker currently doesn't take any steps to prevent memory modifications, though data sent to the server is signed with your secret key so that changing outbound variables has no effect. Leaderboard entries, store purchases, etc. are protected from users wishing to cheat.
dimeRocker uses SuperRewards for payment, which means users can purchase items through PayPal and other payment gateways. Alternatively, users can take advantage of the "offer wall" and purchase items without directly paying for them, while still earning money for the developer.
Before implementing wall posts in your game, we recommend you read through Facebook's Developer Principles & Policies, specifically section VI.A. (presented below for convenience). While it's possible to make wall posts at any time and frequency, ensure the posts are expected and that they are unobtrusive to the user.
- You must not present users with the Feed form or publish a Stream story unless a user has explicitly indicated an intention to share that content, by clicking a button or checking a box that clearly explains their content will be shared.
- You must not provide users with the option to publish the same Stream story to more than one friend's wall at a time.
- You must not use Stream stories as a method for users to invite friends to your application.
- You must use discretion when publishing Stream stories and must not misuse the Stream by publishing an excessive amount of stories on a user's behalf.
- You must not include calls to action in the body of your Stream stories (e.g., "Beat her score!" or "Can you beat her score?"). A call to action must only be presented as an action link (in line with "comment" and "like" and similar to Facebook's stories in design).
Achievements can be based on any criteria. An example of where they might be used:
- in a racing game, award an achievement when a player ranks first ten times in a row
The drAchievement.Unaward function allows you to do this. While in most games you keep an awarded achievement forever, there are certainly novel uses for achievements that expire. An example:
- a "Perfect Attendance" achievement for a player who faithfully plays daily; once a day is missed, the achievement is revoked
Each leaderboard entry has three fields where arbitrary information can be saved.
Yes. Let's use chess as an example. Since data can be retrieved from any user's data store, one player can store the game's state and the competing player can modify that data. Using this technique, it's possible to play a chess game over many days in the fashion of correspondence chess, using a wall post to alert the player's opponent that they have made a move.
With that said, the data store is not ideal for the constant data exchange that you would need in faster-paced games. In these situations, peer-to-peer networking or a third party library like SmartFox is recommended.
The data store can be used to save any arbitrary information. To create an activity feed, use drDataStore to save a list of strings, part of which is a timestamp of when the activity was recorded. This data can then be fetched from the server at any time and their latest activity can be displayed. Also, you can display friend activity in the same manner by accessing their data store instead.
It's possible to modify the data stores of the user's app friends. To allow messages to be left, use a hash table to store the user's data. Create an entry with key "unreadmessages". When the user leaves a message for a friend, append text to the hash table entry. When the user logs into the game, check to see if the field in the hash table contains data; if it does, display the message, then afterwards clear it.
Unity's PlayerPrefs class is excellent for storing game preferences like audio settings and custom controls, but if you wish for these preferences to persist between different computers then you should use drDataStore. The information saved is tied to the user's account and is the same regardless of where the user is accessing it from.
The maximum content length that can be sent or retrieved is 64,000 characters.
The way to currently handle subscriptions is to create a "Subscription" store item. When an item is purchased and added to a user's locker, a timestamp is applied. The game can check to see if the user's locker contains the subscription item and additionally check the date of purchase. If the timestamp exceeds the desired subscription period, the user can be prompted to renew their subscription. If the subscription has expired or was never present, and the player chooses not to renew/purchase, place your game in demo mode.
Create a store on Stack. Create an item on Stack to be placed in that store. Create a locker so players can carry the item if they purchase it. The item should cost the amount you wish to charge for your game. In your game, during initialization check if the user's locker contains the item. If it does, allow the game to be played. If it doesn't, place your game in demo mode or encourage the user to purchase your game.
The drClient.isReady boolean indicates when the initial information from dimeRocker has been fetched from the server. Before executing instructions that rely on this information, ensure that this is set to true. An easy way to do this is to yield in the Start coroutine.
C#:
IEnumerator Start ()
{
// Wait for dimeRocker information to be fetched
if (!drClient.isReady) {
yield return null;
}
// The drClient is ready, so load the next scene
Application.LoadLevel("Main Menu");
}JavaScript:
function Start ()
{
// Wait for dimeRocker information to be fetched
if (!drClient.isReady) {
yield;
}
// The drClient is ready, so load the next scene
Application.LoadLevel("Main Menu");
} We do not develop any game content. However, if you need development assistance we can connect you to a developer upon request.
There are several options available for monetizing your game on social networks. The most proven method, and perhaps the most lucrative, is micro-transactions. Instead of outright selling a license to play your game (which you can also do if you wish, see this question), offer items in-game for purchase that enhances the user's experience. Some examples are upgraded weapons, new levels, and character customization. dimeRocker's stores and wallets system is ideal for handling micro-transactions.
Another option to consider is in-game advertising. As an example, you could have advertiser's messages appear on billboards and television screens in your virtual city. In the future, dimeRocker will have built-in support for in-game advertising.
No. We are a self publishing platform and the content belongs to the developer.
Our features are tied into our hosting system and cannot be easily used with another provider. We aim to provide affordable, scalable hosting created specifically to cope with the unique demands of social gaming.
No. We have a series of basic options available to everyone. However, if you choose to implement our monetization we will happily provide a custom canvas for you.
You can change the canvas resolution to a maximum width of 760px (the current max width of Facebook). You change and edit canvas settings on stack.dimerocker.com by going to "Versions" and selecting "Edit."
