On “Master/Slave” and How Godot Developers Handled Calls to Change The Phrase

gisbrecht's picture

On “Master/Slave” and How Godot Developers Handled Calls to Change The Phrase
by Mariken S.

I've been making games for a while, and I've been sitting on some finished—but unreleased—Binky games since 2018. They were all made in the Godot game development engine, which because of what I will elaborate on in this essay, I can no longer use consciously. I really would have tried to finish this essay which I felt was necessary to include alongside the games sooner, if it were not for my depression, the banal pressures of university, and the ongoing COVID-19 pandemic among others. I would like to heavily thank my friend Nikki for revising and editing this essay.

As full disclosure, I am a white woman who lives in the USA. Thus I do not have a lived experience of racism and the legacy of slavery. If you find issue with this writing, feel free to message me on Glorious Trainwrecks or other avenues. My page is found here: https://www.glorioustrainwrecks.com/user/24039
You will need to make an account in order to message me.

The event as described happens in March of 2017. On the development website Github, user Hikari-no-yume spoke up on the word choice for Godot's scripting language. She states that the word choice of Master/slave "may be unfortunate..." and that "At the risk of starting a flame war, it might be worth changing them." And well, a minor flame war of sorts did begin in which some of Godot's developers revealed their true characters.

The entire conversation can be found here:
https://github.com/godotengine/godot/issues/7986

An archived web page defines master/slave as "a model for a communication protocol in which one device or process (known as the master) controls one or more other devices or processes (known as slaves)"[1]. Said page now redirects to
https://www.theserverside.com/opinion/Master-slave-terminology-alternatives-you-can-use-right-now
In contrast to attempting to defend the term, as some Godot developers did, the authors of this website seek to provide alternatives in language.

I think it is clear: Master/slave is an inappropriate and racist term. These 'slaves' are not people, they were never taken from their homes and forced to work in unbearable conditions. They have never had to suffer the innumerable accounts of life under slavery that can be read or watched. This linguistic metaphor trivializes the centuries long experiences of victims of slavery and their descendants. These so called "Master and slaves" are pieces of hardware, of plastics and metals, of zeros and ones. Though in regards to the last sentence it should be known that many electronic devices and their components (see: conflict minerals) are created in unethical and unbearable conditions. But that is another essay. Furthermore, the problem of Master/slave is not just one that is exclusive to the Godot engine, but the field of Computer Science as a whole.

Going back to the issue as brought up on Github, some seemed receptive to Hikari’s request, but one person in particular gave a strongly dismissive response. Said person is Reduz [Juan Linietsky], a head developer of the Godot engine alongside Ariel Manzur. His objection is as quoted:

"Sorry, I think this is stupid, slavery has been erradicated centuries ago and there is no one alive that could be offended or discriminated by such condition.... I understand there are a few retrograde countries still around, but i think naming convention in a game engine is the least of their problems. ...I'm all for stuff like inclusion, equality, human rights, etc. But using less clear and accepted technical terminology for groundless cause (IMO) is not a good idea."

I think this is an incorrect reasoning. Slavery has been ceased in the manner of the USAmerican plantation (chattel slavery), but still there is human trafficking, the prison-industrial complex, and other atrocities. The memory lives on in many a people's consciousnesses. There is even discussion of trauma that can be passed down to generation to generation. The scars of such deep atrocities do not heal easily as this Reduz could think. He does not consider the feelings of people who are different from him. Reduz mentions "retrograde countries" but does not really elaborate on this concept. Does this imply that Reduz believes the fact that slavery is a problem in the global south is a reason that the global south is how it is? It is a circular logic that does not think of the etiology, the origin, of the problems of the global south. Does one not remember the hundreds of years of colonialism and imperialism of the Global North (mainly the European powers) upon Africa, North and South America, and Asia? The Global North exploited these areas for their labor force and natural resources among other things. This statement is merely scratching the surface of why the Global South is how it is. This further ties into Conflict Minerals, where most of the conflict is in the Democratic Republic of the Congo (A former colony of Belgium until 1960). This website seems a bit outdated but it is a good starting point if one wants to research conflict minerals in the DRC: https://conflictmineral.wordpress.com/

Another one such complaint by "freemanfromgodotengine" says more of the same:

"I checked. Original text by Global Language Monitor[2] says clearly, that it's all about Political (in)Correctness. So, imho, if we are not making politics here with Godot - and we are clearly not, because it's a game engine for all - we should stay with the most logical terms and meanings of words..."

