<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><description>Web designer &amp; developer from Austin, Texas.</description><title>Steve Cochrane</title><generator>Tumblr (3.0; @stevecochrane)</generator><link>https://stevecochrane.tumblr.com/</link><item><title>A 2013 talk by Jan Willem Nijman of Vlambeer, where he takes...</title><description>&lt;iframe width="400" height="225"  id="youtube_iframe" src="https://www.youtube.com/embed/AJdEqssNZ-U?feature=oembed&amp;enablejsapi=1&amp;origin=https://safe.txmblr.com&amp;wmode=opaque" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;A 2013 talk by Jan Willem Nijman of &lt;a href="http://www.vlambeer.com/"&gt;Vlambeer&lt;/a&gt;, where he takes something that resembles most people’s first game design projects and then adds a bunch of little details that combine into a much better experience. Basically he gives away Vlambeer’s design secrets for a half hour.&lt;/p&gt;

&lt;p&gt;Via &lt;a href="https://www.youtube.com/watch?v=216_5nu4aVQ"&gt;Game Maker’s Toolkit&lt;/a&gt;.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/135601405153</link><guid>https://stevecochrane.tumblr.com/post/135601405153</guid><pubDate>Sun, 20 Dec 2015 17:29:28 -0600</pubDate></item><item><title>New Pixel Font: Marietta Seven</title><description>&lt;p&gt;I&amp;rsquo;ve made another pixel font, &lt;a href="http://stevecochrane.com/fonts/#marietta-seven"&gt;Marietta Seven&lt;/a&gt;, which is now available for download. It&amp;rsquo;s a 7px-tall companion to my previous font, &lt;a href="http://stevecochrane.com/fonts/#marietta-five"&gt;Marietta Five&lt;/a&gt;, and it&amp;rsquo;s inspired by western and Clarendon typefaces.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2015/09/marietta-seven-specimen.png" width="500" height="204" alt="All characters in the Marietta Seven font."/&gt;&lt;p&gt;This took a surprising amount of time to make! As with anything involving pixel art or chiptunes it&amp;rsquo;s an exercise in working within constraints. I learned a few things about the makings of a typeface while working through this, such as&amp;hellip;&lt;/p&gt;

&lt;h2&gt;Rules&lt;/h2&gt;

&lt;p&gt;Having a typeface that reads well is all about consistency, so it&amp;rsquo;s good to start with some general rules. All of the letterforms here follow these rules:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;Golden ratio for the ratio of width to height. (This was 11x7 but ended up at 10x7.)&lt;/li&gt;
&lt;li&gt;2px vertical strokes, 1px horizontal strokes. The horizontal strokes pretty much have to be 1px because when a letter has three horizontal strokes with spaces in between them, like E, then 1px strokes are all you have space for when working with a height of just 7px. The 2px vertical strokes are there for some nice contrast.&lt;/li&gt;
&lt;li&gt;1px-wide serifs.&lt;/li&gt;
&lt;li&gt;Decorative spurs (S, C, G, J) and tails (Q, R) like a Clarendon.&lt;/li&gt;
&lt;/ol&gt;&lt;h2&gt;Proportion&lt;/h2&gt;

&lt;p&gt;Letterforms can relate to each other in a surprising number of ways. In this case I started with the letter O, and that rounded shape was also used for anything rounded, like C, D, G, Q, and U.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2015/09/rounded-letters.png" width="500" height="48" alt="Rounded characters."/&gt;&lt;p&gt;That gave me a general 10x7 box to work with, which then determined the width and height of the boxier letters like B, E, H, and N.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2015/09/boxy-letters.png" width="500" height="48" alt="Boxy characters."/&gt;&lt;p&gt;It allows you to recycle a lot of parts when filling out the typeface, but it also means a lot of attention has to be devoted to keeping everything in proportion with everything else.&lt;/p&gt;

&lt;h2&gt;Diagonals&lt;/h2&gt;

&lt;p&gt;Print designers can use diagonal strokes however they want. For pixel fonts, this is all I really have to work with:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2015/09/diagonals.png" width="500" height="48" alt="Possible diagonal lines."/&gt;&lt;p&gt;Choosing one of those for a letter with diagonals like X will dictate the width of &lt;em&gt;every other letter in the typeface,&lt;/em&gt; because all of the other letters will then have to be around that same width to maintain proportion. Letters with diagonal strokes like X, A, V, W, and K have easily been the most difficult for me.&lt;/p&gt;

&lt;h2&gt;Points&lt;/h2&gt;

&lt;p&gt;I also found that certain letters need an odd width and others need an even width. W, M, A, and V pretty much require an odd width so that they can have a 1px point in the middle:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2015/09/points-odd.png" width="500" height="48" alt="Odd width letters with points highlighted."/&gt;&lt;p&gt;While others like Y really need an even-numbered width when they have a 2px-wide vertical stroke. And since the top half of the X should probably match the top half of the X, the X should also have an even-numbered width:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2015/09/points-even.png" width="500" height="48" alt="Even width letters with points highlighted."/&gt;&lt;h2&gt;In Conclusion&lt;/h2&gt;

&lt;p&gt;I&amp;rsquo;m pretty happy with how this turned out, except that I wasn&amp;rsquo;t able to implement kerning tables, so certain letter pairs look pretty awkward and require manual correction, such as WA:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2015/09/kerning.png" width="500" height="72" alt="Examples of good and bad kerning."/&gt;&lt;p&gt;&lt;a href="http://fontstruct.com"&gt;FontStruct&lt;/a&gt; is an amazing tool for making pixel fonts and it&amp;rsquo;s what I&amp;rsquo;ve used here, but it doesn&amp;rsquo;t provide any kerning functionality, and I tried a few free trials of tools like &lt;a href="https://glyphsapp.com"&gt;Glyphs&lt;/a&gt; and &lt;a href="http://birdfont.org"&gt;Birdfont&lt;/a&gt; but I ran into compatibility issues. If anyone has any other suggestions, please let me know in the comments!&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/129525257808</link><guid>https://stevecochrane.tumblr.com/post/129525257808</guid><pubDate>Sun, 20 Sep 2015 17:38:11 -0500</pubDate></item><item><title>"Today’s a day for playing lots of games together as a family until you can play no more, only..."</title><description>“Today’s a day for playing lots of games together as a family until you can play no more, only to do it all over again tomorrow. And as we do that, those games will light up our rooms. That’s how it should be, we can’t keep them in the dark because in my mind, more than anything, that’s what games are all about: keeping the house lit up.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;&lt;a href="https://twitter.com/iiotenki/status/620456141747654657"&gt;Shinya Arino’s remarks on Satoru Iwata, translated by Thomas James&lt;/a&gt;, via &lt;a href="http://www.usgamer.net/articles/the-video-game-industry-shares-its-thoughts-on-satoru-iwata"&gt;USGamer&lt;/a&gt;. Posted here for safekeeping.&lt;/em&gt;</description><link>https://stevecochrane.tumblr.com/post/124209801263</link><guid>https://stevecochrane.tumblr.com/post/124209801263</guid><pubDate>Wed, 15 Jul 2015 22:25:26 -0500</pubDate></item><item><title>Berserker</title><description>&lt;p&gt;I&amp;rsquo;ve been updating my front-end web development skills lately, trying out a bunch of new-to-me automation tools, and it&amp;rsquo;s been a lot of fun. In the interest of being a &lt;a href="http://threevirtues.com"&gt;lazy programmer&lt;/a&gt; I&amp;rsquo;ve made a template for very quickly starting up a new project with everything set up and ready to go. Most developers probably have a folder like this on their hard drive already but I&amp;rsquo;m putting mine out there in case it&amp;rsquo;s useful to anybody else. It&amp;rsquo;s called &lt;a href="https://github.com/stevecochrane/berserker"&gt;Berserker&lt;/a&gt; and you can easily fork it and make customizations to suit your needs.&lt;/p&gt;

