Where I think the ABOSLUTE BEST place to start is by running a game, creating a map, placing your start position, playtesting, hitting F8, then in the console when it comes up simpley type a single dollar sign:
$
You can then get a list of all of the global variables that make up rpg maker mv's engine.
Type something with a dot at the end and you can go even further:
$dataMap.
And there are all of the values that you need edit.
As a former beginner starting out on my own, I believe I can be of much help:
In programming, at least in game programming, one of the first concepts to learn is the main game loop concept, or like in html scripting the head then body concept. When first learning to program, I saw it like this:
Code:
Start - Code that will be executed once
Main Game Loop - Code that will be executed every single frame of your game
In html you have something similar but nothing loops
Code:
Header - Code that will be executed at the beginning, immediately upon execution of the webpage
Body - Code that will be executed secondly, when the body is loaded.
So with that in mind, AS A BEGINNER starting up working with RPG Maker MV, I would immediately just create a game, get netbeans to recognize the directory of your project so you can code and execute your game from netbeans, then create a new javascript file, name it your script name, put the necessary stuff at the top of it, and then work with the following:
var Test_Global_Value_Goes_Here; //You can then access this value in eventing from within rpg maker mv
//MAP START
var alias_prototype_startmapscene = Scene_Map.prototype.start;
Scene_Map.prototype.start = function() {
alias_prototype_startmapscene.call(this);
//Define Values Here
this.exampleValueOne = 0;
this.exampleValueTwo = 1;
this.exampleValueThree = 2;
};
//MAP LOOP
var alias_prototype_updatemapscene = Scene_Map.prototype.update;
Scene_Map.prototype.update = function() {
alias_prototype_updatemapscene.call(this); // call original metod
//Edit Values Here (this is every single frame of the scene. RPG Maker runs at 60fps, so it's 1/60th of a second per frame)
this.exampleValueOne += this.exampleValueTwo + this.exampleValueThree;
};
The code above will run on all maps of your game.
And then you can start messing with some variables right away. You can type in Netbeans "$gamePlayer." (with the dot) then wait for a list of values to mess around with to pop up. You can alternatively just playtest your game, hit F8 to bring up the console, and then in the console do the same thing, typing "$gamePlayer.", and this will bring up a whole bunch of values you can change. If that's not enough, you can in the console type out "$gamePlayer" and hit enter, then in the console when it displays the object click on the arrow to expand what the $gamePlayer object consists of. Study this.
Then, you can type $dataMap in the console and repeat to see what that consists of. Some important values that I've found invaluable to my own work:
$gamePlayer.property_goes_here
$gamePlayer._x - Tileset location X
$gamePlayer._y - Tileset location Y
$gamePlayer.screenX() - Actual X location of player object in pixels on the screen.
$gamePlayer.screenY() - Actual Y location of player object in pixels on the screen.
$gameVariables._data[x] - replace "x" with number of game variable to grab variable values from rpg maker editor. Remember that you can hit F9 in game.
$dataMap.events[x].property_goes_here - Replace x with event id and you can do all sorts of things to events by editing their properties.
Some other random things: You can check if an event has a note and act accordingly within the map loop like this:
if (String($dataMap.events[1].note) == 'cheeseburger') {
}
This would make it so that when an event with the id of 1 on your map says 'cheeseburger' in it's note section, you can run some kind of code.
If you'd like to create sprites, you just make sure an image named something like "Pineapple.png" is in the img/pictures folder, then do the following code:
//Put this code wihtin map.prototype.start function:
this.Pineapple = new Sprite();
this.Pineapple.bitmap = ImageManager.loadPicture('Pineapple');
this.Pineapple.visible = true;
this.Pineapple.x = 400;
this.Pineapple.y = 300;
this.addChild(this.Pineapple);
The above will display your Pineapple.png picture that you put in your pictures folder on screen somewhere towards the center or so.
And then you can manipulate your picture from your Map Loop like this:
//Put this code in your map.prototype.update function:
this.Pineapple.x += 1;
And this will move your Pineapple off of the screen from left to right.
The next tip I would give people is to create timers. You can do this with the following logic:
//Put this in the above space to define a global variable:
var GameTimer;
//Put in Map Start:
GameTimer = 300;
//Put this in Map Update:
GameTimer -= 1;
//And then in Map Update you can create conditionals:
if (GameTimer == 0) { //Do something when timer runs out }
//You can even go into the rpg maker editor then, create an event, create an event command "Conditional Branch", then under the 4th tab of the window that //pops up click the "Script:" bubble and type in:
GameTimer == 0
//And then you can have whatever you'd like easily happen from RPG Maker MV with event commands.
Using every tip that I've given here you'll be well on your way to understanding how rpg maker mv works. It's not really a traditional study, but it'll get you manipulating your game from your console on the first day so you'll keep at it because it's all downhill. Enterbrain has been extremely lenient with rpg maker mv, even giving us access to it's core code for only something like $70, which is insanely generous if you ask me.
Rpg maker mv is like a perfect blending of javascript with traditional click and point rpg maker creation of games. I've been creating a mini-game driven game, and creating the mini-games almost all with just eventing, but I will use javascript for some global variables like "MouseX" and "MouseY" so I can have the user use a mouse cursor to shoot and stuff like that.
It really is the best rpg maker so far, it can just be buggy to a degree.
Most importantly:
MAKE SURE TO LEARN ALIASING. Do NOT edit the original code of the rpg maker mv .js files EVER. If you are making a bigger game in particular you will shoot yourself in the foot by doing this.
Also then, you can use this handy dandy guide to have more variables to mess around with and manipulate graphics and game mechanics on screen with:
https://docs.google.com/spreadsheets/d/1-Oa0cRGpjC8L5JO8vdMwOaYMKO75dtfKDOetnvh7OHs/edit#gid=0
And then what I would do is just watch some learning javascript rpg maker mv tutorials on youtube for a week or so on 2x speed, and slow it down when something interesting pops up. You'll learn in no time.
Some other concepts to be aware of:
Classes have hierarchies, and do not all run at the same time but one at a time like so:
Scene_Boot > Scene_Base > Scene_Map
To get my cursor to work, I had to create it in Scene_Map instead of Scene_Base. When I was creating it and putting my HUD in Scene_Map, my cursor graphic actually hid BEHIND the HUD. D:
Game objects also have their own hierarchy.
Character_Character becomes > Game_Player OR Game_Event Game_Vehicle or whatever.
You don't need a guide to learn in that sense, just combine it with what I've posted and youtube tutorials and you'll be fine as long as you are into scripting.