Inclusive Word Choice
When you work in the Unreal Engine codebase, we encourage you to strive to use respectful, inclusive, and professional language.
Word choice applies when you:
name classes.
functions.
data structures.
types.
variables.
files and folders.
plugins.
It applies when you write snippets of user-facing text for the UI, error messages, and notifications. It also applies when writing about code, such as in comments and changelist descriptions.
The following sections provide guidance and suggestions to help you choose words and names that are respectful and appropriate for all situations and audiences, and be a more effective communicator.
Racial, ethnic, and religious inclusiveness
Do not use metaphors or similes that reinforce stereotypes. Examples include contrast black and white or blacklist and whitelist.
Do not use words that refer to historical trauma or lived experience of discrimination. Examples include slave, master, and nuke.
Gender inclusiveness
Refer to hypothetical people as they, them, and their, even in the singular.
Refer to anything that is not a person as it and its. For example, a module, plugin, function, client, server, or any other software or hardware component.
Do not assign a gender to anything that doesn't have one.
Do not use collective nouns like guys that assume gender.
Avoid colloquial phrases that contain arbitrary genders, like "a poor man's X".
Slang
Remember that your words are being read by a global audience that may not share the same idioms and attitudes, and who might not understand the same cultural references.
Avoid slang and colloquialisms, even if you think they are funny or harmless. These may be hard to understand for people whose first language is not English, and might not translate well.
Do not use profanity.
Overloaded Words
Many terms that we use for their technical meanings also have other meanings outside of technology. Examples include abort, execute, or native. When you use words like these, always be precise and examine the context in which they appear.
Word List
The following list identifies some terminology that we have used in the Unreal codebase in the past, but that we believe should be replaced with better alternatives:
Word Name Alternative Word Name
Blacklist _deny list_, _block list_, _exclude list_, _avoid list_, _unapproved list_, _forbidden list_,_permission list_
Whitelist allow list_, include list, trust list, safe list, prefer list, approved list, permission list
Master primary, source, controller, template, reference, main, leader, original, base
Slave secondary, replica, agent, follower, worker, cluster node, locked, linked, synchronized
We are actively working to bring our code in line with the principles laid out above.