&lt;p&gt;This was motivated by two things that I definitely want to use for all of my sites going forward:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://sass-lang.com"&gt;Sass&lt;/a&gt; + &lt;a href="http://compass-style.org"&gt;Compass&lt;/a&gt;: these greatly streamline CSS development, and it&amp;rsquo;s a little embarrassing to admit that I only recently discovered them since they&amp;rsquo;ve been around for years. You can automate vendor prefixes, base64 encoding, px/em/rem conversion and a lot more.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://gruntjs.com"&gt;Grunt&lt;/a&gt;: a JavaScript automation tool that makes it trivially easy to build your sites according to &lt;a href="http://developer.yahoo.com/performance/rules.html"&gt;best practices&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With Berserker you can just paste one command in the terminal and get started with a file structure like this. It starts with &lt;a href="http://necolas.github.io/normalize.css/"&gt;Normalize.css&lt;/a&gt;, some basic Sass functions and variables that I use regularly, and a very basic HTML file.&lt;/p&gt;

&lt;p&gt;&lt;img src="http://stevecochrane.com/img/2013/10/berserker-file-structure.png" width="500" height="231" alt="Screenshot of the files and folders generated from Berserker"/&gt;&lt;/p&gt;

&lt;p&gt;When it&amp;rsquo;s time to ship, run the included Grunt script and all of the following stuff happens automagically in a matter of seconds:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;HTML is validated and minified.&lt;/li&gt;
&lt;li&gt;Images are compressed.&lt;/li&gt;
&lt;li&gt;Compass&amp;rsquo;s compiled CSS is validated and minified.&lt;/li&gt;
&lt;li&gt;JavaScript is tested with &lt;a href="http://jshint.com"&gt;JSHint&lt;/a&gt; to detect errors and potential problems.&lt;/li&gt;
&lt;li&gt;Provided the JavaScript passes the test, all JavaScript is concatenated into a single file.&lt;/li&gt;
&lt;li&gt;That concatenated JS file is then minified.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;These were all things that I used to do manually or just didn&amp;rsquo;t bother with, so it&amp;rsquo;s amazing to have it all done so easily. It saves a lot of development time and my resulting sites are faster and less error-prone. If you&amp;rsquo;d like to give it a try, there are more details in &lt;a href="https://github.com/stevecochrane/berserker"&gt;the README on GitHub&lt;/a&gt;.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/64453034923</link><guid>https://stevecochrane.tumblr.com/post/64453034923</guid><pubDate>Fri, 18 Oct 2013 23:51:26 -0500</pubDate></item><item><title>INSTIGATION Postmortem</title><description>&lt;p&gt;I made a game in the &lt;a href="http://www.ludumdare.com"&gt;Ludum Dare&lt;/a&gt; 48-hour solo competition this past weekend, a frantic match-three puzzle game called &lt;a href="http://www.ludumdare.com/compo/ludum-dare-27/?action=preview&amp;amp;uid=12266"&gt;&lt;em&gt;INSTIGATION&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/08/instigation.png" width="512" height="480" alt="In-game screenshot from INSTIGATION"/&gt;&lt;p&gt;One of the things I regret about &lt;a href="http://www.ludumdare.com/compo/ludum-dare-23/?action=preview&amp;amp;uid=12266"&gt;&lt;em&gt;Intergalactic Curling League&lt;/em&gt;&lt;/a&gt; (my first Ludum Dare entry) was that I didn&amp;rsquo;t really do any game design for it, I merely lifted the rules of an existing game. So this time I wanted to take a few hours at first to really plan out the design and to try to make something at least somewhat unique.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve always enjoyed the more frantic match-three puzzle games (&lt;em&gt;Tetris Attack&lt;/em&gt; being my favorite) because they&amp;rsquo;re possibly the best at getting me into that “zen-like state” where I&amp;rsquo;m completely absorbed and the controller becomes an extension of my brain. Also I tried &lt;em&gt;Wario&amp;rsquo;s Woods&lt;/em&gt; for the first time on Wii Virtual Console a few months back and I was pretty taken with it. So &lt;em&gt;INSTIGATION&lt;/em&gt; has the instant response of &lt;em&gt;Tetris Attack&lt;/em&gt; with the in-game character moving and lifting blocks like in &lt;em&gt;Wario&amp;rsquo;s Woods&lt;/em&gt;. My additions were a column cycling mechanic that is kind of like a Rubik&amp;rsquo;s Cube and falling blocks that can stun you, which hopefully creates a nice push-and-pull between clearing the blocks while also staying out of the way to make sure you don&amp;rsquo;t get squashed.&lt;/p&gt;

&lt;p&gt;I really wasn&amp;rsquo;t sure if this was going to work because I hadn&amp;rsquo;t programmed anything like a match-three puzzle game before and it seemed pretty complicated. But Ludum Dare is a perfect opportunity to take a risk because at worst, you only lose a weekend&amp;rsquo;s worth of time. Fortunately it worked out just fine, but I still planned for it by going absolutely minimal on graphics and animation so I could reserve as much time as possible for programming.&lt;/p&gt;

&lt;p&gt;Of course there are plenty of things I wish I could have done if I had more time, and maybe I&amp;rsquo;ll do a more polished version at some point depending on how well this is received. The main thing I wish I had time for would be the ability to match more than three blocks at once for bonus points, and also chain combo bonuses. This would elevate it from just clearing blocks as fast as possible to more of a true puzzle game where there are more interesting choices, and where skillful play is rewarded.&lt;/p&gt;

&lt;p&gt;Now Ludum Dare participants get three weeks of playing and giving feedback on other people&amp;rsquo;s games, which is about as satisfying as making the games themselves. I&amp;rsquo;ve even seen some participants in the jam making their first game ever and it&amp;rsquo;s heartwarming to see the community being so encouraging.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/59561933700</link><guid>https://stevecochrane.tumblr.com/post/59561933700</guid><pubDate>Tue, 27 Aug 2013 23:57:23 -0500</pubDate></item><item><title>What's in the Box?</title><description>&lt;p&gt;I recently played &lt;em&gt;&lt;a href="http://milsci.info"&gt;CAPSULE&lt;/a&gt;&lt;/em&gt; by Adam Saltsman and Robin Arnott and it got me thinking about items in games. I&amp;rsquo;ll be writing a bit about the gameplay here so there are minor spoilers if you haven&amp;rsquo;t played it yet.&lt;/p&gt;

&lt;p&gt;It&amp;rsquo;s a survival horror game, but not in the usual sense: there aren&amp;rsquo;t any zombies or other supernatural creatures and instead you&amp;rsquo;re a lone pilot with only a partially frozen radar/sonar screen to guide you, and you scramble to collect the supplies you need to stay alive. (At least, at first. I haven&amp;rsquo;t completed the story yet.) A large part of the game consists of using sonar to identify nearby items which then slowly and agonizingly fill a progress meter before finally revealing what&amp;rsquo;s inside.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/08/capsule.jpg" width="576" height="360" alt="Screenshot from CAPSULE"/&gt;&lt;p&gt;That slow reveal is what adds the suspense that makes it a survivor horror game. If the items were revealed immediately you would probably zoom around trying to collect them all as fast as possible, and it would instead feel like an action game.&lt;/p&gt;

&lt;p&gt;There are a couple other broad ideas here that are core to a lot of games:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Randomized items keep things interesting.&lt;/strong&gt; All of the items are randomized so each one is an interesting little gamble. See also: random item drops in &lt;em&gt;Diablo&lt;/em&gt; and &lt;em&gt;The Legend of Zelda&lt;/em&gt;, every MMO ever, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Showing an item container and then having the player reveal it is more fun that just being given the item.&lt;/strong&gt; In &lt;em&gt;Super Mario Bros.&lt;/em&gt; where every block potentially has coins or power-ups or even a beanstalk hidden inside, the candles in &lt;em&gt;Castlevania&lt;/em&gt; and their equivalents in &lt;em&gt;Ninja Gaiden&lt;/em&gt; that just might have that subweapon you desperately need (or that other subweapon that you think is useless) and so on. It ties in to the fun of discovery.&lt;/p&gt;

&lt;p&gt;Another kind of example is (obligatory &lt;em&gt;Metroid&lt;/em&gt; reference) the Chozo statues in &lt;em&gt;Metroid&lt;/em&gt;, where the item is hidden at first to add a moment of suspense. (Not to mention the “item room” audio cue.)&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/08/metroid-chozo.png" width="512" height="288" alt="Chozo statue from Metroid"/&gt;&lt;p&gt;That red ball is basically the wrapping paper that you tear off to open a gift from the game designer. Here you go, player one! You&amp;rsquo;ve earned it. Nintendo uses this concept in a lot of places and now even 3DS eShop games come in virtual wrapping paper. (It&amp;rsquo;s a little silly since we know what we just bought, but even unwrapping a known item can be fun.)&lt;/p&gt;

