EasyRPG / Player

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

Destiny Patch support #3131

Open drxgb opened 8 months ago

drxgb commented 8 months ago

I'm going to start implementing Destiny Patch support on EasyRPG. I hope can help. Awaiting for a feedback. Thanks! =D

jetrotal commented 8 months ago

Nice!

Some Documentation, to help contextualize this patch: Original Destiny Patch 1.0, made by Bananen-Joe: DestinyScript_Eng.pdf image

Destiny Patch 2.0 (also from Bananen-Joe) + Maniacs Update, by Kotatsu Akira: https://dev.makerpendium.de/docs/destiny_help/main-de.htm?page=object_command image

Ghabry commented 8 months ago

Hello. As adding the rest of destiny will be a huge task I have to ask:

Your code looks good but do you feel confident enough in C++ to implement the rest of it?

  1. You will have to write a parser for the entire destiny syntax (imo this is the hard part)
  2. Implement the functions offered by destiny (this is more tedious than hard imo, the tricky ones like sockets can be skipped for now)
Ghabry commented 8 months ago

Hm actually the grammar doesn't look too hard to parse because the language lacks flow control like if and for. Very straightforward.

I can offer my help here if you encounter problems.

drxgb commented 8 months ago

Hello. As adding the rest of destiny will be a huge task I have to ask:

Your code looks good but do you feel confident enough in C++ to implement the rest of it?

  1. You will have to write a parser for the entire destiny syntax (imo this is the hard part)
  2. Implement the functions offered by destiny (this is more tedious than hard imo, the tricky ones like sockets can be skipped for now)

Thanks for the feedback! I'm basing on the Assembly source code made by Bananen-joe. There's a lot of work to do yet. But I'm going step by step while I'm studying the EasyRPG infrastructure.

Maybe the interpreter I could use OOP. Besides we can create some parsing interfaces (like parser, scanner and handler) that can be implemented by another patches like DynRPG and Maniacs. Idk if this idea can be acceptable but I have this wish.

Ghabry commented 8 months ago

If you think you can implement such a parser then go for it :).

When it is flexible enough it can also be used for other parts as you proposed

(Maniac has nothing to parse on the player side but there is an expression parser needed for the editor.)