Publishing

From MirthKit

Jump to: navigation, search

Contents

[edit] Overview

So, you've created a new game. What's the next step? Publishing your game through MirthKit Arcade is relatively simple, so if you've made a game with MirthKit, there's no reason why you shouldn't make it available on MirthKit Arcade. You have the choice of either publishing your game as open source software under the X11 license or as a commercial game, available for $11.99. In either case, this is a free service.

[edit] Publishing Process

  1. Prepare the code of your game so it's compatible with the Arcade
  2. Send us your prepared game with the details on how you want it published
  3. Give us some time to test your game
  4. Watch for your game to pop up on the arcade

[edit] Preparing Your Game

[edit] Allowed Content

As a general rule of thumb, we allow what is politically acceptable for a 12-year-old to view. Things that definitely won't cut it:

  • Drugs
  • Sex
  • Profanity
  • Ugly violence

[edit] File Structure

Requirements:

  1. Use two directories for your game: script and data
  2. The entry point for your game is required to be script/main.nut

Here's what one game's structure might look like...

<Game>
-MirthKit-Dev.sh
-main.nut
-<script>
--Class1.nut
--Class2.nut
--main.nut
-<data>
--image.png
--sound.wav
--music.ogg

[edit] Path Prefix

To prepare a game for publishing, you must make sure all of the game's paths prepend getArcadePrefix(gameName). This function is necessary because the arcade needs extra information in an HTTP url.

To put it simply, say you have an image, data/image.png. Your image(...) function should look like this:

image(getArcadePrefix("MyGame")+"data/image.png",1,1);

Where in the root main.nut in the development version of your game you have getArcadePrefix(gameName) defined as:

function getArcadePrefix(gameName) {
	return "./";
}

CIG will replace this version of the function with the arcade's version when your game is published. gameName is just a unique name for your game that has no spaces or special characters. It will differentiate your game from the rest on our servers.

[edit] User Interface

Requirements:

  1. At all times, escape must open a pause menu
  2. The pause menu must contain an option to exit to the arcade and to the main menu
  3. The main menu must have an option to exit back to the arcade
  4. The game must support all resolutions above 800x600 (including non-standard ones)

[edit] Exiting the Game

To exit a game compatibly with the arcade, just let the code flow out of your main.nut. This is usually done by flowing out of the main loop.

[edit] Vault Files

Each game is limited to using one vault file for configurations, named the same as the gameName in the getArcadePrefix function. Saved games, levels, and any other data must have a format similar to "GameName-Save1.vault".

[edit] MirthKit Functions and Variables

Make sure you don't overwrite any MirthKit API or MirthKit Arcade identifiers. The API functions are listed in the dictionary, and the Arcade global identifiers are visible in arcade.nut in your cache. Most of the Arcade's global identifiers start with arcade. We check every MirthKit global identifier during our testing.

[edit] Expanding an Existing Game

[edit] No Linking

All games for MirthKit, even add-ons and expansions, are packaged as whole games. This means your expansion must include all of the parts it uses of the original game. It isn't OK to link to parts of the original game because the original game may change over time, which may cause bugs in your code.

[edit] Declaring Sources

For expansions of non-free games, the arcade requires users to purchase the original game before purchasing the derivative. All non-free sources must be declared in a submission so the arcade can control this functionality.

[edit] Permission to Release Dependence

Because creators of games keep the copyrights to their games, it is possible to ask a creator for permission to use the source or art of their game without requiring purchase-dependence, as described in the paragraph above. CIG will facilitate arrangements like this as long as the original creator signs a letter of approval.

All games created by Curved Infinity Games are released from dependence unless otherwise noted.

[edit] Submitting Your Game

Send an archive of your finished game to publishing@mirthkit.com. Include some terse instructions for the game in the email, along with the name, address, phone number, and email of whomever will be the legal wholesaler and point of contact for your game. Also list all of the originating commercial works, as applicable.

If the game is commercial, you will then receive a contract specifying all of the terms involved, which is summed up by:

  • CIG gets non-exclusive rights to sell your game
  • You get $10 for every unit CIG sells
  • CIG is allowed to give away 100 copies of the game (so your game can be reviewed by third parties)
  • You are allowed to request your game be linked to any number of accounts
  • CIG is free to stop selling your game at any time, for any reason

After the contract is signed and returned, your game will be posted to the Arcade.

[edit] Patching Your Game

Patching a game requires following the same process as submitting a new game. It will also have a similar wait period for CIG's testing.

[edit] Ending Your Game's Life

If, for whatever reason, you want your game taken down, tell us and we will remove it as soon as possible. If a customer has purchased a game, we are unable to disallow them access to the version they purchased, but we will assure that no more purchases will be made.

[edit] Monetary Transactions

For every unit of your game sold, we purchase a wholesale unit from you. Your sales accumulate from the first of a month to the last day of a month, and then we send you your payment for our purchases of your game by the end of the next month.

We currently only allow games to be sold at the price of $11.99. This keeps our billing simple, and makes it easier for customers to weigh the value of different games. We buy all wholesale units for $10.00 each. So in other words, if we sell 100 copies of your game, you get $1000.

[edit] Your Legal Responsibilities

You must pay taxes on your MirthKit income. In the United States, the easiest method to pay taxes is to act as a sole proprietor. Being a sole proprietor, your MirthKit income is part of your personal income. That means you use the normal federal personal income tax forms, but with an additional form which lets you describe how much your business cost to run and how much you made with it. In this case, your business' name would be your own personal name, and all you would have to do is register that fact with your state and county. The forms for registering a business with a state and county are very short, and usually have a fee in the $20 range. If you need assistance with registering with your state and county, post in the forums.

If you have a team of people making a commercial game, it gets much more complex. An easy way out might be to pick one person as the sole proprietor, and then write and sign contracts stating that revenue be cut equally between the various members. Any written and signed document is a contract, and you don't necessarily need to write it in lawyer-speak for it to be binding. Lawyer-speak, however, makes it so no one can slip out of something on small details, which can be easy to do, so we ultimately recommend you consult a lawyer for contractual advice. Another possibility for groups is to actually make a real company, like a partnership or corporation. Real companies require much more paperwork and have many rules, so if you decide to go that route, do your homework.