&lt;p&gt;So, currently in &lt;em&gt;The Mountaineers&lt;/em&gt; I have ice blocks that look like this, with the contents visible, and now I&amp;rsquo;m guessing it would be more fun to hide the contents and make it a surprise. Then, the contents of every block can be a mystery.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/08/ice-blocks.png" width="512" height="192" alt="Screenshot of ice blocks from The Mountaineers"/&gt;</description><link>https://stevecochrane.tumblr.com/post/58219956850</link><guid>https://stevecochrane.tumblr.com/post/58219956850</guid><pubDate>Wed, 14 Aug 2013 00:40:08 -0500</pubDate></item><item><title>Climbing Mechanics</title><description>&lt;p&gt;Okay, back to what seems to be the standard format here: documenting the research and thought process behind a new feature. This time: vertical levels in platformers.&lt;/p&gt;

&lt;p&gt;Usually when NES platformers have vertical levels, there are more ways to move up than just jumping, like ladders and staircases. These are good for gameplay variety, and they&amp;rsquo;re also interesting because they&amp;rsquo;re stressful: movement is restricted and they put the player at a disadvantage.&lt;/p&gt;

&lt;p&gt;In &lt;em&gt;Super Mario Bros. 2&lt;/em&gt; there are occasional vertical segments where you climb vines, and they take patience because the player has no way to attack enemies from below. The only option is to avoid enemies until you have the upper ground.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/07/super-mario-bros-2-vines.png" alt="Screenshot of Toad climbing vines in Super Mario Bros. 2" width="512" height="480"/&gt;&lt;p&gt;In the &lt;em&gt;Mega Man&lt;/em&gt; games there are frequent vertical segments with ladders, and while Mega Man is still fairly mobile, he can only move up and down and the horizontal default weapon is less useful.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/07/mega-man-2-ladders.png" alt="Screenshot of Mega Man in serious danger on a ladder in Crash Man's stage" width="512" height="480"/&gt;&lt;p&gt;In &lt;em&gt;Castlevania&lt;/em&gt;, stairs are frequently used for vertical segments and these make the player extremely vulnerable, which is perfect for the horror setting. Once you&amp;rsquo;re on a staircase you move even slower than usual, you can only move up and down the staircase, and you can&amp;rsquo;t jump off (at least, not in the NES games). If you&amp;rsquo;ve played &lt;em&gt;Castlevania III&lt;/em&gt;, the following screen might raise your heart rate:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/07/castlevania-iii-stairs.png" alt="Screenshot of a particularly horrifying segment of the Deadly Tower level of Castlevania III" width="512" height="480"/&gt;&lt;p&gt;I think this is also why people hate and fear auto-scrolling segments: they remove control from the player. You no longer dictate your pace and you either have to struggle to move fast enough or you&amp;rsquo;re bored because you want to go faster.&lt;/p&gt;

&lt;p&gt;So, for &lt;em&gt;The Mountaineers&lt;/em&gt; I&amp;rsquo;ve currently got climbable walls that are similar to the fences in &lt;em&gt;Super Mario World&lt;/em&gt;. There are areas on the walls that a player can grab on to and then move around in all directions. This fits the mountain climbing setting pretty well, though now that I&amp;rsquo;ve written this I&amp;rsquo;ve realized I might have given a little too much power to the player and it might go back to one-dimensional movement like the above examples. Here&amp;rsquo;s a screenshot, again with somewhat crappy first-draft sprites:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/07/the-mountaineers-climbing.png" alt="Screenshot of the player climbing a wall in The Mountaineers" width="512" height="480"/&gt;&lt;p&gt;The implementation for something like this wasn&amp;rsquo;t too bad, thanks to the magic of Flixel. The “climb zone” has an invisible hitbox that I can define in my map editor, and if the player&amp;rsquo;s hitbox is within this zone, they can press up to grab on to the wall. From that point they can jump off the wall or do a stationary attack in addition to moving around within the climb zone. When combined with wall-jumping this gives the player several “verbs” for vertical movement and it&amp;rsquo;s hopefully just enough to keep things interesting.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/56940085235</link><guid>https://stevecochrane.tumblr.com/post/56940085235</guid><pubDate>Tue, 30 Jul 2013 23:01:33 -0500</pubDate></item><item><title>My Favorite Button</title><description>&lt;p&gt;This “Scale” button here, in GarageBand for iOS?&lt;/p&gt;

&lt;img src="https://64.media.tumblr.com/68f4169f154a0fc05f231229bcf6c527/tumblr_inline_mq2cgm9lOM1qz4rgp.jpg" width="500" height="364" alt="Screenshot of default keyboard in GarageBand for iOS"/&gt;&lt;p&gt;This button made me a better musician. I&amp;rsquo;ve been tapping virtual keys on &lt;a href="https://itunes.apple.com/us/app/garageband/id408709785?mt=8"&gt;GarageBand for iOS&lt;/a&gt; to compose chiptunes largely because of this one button. If you press it you&amp;rsquo;ll see a list of available scales, and when you choose one, like Major Pentatonic…&lt;/p&gt;

&lt;img src="https://64.media.tumblr.com/5553afe0e3205a694862026c15a3cb88/tumblr_inline_mq2cvm5Kra1qz4rgp.jpg" width="500" height="364" alt="Screenshot of Major Pentatonic keyboard in GarageBand for iOS"/&gt;&lt;p&gt;…it only displays the keys in that scale so it&amp;rsquo;s pretty much impossible to sound dissonant. This is super valuable for novices like me, because everyone needs training wheels sometimes.&lt;/p&gt;

&lt;p&gt;Normally when learning a new skill you have to learn the fundamentals, like scales, and memorize them to the point where you can use them without thinking. A lot of people probably get bored and quit before then. (I did.) Not only does this feature allow me to postpone that step and get right to the fun part, it teaches. If I hadn&amp;rsquo;t seen this I might still not know what a Major Pentatonic scale is.&lt;/p&gt;

&lt;p&gt;It also shows one of the unique strengths of touchscreen platforms, the ability to change the display of a touch panel. The OS X version lacks this feature and (to me) it&amp;rsquo;s less useful and less fun without it.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/55668178812</link><guid>https://stevecochrane.tumblr.com/post/55668178812</guid><pubDate>Wed, 17 Jul 2013 00:15:50 -0500</pubDate></item><item><title>Here’s a second sampler of work-in-progress music...</title><description>&lt;iframe src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F98494888&amp;visual=true&amp;liking=false&amp;sharing=false&amp;auto_play=false&amp;show_comments=false&amp;continuous_play=false&amp;origin=tumblr" frameborder="0" allowtransparency="true" class="soundcloud_audio_player" width="540" height="540"&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Here’s a second sampler of work-in-progress music (following &lt;a href="https://soundcloud.com/stevecochrane-1/the-mountaineers-sampler-1"&gt;the first&lt;/a&gt;) with the intro cutscene song and a new loop for one of the stages. I’ll have one or two more of these as the soundtrack is wrapped up.&lt;/p&gt;

&lt;p&gt;That loop has a couple things I hadn’t tried before: pitch bending (so fun) and the 12.5% pulse wave (starting around 1:08) which I had stupidly dismissed as being for “robot zapping sounds” a while back, but it’s obviously more versatile than that and it’s a defining part of the NES sound. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://alexmauer.bandcamp.com"&gt;Alex Mauer&lt;/a&gt;’s music is what changed my mind. He’s done this thing a few times where he plays a melody first with the normal 25% pulse and then repeats it with the 12.5% pulse, done for variety in &lt;a href="http://alexmauer.bandcamp.com/track/the-waiting-part-2"&gt;“The Waiting (Part 2)”&lt;/a&gt; (starting at 0:13). Same melody, different voice. Then on the very next track, &lt;a href="http://alexmauer.bandcamp.com/track/dyfeyw"&gt;“DYFEYW”&lt;/a&gt;, he uses the same technique but this time it’s to punch harder (again at 0:13).&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/54518149872</link><guid>https://stevecochrane.tumblr.com/post/54518149872</guid><pubDate>Wed, 03 Jul 2013 11:00:13 -0500</pubDate></item><item><title>Tagging Along</title><description>&lt;p&gt;I&amp;rsquo;ve already hinted at one mechanic in &lt;em&gt;The Mountaineers&lt;/em&gt; with an image posted to &lt;a href="http://screenshotsaturday.com/user/stevecochrane.html"&gt;Screenshot Saturday&lt;/a&gt;, ages ago:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2012/10/child-endangerment.png" alt="Work-in-progress screenshot from The Mountaineers" width="512" height="480"/&gt;&lt;p&gt;For the second stage the idea was to have the kid on foot, mirroring the player&amp;rsquo;s movements. It was a struggle but I&amp;rsquo;ve mostly got a functioning mechanic for it now, and here&amp;rsquo;s how I got there.&lt;/p&gt;

