{"author_name":"mtthwcmpbll","cat":"LD #21","comments":[],"epoch":1314410520,"likes":1,"metadata":{"p_key":"63600","p_author":"mtthwcmpbll","p_authorkey":"3178","p_urlkey":"99385","p_title":"Huescape Postmortem","p_cat":"LD #21","p_event":"LD21","p_time":"1314410520","p_likes":"1","p_comments":"0","p_status":"UPD5","us_key":"3178","us_name":"mtthwcmpbll","us_username":"mtthwcmpbll","event_start":"1313712000","event_key":"7","event_name":"LD21"},"text":"<div>This was my first ludum dare that <a href=\"http:\/\/www.ludumdare.com\/compo\/ludum-dare-21\/?action=preview&amp;uid=3178\">I came out with an entry on the far side of it all<\/a>, and I\u2019m still buzzing about that <img src=\"http:\/\/ludumdare.com\/compo\/wp-includes\/images\/smilies\/simple-smile.png\" alt=\":)\" class=\"wp-smiley\" style=\"height: 1em; max-height: 1em;\" \/> \u00a0I wanted to go over the details of the concept and execution.<\/div>\n <div><strong>The Concept<\/strong><\/div>\n <div>\n <p>I\u2019ve had the \u201cchange color to go through walls\u201d idea for a bit, so I thought this would be a good chance to put together a prototype and see how it worked. \u00a0The general idea is that you\u2019ve woken up inside an alien artifact filled with color-based challenges, with said alien narrating your progress (or lack thereof) like it was studying a rat in a maze. \u00a0I wanted it to seem like it was examining humanity through the concept of color, so it would try and \u201cfigure out\u201d purple, or put together challenges with regards to mood and atmosphere that a color invokes. \u00a0Red lasers, big blue crystalline structures, smooth white alien surfaces.<\/p>\n <p>I didn\u2019t really have a chance to flesh out this narrative much except for the opening text (which in all fairness could be taken as anything really). \u00a0The final scene, when you finally exit into blackness at the end of the ordeal, I wanted sparks to fly out in the character\u2019s various colors only to fade to small white stars. \u00a0The view would slow spin until you\u2019d see yourself floating away from a massive, smooth alien cube with a little pin-prick door where you came out. \u00a0Maybe other doors on the surface would hint that there were other mazes, other experiments going on. \u00a0I wanted to evoke an ambiguous escape, like you escaped only to&#8230;what? \u00a0Float out into the abyss of space?<\/p>\n <p>Anyways, without further ado&#8230;<\/p>\n <p><strong>The Good<\/strong><\/p>\n <p><em>1. Unity<\/em><br \/>\n I had some second thoughts about going with Unity again this time around for a couple of reasons. \u00a0In the last couple of competitions, I\u2019ve gotten lost in the details and not come out with anything. \u00a0It doesn\u2019t have any built-in support for 2D sprite animation and the nice libraries for handling that are commercial so I can\u2019t submit the source required to enter the competition. \u00a0Finally, I can\u2019t produce 3D assets quickly enough to make it feasible in the time limit of the competition.<\/p>\n <p>I had decided that I\u2019d probably just be jamming on an existing Unity project unrelated to the theme anyway though, so when the theme clicked with my idea and I decided to switch gears I decided to stay in the Unity groove despite my hesitation. \u00a0This actually worked out great this time around because it gave me a huge leg up building the environments. \u00a0Which leads me to:<\/p>\n <p><em>2. Hand-Crafted Levels<\/em><br \/>\n I love procedurally generated content. \u00a0I love playing games like that, and the siren\u2019s lure of cheap, infinite content is oh so attractive when time is so scarce. \u00a0Unfortunately, most times I run into <a href=\"http:\/\/roguelikedeveloper.blogspot.com\/2009\/05\/doulls-law.html\">Doull\u2019s Law<\/a> and before you know it all my time is gone and I\u2019ve been staring at my algorithm trying to get just the right random levels. \u00a0This time around, with the core mechanic being a puzzle platformer, I broke out my sketchbook before I did anything else and I scribbled out eight or ten \u201crooms\u201d that I could string together. \u00a0That done, I took the first and simplest room and went to work putting it together in Blender. \u00a0Unfortunately, I had a lot of trouble getting the results I wanted out of Blender (due to my own inexperience, not for lack of capability from the tool) and I was starting to second guess by decision to stick with Unity and the third dimension.<\/p>\n <p>Then I had an idea &#8211; Unity 3 introduced a great little feature that when you hold down the \u2018V\u2019 key while moving an object, you\u2019ll grab the actual mesh vertex under your mouse and it will snap to the closest vertex while you drag it around. \u00a0My environments were already super simple, so I dumbed them down even further to be constructed of nothing but transformed cubes. \u00a0Cubes for walls, cubes for floors, cubes for stairs &#8211; everything. \u00a0Unity has a default Cube prefab that you can drop into your scene, and this combined with the vertex snapping let me put together a primitive room like building with Legos, much faster than I could fighting with Blender.<\/p>\n <p><em>3. Priorities<\/em><br \/>\n This time around, I made much better decisions about how to prioritize my time to tackle my game idea. \u00a0In the past, I\u2019ve been bogged down with anything from reorganizing my code to trying to get the perfect particle effect (god I hate Unity\u2019s particle system, but that\u2019s a different topic). \u00a0This time around, I had my sketches first so I knew exactly where I was going. \u00a0I knew how the first room was set up, and it was simple to help introduce the player to the core gameplay mechanic of changing colors to change surface solidity. \u00a0This gave me an early goal to shoot for &#8211; get the entire game running in the first room. \u00a0Get the room put together, get the player controllable, and wire up the color changing controls to the logic that changes the environment accordingly. \u00a0I didn\u2019t start work until Saturday around lunchtime and I had a fully functional system in place by the time I want to bed. \u00a0I rounded out some issues when I start up again on Sunday but then all I had to do was start implementing puzzle rooms. \u00a0I could work for as long as I wanted to and when it was time to be done I\u2019d just tie off the environment and we\u2019d be set to go.<\/p>\n <p>Of course that\u2019s not really the case most of the time. \u00a0In the end, I finished the rooms I planned on for my entry (four distinct areas) with a \u201cwin\u201d state. \u00a0Towards the end I realized I wouldn\u2019t have any time to work on it during the last day of the Jam so I decided to round out the experience by adding the necessary death\/respawning and call it finished. \u00a0I don\u2019t even know where to go with sound so there\u2019s nothing in it (not even some nice sfxr effects). \u00a0Now that I\u2019ve got \u201cfinished my gameplay\u201d entry under my belt, I think I\u2019ll need to get some practice doing rapid sound engineering so I\u2019m ready next time. \u00a0The key though is that taking a bite-sized chunk of my game and getting everything working in it gave me a good sense of what worked and what didn\u2019t, and it gave me the warm fuzzy of seeing it all in action that probably carried my through the rest of the weekend.<\/p>\n <p><strong>The Bad<\/strong><\/p>\n <p><em>1. Primitive Environments<\/em><br \/>\n This is the double-edged sword of using Unity\u2019s cubes as my only building block. \u00a0All right-angles and flat surfaces, it\u2019s close the the alien environment I was looking for but it\u2019s a little too angular and there\u2019s not a lot to indicate the way forward and draw the player in that direction. \u00a0There are plenty of spots crafted from a bunch of cubes that really should be a single piece of geometry (like the stairs in room two). \u00a0This is okay for the white always-solid portions of the room, but it causes weird artifacts where semi-transparent colored regions overlap. \u00a0If I was more comfortable with Blender, these object would be made there and I\u2019d be able to add a little more variety and at the same time have more complicated geometry as a single mesh.<\/p>\n <p>The other side of the primitive environment is the lighting. \u00a0I don\u2019t really have a strong grasp of lighting a scene well and this, combined with all the boring lines of the cubes, made the rooms look really flat and dull. \u00a0I originally pictured the environment stark and harsh and geometric with lots of ambient occlusion (leveraging Unity\u2019s lightmapping) to give it more of the look of <a href=\"http:\/\/kotaku.com\/5828705\/two-hours-with-jonathan-blows-the-witness-an-abbreviated-wonder\">The Witness<\/a> or <a href=\"http:\/\/www.youtube.com\/watch?v=Bz8aG7od_5E\">Mirror\u2019s Edge\u2019s time trial DLC<\/a>. \u00a0Unfortunately, with the poor lighting and the lack of interesting detail, it didn\u2019t look anything like that. \u00a0At the last minute, I added the grainy noise filter and the \u201cyour suit is broken\u201d conceit to cover it all up.<\/p>\n <p><em>2. Controls<\/em><br \/>\n This one comes in two flavors: \u00a0movement speed and color switching. \u00a0Several of the commentors complain that the controls are off and that movement is too slow. \u00a0I agree, and I played some with the settings for the FPS character controller script I used from Unity\u2019s standard assets. \u00a0Moving any faster made things feel too slippery for a game where I\u2019m asking people to jump onto floating platforms. \u00a0In reality, I think maybe the starting rooms were just too big. \u00a0Unfortunately, building them all out of cubes as described above makes it really hard to shorten a room. \u00a0My guess is that would have been easier to do in Blender, and I could have tweaked the size of the various rooms to give it a little more flow and make the player feel faster without actually speeding him up.<\/p>\n <p>On the other hand, color switching was a big question mark in my mental model for the game. \u00a0I had the idea of changing colors to move through obstacles, but I had no idea how to actually let the player do so. \u00a0In the end, I sort of punted and used classic FPS weapon selection with the number keys. \u00a0More than one person had trouble with this configuration though, and it\u2019s made worse by the fact that the puzzles I had in mind asked the user to switch colors on the fly (in mid-air in the case of the final room). \u00a0Switching had to be easy enough to do it quickly and accurately, but also required instant access to all possible colors at once to allow any color-to-color transition. \u00a0I briefly looked into a linear linked list where the player could only transition from cyan to magenta to yellow and so on to loop around to the beginning. \u00a0This didn\u2019t work since reflex-based puzzles were completely out of the question when there was n possible colors in between you and the one you wanted.<\/p>\n <p><em>3. Too Many Colors vs. Not Enough<\/em><br \/>\n This brings us the the color selection. \u00a0The final jam entry only has three (plus the \u201call off\u201d white color). \u00a0I originally included red, green, and blue as well, but I didn\u2019t have a chance to build out more environments to use those colors so I pulled them out (this is a sideways compliment about Unity as well, as my color-switching component can have new colors added and removed right in the inspector without any other code and the UI and the world respond accordingly). \u00a0I\u2019d like to include more colors since the environment\u2019s palette is essentially bounded to this list. \u00a0Too short a list and you\u2019re environment is boring. \u00a0Too long, though, and you exacerbate the control problems with color switching, as well as making colors less and less unique. \u00a0I think the three worked for now, but my guess is I\u2019d feel pretty constrained in the art department if I could only use those four colors. \u00a0Who knows, though &#8211; I\u2019ve seen some games make great use of a limited color palette.<\/p>\n <p><em>4. User Feedback<\/em><br \/>\n I mentioned I hate the Unity particle system, right? \u00a0Yeah&#8230;it\u2019s a time-sucking black hole of configuration options that never seem to give me the affects I\u2019m going for in my head. \u00a0Conceptually, I wanted to send heavy sparks radiating out from the player in the color the user changed to, but I could find a good looking way to get the glowing trails that you\u2019d expect form actual sparks. \u00a0It\u2019s made worse by the fact that they emanate so close to the camera so you get these big, ugly blurry blobs for particles. \u00a0I got distracted with the sparks though (as I\u2019m prone to do with the damn thing) and never got around to adding other feedback so there\u2019s not a lot of action cues other than the UI to tell the user what color they are. \u00a0I\u2019d like to change the lighting of the level to whichever color the player is, but I\u2019d have to experiment with how that changes the player\u2019s ability to know what color other surfaces are. \u00a0In the end, there\u2019s just not a lot of feedback from your actions in the game, so everything feels a little static.<\/p>\n <p><em>5. The Final Puzzle<\/em><br \/>\n The last puzzle as put down in my sketchbook was completely unworkable and I didn\u2019t realize it until I got to implementing and testing it Sunday evening. \u00a0The original plan didn\u2019t have the walls in between the platforms, with the intention of only forcing the player to switch to the next platform\u2019s color mid-air. \u00a0The problem, though, was obvious once I\u2019d died once &#8211; I\u2019d given the player the ability to switch to the color white, which in effect makes everything solid. \u00a0Dying automatically resets the player\u2019s color to white and I was faced with a broken finale where the entire path to freedom was solid before me. \u00a0I needed to salvage the room as best I could though rather than coming up with a whole new puzzle &#8211; the time it took to put together a room from start to finish was more time than I had at that point. \u00a0The walls were a way to force the player to change their color into a non-white option, bringing us back to the original intent of the puzzle. \u00a0It\u2019s a little more complicated since it\u2019s not exactly obvious that the platform on the other side of a transparent wall is itself transparent until you get over there (and fall through) the first time. \u00a0In the end, though, I\u2019m glad it worked out and the solution is learnable so I don\u2019t feel it\u2019s necessarily outside the bounds of fairness. \u00a0Maybe not the final design I\u2019d go with, but it worked for the weekend.<\/p>\n <p><strong>The Future<\/strong><\/p>\n <p>I think the core mechanic has some legs on it, and I think that the mental picture I have of the atmosphere and narrative might make for an interesting place to play for a while. \u00a0The biggest hurdle really is the controls but it might be fun to build out a more fully-fleshed proof of concept and try out some different control schemes.<\/p>\n <p>Also, I\u2019m not sure how you make a game that\u2019s so purely about color accessible with regards to color blindness and other related issues. \u00a0A yellow wall doesn\u2019t have any form to alter, no texture or other cues besides its color. \u00a0I\u2019d have to do some research to see if other games have solves similar problems and if there\u2019s a way of handling it gracefully without breaking the art direction I\u2019m aiming for.<\/p>\n <p>Finally, some other random concepts to add some variety to the game, in no particular order:<\/p>\n <p><em>1. More Hazards<\/em><br \/>\n Spikes, Lazers, different substances. \u00a0All or most of these can be specific colors so that the player can nullify their effects with a strategic color change. \u00a0Combining these with navigation might make for some fun (or frustrating) combinations.<\/p>\n <p><em>2. Slopes<\/em><br \/>\n There needs to be more variety in the environmental architecture for sure, but I always loved the sliding sequences in Mirrors Edge where you\u2019re coming down off the side of a skyscraper. \u00a0I love that sense of barely-controlled momentum, and I thought I could use something similar to introduce a timing aspect to some puzzles.<\/p>\n <p><em>3. Paint Gun<\/em><br \/>\n All that geometry makes for a clean, alien environment, but that can be a little boring sometimes. \u00a0I thought it\u2019d be a fun idea to have a gun that you could hose down surfaces with that would splatter paint all over it so you could essentially walk through the splatter as door using that color. \u00a0I thought the organic look of the paint splatters and the ragged \u201choles\u201d they would make would be an interesting contrast to the environment as a whole, but the technical implications put it out of reach for the competition. \u00a0Maybe something fun to play with later though.<\/p>\n <p>&nbsp;<\/p>\n <p>Thanks for playing folks! \u00a0I had a blast working on it with all of you.<\/p>\n <\/div>\n \n <p>Tags: <a href=\"http:\/\/ludumdare.com\/compo\/tag\/post-mortem\/\" rel=\"tag\">post-mortem<\/a>, <a href=\"http:\/\/ludumdare.com\/compo\/tag\/postmortem\/\" rel=\"tag\">postmortem<\/a><\/p>","time":"August 26th, 2011 9:02 pm","title":"Huescape Postmortem"}