EasyRPG / Player

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

Allow to set more command line parameters in RPG_RT.ini's [EasyRPG] section #627

Open fdelapena opened 8 years ago

fdelapena commented 8 years ago

This way allows to set useful persistent parameters by default when not set from the command line. If set again from the command line interface, they would override them.

encoding is already implemented. Other useful features would be new-game e.g. for games with BetterAEP, window and other.

carstene1ns commented 8 years ago

Available commands (for discussion):

[EasyRPG]
Encoding=1252
disable-audio=0
disable-rtp=0
hide-title=1
new-game=0

About fullscreen/window: It might be better to not use boolean for this, but instead:

displaymode=window
displaymode=fullscreen
fdelapena commented 8 years ago

I would like to have also yes and no as alternate valid values for 0 and 1 for a better experience (maybe INIReader supports this somehow, not checked).

For the window and fullscreen they could also be replaceable as alternate options.

In case of parameter conflict, the last line might be the proper to use (drop warnings when happening?). About duplicates I'm not sure how INIReader handles this.

And case insensitive support for all of them, if not done already (is INIReader case insensitive already?).

About disable-rtp: which is the difference with [RPG_RT]'s FullPackageFlag=1?

carstene1ns commented 8 years ago

Actually you are right about disable-rtp. I thought it would be useful as an option exclusive for player use, i.e. you do not want to load rtp assets albeit existing. However, current way it is handled in player would be the same. Only real change it could do is disable the nasty warning :grinning:.

Ghabry commented 8 years ago

A while ago we had in IRC a discussion concerning which arguments are useful in ini and which are useless and how to behave when the Game Browser is used. I can't remember the full discussion so, from scratch.

Global: Applies for all games started from game browser. This shall be only for things that don't alter the game behaviour. As a long term solution the game browser should get game settings (#666) that can be edited. Game: Applies to the game ONLY when started directly (no browser) Ini: Argument is useful in the INI (applies to the game also when started from browser obvisouly)

Arguments have preference over INI

Argument Global Game Ini
battle-test X X
disable-audio X X
disable-rtp X X
encoding X X
engine X X
fullscreen X X
show-fps X X
hide-title X X
load-game-id X X
new-game X X
project-path X X
save-path X X
seed X X
start-map-id X X
start-position X Y X X
start-party A B… X X
test-play X X
window X X
version X X
help X X
steam-compat X X

Steam compat remaps F12 to Shift-F12 to allow screenshots.

To sum up: When it is used to alter global behaviour (needs a way to be configured someday) it is not available as a INI setting.

Corner case are project-path and save-path. I vote for ignoring save-path frmo game browser because it generates chaos (everything in the same directory, bad). As an ini setting this needs to be sanitized to prevent writes in folders above.

carstene1ns commented 8 years ago

I think test-play is a corner case too. I often start multiple games while bugfixing and would like to pass the flag from the gamebrowser too.

Ghabry commented 8 years ago

Maybe add an extra argument (--expert ???) that enables game only parameters in the game browser... And then log that this causes problems.

Zegeri commented 8 years ago

A minor detail: to keep consistency with the existing parameters, could the new parameters ignore the hyphen so that HideTitle=1 is equivalent to hide-title=1?

carstene1ns commented 8 years ago

Does not really matter really, the ini reader does not even care for uppercase or lowercase currently, so imo we could easily support with-hyphen and without-hyphen commands in one go. Or decide for one :V.

Ghabry commented 7 years ago

I would say we can postbone this one because the initial motivation (.flow) is solved.

Ghabry commented 7 years ago

Will postbone this to 0.6 or 0.5.1, too much work.

JumpLink commented 2 years ago

It would be greate to have more options.

For example this game skips the start screen if I start the game with the default RPG Maker 2003 Player (Presumably there is a patch for this?). It would be nice if I could set the new-game option in the RPG_RT.ini so that the game can behave the same way with EasyRPG Player

lychees commented 2 years ago

Hi, just found this thread, is the "window/fullscreen" parameters is supported? And I also saw there is a "seed" argument in the above discussion, what's that used for? I also use this "parameters" in my local version to generate maze in runtime.

fdelapena commented 2 years ago

And I also saw there is a "seed" argument in the above discussion, what's that used for?

The seed argument allows to replay randomness in a deterministic form. Some behavior and replay is only reproducible using the same seed in order to make the random behave as in was saved in logs. It is also tightly related to the record and replay feature (useful for demo recording without wasting too much space compared to video recording. It is also useful for unit tests where randomness-dependent events need to be compared. The random seed seems to be useful to make your random maze generator reproducible, too. See also https://github.com/EasyRPG/Player/issues/2748#issuecomment-1077333131 for the original 2003 dungeon generator research to be implemented.