{"id":98440,"date":"2019-08-14T13:12:00","date_gmt":"2019-08-14T13:12:00","guid":{"rendered":"http:\/\/www.gamasutra.com\/view\/news\/348627"},"modified":"2019-08-14T13:12:00","modified_gmt":"2019-08-14T13:12:00","slug":"blog-ancient-greek-punishments-as-hypertexts","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2019\/08\/14\/blog-ancient-greek-punishments-as-hypertexts\/","title":{"rendered":"Blog: Ancient Greek punishments as hypertexts"},"content":{"rendered":"<p><strong><i><small> The following blog post, unless otherwise noted, was written by a member of Gamasutra\u0092s community.<br \/>The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. <\/small><\/i><\/strong> <\/p>\n<hr>\n<p>(Note: throughout this text, I\u2019ll be linking to&nbsp;<a href=\"https:\/\/github.com\/pippinbarr\/lets-play-ancient-greek-punishment-the-twine\/blob\/master\/process\/README.md\">process materials<\/a>&nbsp;generated as part of the project in its&nbsp;<a href=\"https:\/\/github.com\/pippinbarr\/lets-play-ancient-greek-punishment-the-twine\">code repository<\/a>. This approach to process documentation is part of the&nbsp;<a href=\"https:\/\/www.gamesasresearch.com\/\">Games as Research<\/a>&nbsp;project.)<\/p>\n<p><a href=\"https:\/\/pippinbarr.github.io\/lets-play-ancient-greek-punishment-the-twine\"><em>Let\u2019s Play: Ancient Greek Punishment: The Twine<\/em><\/a>&nbsp;is the ninth edition in the \u201cAncient Greek Punishment\u201d series I\u2019ve been working on since 2011. Lately I\u2019ve been interested in what happens when I retell the five mythological punishments using the \u201clanguage\u201d of different game engines, and this time around the game engine in question is&nbsp;<a href=\"http:\/\/twinery.org\/\">Twine<\/a>, an easy-to-use and highly accessible tool for creating hypertext stories.<\/p>\n<p>Each of the myths has the character of being an infinite punishment scenario, the most famous probably being Sisyphus, doomed to push a boulder up a hill only to see it roll back down over and over again. Twine has its own character as a game\/story creation tool, in terms of everything from its default stylesheet, to its&nbsp;<a href=\"https:\/\/github.com\/pippinbarr\/lets-play-ancient-greek-punishment-the-twine\/blob\/master\/process\/process-journal.md#twine-affordances\">underlying coding language of \u201cmacros\u201d<\/a>, to the&nbsp;<a href=\"https:\/\/github.com\/pippinbarr\/lets-play-ancient-greek-punishment-the-twine\/blob\/master\/process\/process-journal.md#big-question-style-versus-substance\">typical ways the Twine community uses Twine\u2019s features<\/a>&nbsp;to create their stories. I\u2019m always interested in the intersection between design and the technology in use, so in the following, I want to look particularly at each specific myth and how it interacts with the capacities of Twine through my own design decisions.<\/p>\n<h2 id=\"sisyphuss-cyclical-situation\">Sisyphus\u2019s cyclical situation<\/h2>\n<p>I\u2019m not 100% sure why, but I view the \u201c<a href=\"https:\/\/twinery.org\/wiki\/harlowe:cycling-link\">cycling link<\/a>\u201d as the emblematic storytelling technique in Twine stories. It\u2019s often used in stories in a couple of ways, but perhaps most interestingly as a way to create agency for the reader in determining the actual description of a scene. By cycling through the possibilities of the link, they can set a particular descriptive passage the way they like it, perhaps making a vase contain peonies instead of roses, say.<\/p>\n<p>In planning to make these punishment games in Twine, it was immediately obvious to me that the&nbsp;<em>cycling<\/em>&nbsp;part of the cycling link would be a great affordance to leverage &#8211; after you\u2019ve seen all the possibilities of the link, it goes back to the first and continues on. As such, it\u2019s ideal for representing an endlessly repeating set of options, or in this case&nbsp;<em>actions<\/em>. So Sisyphus\u2019s pushing of the boulder is&nbsp;<a href=\"https:\/\/github.com\/pippinbarr\/lets-play-ancient-greek-punishment-the-twine\/blob\/master\/process\/process-journal.md#sisyphus-1\">encoded as a cycling link<\/a>&nbsp;&#8211; each advance of the link gets the boulder further up the hill, until the final option sends it rolling back to the bottom, leaving the player back where they started. The code looks like this:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"84\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts.png\" width=\"600\">The Twine code for the cycling link in Sisyphus<\/p>\n<p>Something that interests me here and elsewhere in the game is the physicality that you can interpret as part of the interaction here. Each click on the link (or touch on a mobile device) represents a literal&nbsp;<em>push<\/em>&nbsp;of the boulder in the story &#8211; the player exerts effort, however minimal, to advance the text and the boulder itself, the text&nbsp;<em>is<\/em>&nbsp;the boulder, the cycling link&nbsp;<em>is<\/em>&nbsp;Sisyphean.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"163\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-1.png\" width=\"600\">Almost at the top of the hill\u2026<\/p>\n<h2 id=\"the-apple-of-your-eyes-only\">The apple of your eyes only<\/h2>\n<p>Continuing with this idea of physicality, in Tantalus I went with the key action of \u201creaching\u201d as features in the story. Tantalus is perpetually reaching upward for a piece of fruit or downward for water, but it always thwarted when it moves away. It\u2019s another cycle in the sense of reaching, failing, reaching again, and so on, and so the graph of the story is tight loop of two alternating passages, depending on whether you\u2019ve reached for the apple or the water:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"448\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-2.png\" width=\"600\"><br \/> No escape from the Tantalus graph<\/p>\n<p>In representing this activity using Twine\u2019s affordance, I was taken particularly by the idea of mouseovers on links that would deactivate them, followed by their reactivation on mouse out. I spent a&nbsp;<a href=\"https:\/\/github.com\/pippinbarr\/lets-play-ancient-greek-punishment-the-twine\/blob\/master\/process\/process-journal.md#tantalus-1\">decent amount of time trying to get this work<\/a>, but the nature of the associated Twine code seemed to make it impossible to have this occur&nbsp;<a href=\"https:\/\/github.com\/pippinbarr\/lets-play-ancient-greek-punishment-the-twine\/blob\/master\/process\/process-journal.md#single-passage-versus-multi-passage\">within a single page<\/a>. Instead, I needed to create separate pages (\u201cpassages\u201d in Twine) that would be reached on mouse over, with the appropriate link inactive on that page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"77\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-3.png\" width=\"600\"><br \/> Before \u201creaching\u201d for the apple<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"82\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-4.png\" width=\"600\"><br \/> After \u201creaching\u201d for the apple<\/p>\n<p>Importantly, this code interaction of mouse-overs really simulates Tantalus\u2019s plight for the player. You&nbsp;<em>literally<\/em>&nbsp;reach (with the mouse pointer) for the \u201capple\u201d (link), only to have it become inaccessible (the link vanishes). I think this kind of correspondence between played experience and lived experience is particularly interesting, a kind of deeply low-fi approach to the more direct metaphors of alt-control approaches. In the end, I also realised that mobile devices don\u2019t have mouse-overs, so I implemented the same action on click\/touch, which still fits the physical metaphor well in the sense that a mobile user reaches (with their actual hand) for the link, grasps at it (by touching), and then sees it become inaccessible.<\/p>\n<p>This raises another weird element in videogames generally: the failed action. I\u2019m very intrigued by the emotional state that can be generated by trying and failing, especially in the context of videogames\u2019 general drive to provide consistent and constant agency for players.<\/p>\n<h2 id=\"the-role-of-the-promethean-reader\">The role of the Promethean reader<\/h2>\n<p>Speaking of failure, the Prometheus myth has always been my favourite in the Ancient Greek Punishment series of games specifically because of the enforced passivity of the player. In most versions I\u2019ve made the player can only&nbsp;<em>struggle<\/em>&nbsp;to stop the eagle pecking out their liver, but ultimately must succumb.<\/p>\n<p>In the case of the Twine rendition, I ended up dropping even the option to struggle because it felt as thought it would turn the experience into too much of a \u201csimulation\u201d (with states concerning where the eagle is, how much liver is left, etc.): this is something Twine&nbsp;<em>can<\/em>&nbsp;do, but I wouldn\u2019t call it a strength. Instead, I went with a favourite Twine affordance: timers. Although they\u2019re not used with great frequency (in the Twine\u2019s I\u2019ve frequented), switching pages\/passages based on time rather than player input is an interesting switch-up in terms of your experience of the text: pages don\u2019t usually turn themselves.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"1121\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-5.png\" width=\"600\"><br \/> Prometheus\u2019s passages are connected by time instead of links<\/p>\n<p>In the case of Prometheus, this works out well, since really Prometheus\u2019s experience is one of&nbsp;<em>waiting<\/em>. As such, in the Twine version, the reader is presented with a cyclical set of timed passages, one after the other, which describe the inevitability of their liver being pecked out by an eagle. It\u2019s a story that tells itself and the player is transformed into solely a&nbsp;<em>reader<\/em>. It\u2019s all cut-scene.<\/p>\n<h2 id=\"patterns-of-hypertext-bathwater\">Patterns of hypertext bathwater<\/h2>\n<p>The Danaids is the story of a person (well many people in the original myth) condemned to pour water into a leaking basin (or bath, or something), trying futilely to fill it. It\u2019s always been the most complex of the myths I\u2019ve tackled in this set of games because it involves multiple stages of action: filling a receptacle, moving to the basin, pouring the water, seeing the water leak, returning to the filling station, etc.<\/p>\n<p>In the context of Twine, though, this kind of thing is very straightforward and natural: it\u2019s a cycle of pages all linked together by the appropriate \u201cactions\u201d. It looks like this in Twine:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"468\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-6.png\" width=\"600\"><br \/> The Danaids\u2019 punishment as a cyclical graph<\/p>\n<p>In fact, this is a real classic of hypertext design write large, appearing as&nbsp;<a href=\"https:\/\/www.eastgate.com\/patterns\/Patterns3.html\">one of the key patterns<\/a>&nbsp;in the canonical article on the subject&nbsp;<a href=\"https:\/\/www.eastgate.com\/patterns\/Patterns.html\">Patterns of Hypertext<\/a>&nbsp;by Mark Bernstein. Unsurprisingly, this was the very first structural affordance of Twine I thought of when I started to tackle this game and I even \u201csaved it\u201d to be applied to whichever of the myths seemed most resistant to other techniques (one of my goals was to avoid exact repetition of any one Twine tool).<\/p>\n<p>One unfortunate side effect of using what feels like such a \u201cliterary\u201d hypertext approach is that I think it really does lose any real sense of physicality and is much more in the vein of \u201cselect an action\/path and see the result\u201d, a more typical\/conventional experience. It\u2019s an ironic truth, I think, that&nbsp;<a href=\"https:\/\/github.com\/pippinbarr\/lets-play-ancient-greek-punishment-the-twine\/blob\/master\/process\/process-journal.md#blues-reversion-friday-28-june-2019-951am\">a link that describes an action ends up being nothing like performing that action<\/a>. It becomes entirely the role of the reader to imagine it.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"187\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-7.png\" width=\"600\"><br \/> Fetching water in Danaids<\/p>\n<h2 id=\"additive-infinity-and-immobility\">Additive infinity and immobility<\/h2>\n<p>The final punishment myth is that of Zeno, not technically a \u201creal myth\u201d per se, but it should be. In this one, Zeno is doomed to run toward a flag he can never reach because of his (highly comical) physics puzzle that motion is impossible because you have to repeatedly get half-way to your destination. This isn\u2019t technically a&nbsp;<em>cycle<\/em>in that Zeno always makes progress, just increasingly smaller progress, and so the challenge is finding a way to represent that.<\/p>\n<p>In the past I\u2019ve used things like listing the explicit distance to go (while accounting for floating point number overflows!) and even mathematical formulae using sums approaching infinity. Given a hypertext is focused on, well, a text, I didn\u2019t want to abbreviate the infinite race, so I went with another classic ability of Twine, which is text expansion\/replacement:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"123\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-8.png\" width=\"600\"><br \/> Twine code for the Zeno passage<\/p>\n<p>It\u2019s kind of ugly to look at under the hood, but the outcome is an \u201cadditive infinity\u201d where each click of the mouse (not unlike a step taken) adds another \u201chalf-way\u201d to the text describing Zeno\u2019s progress toward the flag:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" alt height=\"111\" src=\"https:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/08\/blog-ancient-greek-punishments-as-hypertexts-9.png\" width=\"600\"><br \/> Twine code for the Zeno passage<\/p>\n<p>This is satisfyingly \u201cliterary\u201d, but I have to admit that I\u2019ve abdicated my responsibilities as far as its infinity is concerned. I\u2019m not sure how many \u201chalf-way\u201ds it would take to eventually overrun the browser\u2019s or JavaScript\u2019s ability to display it, but there\u2019s presumably some kind of limit.<\/p>\n<p>Eventually infinity comes up against reality.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The following blog post, unless otherwise noted, was written by a member of Gamasutra\u0092s community.The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company. (Note: throughout this text, I\u2019ll be linking to&nbsp;process materials&nbsp;generated as part of the project in its&nbsp;code repository. This approach to process documentation is part [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":98441,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-98440","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"_links":{"self":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/98440","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/comments?post=98440"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/98440\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media\/98441"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=98440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=98440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=98440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}