Game engines and politics!? In the circles I orbit I have seen some mockery of such behavior, of thinking that games can be without politics. And the phrase 'Political Correctness' is a dog whistle to reactionaries. It is often used to either point to the antisemitic conspiracy theory called 'Cultural Marxism', or simply to mock anyone who supports leftist or liberal policies. It is a dangerous phrase to use. I think the fact that the Godot Engine is “free and open source software released under the permissive MIT license” https://godotengine.org/license entails an anti-capitalist political bent in a world full of computer program subscription licenses. It is to go against the almost monopoly-like nature of proprietary software such as Microsoft and Adobe. Free and Open Source Software is, in many cases, a community effort. Godot is one such example. Does freeman’s use of “for all” not entail a collective use? Is Godot not for people who object to the use of "master/slave" terminology? Because of this fiasco I feel excluded from using this engine to make games! I do not feel comfortable working on games if the lead creators of the game engine have such a dismissive world view of such issues.

There is some more talk of it not really mattering, and then a few days later the administrators close the issue. However, on Godot's official IRC channel, a less visible but still public space, further discussion continues.

Reduz acknowledges other’s experiences by saying “Where I live, racism pretty much does not exist, so I am completely indifferent to master/slave terminology, but I can understand if this was more offensive somewher[sic] else like in the US”. What proof does Reduz have of racism not existing in his publicly listed location of Buenos Aries? A cursory internet search gives discussion of racism and the likes in Argentina. Continuing the conversation, the community members make light of the debate, with Reduz joking that “Also, I suggest we replace master/slave with slug/human”. This trivializes and turns the traumas of slavery into science fiction tomfoolery. He further invokes a foolish straw man to replace “master/slave by sjw/whitemalecis” with no understanding of power dynamics, the benefits of being white as opposed to being black, the benefits of being a man as opposed to a woman, and benefits of being cisgender as opposed to being transgender.

As of 2018, Godot now uses the word "puppet" as opposed to "slave", shown here: https://github.com/godotengine/godot/pull/22087
Regardless, when discussing the change in a separate thread, now only open for comment to developers of the Godot engine, Reduz's behaviour still comes off as dismissive, arrogant, and heedless of the reasons for such a change being demanded. His responses can be found here https://github.com/godotengine/godot/issues/7986#issuecomment-421185969

To highlight an excerpt from Reduz:
"I hope you understand that, even though the majority was in favor of this change, most of Godot contributors are not from regions where the "slave" word (still) has a strong negative connotation (case in point, most contributors are not from the US). The world is more complex than many believe it to be."

Perhaps this has a tinge of calling feminism and civil rights movements as 'western propaganda'. It echos of freeman's comments of 'Political (in)Correctness'. It makes it seem as if the legacy of racism in South America is not as damaging as it is in the United States, Canada, etc.

To conclude this writing here are excerpts of further evidence of the Godot development community's problems from the IRC chat logs, publicly available, and my commentary:

[15:00:31] reduz: if you're using the "would you use such an engine"-argument, then you have to consider the tradeoff between "scaring some people off by not changing the nomenclature" vs "scaring some people off by changing it"
[15:01:56] because I am sure, changing the name would be interpreted as "submitting to the SJWs" by some people, and that might prevent them from supporting godot. now it's a "them vs those", and, following that argumentation, you'd need to do whatever keeps the "more valuable (potential) developers" at the project.

Windfisch's words come off as indifferent to the feelings of those upset by the use of the "slave" term! They think of a few developers, who may or may not even care about the issue, before the good of the community. They value the right of the lead developer to be argumentative over creating a positive and welcoming space. What entails a "more valuable developer"? Does Windfisch find white people who are indifferent to racism in terminology more valuable then people of color, or anyone who takes offense to the "master/slave" term? I think that is what this user is getting at.

[14:52:23] Groud: Let me cut to the point, this is almost 99% an US issue because, in their culture, getting offended about things they don't like (be it with reason or not) is very common. Still, it's an important part of our community and we should respect it I guess
[14:54:20] It's kind of like the 60s all over again
[14:54:36] where everything was politically correct

Again Reduz accuses the act of correcting the language as being of an USAmerican centrism. And again the reactionary phrase `politically correct` is used. Does he really believe that USAmerican colleges are centers of Marxist indoctrination?