&lt;p&gt;There are two 2D games I can think of that had something like it, both with a nearly identical mechanic but in different genres: &lt;em&gt;Gradius&lt;/em&gt; and &lt;em&gt;Ninja Gaiden II&lt;/em&gt;.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/06/gradius-option.png" alt="Screenshot from Gradius of the player and an option firing dual lasers" width="512" height="192"/&gt;&lt;p&gt;&lt;em&gt;Gradius&lt;/em&gt; has the “option” powerup, a floating orb that follows you and doubles your firepower. It works something like this:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;All of your ship&amp;rsquo;s movement is recorded.&lt;/li&gt;
&lt;li&gt;Once you&amp;rsquo;ve moved for a certain number of frames, the option will start to retrace your recorded movements at the same rate of speed.&lt;/li&gt;
&lt;li&gt;If your ship stops, the option stops immediately. This ensures that the option never catches up to you.&lt;/li&gt;
&lt;li&gt;If your ship fires, the option fires immediately. This allows for some strategy with positioning, as you can spread the options out to cover a large area of the screen or bunch them up to concentrate all firepower on one location.&lt;/li&gt;
&lt;/ol&gt;&lt;img src="http://stevecochrane.com/img/2013/06/ninja-gaiden-ii-shadow.png" alt="Screenshot from Ninja Gaiden II of the clone powerup" width="512" height="192"/&gt;&lt;p&gt;&lt;em&gt;Ninja Gaiden II&lt;/em&gt; has the clone powerup, and I&amp;rsquo;d outline how the clone works too but it&amp;rsquo;s virtually identical, just replace “ship” with “ninja”. It&amp;rsquo;s a nice little feat of programming that was likely pretty hard to pull off. These seem pretty simple at first glance but there were a few things I only noticed once I tried my own version.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It&amp;rsquo;s okay for a clone to hover in mid-air.&lt;/strong&gt; This is just fine for a floating orb or a shadowy flickering clone, but if the “clone” is a person like with what I&amp;rsquo;m trying, it really doesn&amp;rsquo;t make sense unless the person has a jetpack or something. So my solution is to just have the kid keep moving through the tracked movements, even if the player has stopped moving. Of course, this removes most of the strategy that the above games had so we&amp;rsquo;ll see how it goes. It also means that if the player stops moving, the kid will then move to occupy the same space and vanish behind the player unless I add some logic to prevent collisions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The clone needs to follow player movement exactly or it falls apart.&lt;/strong&gt; Implementation is tricky because if the clone&amp;rsquo;s movement deviates at all, even by a single pixel, it might cause the clone to miss a jump. My first attempt at this mechanic failed because it wasn&amp;rsquo;t an exact match. Also the clone&amp;rsquo;s hitbox needs to be exactly the same size as the player&amp;rsquo;s hitbox or you get the same problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The clones are invulnerable.&lt;/strong&gt; This is another case where it makes sense for an immaterial clone but not for an actual person (especially a child who should &lt;em&gt;never&lt;/em&gt; get hurt). I think I can dodge this with an animation where the kid ducks under hazards or jumps away for a split second.&lt;/p&gt;

&lt;p&gt;Hopefully some screenshots will suffice for now:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/06/stage-2-1.png" alt="Screenshot of The Mountaineers, stage 2" width="512" height="240"/&gt;&lt;img src="http://stevecochrane.com/img/2013/06/stage-2-2.png" alt="Screenshot of The Mountaineers, stage 2" width="512" height="240"/&gt;</description><link>https://stevecochrane.tumblr.com/post/53338891983</link><guid>https://stevecochrane.tumblr.com/post/53338891983</guid><pubDate>Wed, 19 Jun 2013 00:28:41 -0500</pubDate></item><item><title>Scoring Systems</title><description>&lt;p&gt;Following &lt;a href="http://blog.stevecochrane.com/post/51052713809/on-huds-and-my-first-font"&gt;the HUD post&lt;/a&gt; from last time, I&amp;rsquo;ve added a scoring system to the game. Numbers!&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/06/numbers.png" alt="Screenshot from The Mountaineers of a little score popup" width="512" height="224"/&gt;&lt;p&gt;This was added for a couple reasons. One, it can provide overlapping goals for the player to keep things interesting, beyond just the motivation to get to the end of the game. When used well, the player can choose to go out of their way and take optional risks for extra rewards. Two, it adds to the fun, I hope. As long as it&amp;rsquo;s not too cloying, like giving an achievement for completing a tutorial or something, it&amp;rsquo;s fun to be rewarded when doing well, and when a level is cleared you can spin some numbers and go &lt;em&gt;ding ding ding&lt;/em&gt; and that&amp;rsquo;s just fun.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/06/mountain-clear-2.png" alt="Screenshot from The Mountaineers of the Mountain Clear screen" width="512" height="480"/&gt;&lt;p&gt;Admittedly I&amp;rsquo;m a little unsure about this, because scores are usually a vestige of the early arcade days. Games back then had to be very short because it just wasn&amp;rsquo;t possible to have more than a few levels (if any) with the hardware at the time. So in order to keep a player&amp;rsquo;s interest, the goal became to play the same levels over and over again in order to master them and get the highest possible score, and since arcades were social spaces it also added a competitive element.&lt;/p&gt;

&lt;p&gt;Now games are usually more about narrative, and many not only do away with scores, but with lives in general. While this is generally for the best I also think at times that this can oversimplify things, and give a feeling like in &lt;a href="http://blog.stevecochrane.com/post/48749324940/worthy-of-note"&gt;my &lt;em&gt;Super Mario Bros. With Respawning&lt;/em&gt; notes&lt;/a&gt; where the danger was removed, the strategy became to brute force through to the end, and the challenge and fun were lost.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;m a novice when it comes to game design so I&amp;rsquo;m sticking to the old ways while I get my bearings.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/52202338881</link><guid>https://stevecochrane.tumblr.com/post/52202338881</guid><pubDate>Wed, 05 Jun 2013 00:47:38 -0500</pubDate></item><item><title>On HUDs and My First Font</title><description>&lt;p&gt;Last time I hinted that I might be writing about enemies, but I procrastinated on game design again by making a &lt;a href="https://en.wikipedia.org/wiki/HUD_(video_gaming)"&gt;HUD&lt;/a&gt; instead, hooray! (Though in my defense, it is related to game design since there is a lives system now, getting a high enough score gets extra lives, etc.)&lt;/p&gt;

&lt;p&gt;HUDs were interesting on the NES because of its limitations, and also because they evolved as game mechanics got more complex. In the beginning you could get by with something like this:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/smb-hud.png" alt="Screenshot of the HUD for Super Mario Bros." width="512" height="96"/&gt;&lt;p&gt;Soon it became more and more common to have screen space dedicated to the HUD because of an increase in the number of visual elements, and the need to display more than just letters and numbers.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/castlevania-hud.png" alt="Screenshot of the HUD for Castlevania" width="512" height="80"/&gt;&lt;img src="http://stevecochrane.com/img/2013/05/zelda-hud.png" alt="Screenshot of the HUD for The Legend of Zelda" width="512" height="96"/&gt;&lt;img src="http://stevecochrane.com/img/2013/05/smb3-hud.png" alt="Screenshot of the HUD for Super Mario Bros. 3" width="512" height="64"/&gt;&lt;p&gt;The NES didn&amp;rsquo;t support alpha transparency and it was also limited in the number of colors that could be displayed on each line of the screen. If you use red and pink for hearts, for example, that&amp;rsquo;s potentially two fewer colors that you can use for sprites and backgrounds on that same line. So when showing anything beyond white text with a one-color, opaque shadow behind it, developers would usually dedicate a portion of the screen to the HUD. Of course, the drawback is that you reduce the size of the play area.&lt;/p&gt;

