News - Blog: Translating a game from Unity to Bitsy - Printable Version +- Sick Gaming (https://www.sickgaming.net) +-- Forum: Sick Gaming Community (https://www.sickgaming.net/forum-1.html) +--- Forum: Lounge (https://www.sickgaming.net/forum-8.html) +--- Thread: News - Blog: Translating a game from Unity to Bitsy (/thread-84985.html) |
News - Blog: Translating a game from Unity to Bitsy - xSicKxBot - 05-29-2018 Blog: Translating a game from Unity to Bitsy <div style="margin: 5px 5% 10px 5%;"><img src="http://www.sickgaming.net/blog/wp-content/uploads/2018/05/blog-translating-a-game-from-unity-to-bitsy.png" width="512" height="512" title="" alt="" /></div><div><p><strong><em><small>The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.<br />The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.</small></em></strong></p> <hr/> <p><a href="https://pippinbarr.github.io/b-r-1/"><em>b r 1</em></a> is an attempt to translate a game from one game engine/environment into another. In this case, it is a translation of my own game <a href="http://www.pippinbarr.com/2016/05/19/v-r-1/"><em>v r 1</em></a> from <a href="https://unity3d.com/">Unity</a> into <a href="https://ledoux.itch.io/bitsy">Bitsy</a>.</p> <p><img alt="" src="http://www.sickgaming.net/blog/wp-content/uploads/2018/05/blog-translating-a-game-from-unity-to-bitsy.png"/></p> <p>Translations of one form or another are a generative approach to game design and development for me, <a href="https://github.com/pippinbarr/b-r-1/wiki/Blog-Posts#2018-05-07----new-project-v-r-4">something I’ve written about before</a>. Translating between engines specifically feels like an opportunity to think about the underlying building blocks of videogames by employing the semi-scientific experimental idea of maintaining the <em>design</em> constant while treating the engine/environment as the controlled variable. <em>b r 1</em> helps me to ask and explore what the differences between Bitsy and Unity and to look at what Bitsy is like as an engine.</p> <p>To briefly recap the source material, <em>v r 1</em> was a game I made as an approach to reproducing/thinking-about the work of <a href="https://en.wikipedia.org/wiki/Gregor_Schneider">Gregor Schneider</a> in a virtual/digital space. Schneider’s masterpiece <a href="https://en.wikipedia.org/wiki/Gregor_Schneider#The_%22Haus_u_r%22">The Haus u r </a>is a house that he obsessively makes, demakes, and remakes. Within the house there is a room he calls <em>u r 1</em> which he has reproduced multiple times in different contexts, including in <a href="https://en.wikipedia.org/wiki/Gregor_Schneider#%22Totes_Haus_u_r%22_in_Venice">Totes haus u r</a> at the Venice Biennale. It is this room that I tried to recreate in <em>v r 1</em> and then to manipulate in different ways to explore hopefully related ideas about reproduction, craft, and space. In <em>v r 1</em> the player encounters a version of Schneider’s <em>u r 1</em> over and over again in different formats facilitated by the Unity game engine, whether it simply has the light turned off or whether it has been broken into its constituent pieces and left on the ground.</p> <p>For the remainder of this essay, I want to write about what I found out when I remade <em>v r 1</em> in Bitsy, focusing on what was revealed about Bitsy as a game engine as well as more general design and development ideas. My objective isn’t to go over these things exhaustively, but just to note what I find interesting. Much fuller documentation and obsessive thinking can be found in the project’s <a href="https://github.com/pippinbarr/b-r-1/commits/master">commit</a> <a href="https://github.com/pippinbarr/b-r-1/commits/master">history</a>and <a href="https://github.com/pippinbarr/b-r-1/wiki">process documentation wiki</a>.</p> <h2 id="vision-versus-concept">Vision versus concept</h2> <p>Bitsy is a 2D game engine, Unity is a 3D game engine. One of the most immediate decisions to make revolved around the basic question of how to represent the room in the Bitsy form. The initial decision was a bird’s-eye view, since this is the most formal way of translating, but it felt flat and uninteresting to look at (<a href="https://github.com/pippinbarr/b-r-1/commit/c37bd366c11b31d4931b1bf1efb792a122438a5a">c37bd36</a>). I went with a kind of false 2.5D approach, with inaccurate perspectival effects, in order to try to capture the <em>feeling</em> of <em>v r 1</em> (<a href="https://github.com/pippinbarr/b-r-1/commit/84047e7e11e22edac6e0d690816e6bb49110fec8">84047e7</a>). Even though it was less straightforward, it felt important to be able to evoke the Unity version of the game visually to maintain some connection between the very distinct engines. Further, having perspective was the only way to make the window and radiator in <em>v r 1</em>/<em>u r 1</em> visible in the Bitsy context: seen from the top, they are simply part of the wall. This kind of translation project creates specific tensions of this kind, a need to reconcile a new technology or design framework with pre-existing requirements. These tensions are valuable because they force us to ask both about the technology/framework at hand (the materials of production) <em>and</em> the source design/concept we are attempting to translate.</p> <p><img alt="" src="http://www.sickgaming.net/blog/wp-content/uploads/2018/05/blog-translating-a-game-from-unity-to-bitsy-1.png"/></p> <h2 id="what-is-that">“What is that?”</h2> <p>Bitsy uses a tile-based representation of the world. A single ‘room’ (or scene) is 16×16 tiles and each tiles is 8×8 pixels. This limitation, especially at the tile level, is hugely restrictive on what can be represented, or at least how that can be done. Given that the avatar in Bitsy is one tile in size, a scale is effectively set for the rest of the world, not dissimilar to Unity’s unit grid in relation to the avatar height in that system. The obvious outcome of this is the challenge of re-representing 3D objects and forms from <em>v r 1</em> in Bitsy’s low-resolution, and the risk that they will become unintelligible through that translation (<a href="https://github.com/pippinbarr/b-r-1/wiki/Design-Journal#thursday-10-may-2018-1357">Thursday, 10 May 2018, 13:57</a>). This situation is partially resolved through careful use of the restricted pixels, partially through creating some multi-tile objects where scale permits (such as the bed), and partially through the additional Bitsy affordance of dialog boxes. The dialog boxes allow for descriptive (or other) texts to be attached to specific objects in a scene, meaning that texts can further clarify the low-resolution image and creating a cooperation of text/image that can approximate the high resolution detail of Unity (See commit <a href="https://github.com/pippinbarr/b-r-1/commit/8066d3b7266f976c7e3ef12bfe6012c24aa451be">8066d3b</a> and <a href="https://github.com/pippinbarr/b-r-1/wiki/Design-Journal#saturday-19-may-2018-1444">Saturday, 19 May 2018, 14:44</a> and <a href="https://github.com/pippinbarr/b-r-1/wiki/Design-Journal#sunday-20-may-2018-1807">Sunday, 20 May 2018, 18:07</a>).</p> <p><img alt="" src="http://www.sickgaming.net/blog/wp-content/uploads/2018/05/blog-translating-a-game-from-unity-to-bitsy-2.png"/></p> <h2 id="i-am-not-a-camera">I am not a camera</h2> <p>A drastic change from <em>v r 1</em> to <em>b r 1</em> is the use of a third person ‘camera’. Where <em>v r</em> <em>1</em>used a first-person character controller, allowing the player to be ‘immersed’ in the world and adopt a (relatively) naturalistic view based on perspective, proximity, etc., Bitsy lends itself to a third-person view in which the entire scene is visible at all times and the avatar moves around it with tile-based movements. This leads to different understandings of ‘visibility’ in <em>b r 1</em>. In <em>v r 1</em>, for instance, if you stand outside the window and look into the room you can see the bed, tube, and trunk, but not the radiator because it is recessed beneath the window (<a href="https://github.com/pippinbarr/b-r-1/commit/757f18a60d7d8e285a51731d03121979a125eb0d">757f18a</a>). We end up with a “total information” view of the scene in which you can see into a room before you even enter it, a strange perceptual trick that is actually fairly common in many games, but raises the question “who am I?” This is complicated even further in a scenario such as the “door down” room, in which the character cannot enter the room, nor look through the window, yet can see everything inside it (<a href="https://github.com/pippinbarr/b-r-1/commit/8066d3b7266f976c7e3ef12bfe6012c24aa451be">8066d3b</a>). The fact that the ‘camera’ is situated high above the world being experience further complicates matters and ultimately necessitated odd decisions around how to represent walls and objects’ spatial relationship to those walls (<a href="https://github.com/pippinbarr/b-r-1/commit/dd47dd89c2d255ca6da3e9f32657dfcfad6b9478">dd47dd8</a>).</p> <p><img alt="" src="http://www.sickgaming.net/blog/wp-content/uploads/2018/05/blog-translating-a-game-from-unity-to-bitsy-3.png"/></p> <h2 id="me-and-gregor-schneider">Me and Gregor Schneider</h2> <p>At its heart, <em>v r 1</em> was about grappling with how to work with Unity in ways that might stay somewhat true to Gregor Schneider’s practice. Schneider’s work is very much focused on obsessive crafting and duplication of space, and so <em>v r 1</em> changed this idea to reconfiguration of space (as duplication is all too easy in digital spaces). As such, <em>b r 1</em> has to be situated in relation to Schneider’s work too. At many points in its development, I was pleased to find quirks of Bitsy that seemed “more authentic”, such as the fact sprites are unique in Bitsy, meaning I had to create, for instance, a <em>new</em> radiator every time I needed one for a new room, a very Schneider-esque activity (<a href="https://github.com/pippinbarr/b-r-1/commit/984beb95121b726e3e70b419252fb8cdb518996a">984beb9</a>). I became sufficiently interested in this idea that I even began to worry whether my underlying process was “honest” enough if I duplicated not the original radiator but a different copy (<a href="https://github.com/pippinbarr/b-r-1/commit/0e084ae588f2a234d1f80de0e834fa1af11417a2">0e084ae</a>). Ultimately, working in the new game environment felt like a continuation of the <em>v r 1</em> project to reimagine his process in this new digital context. “His work is about spatiality and the seen and unseen and spatial composition. … He struggles with imperfect materials to make things identical, perfect, I’m struggling with a perfect materials to make things legible, humanised, real.” (<a href="https://github.com/pippinbarr/b-r-1/wiki/Design-Journal#thursday-10-may-2018-1357">Thursday, 10 May 2018, 13:57</a>).</p> <p><img alt="" src="http://www.sickgaming.net/blog/wp-content/uploads/2018/05/blog-translating-a-game-from-unity-to-bitsy.png"/></p> <h2 id="a-frozen-world">A frozen world</h2> <p>Another major contrast between the Unity and Bitsy versions of this work is the presence of <em>physics</em> in Unity but not in Bitsy (beyond basic collisions that prevent movement through solid objects). This is relevant to the above meditation on Schneider’s work especially because of its highly <em>physical</em> nature. In <em>v r 1</em> I relied on the physics engine to create appropriate configurations of objects when the room was rotated in various ways, with the bed etc. falling realistically and settling. In Bitsy this kind of physics had to be simulated in drawings and dialogs in order to create facsimiles of the <em>v r 1</em> tableaux (<a href="https://github.com/pippinbarr/b-r-1/commit/ad168b3edfce1911952e601c35443451751f5795">ad168b3</a>). Another approach to this idea of physics was, in fact, to have the <em>player</em> act as the simulation, as with the scene in which the player falls through the floor, enacting their falling by moving the avatar downward on the screen (<a href="https://github.com/pippinbarr/b-r-1/commit/9c69163370cad301d527d5021a3bc659a1d51c12">9c69163</a>). In the end, I wonder whether the extremely <em>static</em> nature of the Bitsy world is actually more true to Schneider’s creations which, after all, you are only meant to view and never touch, and which tend to represent timeless, endless scenarios that repeat their minimalist scenes indefinitely.</p> <p><img alt="" src="http://www.sickgaming.net/blog/wp-content/uploads/2018/05/blog-translating-a-game-from-unity-to-bitsy-4.png"/></p> <h2 id="going-with-the-grain">Going with the grain</h2> <p>To end on a point of Schönian joyfulness about the conversation with materials, working with Bitsy did have these moments of feeling like I was in synch with the software. This was especially true when creating versions of the <em>v r 1</em> spaces could be reimagined in terms of the “Bitsy reality”. The ‘organised’ scene is an example of that (<a href="https://github.com/pippinbarr/b-r-1/commit/b56a96ce9d2dd8758d0d26eb15e1f88159d372bc">b56a96c</a>). In Unity the elements of the 3D models are arranges by height in a line, in Bitsy the corresponding scene is arranged in a grid, tile by tile in a way that’s visually pleasing and makes sense as a translation of that idea. Similarly the scene in which the room is collapsed into pieces on the ground as if it has fallen down in Bitsy is represented with the tiles that make up the room being jumbled but still taking up the same space on the screen (<a href="https://github.com/pippinbarr/b-r-1/commit/ad168b3edfce1911952e601c35443451751f5795">ad168b3</a>). This idea of “going with the grain” (<a href="https://github.com/pippinbarr/b-r-1/commit/4b7e96f8651b832a1b469d1b12979d0e8cdaaea5">4b7e96f</a>) was a recurring feeling with the work, from choosing to represent the title in a dialog box, to using the dialog system to describe what is seen through windows (<a href="https://github.com/pippinbarr/b-r-1/commit/19d7a75ddf5f3d6e4346b819cd8d4c36328ba813">19d7a75</a>), to selecting the order of rooms by hand since Bitsy is not predisposed to random generation (<a href="https://github.com/pippinbarr/b-r-1/commit/9c69163370cad301d527d5021a3bc659a1d51c12">9c69163</a>). Perhaps most emblematic of this process was toward the end of the project where I needed to replace a set of three scenes from <em>v r 1</em> that simply made no sense in Bitsy (generally these relied very specifically on having a real third dimension, such as one room leaning on the other. Needing three new rooms to feel fulfilled, I ended up turning to Bitsy-specific affordance to manipulate the space: a new colourful palette, animated tiles, and an ‘items’ based room in which you can pick up the objects (<a href="https://github.com/pippinbarr/b-r-1/wiki/Design-Journal#saturday-19-may-2018-1658">Saturday, 19 May 2018, 16:58</a>).</p> <p><img alt="" src="http://www.sickgaming.net/blog/wp-content/uploads/2018/05/blog-translating-a-game-from-unity-to-bitsy-5.png"/></p> <h2 id="the-end">The end</h2> <p>In the end, <em>b r 1</em> served both as an intriguing reengagement with <em>v r 1</em> and Schneider’s work, and a way of thinking closely about the representational and experiential properties of both Unity and Bitsy as creative tools. I have every intention of carrying this particular project forward with presumably <em>b r 2</em> and <em>b r</em> <em>3</em>and all the struggle and learning that will entail.</p> </div> |