EasyRPG / Player

RPG Maker 2000/2003 and EasyRPG games interpreter
https://easyrpg.org/player/
GNU General Public License v3.0
1.01k stars 194 forks source link

Improvement of event-making #836

Closed xvw closed 2 years ago

xvw commented 8 years ago

Hello. First, EasyRPG is, in my opinion, an excellent project. Congratulation for that ! Next, I'm really sorry for my ugly English...

I'm know as "nuki" on the french rpgmaker 's community. Months ago, I have, with a small team, write an extension for RPGMaker VXAce : RME. This project is composed by

RMVXace is not well supported on Window10, so we officially stop the project.

My goal in this issue is to purpose the integration of RME in EasyRPG. Actually, EasyRPG seems doesnt has any editor, i suggest to use "event comment" as "Comment > %rmecommand_name(arg1,arg2...)" to extend the capabilities of the software.

If the idea of integrating RME in the player interested, I suggest you discuss this issue. Thanks.

Ghabry commented 8 years ago

We don't support Ruby or any other scripting language currently.

How do you plan to do the integration? You would need to write a comment parser and all the function you implemented for RME must be reimplemented in C++ again. So you start from 0.

Adding new Event commands would make sense for the editor but as you stated correctly it is not ready yet.

xvw commented 8 years ago

We don't support Ruby or any other scripting language currently.

Yes I know

How do you plan to do the integration? You would need to write a comment parser and all the function you implemented for RME must be reimplemented in C++ again. So you start from 0.

Yes of course, but in my opinion, the most important part is the "design" of a commands subset and his integration into a execution framework.

Adding new Event commands would make sense for the editor but as you stated correctly it is not ready yet.

Oké.

gr-im commented 8 years ago

I look at this project for some time and I'm still impressed by the work done. I participated in the integration of RME and was pleasant surprised that xvw in talking. I do not fully understand the closing "fast" of the conversation. In my humble opinion, we should think of orders as an extension to the current interpreter event control. Where each order can be invoked via a context. A naive approach would be to use currently, comments as an entry point. Simple Lexer will define what order to call. The main concern would focus on the combinations of orders. This would imply a lexing a little finer and down. I think it brings a more generic question about "best practices" to expand the corpus of features offered EasyRPG.Player. Thanks for your feedback. Regards. Grim

PS :

Yes of course, but in my opinion, the most important part is the "design" of a commands subset and his integration into a execution framework.

I think you don't have understand the position of Ghabry...

BlisterB commented 8 years ago

xvw don't be so shy :p.

Ghabry, would it be conceivable to support a scripting language ? (of course I'm not asking you to code it)

Let's imagine that an instruction in a script would be able to call a function implemented properly in the Player. It would be possible to support RME script if someone (example xvm) implements all the necessary methods in the Player I suppose. The idea would be of course to integrate it as a "native" function, with event commands such as "call this script", not the copy/past thing in comments wich sounds as a hack.

And it would be also possible, in the futur, ton adapt some of the new commands in the event programming GUI. And having a nice scripting GUI with syntax color as in the RPG Maker. Best of the two worlds.

I suppose it's in the spirit of EasyRPG : support RPG Maker, in the view to improve it.

Ghabry commented 8 years ago

I'm not the project leader and I didn't say no. But as @BlisterBoy said: Don't expect Support from me.

Of Course you can submit Patches. You could even embed a real scripting language in the Player. You just have to write binding for the scripting language (basicly exporting C functions that the script language can call)

One is e.g. duktape (http://duktape.org/) which provides JavaScript. Adding this is dead-simple. Just paste the header in the project and "#include" it. Plain C, has no dependencies, great.

One guy also experimented with mruby, but never finished. And porting this to other platforms is tricky because mruby is complex and has a custom build System (and we Focus on portability so this is an issue for us).

Also we have a dynrpg function Parser https://github.com/Ghabry/easyrpg-player/blob/dynrpg/src/dynrpg.cpp but this is only for backward compatibility... (and is an ugly hack in my opinion)