&lt;p&gt;There were also some clever workarounds. For example in &lt;em&gt;Mega Man&lt;/em&gt; the colors for Mega Man&amp;rsquo;s bullets (light yellow and white, with a black outline) needed to be available for every line on the screen since he could shoot anywhere, and the life bar also happens to use yellow and white. I assume this was done to give it some nice shading while also not subtracting from the available colors.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/mega-man-2-hud.png" alt="Screenshot of the HUD for Mega Man 2" width="512" height="144"/&gt;&lt;p&gt;Once you got into the 16-bit era, much larger color palettes and alpha transparency were available, so games that would have had dedicated screen space in the past didn&amp;rsquo;t need to do that anymore, and the HUD could be laid on top of the playable area without sacrifices. (Except maybe readability, like in &lt;em&gt;Super Castlevania IV&lt;/em&gt; below.)&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/smw-hud.png" alt="Screenshot of the HUD for Super Mario World" width="512" height="96"/&gt;&lt;img src="http://stevecochrane.com/img/2013/05/castlevania-iv-hud.png" alt="Screenshot of the HUD for Super Castlevania IV" width="512" height="72"/&gt;&lt;p&gt;For my own HUD I don&amp;rsquo;t need much, just a score, a lives counter, and a life bar. I tried dedicated screen space for the HUD just to see how it felt, but I didn&amp;rsquo;t like reducing the size of the play area, so after trying about a bunch of concepts I settled on the one at the top here. (Now that I&amp;rsquo;ve written this, I realize it breaks the above rules with the red&amp;hellip;)&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/hud-mockups.png" alt="HUD mockups for The Mountaineers" width="512" height="480"/&gt;&lt;p&gt;When I tried my usual go-to fonts, none of them felt quite right, so I ended up making my own numerals and the letters I needed in the same style as the wide, serifed text I&amp;rsquo;d done before, but smaller. Later I reproduced those in &lt;a href="http://fontstruct.com"&gt;FontStruct&lt;/a&gt;, added some more, and enjoyed it so much that I ended up making a whole font, my first. So &lt;a href="http://stevecochrane.com/fonts/#marietta-five"&gt;here is Marietta Five&lt;/a&gt;, and I hope to follow it up with a larger Marietta Seven at some point in the near future. It&amp;rsquo;s public domain so use it however you like! It&amp;rsquo;s intended for a font size of 8px but it also works with 16, 32, etc.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/marietta-five-specimen.png" alt="Marietta Five font displayed at two sizes" width="512" height="168"/&gt;&lt;p&gt;This is exactly why I enjoy making games so much. I might not be able to make a print-quality font, but a pixel font is attainable. I might not be able to make beautifully-rendered visual art, but NES pixel art is attainable. I might not be able to make professionally-produced music, but NES chiptunes are attainable. It&amp;rsquo;s really empowering.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/51052713809</link><guid>https://stevecochrane.tumblr.com/post/51052713809</guid><pubDate>Wed, 22 May 2013 00:46:00 -0500</pubDate></item><item><title>Adventure Island IV has some pretty adorable sprites. I tried drawing some in this style but...</title><description>&lt;img src="http://stevecochrane.com/img/2013/05/adventure-island-iv-1.png" width="512" height="480" alt="Adventure Island IV screenshot"/&gt;&lt;img src="http://stevecochrane.com/img/2013/05/adventure-island-iv-2.png" width="512" height="480" alt="Adventure Island IV screenshot"/&gt;&lt;p&gt;&lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Adventure_Island_IV"&gt;Adventure Island IV&lt;/a&gt;&lt;/em&gt; has some pretty adorable sprites. I tried drawing some in this style but it&amp;rsquo;s deceptively simple.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/50185880715</link><guid>https://stevecochrane.tumblr.com/post/50185880715</guid><pubDate>Sat, 11 May 2013 14:00:45 -0500</pubDate></item><item><title>The Magic of Palette Swapping</title><description>&lt;p&gt;I&amp;rsquo;ve mostly been iterating on game mechanics and level design lately, which hasn&amp;rsquo;t resulted in any exciting things to post here, I&amp;rsquo;m afraid. It&amp;rsquo;s also the area that I&amp;rsquo;m least experienced with so it&amp;rsquo;s a bit of a slog. I&amp;rsquo;ll hopefully post some enemies that I&amp;rsquo;ve added for next time though.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve been getting a &lt;strong&gt;lot&lt;/strong&gt; of mileage out of this set of rock tiles I made a while back.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/rocks-1.png" width="512" height="96" alt="Basic blue rock texture, tiled horizontally"/&gt;&lt;p&gt;Once I had those, the environments still looked too blocky, so I made some angled half-block tiles and some other tiles with a rough edge on one side, which were easy since all I had to do was subtract from the original tiles.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/rocks-2.png" width="512" height="64" alt="Half-block and angled rock tiles"/&gt;&lt;p&gt;Then in order to make a background layer of rocks, I simply did a palette swap and brought down the contrast.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/rocks-3.png" width="512" height="96" alt="Background rock texture, tiled horizontally"/&gt;&lt;p&gt;Then, I palette-swapped four more times to get a first pass for the rocks in mountains 2-5.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/rocks-4.png" width="512" height="384" alt="Four more colors for rock tiles, tiled horizontally"/&gt;&lt;p&gt;Last week I made a spooky cave interior by, you guessed it, palette-swapping those same rocks once again.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/05/rocks-5.png" width="512" height="384" alt="Spooky cave interior"/&gt;&lt;p&gt;This might get repetitive over the course of an entire game and once I&amp;rsquo;m satisfied with the level layouts I&amp;rsquo;ll likely draw some more textures, but for making a first pass on the levels, it&amp;rsquo;s more than enough.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/49913370275</link><guid>https://stevecochrane.tumblr.com/post/49913370275</guid><pubDate>Tue, 07 May 2013 23:34:10 -0500</pubDate></item><item><title>Worthy of Note</title><description>&lt;p&gt;This time I just thought I’d point out a couple things others have made that have influenced my work and got me thinkin’.&lt;/p&gt;

&lt;h2&gt;Anatomy of a Game&lt;/h2&gt;

&lt;p&gt;Jeremy Parish has finished the latest in his &lt;a href="http://telebunny.net/toastyblog/anatomy-of-a-game/"&gt;Anatomy of a Game&lt;/a&gt; series, &lt;a href="http://telebunny.net/toastyblog/2013/03/the-anatomy-of-zelda-ii-i-genre-shift/"&gt;a dissection of &lt;em&gt;Zelda II: The Adventure of Link&lt;/em&gt;&lt;/a&gt;, and like all of them so far it’s a good read. He’s covered some concepts I hadn’t noticed before which I am now trying to work into my game if possible, such as &lt;a href="http://telebunny.net/toastyblog/2012/08/2d-castlevania-stages-07-09/"&gt;the consistency of architecture in &lt;em&gt;Castlevania&lt;/em&gt;&lt;/a&gt;, which really ties the whole game together and provides a great sense of progress, and the point of no return in &lt;a href="http://telebunny.net/toastyblog/2012/08/anatomy-of-a-simons-quest-viii/"&gt;&lt;em&gt;Castlevania II&lt;/em&gt;&lt;/a&gt; and &lt;a href="http://telebunny.net/toastyblog/2013/04/the-anatomy-of-zelda-ii-xii-the-great-palace/"&gt;&lt;em&gt;Zelda II&lt;/em&gt;&lt;/a&gt;, which provides a feeling of dread heading into the final battle.&lt;/p&gt;

&lt;p&gt;This is exactly the sort of thing I want to read: looking at the classics under a magnifying glass and analyzing all of the little things that combine to form something great.&lt;/p&gt;

&lt;h2&gt;Super Mario Bros. with Respawning&lt;/h2&gt;

&lt;p&gt;Lately I’ve felt like something has been missing from &lt;em&gt;The Mountaineers&lt;/em&gt; but I can’t quite put a finger on it. I’ve considered adding some sort of collectible item to give the player an objective in addition to just getting to the end of the level, and I wondered what &lt;em&gt;Super Mario Bros.&lt;/em&gt; would be like if the coins were removed. Someone has to have made a ROM hack for this, right?&lt;/p&gt;

