Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes made in this engine fork #1

Open
florianessl opened this issue Apr 30, 2024 · 0 comments
Open

Changes made in this engine fork #1

florianessl opened this issue Apr 30, 2024 · 0 comments

Comments

@florianessl
Copy link

This codebase was forked from the development repository of the EasyRPG Player and includes many features that aren't yet available in the latest 0.8 version (String variable support!), as well as a lot of bugfixes.

The commit history is kind of a mess and after many of the features used are officially part of the Player (Release 0.8.1 or 0.9 ?) this codebase will probably be reworked and the new version would be force-pushed.

Changes submitted to the official EasyRPG Player project

(should definitely be commonly available with next official release)

AntiLag performance improvements (successfully merged into EasyRPG-Player:master)

EasyRPG#3194

Performance!

DirectMenuPatch

EasyRPG#3192

This is yet to merge into EasyRPG-Player. Ghabry wants to refactor some pre-existing scene logic before pushing this to master.
Used inside the new "ring menu" feature. Implementation in this fork differs slightly from submitted PR.
(Here it also includes a subscreen code for the translation menu, which should be its own command)

Some pre-existing, yet-unmerged PR´s other people submitted for EasyRPG

I felt free to include some work by other people into this fork:

New Commands by jetrotal

EasyRPG#3111

I'm using the custom "SetMoveSpeed" command by jetrotal for the follower logic. The existing Increase/Decrease logic of the vanilla engine was just unreliable & too bothersome.

Config for Soundfont, Font and "Focus Lost" by Ghabry

EasyRPG#3168

Improvements to Font & MIDI support, as well as really great config options. I just couldn't skip on the possibility to offer soundfont customization for players.

Other changes & explanation:

Changes to translation feature

441d726

liblcf & Player were adjusted to be able to save the current language into the savegame, as well as to be able to access the language settings menu via a custom command. This is an outstanding issue for EasyRPG and will probably be included in some improved version for future releases.

ControlVariables: "IsMessageActive"

3f94408

Custom op-code for ControlVariables that sets a variable if a message box is active.
This is checked every time a (parallel process) popup window would trigger, to determine where to place it on the screen & not overlap with active message boxes. Current logic doesn't work quite well in every case and overlaps do occur, depending on timing, so this is something that would need to be adressed at some time.
Should be moved to a new command "ControlVariablesEx" & will definitely be patched out in future version.

Encounter Randomness Alert patch

8555c92

Changes according to the pre-existing RPG_RT patch specification of KotatsuAkira´s "Encounter Randomness Alert".

See:

Considered too minor to warrant a submission to EasyRPG. The official player already has some patch bloat.
This was implemented because the "Rescue Cat" of the Valaine-Mod would not be able to save the player from random encounters. The original Valaine-Mod replaced all random battles with overworld encounters. Now it is possible to use the Vanilla RNG encounters if one likes to do so and still use this feature. This patch is used to hook into the encounter logic and possibly save the player from death if they lose a battle.
I decided to go straight for the "MEPR" version of this patch specification since after creating the AntiLag improvements, this patch type distinction is no longer necessary. (EasyRPG no longer should have any performance penalty for these sort of patches as opposed to the original RPG_RT)

(BREAKING) Changes to vehicle behavior

39f91df

Two hacks affecting vehicles are included in this fork:

  • Always animate the Airship similarly to how Boat/Ship behave (Was hardcoded to be static when not in use)
  • Disbled entering Airships entirely

These changes should have been hidden behind some special switch condition but it is too late now. The current build of the VDC-Player has been thourougly tested & is ready for release.

Note that many other existing RM2K(3) games will be broken if one would decide to use this customized Player.exe to run them!

Why was this included?
I decided to use the special vehicles this engine has to offer to implement a commonly seen feature: "Party Followers" aka. a "Caterpillar" system. These vehicle event types are the only game events besides the player which are able to be used across different maps. So this was done to spare the work of including special "Caterpillar events" which would need to be part of every single map in the game.
But this decision had some side effects: The player would be able to "use" his "party members" the same way he would use a vehicle and some measures were taken inside the interpreter code handling these events to mitigate this.

If you've played the game and noticed that Valnar would be able to "jump" the 4th member of the party, this was not done due to my kinky sense of humor. This is one of the ways the game is trying to prevent the player from entering the Airship. There's a special condition inside the engine code that checks if the player is currently in the "jump" state if he is about to enter a vehicle. If this condition evaluates to "true", it will simply cancel the action. This behavior was kept in the logic, even after hacking the vehicle code, because beta testers just loved it. :D
Thinking about it... I kinda regret completely patching the riding part out, due to this killing any possibility of future fan art where Valnar is flying through the night sky on his trusty Aysha-Airship. Maybe a future version will honor this little "feature" that was available trough nearly all of the Alpha versions of this game.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant