Sign in to follow this  
Followers 0
Mem

RPG Maker MV Quest Editor

1 post in this topic

Hi there!

For some time, I've been developing set of tools for RPG Maker MV, essentially the Quest Editor (not a wonder, cause title says the same). When I played with RPG Maker Engine for the first time, I've been surprised that such tool wasn't here yet, and decided it will be interesting try to create something like that and see if it will work out or not. So here it is. 

 

8rbakTi.png

Flyfox.Quests & Quest Editor.

Flyfox.Quests is a set of tools for RPG Maker MV. Its purpose is to help easily create complex quests and dialogues for your game. It includes plugin what you'll need to add to you game project and quest editor for creating your epic story with different choices and conditions. You'll need to follow 5 simple steps to get up and running: 

  1. In you RPG Maker MV Project, mark events which will be participating in quests (this will require adding comment line). Those events will be your NPC's. 

  1. Register Flyfox.js plugin with you game project and run game for the first time: this will generate all required metadata for Flyfox.Editor. 

  1. Create new project in Editor and write you quest/quests. All NPC's marked in step (1) can participate. 

  1. Export output file from Flyfox.Editor and place it in directory with your game. 

  1. And... Done! Flyfox plugin will take care of everything else: tracking quests, saving game progress, displaying texts, choices, etc. You do not need to fill event pages or do some other work in RPG Maker MV Editor. 

 

Flyfox.Editor gives you easy to understand visual representation of your quest. It shows you "quest flow graph" (see screenshots) which is easy to edit and fill with data. Arrows points where player will go after making one or another choice. You can add new texts, choices, add different translations or variations based on choices players makes. And all of it – in one place. Also editor will show you unfilled fields or any logical errors.  

xasb2Cn.png

 

So here is some features:

 

  • Simple and understandable quest graph.  

  • Ability to work with quests in one place. Your team's quest writer can now work as he/she wants using only Flyfox.Editor and nothing more. 

  • Great ability to customize you quest. Add any number of translations with couple mouse clicks, switch to any translation at any time.  

  • Change game flow based on player decisions with ease! Add parameters to your project and see how simple it is to write and manage different text variations. 

  • Comfortable UI interface to work with.

 

Current version is 1.0b, which means many useful things are missing. Here is list of things I'd like to add:

  • Customization of text/choice window via Flyfox.Editor. Automatic word wrap (Right now you can use external plugin for it or just break long lines into smaller ones). 

  • Variables and conditions. You will be able create global variables (for all NPC's to see) or local variables each quest or NPC. With this you can predefine some ranges and write text for echo one of them. Or add default 'fallback' text. For example, you can add global parameter 'hero anger' and set available choices or texts based on that. Or you can manage friendship between hero and different NPC's. There are unlimited possibilities. 

  • UI improvements. This includes not only updating visual design but also things that will improve usability. For example, hotkeys for working with lines and blocks (see tutorial about that), sorting lines with drag-and-drop, metrics and errors windows, additional navigation and more. 

  • Additional quest actions. We want to have ability do all sorts of things from our quests: give player reward, move, invoke custom script, set RPG Maker variable or trigger, invoke event pages, etc. For more information about available actions ("lines") see tutorial. 

  • Different ways to start quest. Right now you can start quest using default RPG Maker event action button ("Enter"). It will be good to have ways start quest while walking over quest NPC event, or when moving to certain distance from NPC or... You name it! 

  • "Multi-stages" (to learn more about stages, see tutorial). Thing is, right now to add NPC dialogue (interaction), you should add it to some quest stage. But what if you want to have same dialogue available for several stages, or even whole quest?  

  • Custom in-game quest progress window. 

 

Thing is, I would like to hear your opinion about it, like would such tool be useful in real-world projects, and if I should continue my work. I'm aware that you can't create complex cutscenes this way, though I've got some ideas about it (for example, defining cutscene in separate event, and then calling it from Flyfox. This way we'll be able separate quests & texts from events). The idea is to create tool that will be fun and easy to use, and also allowing rich capabilities. So I hope I'll get some nice feedback here ;) 

 

AI Plugin

There is another plugin I've been working on, but it's not quite finished. It's called Flyfox.AI and it's purpose is create enhanced AI. It will help you create immersive towns and villages living on their own: citizens walking and chatting and sleeping, traders selling their stuff and working in shop, waitresses serving customers, bandits robbing at night... This plugin was inspired by Skyrim AI system. Though it has many flaws, it still provides good immersion into game world. Most RPG Maker games don't have any of that. It's frustrating for me launch a game and see lifeless NPC, stuck forever in one place.  