&lt;p&gt;Leon Arnott has made &lt;a href="http://l.j-factor.com/emulation/"&gt;many interesting &lt;em&gt;Super Mario Bros.&lt;/em&gt; ROM hacks&lt;/a&gt;, including &lt;em&gt;Silhouette Mario Bros.&lt;/em&gt;, which you might recognize if you’ve read &lt;a href="http://www.amazon.com/Rise-Videogame-Zinesters-Drop-outs-Housewives/dp/1609803728"&gt;&lt;em&gt;Rise of the Videogame Zinesters&lt;/em&gt;&lt;/a&gt;. But to me, the most interesting one is &lt;em&gt;Super Mario Bros. with Respawning&lt;/em&gt;. Here’s his description:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;“This hack is mostly identical to the original game, but changes were made to make it more “modern” (by which I mean “Knytt-like”) in its sensibilities. Most of the game’s text is removed - there are no interstitial “World 1-1” title cards, the status bar is gone, and the floating score numbers are absent. You have unlimited time, unlimited lives, and instead of midway points, you respawn at either the start of the room you died in or the last pipe/vine you exited. This last change makes some levels easier (6-2, 8-1, 8-4) and some harder (the X-3 levels).”&lt;/p&gt;&lt;/blockquote&gt;

&lt;p&gt;Here are some things that came to mind as I played it:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coins are worthless.&lt;/strong&gt; Now that you have unlimited lives, there’s really no reason to collect coins anymore, or for the coins to even be there. This just reinforces the idea that collectibles should have some sort of gameplay benefit or they’re just noise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No danger.&lt;/strong&gt; Infinite lives and respawning make sense for &lt;em&gt;Knytt&lt;/em&gt; because the game isn’t supposed to be challenging. The fun is derived from exploring the world. Normally when you play &lt;em&gt;Super Mario Bros.&lt;/em&gt; you know that your lives are quite limited, and if you lose them all, you’ll have to start over from the very beginning. This means that every move you make has consequences, and the stakes are progressively higher as you advance. Once respawning is added and your lives are unlimited, there are no consequences to your actions anymore and the most effective strategy is to brute force your way through everything. Overcoming challenges is no longer satisfying.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No sense of progress.&lt;/strong&gt; If I don’t feel like I’m progressing towards something I will quickly lose interest, and here there’s really no indication of where you are anymore. Of course, this wouldn’t be a problem if the title cards hadn’t been removed, and there are plenty of other ways to solve this too, like an overworld map for example. &lt;em&gt;Knytt&lt;/em&gt; solved this problem by making it the goal to collect the scattered parts of your ship, and you could see how many parts were left to collect at any time.&lt;/p&gt;

&lt;p&gt;The original &lt;em&gt;Super Mario Bros.&lt;/em&gt; wasn’t designed with these intentions, so if the original designers were setting out to make a game of this type, they would have made other changes for it to be more of a cohesive whole. But it’s still an interesting thought exercise about goals and motivation for the player.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/48749324940</link><guid>https://stevecochrane.tumblr.com/post/48749324940</guid><pubDate>Tue, 23 Apr 2013 22:24:21 -0500</pubDate></item><item><title>Wall Jumping</title><description>&lt;p&gt;In the prototype for &lt;em&gt;The Mountaineers&lt;/em&gt;, the player had the ability to air-dash in any direction including upward, as seen in &lt;a href="http://video.stevecochrane.com/kdn4/mountaineering-post-tigjam-demo/"&gt;my post-TIGJam demo&lt;/a&gt;. While it can be fun to air-dash all over the place, once I started to design more levels I found it was hard to provide a challenge when the player was so mobile. It could probably work in a game where combat is the main focus but that&amp;rsquo;s not what I&amp;rsquo;m going for, so I&amp;rsquo;ve replaced the vertical dash with a wall jump. This seems like a win because it allows me to restrict where vertical movement is possible when designing the levels, and it has a timing element that makes it even more fun.&lt;/p&gt;

