Correlating Code & Community (part 4)

Finally, in order to round out this case study, I would like to offer a few concrete examples of how social-network and code-level analyses can be correlated to bridge the gap between code and community.

In the image below, I have filtered the network graph to show only those modders who refer in their paratexts to the game sequel Super Mario Bros. 3, hence bringing inter-ludic seriality to bear on these actors' para- and infra-ludic interventions (in the categories outlined earlier, in the section on "Digital Seriality"):

Screenshots: Palladio network graph of references to SMB3 (left) and Tableau visualization of those modders' code

The resulting graph (on the left) reveals a small network of actors whose serializing activity involves mixing and referencing between Super Mario Bros. 1 and Super Mario Bros. 3, as well as between each other. The Tableau screenshot on the right then selects just these modders and reveals possible similarities and sites of serialization (which can then be subjected to closer scrutiny with a program like hexcompare or tools derived from the modding community itself; in the "Tools" section of this webtext, under the "Code Diff" sections, users can interactively select two patches or modded ROMs and compare them directly in the browser). For example, the Tableau graph above reveals that the modder AP's Super Mario 3-inspired patches from September 2005 and flamepanther's "Super Mario Bros. DX" and "DX fix" patches from October 2005 exhibit traces of possible overlap that deserve to be looked at in greater detail. The modder insectduel's "After World 8" (a mod that is referenced by many in the scene) from February 2006 shares large blocks around 31,000-32,000 bytes with many of the prolific modder Googie's mods (which themselves seem to exhibit a characteristic signature) from 2004-2006. Of course, recognizing these patterns is just the beginning of inquiry, but at least it is a beginning. From here, we still have to resort to "close reading" techniques and to tools that are not conducive to a broad view; more integrated toolsets remain to be developed. Nevertheless, these methods do seem promising as a way of directing research, showing us where to look in greater depth, and revealing trends and points of contact that would otherwise remain invisible.

In order to demonstrate what some of this more detailed work looks like, I would like to return finally to the "Millennium Mario" mod I considered briefly above (in Part 2 of this case study). As we saw, there was an interesting infratextual shoutout and some ASCII art in the opening section of the hexcode. With Tableau, we can filter the "diff" view to display only those mods that exhibit changes in the first 500 or so bytes of code, where these non-executable elements appear, and to map that section of code in greater resolution (this is done, in the interactive visualization, with the slider in the bottom right corner, marked "Start" — referring to the byte count at which a change in the patched game begins). The result is shown here:

Screenshot: Tableau visualization of mods filtered to modifications within the first 500 bytes

Above, we find two distinctive (visual) matches: viz. between "Millennium Mario" and Raysyde's "Super Mario Bros. — Remix 2" from 1999, and between ATA's "Super Mario Bros. — Yoshi's Quest" and Krillian's "Mario Adventure 2," both from 2000. The latter two mods, while clearly different from the former two, also exhibit some overlap in the changes made to the first 20 or so bytes, so it will be interesting to compare them as well.

Screenshot: hexcompare comparison of SMBRemix2 and Millennium Mario

Having identified a small set of mods that deserve further comparison, we can now use hexcompare (or another "diff"-capable hex editor, such as the one included here under the "Tools" section) for finer analysis — i.e. to determine if the content of the changed addresses is also identicalScreenshot: hexcompare comparison of SMBRemix2 and Millennium Mario, detail view (for the visual match in the Tableau graph only tells us that something has been changed in the same location in two given mods, not whether the same change has been made there). Here we find that Raysyde's "Super Mario Bros. — Remix 2" does in fact display the same changes in the opening bytes, including the reference to "toma" and the ASCII art. This, then, is a clear indication of infra-ludic serialization: the borrowing, repetition, and variation of code-level work between members of the modding community.

Significantly, this essentially serial connection (an infra-serial link) would hardly be apparent from the level of the mods' respective interfaces:

Side-by-side comparison of title screens SMBRemix2 and Millennium Mario

(It is worth emphasizing, however, that the interface level is hardly irrelevant. Thus, in the "Tools" section, under "Mods & Interfaces", users can filter and sort the title screens of all 240 mods. These comparisons, when directed by the social network and "diff"-mapping tools highlighted here and available to users as well, can be quite illuminating in terms of visual resemblance or contrast. Additionally, the title screens themselves contain a large amount of metadata, including dates, names, instructions to users, and references to software or communities.)

Screenshot: hexcompare comparison of Millennium Mario and Yoshis QuestWhen, on the other hand, we compare "Millennium Mario" and ATA's "Super Mario Bros. — Yoshi's Quest," we find the ASCII art gone, despite the visual match in Tableau's mapping of their "diff" indications for the opening bytes. Again, the Tableau graph only reveals that something has changed at the same address in the two mods, but not what it is. A hex editor reveals the code-level difference (as seen here on the left).

"Yoshi's Quest" corresponds in this respect to Krillian’s "Mario Adventure 2" (as seen in the hexcode comparison below to the right). Thus we have another clear indication of infra-ludic serialization, which would hardly have been evident other than by means of a directed filtering of the large dataset, in conjunction with a close analysis of the underlying code.Screenshot: hexcompare comparison of Yoshis Quest and Mario Adventure 2

Again, however, this is just the beginning of the analysis — or more broadly of an encounter between DH and CCS. Ideally, the dataset would be expanded beyond ROMhacking.net's database; other online communities would be mined for data; and, above all, more integrative tools would be developed for correlating social network graphs and diff-maps, for correlating community and code. Perhaps a crowdsourced approach to some of this would be appropriate: the study of a code-centric community seems to call for a code-centric communal effort of its own.

Hence, this is not the end but rather the beginning of the story, which really takes off in the interactive "Tools" section of this webtext. There, I have collected a variety of interactive visualization tools — including social network graphs and the "diff" maps made in Tableau — as well as the dataset upon which they are based and the code of all 240 mods, which can be compared in a browser-based hex editor. The reader is invited to experiment with these tools and to expand or even challenge my analysis of the serialization processes at work in the code and the community of the Super Mario modding scene. Alternately these methods might be adapted to other code bases and other online communities. Alas, like digital seriality itself, this is inherently work in progress, and thus it remains work "to be continued"...

Nevertheless, a few conclusions can be drawn from the foregoing (as outlined on the following page).