Thing is, I've decided that i'll rather finish my work with Quest Editor before continuing work on AI plugin, but I also decided not remove any AI-related code from plugin yet, so if you'll see it, don't be afraid! ;)  (That code isn't so bad though)

 

Downloads & Demos

Here you can download Editor app (requires .Net Framework 4.5) and flyfox.js plugin.

Flyfox.Editor 1.0b

Flyfox JS plugin


And here is "Getting started" tutorial

Spoiler

Tutorial 1.

Demo Project 

Flyfox Project file for Demo project above

 

1.  Create new RPG Maker MV project or open an existing one. Add to plugins list "flyfox.js". 

2. Find events, which will participate in our quest. These events shouldn't have any filled event pages. This is limitation of current version of Flyfox, in future there will be ability to use event pages for some additional functionality (like cutscenes) 

3. Add line to event note "flyfox;bot;name=<NPC's name>" 

smn4umf.png

This line will sets the NPC unique identifier (name). Remember, this id must be unique for all your NPCs, and it is not necessary NPC's displayed name. Once you start working with Quest Editor, you must not change this id! If you'll want to change NPC's displayed name in future, you should do it from Flyfox.Editor settings page. 

4. Run your game. This will create directory 'flyfox' in project folder, with file 'flyfox_map_cache.ai' in it. If something went wrong and this file is missing, you can see logs in the file 'flyfoxLog.txt' 

5. Run Flyfox.Editor.exe. Click "Create new Project" button. Here you should enter project name, select where to save project file and output file, and also point to location of 'flyfox_map_cache.ai' file, created in previous step. 

Note that the name for output file cannot be changed manually and it is always "FlyfoxDialogues.json". 

6. Click "OK". Right now you see a working area. There are three big buttons on top, which responsible for navigation between your quests. 

 

Some theory. Maybe it's not most exciting part of this tutorial, but certainly important one. 

There are some terms I would like to tell about now. In Flyfox.Editor, quest is top-level object representing, well... game quest. Many NPC's can participate in one quest. For example, in demo project which you can download from this page, there is only one quest called "Searching for lost cat". Old women lost her pet and you should help her. There are town guards who would be happy to help you with this mission. When cat is found, quest is completed.   

Stage is another important object. Quest consists of several stages. Player goes through stages, from first to last. Stages provide you means of organizing quest in several self-explanatory and separated steps. Of course, how to split quest to stages is entirely up to you, and you can even have only one big "god" stage which includes all quest. For example, in demo project there is 3 stages: "Getting quest" (in this stage player will talk with woman for first time and will get to know about her lost cat. Then player can accept her request (and move to stage 2) or decline quest whatsoever. "Searching for cat" is second stage in which player will be searching for cat, moving around, maybe talking to some witnesses, etc. In course of last stage, "Getting reward", player will report to woman that cat has been found and that she should reward player in some way. 

Stages in turn contains dialogues. Dialogue is associated with one (and only one) NPC and represents some dialogue between player and that NPC. In demo project, for example, second stage of our quest ("Searching for cat" stage) contains dialogues with cat owner (old hag is angry that you can't find her cat and encourages you to continue searching), with guards (they can give you some advice, but it's not that helpful) and with cat itself (well, cat can't say very much except "Purr", but interacting with cat moves quest forward to next stage, because cat was finally found!) 

Some facts about stages. 

  • You can move to any another stage from any point. Once you moved to stage, all NPC's will move to this stage at once. 

  • Stages can be useful tool for managing quest progress. Current stage number is saved and will not change by itself. To change stage, you should insert special line-command (we'll talk about it very soon) 

  • Stage can contain one dialogue for every NPC in you game. If some NPC doesn’t have dialogue for certain stage, player cannot interact("talk") with this NPC during this stage.  

 

Dialogues are composed from lines, lines are grouped into blocks. Line is minimal building block in Flyfox.Editor and represents some action or command to be executed. In current version (1.0b) there are next types of lines available: 

  • Text Line. Basic building material for you quest. When this line executes, game will display standard window with text. 

  • Choice Line. Displays some text and choice window.  

  • Goto Line. Moves to another line in this dialogue, can have one or more pre-conditions. This line do not have any "visual effect", it doesn’t display text or something. But it is very important command, nevertheless. 

  • Close message Line. Closes message window. This line should be placed at the end of dialogue, so message window will be closed and player can go on. 

  • Go to Stage Line. This line closes message window and moves quest progress to another stage. 

  • Finish Quest Line. This line closes message window and finishes the current quest. It means quest will be marked as completed and its progress cleared. 

In future there will be many more line types. Essentially, line is similar to Page Action in RPG Maker Editor, so all this actions will be available through Flyfox.Editior. 

Blocks help group sequential lines together, and show you how player will go through quest, moving from one line to another. For example, when you add Goto Line to dialogue, you should specify to which block you'll go. After that, you'll be able to see small arrow, starting from the line and pointing to that "target block". After that, you can click on block header and hold left mouse button, which will give you ability to drag and drop selected block to place you think most appropriate. This way you can organize your "working table" how you would like. 

Important thing: There should be one so called "start block" per dialogue. That's how it works: when player starts dialogue, it will start from that start block. In essence, start block is "entry point" of dialogue. That's why start block's first line must be Text Line. When there is several quests available for one NPC, player will be presented with choice, which quest to start. Standard choice window will be opened, so in order to display available choices, first starting line of quest must always be a text line (cause you cannot display choice inside choice etc.) 

End of theory part. Hurray! 

 

6.5. Specify languages for your project (At least one, but you can add new ones anytime later). Click "settings button" (one with hammer on it) and click "Add new language". Language, selected in drop down list, is "default language". It means this language will be used for displaying text previews. Also, it will be used when you'll run game.  

hJWTNAw.png

 

7. Right now, it's time to create your adventure! Add a new quest, clicking on first "pencil" button. Add new quest using "+" button, fill in title (in demo project, it's called "Lost Cat") and confirm your choice. Add stages and dialogues in similar matter (for dialogues, you will be able select NPC which will participate in this dialogue. Available NPC's loaded from cache file, created during step 4) 

1mTtjiF.png

 

8. Now it is the fun part! Click right mouse button anywhere on screen, and select "Add block" from drop down menu.  Each block has "header" with block id number and remove block button. Also, header have different color for "start" block and for regular block. You can reassign starting block, clicking RMB inside block border and selecting "Set as start block".  

All right, time to add some lines! Click RMB inside block and select "add line" (or just double click inside block – easy, isn't it?) Here is line creation window. Select line type from the left panel (let's start with text line). On the right you see editor panel. Clicking on buttons with language labels on them, you can switch language. Fill in text for all languages you got. Remember: right now there is no auto word wrap for texts, so you should use external plugin for it or just put line breaks in your text (with Enter key). When you are done, click "OK" (or SHIFT + Enter will do).  You see, inside your newly created block line had appeared. If you hover mouse over it, you'll see it description. Also, if you click RMB on this line, you'll be able to edit or remove it (Also you can double click on line – this is shortcut for editing) 

lhX4BdX.png

 

9. Right now, you see little red warning sign on block header. If you hover mouse over it, you'll see error description. It says that you block is incomplete: block must always be finished with close/goto line. Let's add choice line after text line! 

Choice line requires you to fill in main text (it will be displayed at center of message window) and choices. Also for each choice you should select next block, where player will go after selecting corresponding choice. Create couple of choices (using "+" button) and add some text to them. Since we have not created next blocks yet, you can just leave it for now (we'll select them when they'll be ready) . Click "OK" - now you see warnings telling that target block for choices is not specified. Let's do it! Create couple new blocks, then open choice line for editing and select them. You'll see arrow lines, connecting those blocks and choice line. Good, that's it! 

SAxeK8j.png

 

10. Well, now our first block is good, but other blocks should be finished too. Add to them some text (text line), and after that - "hide text line" or "finish quest line". Both those lines close message window, allowing player walk away. Difference between them is that "Hide" line just closes text, and not marks Quest as finished. Player will be able interact with NPC and talk again... If you choose "Finish quest line", this quest will not appear anymore in list of available quests. 

11. Now, our simple couple-of-lines quest is done! It's time to test it. First, you should export data file from Editor. For it, press export button (one with box and arrow). Also for convenience, you can enable auto generation of output file in settings. After that, copy output file "FlyfoxDialogues.json" (remember, that you had chosen its location during step 5) to folder ./data under your RPG Maker project directory. Well... that's it! (Pro tip: during stage 5, you can just point output file path to right place, so you wouldn’t need to move it every time) 

12. Run your game! 

 

By default, Flyfox Editor tries to remember last opened project and will reopen it next time, when you'll launch editor. But there is button "Open" (with folder icon on it), which you can use to open arbitrary project.  

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.