&lt;p&gt;Wall jumping is always a little strange because you have two opposing forces: you have to hold in the direction toward the wall to get close enough to jump from it, yet when you jump you&amp;rsquo;re immediately thrown in the opposite direction. The subtlety is in the timing of the switch.&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;You can have the player press away and jump when in contact with a wall. If you don&amp;rsquo;t time it right you might disconnect from the wall before making the jump, and that can be frustrating. (e.g. &lt;em&gt;Super Metroid&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;You can have the player press jump while holding against the wall, pause for a split second before the jump happens so the player has a chance to hold in the opposite direction, then go through with the jump. (e.g. &lt;em&gt;Batman&lt;/em&gt; for NES)&lt;/li&gt;
&lt;li&gt;You can have the player press jump while holding against the wall, then propel them away from the wall at maximum velocity so that even if they are still holding toward the wall for a second or two, movement is unaffected. (e.g. &lt;em&gt;New Super Mario Bros.&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;You can have the player stick to or slide on the wall, giving them time to hold away from the wall and press jump without disconnecting from the wall. (e.g. &lt;em&gt;Super Meat Boy&lt;/em&gt;)&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;This could be a much longer article as there are plenty of unique approaches out there with a lot of subtle variations, but I&amp;rsquo;ll stick to the good stuff. Two games stand out with exceptionally good wall jumping in my opinion:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/04/mega-man-x-wall-slide.png" width="512" height="480" alt="Screenshot of wall sliding in Mega Man X"/&gt;&lt;p&gt;&lt;em&gt;Mega Man X&lt;/em&gt; is the first game I remember with really good wall jumping. It&amp;rsquo;s a core mechanic and you can tell they spent a lot of time getting it just right. You attach to the wall, which stops downward momentum for a second, and slide down in a cool pose with a trail of dust behind you. You also slide down at a constant speed, slower than free-fall, which allows you to time your jump perfectly. My only possible criticism is that you don&amp;rsquo;t have a lot of time to press jump once you start holding away from the wall, but that also means you can get off the wall pretty quickly without jumping if you want to.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/04/super-meat-boy-wall-slide.jpg" width="512" height="480" alt="Screenshot of wall sliding in Super Meat Boy"/&gt;&lt;p&gt;&lt;em&gt;Super Meat Boy&lt;/em&gt;&amp;rsquo;s wall jumping has a great feel to it as well. Gravity still affects you while you slide, so you&amp;rsquo;ll eventually hit free-fall speed, but you have reduced vertical drag. You can also slide on the wall during the ascent of a jump, and when combined with the reduced vertical drag you can actually go higher than a normal jump this way. The wall is also very sticky and in order to get off the wall without jumping you have to hold the direction away from the wall for about a second, which gives you plenty of time to hold away and jump.&lt;/p&gt;

&lt;p&gt;I&amp;rsquo;ve done my implementation in the usual way: by finding a bunch of great examples and then combining my favorite elements from all of them. Like &lt;em&gt;Mega Man X&lt;/em&gt;, when you touch the wall your vertical momentum stops for a second and you begin to slide. The character is clearly in slide mode because they have a unique pose and there are puffs of snow trailing behind you as you slide. Like &lt;em&gt;Super Meat Boy&lt;/em&gt; your vertical acceleration is slower than in free-fall, but you accelerate as you slide, which hopefully provides some tension when timing the jump. And like &lt;em&gt;New Super Mario Bros.&lt;/em&gt; you are pushed away from the wall enough that you can&amp;rsquo;t continually jump up the same wall. I also added a little &lt;em&gt;sssssshhhh&lt;/em&gt; sound while sliding for another layer of feedback.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/04/mountaineers-wall-slide.png" width="512" height="480" alt="Screenshot of wall sliding in The Mountaineers"/&gt;&lt;p&gt;I had trouble capturing an animated GIF this time, and that&amp;rsquo;s a crappy first draft sprite of the player, but it feels pretty good in motion!&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/47603405045</link><guid>https://stevecochrane.tumblr.com/post/47603405045</guid><pubDate>Wed, 10 Apr 2013 00:48:18 -0500</pubDate></item><item><title>A Good Camera is Invisible</title><description>&lt;p&gt;Part of the fun of making games is that it causes me to see my old favorites in a new light, and to appreciate the little details that I hadn&amp;rsquo;t noticed before.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Super Metroid&lt;/em&gt; is my favorite game, and despite the many times I&amp;rsquo;ve played it, I never really noticed the camera until I sat down last week to deliberately observe how the camera works. The fact that I never noticed the camera means that it&amp;rsquo;s an ideal camera.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Super Metroid&lt;/em&gt;&amp;rsquo;s jumping is pretty unique: once you get the Hi-Jump Boots you can actually jump as high as the height of the screen. To account for this, the game&amp;rsquo;s gravity is lower than it would be on Earth (which fits since you&amp;rsquo;re on an alien planet and you&amp;rsquo;re wearing a spacesuit made by an ancient race of magical bird-people) so you have time to control your trajectory in the air. The camera also assists by moving upward slightly faster than you do, revealing more of the area above you when you jump. It seems like it would be disorienting but it feels completely natural, and it takes the unique qualities of the game into account.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/03/super-metroid.png" width="512" height="224" alt="Side-by-side comparison of camera placement when standing and jumping in Super Metroid"/&gt;&lt;p&gt;The original &lt;em&gt;Metroid&lt;/em&gt; is a great counter-example because it does the opposite. As you move upwards the camera lags behind and it actually shows more of the area below you than above, and vice versa. Simply centering the camera on Samus would have (I assume) been easier to program and more functional.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/03/metroid.png" width="512" height="480" alt="Samus jumping in Metroid"/&gt;&lt;p&gt;Another series worth mentioning is &lt;em&gt;Sonic the Hedgehog&lt;/em&gt;. Sonic loves to run &lt;strong&gt;very fast&lt;/strong&gt;, usually to the right. When you&amp;rsquo;re moving very fast, you don&amp;rsquo;t have a lot of time to react to oncoming obstacles, and if you&amp;rsquo;re usually running to the right, you don&amp;rsquo;t need to see much of the area to your left. Yet in the first three Sonic games the camera is centered on Sonic at all times, and in the 2010 game &lt;em&gt;Sonic the Hedgehog 4&lt;/em&gt; it lags behind and shows more of the area behind you than in front, which is even worse.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/03/sonic-4.jpg" width="450" height="253" alt="Screenshot of Sonic the Hedgehog 4"/&gt;&lt;p&gt;I replayed the first Sonic recently and noticed that because of a lack of reaction time, I denied my own wishes to run very fast and walked slowly to make sure I didn&amp;rsquo;t charge into the stinger of some giant robo-bee lurking just off-screen. Better camera placement probably wouldn&amp;rsquo;t completely solve this problem, but I bet it would help.&lt;/p&gt;

&lt;p&gt;So with these in mind I set out to optimize the camera for &lt;em&gt;The Mountaineers&lt;/em&gt;. The game is about climbing mountains and there are lots of vertical segments where you are mostly moving upward, so in these segments it&amp;rsquo;s nice to lead the camera and show more of the space above the player. This also allows me to do some fun things with the level design, like having deadly boulders that roll down from above as you climb. When I just had the camera centered all the time there would be less time to react and less room to maneuver, so it wasn&amp;rsquo;t as fun.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/03/the-mountaineers.png" width="512" height="480" alt="Screenshot of an oncoming boulder in The Moutaineers"/&gt;&lt;p&gt;(Yes, that&amp;rsquo;s the boulder from &lt;em&gt;Yoshi&amp;rsquo;s Island&lt;/em&gt;. It&amp;rsquo;s a placeholder. Shush.) Also since the game is mostly about forward motion, I lead the camera in the horizontal segments too (which is something that &lt;em&gt;Super Metroid&lt;/em&gt; also does well). If you change direction it then sweeps the camera in that direction faster than your movement speed, so that in a second it again reveals more of the area ahead of you than behind. Leading the camera can be really helpful and I&amp;rsquo;m surprised at how often it gets forgotten with modern games.&lt;/p&gt;

&lt;p&gt;For even more on the inner workings of cameras in platformers, here&amp;rsquo;s a nice little video from &lt;a href="http://shauninman.com"&gt;Shaun Inman&lt;/a&gt; on the camera in &lt;em&gt;Super Mario World&lt;/em&gt;:&lt;/p&gt;

&lt;iframe width="420" height="315" src="http://www.youtube.com/embed/TCIMPYM0AQg" frameborder="0"&gt;&lt;/iframe&gt;</description><link>https://stevecochrane.tumblr.com/post/46399433805</link><guid>https://stevecochrane.tumblr.com/post/46399433805</guid><pubDate>Tue, 26 Mar 2013 23:36:00 -0500</pubDate></item><item><title>NES-style Screen Transitions</title><description>&lt;p&gt;There&amp;rsquo;s a transition effect seen in a lot of NES games like Mega Man, Castlevania, and The Legend of Zelda where when the player reaches the edge of the screen, the camera sweeps over to reveal the next area. I&amp;rsquo;ve also used that effect for The Mountaineers, and it looks like this in animated GIF form:&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/03/screen-transition.gif" width="512" height="480" alt="Animation of the player moving from screen to screen in The Mountaineers"/&gt;&lt;p&gt;While there is some nostalgia at play here, of course, and while this was originally done because games at the time had very limited memory available, I&amp;rsquo;d argue that there are still good reasons for it. Rather than having an entire level stretch on and on, which can get overwhelming with more demanding action games, transitions like these can break the level into smaller, manageable chunks and more frequently provide the player with a sense of progress. Also, if the player is low on health or if this is used to telegraph danger ahead, it can provide suspense in a “I don&amp;rsquo;t want to see what&amp;rsquo;s behind that door” sort of way.&lt;/p&gt;

&lt;p&gt;In the Mega Man games this is very effective for building tension before each boss, and it gives the player a chance to pause and consider strategy. Imagine how less tense each showdown would be if you just immediately ran into the boss at the end of each stage.&lt;/p&gt;

&lt;h2&gt;Implementation&lt;/h2&gt;

&lt;p&gt;Rather than having the camera just follow the player all the time, I have an invisible “camera helper” that the camera follows instead, which usually sits on top of the player but which can allow the camera to move independently for things like this. Here&amp;rsquo;s what that same transition looks like with the invisible objects shown in red. The solid red block is the camera helper and the semi-transparent red block is the barrier between screens.&lt;/p&gt;

&lt;img src="http://stevecochrane.com/img/2013/03/screen-transition-guides.gif" width="512" height="480" alt="Animation of the player moving from screen to screen in The Mountaineers with guides visible"/&gt;&lt;ol&gt;&lt;li&gt;First, the camera&amp;rsquo;s boundaries are set so that the player can&amp;rsquo;t see beyond the barrier.&lt;/li&gt;
&lt;li&gt;When the player touches the barrier, immediately move the camera helper to the center of the screen.&lt;/li&gt;
&lt;li&gt;Temporarily remove the camera boundaries, and move the camera helper at a fixed speed toward the next screen.&lt;/li&gt;
&lt;li&gt;At the same time, move the player forward at a slower fixed speed, so that over the same period of time the player ends up slightly beyond the other side of the barrier.&lt;/li&gt;
&lt;li&gt;Once the camera helper has reached the center of the next screen, snap it back to the player and restore camera boundaries.&lt;/li&gt;
&lt;/ol&gt;</description><link>https://stevecochrane.tumblr.com/post/45239952252</link><guid>https://stevecochrane.tumblr.com/post/45239952252</guid><pubDate>Tue, 12 Mar 2013 21:41:10 -0500</pubDate></item><item><title>Properly Upscaling Pixel Art in Flash Fullscreen Mode is Difficult</title><description>&lt;p&gt;For fullscreen mode in a game with pixel art, I want one thing:
&lt;strong&gt;upscale as many times as possible while maintaining the aspect ratio &lt;em&gt;and&lt;/em&gt; pixel ratio, with no distortion.&lt;/strong&gt;&lt;/p&gt;

&lt;div class="fig"&gt;&lt;img src="http://stevecochrane.com/img/2013/02/sprite-scaling.png" width="480" height="210" alt="A sprite at 1x, 2x, and 3x magnfication"/&gt;&lt;/div&gt;

&lt;p&gt;Simple, right? It seems like boilerplate functionality that Flash should provide but it&amp;rsquo;s not, and it was surprisingly hard for me to find any resources on how to do this.&lt;/p&gt;

&lt;p&gt;My game runs at a base resolution of 256x240 (the standard &lt;a href="http://en.wikipedia.org/wiki/Nintendo_entertainment_system"&gt;NES&lt;/a&gt; resolution, naturally) and it&amp;rsquo;s normally set to display at 2x scale for a result of 512x480. Let&amp;rsquo;s say I enter fullscreen mode on a 24&amp;quot; Cinema Display with a resolution of 1920x1200. The height is the constraint here, and in this case 1200 divides evenly by 240, so we can just scale up to 5x and keep the width proportionate. Easy.&lt;/p&gt;

&lt;div class="fig"&gt;&lt;img src="http://stevecochrane.com/img/2013/02/mockup-cinema-display.png" width="480" height="300" alt="Mockup of the game upscaled to fit a Cinema Display"/&gt;&lt;/div&gt;

&lt;p&gt;It gets tricky when the display&amp;rsquo;s dimensions are not exact multiples. For a (non-Retina) 15&amp;quot; MacBook Pro with a resolution of 1440x900, the dimensions aren&amp;rsquo;t evenly divisible so if you fill all of the available width, you&amp;rsquo;ll get distorted pixel art.&lt;/p&gt;

&lt;p&gt;What I want is to scale up as many times as we can while preserving the pixel ratio, and no further.&lt;/p&gt;

&lt;div class="fig"&gt;&lt;img src="http://stevecochrane.com/img/2013/02/mockup-macbook-pro.png" width="480" height="300" alt="Mockup of the game upscaled to fit a MacBook Pro"/&gt;&lt;/div&gt;

&lt;p&gt;Again, it seems simple, but I wasn&amp;rsquo;t able to find &lt;em&gt;anything&lt;/em&gt; online detailing how to do this. Here are the commonly-used fullscreen methods that I&amp;rsquo;ve found for Flash games, none of which are ideal:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Flash&amp;rsquo;s built-in fullscreen methods and set stage.scaleMode to EXACT_FIT.&lt;/strong&gt; This will set your game to display as large as the screen can allow. Aspect ratio is preserved, but pixel ratio is not, so as in my MacBook Pro example you&amp;rsquo;ll get distortion if the screen dimensions aren&amp;rsquo;t cleanly divisible.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change the size of the play area to fit the full dimensions of the screen.&lt;/strong&gt; This can have a serious impact on gameplay and it&amp;rsquo;s not for me, but there are fans of this approach. &lt;a href="http://www.funstormgames.com/blog/2011/10/flixel-fullscreen-mode-and-resizeable-windows/"&gt;Here&amp;rsquo;s a nice tutorial about it&lt;/a&gt; from Wolfgang Graebner of Funstorm Games.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use stage.fullScreenSourceRect.&lt;/strong&gt; This is promising since it uses hardware acceleration and it runs very smoothly, but it anti-aliases the content (a deal-breaker for pixel art) and there&amp;rsquo;s no way to change that.&lt;/p&gt;

&lt;p&gt;All of these are problematic because the game object is the highest addressable object, and that limits what you can do with it. So I made a new container object that sits &lt;em&gt;above&lt;/em&gt; the game object, which can detect the available width and height of the display and then scale and position the game perfectly. And it works!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Except,&lt;/em&gt; this approach breaks the preloader, or at least it does for my Flixel games. You can see it in action here with &lt;a href="http://stevecochrane.com/ludum-dare/intergalactic-curling-league/fullscreen/"&gt;a fullscreen-enabled edition of Intergalactic Curling League&lt;/a&gt; (click to focus and then hit F to toggle fullscreen) though you just get a white screen for a few seconds while the game loads, which is a major sadface. I was likely going to distribute The Mountaineers as an app anyway, but this does limit the usefulness of the technique quite a bit.&lt;/p&gt;

&lt;p&gt;With that said, if this is still of interest to anybody I&amp;rsquo;ve published it to GitHub as &lt;a href="https://github.com/stevecochrane/Fussy-Flash-Fullscreen"&gt;Fussy Flash Fullscreen&lt;/a&gt;. If you&amp;rsquo;re distributing a standalone/projector/AIR Flash game (or if you can figure out how to get this technique working with a preloader) I hope this saves you some time so that you don&amp;rsquo;t have to burn a whole weekend on it like I did!&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/44121383356</link><guid>https://stevecochrane.tumblr.com/post/44121383356</guid><pubDate>Tue, 26 Feb 2013 22:57:00 -0600</pubDate></item><item><title>Pain and Death</title><description>&lt;p&gt;After adding some hazards to my game it became pretty noticeable that I didn&amp;rsquo;t have a sprite for the “hurt” and “death” states. Here&amp;rsquo;s a bit on my process for making one, and as usual it starts with some research.&lt;/p&gt;

&lt;p&gt;For web design I usually start with my “design scrapbook” (tons of tagged screenshots of websites that I&amp;rsquo;ve collected over the years) or searching for a specific concept on &lt;a href="http://patterntap.com"&gt;Pattern Tap&lt;/a&gt;. For pixel art that means going through my small-but-growing pixel art scrapbook, booting up various games that I have handy, or looking up games at &lt;a href="http://www.giantbomb.com"&gt;Giant Bomb&lt;/a&gt;. For example when I wanted to draw a reindeer, I searched the Giant Bomb wiki for “reindeer”, got &lt;a href="http://www.giantbomb.com/reindeer/92-2263/"&gt;a list of every videogame with reindeer&lt;/a&gt;, and then went from there.&lt;/p&gt;

&lt;p&gt;After researching hurt/death animations I found that there are two kinds of death animation that practically every platformer uses:&lt;/p&gt;

&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Cute and silly&lt;/strong&gt; — the protagonist makes a googly-eyed face and usually falls off the bottom of the screen.
&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Violent and realistic&lt;/strong&gt; — the protagonist is knocked to the ground and lays still.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Here are some of my favorites from NES games in the “cute” style:&lt;/p&gt;

&lt;div class="fig"&gt;
&lt;img src="http://stevecochrane.com/img/2013/02/super-mario-bros-3.png" width="512" height="480" alt="Screenshot of Super Mario Bros. 3 death animation"/&gt;&lt;p&gt;Super Mario Bros. 3&lt;/p&gt;
&lt;/div&gt;

&lt;div class="fig"&gt;
&lt;img src="http://stevecochrane.com/img/2013/02/hammerin-harry.png" width="512" height="480" alt="Screenshot of Hammerin' Harry death animation"/&gt;&lt;p&gt;Hammerin&amp;rsquo; Harry&lt;/p&gt;
&lt;/div&gt;

&lt;div class="fig"&gt;
&lt;img src="http://stevecochrane.com/img/2013/02/panic-restaurant.png" width="512" height="480" alt="Screenshot of Panic Restaurant death animation"/&gt;&lt;p&gt;Panic Restaurant&lt;/p&gt;
&lt;/div&gt;

&lt;div class="fig"&gt;
&lt;img src="http://stevecochrane.com/img/2013/02/q-bert.png" width="512" height="480" alt="Screenshot of Q*Bert death animation"/&gt;&lt;p&gt;Q*bert&lt;/p&gt;
&lt;/div&gt;

&lt;div class="fig"&gt;
&lt;img src="http://stevecochrane.com/img/2013/02/donkey-kong-jr.png" width="512" height="480" alt="Screenshot of Donkey Kong Jr. death animation"/&gt;&lt;p&gt;Donkey Kong Jr.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;For my own I took the basic idea of the asymmetrical googly-eyes and flailing limbs of Donkey Kong Jr. and tried it in my own style.&lt;/p&gt;

&lt;div class="fig"&gt;
&lt;img src="http://stevecochrane.com/img/2013/02/the-mountaineers.png" width="512" height="480" alt="Screenshot of The Mountaineers death animation"/&gt;&lt;/div&gt;

&lt;p&gt;I wish I could have some modern examples here but the small handful of modern pixelated 2D games I&amp;rsquo;ve played recently mostly adhere to established styles, as I&amp;rsquo;m doing. Feel free to add more in the comments though!&lt;/p&gt;

&lt;p&gt;The death animation is one of those details that can be overlooked, but it&amp;rsquo;s a great opportunity to add some personality and charm.&lt;/p&gt;</description><link>https://stevecochrane.tumblr.com/post/42987881405</link><guid>https://stevecochrane.tumblr.com/post/42987881405</guid><pubDate>Wed, 13 Feb 2013 00:47:00 -0600</pubDate></item></channel></rss>