[15:08:12] (how did we get from slavery to lbgt?)
[15:11:23] Windfisch: well, that is where inclusive language comes from (All this is about inclusive language)

Just as the theory of intersectionality can be used to describe an interlinking of oppressed people, it can also be used to describe how oppression under slavery and bondage is interlinked with oppression as a lgbtq person. It is reductionism to dismiss anti-racist language as simply lgbtq persons being 'frivolous'. It is dismissive of the decades of work by civil rights activists.

As mentioned, these IRC logs are publicly available, and logs I quoted from can be accessed from the link below. There is much more evidence of harmful remarks and debates within.

http://godot.eska.me/irc-logs/devel/2018-09-13.log

http://godot.eska.me/irc-logs/devel/2018-09-14.log

In conclusion, the behavior of Reduz in regards to the “Master\Slave” situation is my primary motivation to stop using Godot Engine. I do not seek to shame anyone continuing to use the engine to make their games. I am simply a person with a strong conscious. Thank you for taking the time to read this.

[1] https://web.archive.org/web/20170204003218/http://searchnetworking.techtarget.com/definition/master-slave
[2] A word of caution: As of writing, the website for the Global Language Monitor seems to have real life gore on the sidebar. We can conclude that the website is biased to the reactionary right wing by its' use of the phrase 'political correctness' and claiming words such as cisgender are 'politically incorrect'.

Comments

spiral's picture

I want to thank you for

I want to thank you for writing this essay, and I'm glad to have been able to help you so much in making it happen. the situation with Godot is not okay, and it's good to speak up about it. as I've said in private, I will continue to speak to what you criticize here, and I will support your stance.
- nikki

Some Thoughts

First off, kudos to you gisbrecht and thank you for sharing your perspective on this industry-related, politically-related, and community related issue. Your research and structure are impressive, and this was definitely a worthwhile read. Reading this impacted me a lot and I thought about it quite a bit after my first few read-throughs. I'm not in the Alt-Games discord channel so I don't see the other discussions about this and other related topics, and feel disconnected from the "scene" in general, so seeing things like this helps me understand the trends of what's going on - and how these developments impact (and are impacted by) the rest of the world.

Whether they choose to admit it or not, the developers are putting something out there to a world-wide audience. And despite their dismissal of political undertones to the language they use, well hey: words have meaning outside of the programming world. To adjust the words you use in something you create and share with the rest of the world can both clarify your own stance on the world stage, as well as serve as a gate to the walled garden. Those who are okay with the language being used will be welcome inside, while those who refuse or are made uncomfortable by that language will be forced to either move on (like you have), or to "surrender" and acquiesce to its use.

Looking at this objectively, I just think it makes bad business sense for Godot to have held on to the loaded language as long as they did. I can understand the urge to "defend your babies" to the death or whatever, but considering the broader context, this is a dreadful position they chose to defend. I can only speculate as to the true motives for wanting to hang on to the loaded terms as long as they did. Not gonna accuse them of being racist or whatever because I am far, far on the outside of this particular disagreement. However - and as you point out - their typical argument tactics and the particular hill they chose to die on in defense of their programming language is fairly damning in that respect.

Were I forced into the position of choosing to stay or go with the tool had this been the case with me, I likely would have cowed to the use of that language up until the point where the developers made a big stink about the language not being impactful and polarizing in a world-wide context. I'd have been forced to, especially at the point when they fought so diligently to dismiss and then demean the original concerns with the language they used. I suppose that's the most impactful segment of this situation: the fact they refused after it was made clear to them that a broad swath of their current and potential audience is so affected. If I don't like someone, I typically don't buy what they're selling and/or support their work.

