If you're interested in more research like this, most of it is going to be in video format over on the Forum's YouTube Channel. You can also support future work through the new Patreon campaign.
This is the sixth book in the Reverse Design series and the final book in volume one. The goal of the series has been to reverse-engineer all of the design decisions that went into classic videogames. Previously, we published books on Final Fantasy 6, Chrono Trigger, Super Mario World, Half-Life and Final Fantasy 7. You do not need to have read those books in order to understand this one, although the Final Fantasy 7 book provides some excellent context for the kinds of historical design trends which created both it and Diablo 2. This book is, nevertheless, a bit different from the previous books. For one thing, it is shorter than the previous three books (which were all around 50,000 words, while this one is closer to 40,000). One of the reasons for this is that Diablo 2 is almost entirely made up of systems rather than content. That is, Diablo 2 does not have bespoke levels in the same way that Super Mario World has levels. In Super Mario World, every single thing which appears in every level of the game was placed there by the hand of a level designer. The levels in Diablo 2, on the other hand, are (mostly) created by an algorithm. So, instead of having to describe 70 levels, this book has to describe the algorithms which make Diablo 2’s levels. Those algorithms are complex, but describing a few alorithms is a shorter task than describing several dozen levels, no matter how complex those algorithms are.
The other way in which this book is different is the amount and type of information I had access to while writing it. Of the five books written before this one, four of them were about Japanese games. My Japanese is only conversational, and I have no contacts in the Japanese games industry. But beyond that, Japanese developers are a little more reluctant than Western game developers to talk about their creative process in a highly detailed way. Thus, most of the information I had about the development of these games came from commercial interviews or fan-made walkthroughs. The interviews are occasionally useful, but rarely thorough. The walkthroughs are often astonishingly informative, thorough and well-organized, and without them I could not have written the books. But neither of those resources is as direct as a developer sitting down and telling you his or her intent. For this book, I interviewed four of the central figures in Diablo 2's development: project leads Max Schaefer and David Brevik, lead designer Stieg Hedlund, and level designer Stefan Scandizzo. The information that they provided gave me the ability to measure their intentions against their results—something that I couldn't really do in the other books in this series.
The final way in which this book is different from the others in the series is that, even if you have played Diablo 2, you may not have played the game which I am writing about. In the age of DLC, everyone is familiar with the notion of an expanding game. Diablo 2 has more DLC than most people realize, however. In addition to the massive expansion that happened in Lord of Destruction (2001), the game has been slowly revised and enlarged consistently since its release. Thus, anyone who stopped playing in 2000, or 2002, or even 2006 would find that the game has changed significantly since then. The version of the game which I will be writing about is version a variant of 1.13, which is the last version that I could play in a live multiplayer environment. There is a certain amount of conflict between my use of this version and my use of interviews with the game's original creators. None of the four developers that I interviewed had anything to do with the game after 2004. Nevertheless, I have not found anything in the design which contradicts the original principles laid down by the primary contributors to the game.
This book breaks down into three large parts, and each part breaks down into several smaller sections. Part one deals with the historical lineage of Diablo 2, examining how a combination of existing action games and RPGs led to the game which we know today. Part two examines the different kinds of randomness which appear in the game and affect the algorithms which generate things like maps, enemy affixes, and loot drops. (I use the term affixes a lot in this document. It is a Diablo-specific term for any procedurally-added change in monster or item stats or abilities.) Part three synthesizes the former two sections, and examines the way that procedural generation techniques replicate the fundamental design structure of action games, but in an RPG context, in a phenomenon I call Schaefer variation. Part three also looks at how Schaefer variation naturally leads to an RPG-specific psychological phenomenon I call acceleration flow. Because these three parts can be useful on their own, I have given a slightly larger summary of each part just below.
The first step in understanding Diablo 2 is to understand it in its historical context. Diablo 2 is an unusual RPG in that it is the product of three convergent trends in the field of game design. Those trends are the combination strategy, the specialization strategy, and the prevalence of Nishikado motion. These are a lot of technical terms, and you don’t need to understand them yet. We’ll examine each of those ideas in turn, but the short version of the story is that Diablo 2 borrows from roguelikes, action RPGs and console videogames in roughly equal measure. Diablo 2 isn’t unique in making this combination; lots of other games use some or all of these same elements. But the specific way in which those things come together in Diablo 2 is systematically elegant in a way that few games are. In the first section of this book I'm going to examine the historical origins of each of Diablo 2’s design ideas, and see how Diablo 2 took them in a new direction. Specifically, we’ll look at how Diablo 2 borrows selectively—and in many cases, partially—from the roguelike genre. We’ll also look at how Diablo 2 supplements certain parts of the roguelike genre with design ideas from traditional RPGs (like character classes) and console action games. Part one is mostly specific to Diablo 2, and examines how the design ideas and balance structures in Diablo 2 compare to the analogous parts of the game’s ancestors.
Part two of this book examines the various forms of randomness that appear in Diablo 2. Diablo 2 is a great example of several different ways that randomness can be used in videogame design. Diablo 2 is known for its procedurally generated maps and procedurally dropped loot. Descriptions of Diablo 2 often use the term “random” to describe both systems. To some degree that’s correct; both systems do use random selections as their primary means of generation. But both systems are also very different from one another, and from players’ expectations of them, especially in the ways that they place constraints on their randomness. The best way to understand the map generation algorithm and all its constraints is to see the algorithm as a person playing a card game. The best way to understand the item generation system is to see items as slices of pie—unless you’re trying to understand the odds of finishing a set of items. It’s best to understand the randomness of set items as being like a game of Scrabble. There are also more straightforward forms of probability which govern some of the game’s systems. What’s more, many of these systems interact with one another! Accordingly, the entirety of part two of this document is dedicated to unpacking the various ways that randomness and procedural generation (not always the same thing in Diablo 2) are used. Part two contains lessons which are widely applicable, not just to RPGs, but to any game in which procedural generation and randomness play a significant role.
Part three of this book examines a phenomenon I call Schaefer variation. If there is a central thesis to this book, it is that Schaefer variation is the defining design feature of Diablo 2. The quickest way to explain Schaefer variation is to say that it is a way of using procedural generation to emulate the kind of difficulty curves found in console action games. The defining moment in the history of videogames was the serendipitous discovery of its central design structure, Nishikado motion (which is defined in part one of this book). In Diablo 2, the designers figured out a way of recreating the up-and-down action of Nishikado motion in a procedural context. That recreation is Schafer variation. Although Schaefer variation’s primary effect is to emulate the central design dynamic of action games, it also has an effect which is idiosyncratic to RPGs. Because the difficulty of RPGs is inherently tied to the level up system, the up-and-down motion caused by Schaefer variation also results in a phenomenon called acceleration flow. We’ll take a look at what that phenomenon is, how it happens, and how it affects the player’s experience of Diablo 2. Part three is the most theoretical section of the book, and the one most specific to RPGs with long level-up systems and tons of gear.
Next - The History of RPGs and Diablo 2