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

Gender options integration #121

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

neroden
Copy link
Contributor

@neroden neroden commented Jul 27, 2023

This is an extremely conservative set of changes. All but one of the changes here have been in the Gender Options extension for years and it has been used by a signifcant number of games with no problems.

The one change not heavily tested is to make a person (but not man, woman, or animal) ambiguously plural by default. This is correct in English -- you can always refer to an unidentified person as "them", as Chaucer and Shakespeare do. If this creates irritation in gameplay for a particular game, it can always be turned off for any particular person by the story writer, since it's a "usually".

The default gender behavior of Inform is very nearly unchanged -- I went to a lot of effort to do that -- and most story/game writers should notice no differences at all. Those who have only used "X is a man", "Y is a woman", "Z is an animal", "W is a thing" should find the game working as expected.

What this does is to open up options for story writers who want to do something more complicated. By (1) removing assumptions from the I6/Inter code; (2) changing a bunch of "always" and "never" to "usually"; and (3) breaking enormous blocks of standard rules into smaller sections which can be overriden more granularly -- story writers can change things more easily without having to replace half the codebase.

In addition to the changes related to gender, the player is usually transparent rather than always transparent, solving another difficult-to-override issue. There is also a fix to a runtime error number.

For more information and background, see the Gender Options.i7x extension. There are probably substantially larger improvements which could be made in this arena, but these are conservative and well-tested.

Getting these edits into the form of a patch (rather than an extension) took quite a while. I have not been able to convert the test cases from Gender Options.i7x to Inform test cases yet and I am not sure when I will have the time.

@neroden
Copy link
Contributor Author

neroden commented Jan 30, 2024

I will probably come up with a better alternative to this based on Sadie De Might's code, but I'm leaving this here for reference purposes for now.

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

Successfully merging this pull request may close these issues.

1 participant