The Kiwi.js plugin facility lets developers create reusable functionality that can enhance the core Kiwi.JS library. Plugins can be very simple or very complex and may perform very specific or very general tasks. Here are some things that plugins may be used for:
- Providing additional services such as the ability to save games.
- Creation of specialised game objects such as a game object that provides useful functions for tower defence games.
- Creation of functionality that can be shared by multiple game objects via the component system, such as a specialised physics system.
- Import of assets from other systems, such as a plugin that reads a specific type of sprite sheet format.
Game developers need to know how to add and use plugins that others have developed. Plugin developers need to understand how to create plugins. Both of these topics are covered here.
Using plugins in a game
To use a plugin you need to include the plugin javascript and tell your game that you want to use the plugin.
Including the script
Plugins are packaged inside a folder. At a minimum the folder will contain one javascript file and one readme.txt file. Both the folder and the js file are named using the plugin name and version number, for example
1 2 3 |
myplugin-1.2.1/myplugin-1.2.1.js // and/or myplugin-1.2.1/myplugin-1.2.1.min.js |
The folder may also contain any other number of files that are used by the specific plugin.
If you want to use a plugin with Kiwi.js you need to add a script tag that references the plugin javascript. Typically your html will look very similar to this
1 2 3 |
<script src="kiwi.min.js"></script> //The core Kiwi.js library <script src="plugins/myplugin-1.2.1/myplugin-1.2.1.js"></script> //The plugin you want to use <script src="mygame.js"></script> //Your game script |
Note:
It’s recommended that you create a plugins folder in the root of your project and place all of the plugin folders inside that folder.
Telling your game to use the plugin
Note that it is possible to create more than one game within the same webpage. Not all the games on the page may need to use the same plugins, or several games on the same page may indeed share plugins. It is desirable that each individual game uses only those plugins which are required. For this reason it is necessary to tell each game you create which plugins to use. This is done by passing in the names of the plugins via the game configuration object. The object has a property plugins, which consists of an array of strings. Each string is the name of a plugin.
1 |
var myGame = new Kiwi.Game("testGameContainer","testGame",myState,{plugins:["MyPlugin"]}); |
Note: The name used to denote the plugin must match exactly with the Javascript object that is created by the plugin, including matching the case. Don’t confuse this with the filename of the plugin, which by convention is all lower case and includes the version number.
Documentation
The readme.txt contains instructions for how to use the plugin, or a link to where the documentation resides.
Plugin Conflicts
Much like working with libraries like jquery, it is possible for two different plugins to cause conflicts and unexpected behaviour when used together. It is a good idea to test that each plugin works individually. If one or both give unexpected results when used together it is likely that there is a conflict. It’s up to you to decide what you want to do about the conflict.
Recent Comments