Today’s guest post is by game designer and developer Will Nations and originally appeared on Will’s website.
Minecraft’s capacity for simple, direct, consumer-level editing of the 3D world has brought upon revolutions in game design and has joyously perforated industries across the world: education, design, architecture, and a whole host of other fields have felt its influence. Unfortunately, Minecraft’s revolution stops short of tangible representations: while it is excellent at modeling geometry and therefore the creation of concrete forms, it is not so great at enabling the same for ideological or abstract creations. That would be a task for some sort of new narrative scripting language.
What if we could take those same properties that made Minecraft so successful—its simplicity, its capacity to empower laymen for creation—and bring it into the realm of narrative development? What if the complex realm of natural language processing could be simplified to an extreme and made interactive such that even children could create characters, worlds, stories, and watch a computer bring them to life, nurture their growth, and develop them in real time? This series aims to suggest possibilities for just such a future and the remaining hurdles that must be dealt with.
Virtualization of Character
Emerging on the horizon is our imminent mastering of the “Turing” test, devised by Alan Turing. In it, one has a programmed machine anonymously speak with a series of judges. The judges vote on whether they are conversing with a human or a machine. One passes the test if the large majority of the judges are mistaken and are unable to tell the difference between a regular human and the designed machine. A chief example of this test in action is in the creation of software applications designed to communicate online via chat rooms and social media.
The development of these “chatbots” has advanced considerably. A teenage girl variety known as Xiaoice (Shao-ice) garnered over 663,000 live conversations in merely 72 hours. People were relying on her for support, companionship, and advice. She in turn responds dynamically and realistically, yet with her own personality, moving beyond the one-way static communication of traditional media.
Children of the 90s and later are learning to bond emotionally with virtual characters in unprecedented ways with things like virtual pets, the evolving Toys-to-Life industry, and the Japanese personified, performing voice programs called “Vocaloids” with massively popular YouTube music videos, canonical relationships, and live concerts in New York with cheering fans.
As the popularity of virtual characters increases and their commercial appeal grows, consumers’ desire to share memories, experiences, and relationships with them will also grow. The heralds of these experiences will be restricted to the educated and practiced experts of writing and design historically responsible for creating such performances.
But what if this need not be the case—for games or any other sort of media? What if characters, and the stories surrounding them, were just as editable as the blocks of Minecraft? What if they were “Minecraftian”?
What Does “Minecraftian” Actually Mean?
Minecraft: a video game that revolutionized the way people interact with 3D design and architecture. Fundamentally, it’s a video game that acts as a liberating force to unleash people’s creativity and bring to life the architectural and artistic wonders locked within one’s mind. And the medium of this transformation? Blocks. A limitless, vast world where the most basic element is a square of space that can be directly interacted with by any average player.
There are a limited number of types of blocks. Some are for grass. Some are for wood. Others represent various types of stone or fluid. Some are static and some are animated. And as one becomes familiar with the basic types of blocks, they can then “mine” blocks for materials to be used in “crafting” new blocks. They can consume them, transform them, fuse them, add them back into the world, and in so doing directly edit every detail of their environment.
Take a second to imagine the power that this game presents. It isn’t very complicated: there simply aren’t too many types of blocks to remember. You never start out dealing with things you can’t handle. You steadily advance your knowledge of blocks as you play, learning to become proficient in your renderings. Your main activities involve mining or placing objects in the world and combining materials in menus. The more you interact with the world, the more you discover how to alter things and the greater your understanding of the relationships between blocks becomes. You soon get to a point where the path to realizing your vision forms in your mind effortlessly because you’ve mastered the simple mechanics ever so quickly. Soon a masterpiece stands before you and the journey there was far easier than you ever could have imagined.
Some important things to consider about Minecraft’s block-building mechanic:
- It’s easy to learn and requires little overall knowledge. There aren’t so many different types of materials that you couldn’t memorize a reasonable set in a few dedicated hours of play.
- The basic editable element of the world is highly visual and interactive. The “resolution” of things is drastically reduced, facilitating comprehension and precision with a tangible granularity.
- Obscurity and concepts are your friends, not fine details. The limited degree of detail permitted ensures that players need not become experts in their creative portrayals as everyone is on an equal footing, complexity-wise.
- The “language” of creation is fully computerized. The medium is just as prone to manipulation by algorithms as it is the manual fine-tuning of a patient and determined player.
- The data is easily hack-able, mod-friendly, and adaptable. Everything exists on a simple grid, for which we have accumulated many algorithms already. Tinkerers and entrepreneurs everywhere can easily experiment and devise new ways of interacting with the system.
The Difficulties of Language
So how can we take the mechanics of Minecraft and the transformations it made to 3D design and bring it to narrative, character creation, and world-building? First step: identify our most fundamental element, our “block.” Perhaps words? After all, words—and the concepts associated with them—are what make up thoughts and ideas, right? We should just have everyone who plays our game learn the words that we use in our game/tool. Well, that certainly appears to be the solution, but it isn’t quite so simple unfortunately.
If you’ve ever tried to learn a second language, then you know it can be an arduous task, especially the further you go from your native tongue. Taxing hurdles build up one after another such as the varieties of grammar and syntax or the vast amounts of vocabulary. It can take years before one is competent enough to use a new language with any sort of astute precision. Compounding the issue is the practical element of whether or not the language can easily be comprehended, interpreted, and responded to by a computer system in real-time from multiple sources.
If our goal is to use a language that all of our players can be expected to engage with, then relying on any language as complex as English is still a disservice to the players of other cultures. It also loses much of its potential to appeal to younger audiences whose language skills may still be developing. What’s more, if we wish to make it as simple as possible for an average player to edit language contents to communicate with narrative tools and mechanics in-game, English and other common languages are too convoluted.
What we really need if we intend to apply a Minecraftian design to our linguistic mechanics is a revolutionary scripting language: something with a limited vocabulary that’s easy to learn, a simple granular syntax where you can easily pick out the parts of a sentence and the meaning therein, a language where a computer could easily understand the full breadth of its grammar at extremely efficient speeds to account for vast amounts of real-time processing. It wouldn’t have to be terribly detailed—just enough information for us to get a vague idea of what was meant. Ideally, the language would be highly visual and easily editable to appeal to children on the consumer end and hackers on the entrepreneur end.
In comes Toki Pona.
Toki Pona is an artificially designed language with a total of 120 basic words and particles and a syntax of a measly 10 rules. It can be completely learned fluently in a matter of weeks. Words can be clearly depicted as combinations of hieroglyphs that visually indicate the meaning of the word. The visual, minimalist approach of the language makes it highly accessible, adaptable, computational, universal, and overall plausible as a candidate for narrative editing, though further examination will be necessary to truly determine its utility for such a task.
If we simply: 1) teach a computer to understand a Toki Pona-inspired language or a derivation of it; 2) make interactions with such a system simple, intuitive, and visual; and 3) properly introduce the use of this visual language to players, we can devise gameplay mechanics that allow players to easily interact with and/or (re)define the narrative details of their world.
Now let’s go into detail on how such a system might work and how it could be used for revolutionizing game design and narrative on a fundamental scale.
Ideal Narrative Scripting
Let’s first review what exactly we mean by “narrative scripting”. What sorts of tasks are we actually wanting to perform with this language? We’ve already established many of the characteristics we are looking for from our Minecraft analysis, and while Toki Pona meets many of these criteria, we must also consider the actual usage environment of our target language before we can significantly evaluate the utility of Toki Pona.
Before continuing, I would also like to point out that this sort of narrative scripting is entirely distinct from the “narrative scripting” language known as Ink. Scripting languages in general are just languages that are more user-friendly and provide a more intuitive, simple interface for computer-tasks that would otherwise be fairly complex. With Ink, the goal is to inform the computer of the relationships between lines of dialogue in branching story lines. In our case, the goal is to inform the computer of the narrative concepts associated with game world objects, actions, and places so that it can 1) interpret meaning based on those associations and 2) trigger events that can be leveraged by AI characters, world controls, and human players/modders to create behavior and change the game world. We want to put this kind of control in the hands of players.
If we truly had a narrative scripting language, then we would be able to craft, with as little vocabulary and syntactic structure as possible, a description of any narrative content. More specifically, we should be able to describe with some measure of accuracy . . .
- Places’ geography, geometry (both its form and absolute and relative locations), and thematic atmosphere.
- Objects’ nomenclature, physical and functional characteristics, relative purpose, effects, history, ownership, and value.
- People’s (and, as a categorical subset, animals’ and human-like creatures’) nomenclature, physical and emotional characteristics, relationships, state of mind, responsibilities, history and scars, beliefs, tastes, hopes and dreams, fears, biases, allegiances, knowledge, awareness, senses and observations, skills and powers.
- Concepts’ and ideologies’ subject domains, relationships, and significant details.
These qualities will allow the user to competently describe an environment and the items, creatures, and people in it. In addition, for accessibility and then functional purposes, we need the language to be useful for the following tasks: 1) scenario descriptions, 2) dialogue, and 3) computer processing. The attributes above cover the first case.
As for dialogue, that means it must also be able to model questions, interjections, quotations, prepositions, nouns, adjectives, and adverbs (common syntactic structures). It must accommodate the linguistic relationships between terms and their relative priority, e.g. is X AND/OR’ed with Y, are these words a noun/adjective/adverb, are they subject/object, which adjectives describe the noun more clearly, etc. We must also have some means of singling out identifiers, i.e. terms that refer to things that are not themselves a part of the language (a player’s name, for example).
Finally, we must also ensure that the language’s structural simplicity is reinforced so that its consequent processing is more easily conducted by computer algorithms. This primarily involves restricting the number of syntactic rules and lexicon size.
To maximize the utility of the language itself, the “root” words that are individually present in the language must have the following characteristics:
- The words must be, as much as possible, “perpenyms” of one another; that is, they must be perpendicular in meaning to their counterparts, neither synonyms—for obvious reasons—nor antonyms, to prevent you from simply saying, “not [the word]” to get another word in the language.
- The words must have a high number of literal or metaphorical interpretive meanings laced within them to ensure a maximum number of functionally usable words per each learned word. Keep in mind, these interpretations must also be strongly linked by theme so that the words’ definitions will be easy to remember. If possible however, these multiple meanings should be individually interpretive based on context, so that one can assume in any given context one interpreted meaning vs. another somewhat clearly.
- For example, in Toki Pona, the word “tawa” can mean “to go” as a verb, “mobile/moving/traveling” as an adjective, “to, until, towards, in order to” as a preposition (notice how each of those are generally applied to different preposition objects, to help pick out which one is being used), or even, “journey/transportation/experience”, literally “the going” as a noun. Each context can be easily identified based on the positioning of the word in a sentence, each run along a common theme, but each also have a unique connotation that can be interpreted rather well in context.
- The words must be highly reactive with their fellow terms so that a high number of reasonable compound words can be made. Again, the goal is to maximize the number of unique meanings we can derive from the minimum set of words to learn.
Toki Pona’s Potential
As previously mentioned, Toki Pona has many desirable characteristics that we seek in developing a narrative scripting language. Limited syntax and vocabulary clears the user-accessible and computationally efficient requirements (3). Toki Pona also does an excellent job of functioning as dialogue since it was designed from the ground up to be used conversationally (2).
The language has an exceptional potential to detail a wide variety of topics, and although it tends to be extremely vague, enough detail can be made to elucidate the general meaning of an idea. However, there are some details about the language that have the effect of restricting its potential, namely the fact that the languages’ creator, Sonja Lang, designed it based on addressing the linguistic needs of a hypothetical, simplistic, aboriginal people on an island. As such, the language is not completely designed from the ground up to account for a maximization of functional vocabulary and in fact caters to the range of topics and activities that such a people would participate in.
For example, the language includes words like “pu” (meaning “the book of Toki Pona”), which is utterly meaningless for our purposes, and “alasa” (meaning “to hunt, to forage”), which fails on perpendicularity since you can easily create the same meaning with phrases like “tawa oko tan moku” (meaning “to go eyeing/looking for food”).
Also, despite how much the language does to accommodate different modes of verbiage, (including past, present, future, progressive variations of each, etc.), it can be troublesome to express some necessary concepts since “wile” (the word for “want to”) itself encompasses want to, must or have/need/required to, and should/ought to, each of which are highly distinct and significant nuances.
Although, some inventive uses for verbiage have been adapted for a lacking vocabulary. For example, a person can convey that he or she should do something by using the command imperative on themselves as a statement, e.g. “mi o moku” => “Me, eat” => “I should eat”, distinct from “mi moku” => “I eat.” These intricacies must be learned on top of any such vocabulary or syntax rules though as they are built upon usage conventions and through their obscurity inevitably hinder the accessibility of the language.
As such, it would appear that the most effective strategy would be to develop a derivation of Toki Pona, built on the same principles and leveraging much of the same language, but stripping it down to only the elements that are most critical for communication and plugging up gaps in linguistic coverage as much as possible.
Narrative Language: Core Concepts
While we won’t iron out the entirety of a language in one sitting, we can likely get a sense for what sorts of concepts must be included as core elements. If we limit ourselves to include 150 words (and even that is really stretching it, if we want to keep the language as effective as possible), then let’s see what ideas are really needed.
- Parts of the body.
- Spatial reasoning, i.e. directions, orientation, positioning.
- Counting, simple math.
- Temporal reasoning, i.e. time (and tense) references.
- Types of living things (including references to types of people, e.g. male/female).
- Common behaviors (supports occupations, most helping verbs, basic tasks).
- Common prepositions.
- Elements of nature (earth, wind, water, fire/heat, light, darkness).
- Forms of matter.
- Grammar particles (obviously taken directly from Toki Pona more or less).
We must also then include elements that are uniquely necessary to fulfill our needs of describing the nature of people and relationships.
- Elements of perception (able to describe the “feel”, “connotation”, or “theme” of an experience).
- Elements of relationships (same for relationships, but also able to describe the expected responsibilities. Need basic words to help illuminate expected responsibilities, e.g. Toki Pona’s “lawa” for “leader”).
- Elements of personality.
Ideally, we would be able to get many of these meanings using the same words, but just applying them to a different object, for example, if we had the word “bitter”, we could use it to describe a perception, the overall nature of a relationship (or perhaps even the feelings experienced by one party in the relationship), or someone’s personality, e.g. they are a bitter and resentful person, etc..
In our analysis of Toki Pona, we covered the fact that it has many advantages in regards to fulfilling our requirements as a narrative scripting language; namely that it can be used as dialogue and has a high number of meanings per learned vocabulary term, and therefore it is able to cover a lot of topics with little learning time involved. However, we have also determined that the language has many flaws due to the original design purpose: meeting the linguistic needs of an isolated and tribal hunter-gatherer people. As such, there are many unnecessary terms and some concepts which simply cannot be conveyed adequately, if at all.
We can therefore state that the best course of action would be to derive a new language from the structure and vocabulary of Toki Pona, shaving away “the fat” as it were, and editing the language to bolster its linguistic breadth and depth while still staying true to its minimalist nature. To that end, we outlined several topics of vocabulary that would be essential for outlining a narrative scripting language.
In the next article, I’ll address the interface we may see in a narrative scripting editor and identify actual gameplay mechanics we could see with narrative scripting put into practice. Please feel free to leave comments if you have any further insights or criticisms and stay tuned for more!
H/T to Will for writing all of this valuable content originally!
Will Nations is a game designer and developer dedicated to evolving the way stories are told. He is an active member of the Christian Game Developers Facebook group and /r/gamedev Reddit pages. His free time is spent developing tools to assist the game development industry overall.