Questions for you, gisbrecht (if you don't mind, that is): what's your opinion on those who know about this series of events, and continue to use the Godot engine? Do you think the game developers fall into the same camp as the SDK (software development kit) developers? Do you refuse to play their games? Do you see Godot as a politically-polarized engine that all people concerned with human rights should avoid?

In any case, thanks for this write-up. I respect your work, and I appreciate learning of your perspective on this issue.

Blueberry Soft's picture

Thanks gisbrecht

Thanks gisbrecht, and thanks too to nikki who I remember talking about this before. It's good to have it all documented here.

It's a continual frustration that people dismiss things like this as some kind of product of American cultural imperialism >:| I mean, I don't think an American can really appreciate how frustrating it is to be constantly just kind of drowning in Americaness everywhere, especially anywhere that's in English like the Internet (actually especially in South America too, where they've got the worst kind of the USA's imperial behaviour, of course), but using that as an excuse to dismiss plainly racist terminology is willingly pig-headed. How can a white guy in South America say he lives in a place where racism doesn't exist.

Part of the reason I appreciate open-source stuff is that we end up seeing all this stuff, at least. Like my few experiences with Unity devs have been... mixed (I can write more about this, but don't want to distract from your post), and I don't have any confidence they wouldn't be spouting the same bullshit :(

RE: the licence: unfortunately the MIT licence is not a particularly anti-capitalist one, as it allows anything using it to be included within proprietary software. It's not a copy-left licence that requires remaining open-source. It's one of the licences (like BSD) people use when they want to retain the option of maybe selling things later on. In this case it's probably used because it means people can distribute their games without having to make them open-source. But yeah.

BTW the links to the IRC logs you shared don't seem to work, do you have them saved?

spiders's picture

Thank you for this writeup,

Thank you for this writeup, This was very insightful to read. As someone who has recently been getting into Godot development and who was not happy with much of the culture or lack of criticism around the Unity engine this is quite devastating to hear.
I've previously worked on a game engine proof-of-concept in haxe where the naming of concepts was a main point of research, so I've spend some time thinking about coding terminology and the effects it has. Reading through the github issue and seeing how the discussion around this was framed by some of the Godot devs really makes me loose faith in the dev community behind Godot. I am glad that they did change it in the end, I know a lot of foss dev communities where the dismissive and ignorant answers to the original issue would have been the end of it. But still, when I look at some the things said in irc, Godot does not seem like a place I'd want to contribute to if some of the lead devs worry that people who think "submitting to the SJWs" is a thing will approve of their changes.
I'm sorry for and thankful to the people who I read were pushing and argumenting for this change, it seemed like an uphill struggle. It reminds me of recent discussions during pride month in Linux communities. With sentiments along the lines of 'keep politics out of open source'. It boggles the mind that some people believe foss is an a-political thing instead of understanding it as a struggle that is aligned with other social and human rights struggles. Not even to mention the question of what kind of a community you want to foster.
It's sad to see that they went "silently with this change as much as possible" in fear of any backlash from reactionary trolls. I can understand not wanting to deal with a shitstorm, but it seems that some open source communities are so afraid to deal with these issues and talk about them that they just default to "no politics" (or rather status-quo politics) and end up fostering a welcome space to these toxic individuals.
Having spend a long time engine-hopping I don't really have an alternative to working with Godot for some of the projects I do. Does anyone have any insight on this? A Glimpse-like (GIMP) fork of Godot with more thought on community guidelines and goals is the only thing that comes to mind but it would probably just enhance divisiveness in the community.

Blueberry Soft's picture

It's actually not a bad time

It's actually not a bad time to be looking for alternatives, as there seem to be a number of them at the moment.

I think the most advanced is Open 3D Engine (https://o3de.org/ , https://o3d.foundation/). This used to be Amazon's Lumberyard, but it's become an open-source project recently. It still seems to be driven by Amazon employees though, but other people are getting a Linux version together.

Flax Engine (https://flaxengine.com/) seems fancy too, but I don't know much about it.

If you don't mind stuff being a bit more programmery there're Urho3D (https://urho3d.io/), Panda 3D (https://www.panda3d.org/), and Castle Game Engine (https://castle-engine.io/).

And there are some forks of Blender's abandoned game engine part that I wanna check out: UPBGE (https://upbge.org/), and Armory 3D (https://armory3d.org/). There's also Verge3D (https://www.soft8soft.com/), which is a plug-in for different 3-D modelling programs, that let's you do interactive stuff.

I probably have a bunch more in my bookmarks, but these're the ones that I have notes on; I've been searching for a new tool too.

Danni's picture

I'd like to see what folks

I'd like to see what folks think of Flax. On paper it has a good featureset and looks competent. I don't exactly need something that looks uhhh "AAA" but I'd definitely something that targets Windows and Linux and lets me do stylish graphics (and has collision detection that actually works correctly).

Danni's picture

Never mind, looks like all

Never mind, looks like all they have is RigidBody and Character Controller.

Also this is apparently what good jumping motion looks like to them

https://docs.flaxengine.com/manual/physics/character-controller.html

*screams*