{"id":92285,"date":"2019-04-19T19:53:00","date_gmt":"2019-04-19T19:53:00","guid":{"rendered":"http:\/\/www.gamasutra.com\/view\/news\/341137"},"modified":"2019-04-19T19:53:00","modified_gmt":"2019-04-19T19:53:00","slug":"dont-miss-making-debugging-into-a-mechanic-in-beglitched","status":"publish","type":"post","link":"https:\/\/sickgaming.net\/blog\/2019\/04\/19\/dont-miss-making-debugging-into-a-mechanic-in-beglitched\/","title":{"rendered":"Don&#8217;t Miss: Making debugging into a mechanic in Beglitched"},"content":{"rendered":"<p><em><strong>Game Design Deep Dive is an&nbsp;<a href=\"http:\/\/gamasutra.com\/deepdives\">ongoing Gamasutra series<\/a>&nbsp;with the goal of shedding light on specific design features or mechanics within a video game, in order to show how seemingly simple, fundamental design decisions aren&#8217;t really that simple at all.<\/strong><\/em><\/p>\n<p><strong><em>Check out&nbsp;<a href=\"http:\/\/gamasutra.com\/deepdives\">earlier installments<\/a>, including&nbsp;the&nbsp;<a href=\"http:\/\/www.gamasutra.com\/view\/news\/257884\/Game_Design_Deep_Dive_Undertales_actionbased_RPG_battles.php\">action-based RPG battles<\/a>&nbsp;in&nbsp;<\/em>Undertale<em>,&nbsp;<a href=\"http:\/\/www.gamasutra.com\/view\/news\/282595\/Audio_Design_Deep_Dive_Using_a_human_skull_to_create_the_sounds_of_Inside.php\">using a real human skull<\/a>&nbsp;for the audio of<\/em>&nbsp;Inside,<em>&nbsp;and the&nbsp;<a href=\"http:\/\/www.gamasutra.com\/view\/news\/281582\/Game_Design_Deep_Dive_Realistic_chat_in_Mr_Robot151exfiltrati0n.php\">realistic chat system<\/a>&nbsp;of&nbsp;<\/em>Mr. Robot:1.51exfiltrati0n.<\/strong><\/p>\n<p>Hi, I\u2019m AP Thomson and I worked as the lead designer and programmer on <a href=\"http:\/\/beglitched.net\/\"><em>Beglitched<\/em> <\/a>alongside my collaborator Jenny Jiao Hsia. In addition to design and programming, I also wrote the dialogue\/text and composed the music for <em>Beglitched<\/em>.&nbsp;<\/p>\n<p>My background is primarily in Computer Science and, despite that, I still like computers and programming a lot. Other games I\u2019ve worked on include the 2015 IGF nominee <a href=\"https:\/\/itunes.apple.com\/gb\/app\/stellar-smooch\/id931063942?mt=8\"><em>Stellar Smooch<\/em><\/a> (another collaboration with Jenny Jiao Hsia), <a href=\"https:\/\/itunes.apple.com\/us\/app\/stair-slide-blocks-to-ascend\/id930230855?mt=8\"><em>Stair: Slide the Blocks to Ascend<\/em><\/a> (a collaboration with QWOP creator Bennett Foddy), and most recently <em><a href=\"https:\/\/xoxofest.com\/2016\/projects\/multibowl\">Multibowl<\/a> <\/em>(also a collaboration with Bennett Foddy).&nbsp;<\/p>\n<p>As a designer and programmer, I\u2019m most interested in games that take advantage of the unique properties of computers, so my designs tend to emphasize single-player experiences with healthy doses of hidden information and procedural generation. These design preferences should be fairly visible throughout <em>Beglitched<\/em>.&nbsp;<\/p>\n<p><em>Beglitched <\/em>is a game about interacting with an unfamiliar computer that once belonged to a legendary hacker. While the surface of the game seems very bright and friendly, it isn\u2019t long before the player is required to fend off rival hackers in one-on-one computer combat.&nbsp;<\/p>\n<p>These hacker battles take place on a \u201cBattle Grid\u201d that strongly resembles a traditional match-3 game such as <em>Bejeweled <\/em>or <em>Candy Crush Saga<\/em>. Unlike a traditional match-3, however, an enemy hacker is hiding somewhere on the grid and the player must use the tiles on the grid to first discover the location of the enemy hacker and then disconnect them from the network.<\/p>\n<p>As the game continues these battles become more complex. Enemies that initially remained stationary begin moving around the grid, new tiles are introduced that perform special functions, and enemies start imposing additional rules of engagement (such as blocking certain tiles from spawning in your grid).&nbsp;<\/p>\n<p>Ultimately, the player has to approach the battles not as simple match-3 puzzles, but as tactical duels that require an understanding of the bizarre systems at play in the game.<\/p>\n<p><img decoding=\"async\" alt src=\"http:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/04\/dont-miss-making-debugging-into-a-mechanic-in-beglitched.jpg\"><em>The battle grid in&nbsp;<\/em>Beglitched<\/p>\n<p>The seed of inspiration for <em>Beglitched\u2019s <\/em>battle grid mechanic came from a desire to make the act of debugging a computer program fun and accessible. While debugging is traditionally considered to be one of the more odious aspects of programming, I felt that under the right circumstances (i.e. a good understanding of the system and appropriate tools to probe it for information), it could actually be exhilarating and very satisfying. The process I enjoyed involved carefully gathering information from a faulty system to narrow down and ultimately isolate the source of the problem. This process makes me feel like a master detective and it is an experience I wanted to share with everyone.<\/p>\n<p>One of the constraints I placed on this idea early on was that I couldn\u2019t just hand-design a bunch of deduction puzzles. To properly simulate debugging, I needed to make an internally consistent system so that the player could feel like their knowledge could be used to solve any problem within the system, not just problems that were artificially designed. This constraint meant that all of my prototypes along this idea would involve procedural generation at some level.<\/p>\n<p>My first attempt (a couple years before <em>Beglitched<\/em>) to prototype this idea was to take the sleuth metaphor seriously and create a procedurally generated detective game. This text-only prototype would procedurally generate a city and a population of citizens who each had a procedurally generated schedule. Then, the system would generate a \u201ccrime\u201d where one of the citizens would deviate from their schedule and commit a crime. The player was then tasked with interviewing potential witnesses (who would all possess information based on whether their schedules actually placed them at the scene of the crime) to determine which of the citizens was the perpetrator.&nbsp;<\/p>\n<p><img decoding=\"async\" alt src=\"http:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/04\/dont-miss-making-debugging-into-a-mechanic-in-beglitched-1.jpg\"><em>Thompson&#8217;s detective prototype.<\/em><\/p>\n<p>In theory, this prototype succeeded in simulating the process of debugging, but in practice it was actually more tedious and inaccessible than debugging an actual computer program as the player needed to record and cross-reference massive amounts of information, most of it erroneous. With this prototype unsuccessful, I tabled the idea for a couple years.&nbsp;<\/p>\n<p>The next time I returned to the debugging idea was for the 29th Ludum Dare competition. The theme of the competition was \u201cBeneath the Surface\u201d. Intent on avoiding surface-level interpretations (pun totally intended) of the theme, I thought of the \u201cDeepweb\u201d, a section of the Internet invisible to search engines that is sometimes associated with criminal activity. The idea of pursuing criminals across a computer network immediately re-kindled my debugging-as-mechanic aspirations, but this time I resolved to make accessibility a priority. My strategy was to strongly limit the density of the information available to the player. Where my text-based detective game included reams of information about schedules, relationships, propensity of certain NPCs to lie, etc. my new prototype (called <em>Deepweb<\/em>) presented information as a single number\u2014the distance between the player and the hidden enemy. This idea of low-density information is present in many popular deduction games\u2014including <em>Minesweeper <\/em>and the non-digital <em>Scotland Yard<\/em>\u2014and worked well for <em>Deepweb<\/em>.<\/p>\n<p><img decoding=\"async\" alt src=\"http:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/04\/dont-miss-making-debugging-into-a-mechanic-in-beglitched-2.jpg\"><em>The original version of&nbsp;<\/em>Deepweb.<\/p>\n<p>Satisfied with the 48-hour prototype for <em>Deepweb<\/em>, I spent the next couple months attempting to expand it<em>&nbsp;<\/em>into something much larger. While many of the ideas I attempted during this period ultimately found their way into <em>Beglitched <\/em>in some form, I was running into a wall with the core of the game. No matter what variations I placed on the basic idea of navigating a network to gather clues about a hidden enemy, the limitations on what the player could do (or more specifically, the environment the player was moving through), led to fairly narrow and constrained play that soon became repetitive. Feeling discouraged by these failures, I decided to table <em>Deepweb <\/em>for a while and work on some fresh prototypes. &nbsp;<\/p>\n<p>In parallel to designing <em>Deepweb<\/em>, I had also prototyped several match-3 style games. These prototypes were intended to be bizarre subversions of the match-3 formula. One involved using at match-3 grid to spawn balloons on a bird that floated upward and needed to avoid obstacles. Another involved using a twin-stick gamepad to control two physical arms of a bear that played a match-3 game to spawn honeycombs and bees that would then interact with the bear arms. The basic premise behind these games was that performing actions in the match-3 grid would have an effect on the game world external to the grid.&nbsp;<\/p>\n<p><img decoding=\"async\" alt src=\"http:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/04\/dont-miss-making-debugging-into-a-mechanic-in-beglitched-3.jpg\"><em>Thompson&#8217;s bird-balloon match 3.<\/em><\/p>\n<p><img decoding=\"async\" alt src=\"http:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/04\/dont-miss-making-debugging-into-a-mechanic-in-beglitched-4.jpg\"><em>And his bear-arm prototype.<\/em><\/p>\n<p>With the ideas of <em>Deepweb <\/em>and these match-3 prototypes floating around in my head at the same time, it was inevitable that I would attempt to put two and two together. After struggling with <em>Deepweb <\/em>for several months, I decided to try to make a match-3 prototype that was also a deduction game with low-density information. The basic ideas of <em>Deepweb <\/em>were still present\u2014an enemy was hidden somewhere on the grid, you as the player needed to find and eliminate them\u2014but the addition of a match-3 grid allowed the player a lot more flexibility in terms of strategy and also allowed for greater variety of situations that could occur. For instance, while an enemy in <em>Deepweb <\/em>was guaranteed to be hiding in a computer, an enemy in this new prototype could potentially be hiding under a variety of tiles that also served as resources. The match-3 grid also had the advantage of self-balancing the resources (clues, energy, etc.) on the grid since having too many of one tile would often result in that tile matching and disappearing.&nbsp;<\/p>\n<p>Now it may seem like this is the point in which the <em>Beglitched <\/em>battle grid design would emerge from these ideas fully formed, but in truth my first match-3-combined-with-deduction prototypes where effectively unplayable. Unlike my struggles with <em>Deepweb<\/em>, however, I could sense that there was a worthwhile design contained somewhere in this mess and I spent the next few weeks iterating constantly on this idea. It was during this iteration period that core aspects of <em>Beglitched <\/em>such as \u201ccycles\u201d, \u201cenergy\u201d, upgradeable bombs, and explosive chain reactions finally emerged.<\/p>\n<p><img decoding=\"async\" alt src=\"http:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/04\/dont-miss-making-debugging-into-a-mechanic-in-beglitched-5.jpg\"><em>An early prototype of&nbsp;<\/em>Beglitched.<\/p>\n<p>Once the battle grid existed in a form I was satisfied with, I needed to come up with a way to connect and contextualize battles in the larger world of the game. That proved to be pretty darn easy since I already had a prototype that involved navigating a computerized space and avoiding (or seeking out) enemies. Originally intended to be the core of the game, <em>Deepweb <\/em>could now more effectively serve as the \u201coverland\u201d that connected and provided context to the battles. Since much of the deduction mechanics now existed in the battle grid, I could remove most of the constraints that were holding <em>Deepweb <\/em>hostage. For instance, I no longer had to hide the enemies on the <em>Deepweb<\/em>, which meant that computer nodes on the network could provide information other than enemy proximity, which ultimately meant I could place many more enemies on the network than I had before. With a revamped <em>Deepweb <\/em>serving as the bridge between battles on the battle grid, <em>Beglitched <\/em>as it exists today finally began to take shape.&nbsp;<\/p>\n<p><img decoding=\"async\" alt src=\"http:\/\/www.sickgaming.net\/blog\/wp-content\/uploads\/2019\/04\/dont-miss-making-debugging-into-a-mechanic-in-beglitched-6.jpg\">Beglitched&#8217;s&nbsp;<em>overland, inspired by&nbsp;<\/em>Deepweb.<\/p>\n<p>I\u2019m ultimately pleased with the battle grid portion of <em>Beglitched<\/em>. While it maybe doesn\u2019t perfectly simulate the exhilaration of debugging that served as its initial inspiration, it works well as a battle system for a computer world that is familiar and alien, inviting and hostile, cute but with <strong>fangs<\/strong>.&nbsp;<\/p>\n<p>It\u2019s also given me a lot of experience with building match-3 systems and provided me with a wealth of inspiration for games that I\u2019m both currently working on and plan to work on in the future.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Game Design Deep Dive is an&nbsp;ongoing Gamasutra series&nbsp;with the goal of shedding light on specific design features or mechanics within a video game, in order to show how seemingly simple, fundamental design decisions aren&#8217;t really that simple at all. Check out&nbsp;earlier installments, including&nbsp;the&nbsp;action-based RPG battles&nbsp;in&nbsp;Undertale,&nbsp;using a real human skull&nbsp;for the audio of&nbsp;Inside,&nbsp;and the&nbsp;realistic chat system&nbsp;of&nbsp;Mr. [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":92286,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[],"class_list":["post-92285","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\/92285","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=92285"}],"version-history":[{"count":0,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/posts\/92285\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media\/92286"}],"wp:attachment":[{"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/media?parent=92285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/categories?post=92285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sickgaming.net\/blog\/wp-json\/wp\/v2\/tags?post=92285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}