"RPG Maker MV CoreScript" is a game engine for 2D games that runs on the browser. "RPG Maker MV CoreScript" is designed as a game engine dedicated to "RPG Maker MV", the latest work of "RPG Maker" series of 2DRPG world number one software with more than 20 years history, and more than 1000 games are running. (February 2017)
This project is a project aimed at improving "RPG Maker MV CoreScript" better by the community and supporting many game creators.
The core script developed by this project is widely distributed to RPG Maker users through KADOKAWA. The RPGMaker MV community is centered around plugins. Therefore, Ver1 series is developed while minimizing destructive change.
There are three releases
To build Corescripts, install Node.js, change working directory, and just type in console:
npm install
npm run build
Then you can find Corescripts in folder “dist”
If you want to build indivisually, Here’s some command,
npm run build:core
npm run build:managers
npm run build:objects
npm run build:scenes
npm run build:sprites
npm run build:windows
To test, place MV’s project in game/ and type
npm test
There are helpful tasks, watch and start.
Watch task is watching js/rpg_*** changes, concat them, and copy that to ./game/js/ .
npm run watch
Start task starts local server. You can test Corescripts in your browser.
npm start
Development will be done according to the roadmap. Currently we are developing ver 1.2
Goal: Publish community development version
Goal: Fix a fatal bug
Goal: Responding to problems where games can not continue
Goal: Assist in game development
Goal: Accelerate speed, reduce experience time
Goal: Improve UI
The core script is finally output to mainly 6 files.
In addition, a plugin list is defined in plugins.js, and main.js launches the game.
// In JavaScript this function is constructor
function Derived() {
this.initialize.apply(this, arguments); // Delegate to initialize()
}
Derived.prototype = Object.create(Base.prototype); // Derived inherits from Base
Derived.prototype.constructor = Derived;
Derived.prototype.initialize = function () {
Base.prototype.initialize.call(this); // This makes super.initialize() sense
};
Variables named $dataXxx
are read from JSON in the data folder.
These files are changed by the editor, but they are immutable during play.
Variables named $gameXxx
are instances of the class defined in rpg_objects.js.
When saving the game, these objects (except $gameTemp, $gameMessage, $gameTroop
) are serialized to JSON and saved.
When loading, since the prototype chain is reconnected simultaneously with deserialization, you can continue using instance methods.
The scene graph is a drawing tree like FLASH provided by Pixi.js.
Children are influenced by parent's coordinates and visibility.
Register a child in the form (scene or sprite or window).addChild(child)
.
In RMMV the scene is the root element of the scene graph and has children with Sprite and Window.
The life cycle is managed by SceneManager
, and it operates up to one at the same time.
Life cycle: new Scene_Xxx() -> create() -> start() -> update()* -> stop() -> terminate()
SceneManager.run()
. (main.js)Graphics, WebAudio, Input, TouchInput
.Scene_Boot
to SceneManager
.SceneManager.update
in requestAnimationFrame
.requestAnimationFrame
is called by the browser at regular time intervals (every time drawing is required).
requestAnimationFrame
calls SceneManager.update()
.Scene_Xxx.update()
is called, then
update()
.update()
.SceneManager.update
in requestAnimationFrame
.This content is released under the (http://opensource.org/licenses/MIT) MIT License.