<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>General on Games From Within</title><link>https://gamesfromwithin.com/category/general/</link><description>Recent content in General on Games From Within</description><generator>Hugo</generator><language>en-us</language><copyright>2004–2026 Noel Llopis</copyright><lastBuildDate>Mon, 02 Jan 2017 00:00:00 +0000</lastBuildDate><atom:link href="https://gamesfromwithin.com/category/general/index.xml" rel="self" type="application/rss+xml"/><item><title>Game Development Income</title><link>https://gamesfromwithin.com/game-development-income/</link><pubDate>Mon, 02 Jan 2017 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/game-development-income/</guid><description>&lt;p&gt;Inspired by &lt;a href="https://twitter.com/GreyAlien"&gt;Jake Birkett&lt;/a&gt;&amp;rsquo;s &lt;a href="https://twitter.com/GreyAlien/status/815949620727709696"&gt;game dev income chart&lt;/a&gt;, I decided to dig out my own data and make a similar chart. I figured it would be a good way to start the year looking at a retrospective of my time as an independent developer.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Game income2" loading="lazy" src="https://gamesfromwithin.com/game-development-income/images/game_income2.png"&gt;&lt;/p&gt;
&lt;p&gt;Some interesting observations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I made zero income in my first two years as as independent developer! I was supplementing my income writing a column for Game Developer Magazine, teaching classes, and doing some contracting. I even started interviewing thinking I would have to give up the indie life and go back to work for a company. I always tell new game developers to be ready not to make any money for a while for this reason.&lt;/li&gt;
&lt;li&gt;Flower Garden seems to have a reasonable tail in spite of minimal updates. Every so often I feel a bit guilty for not doing more with it, but even if I wanted to spend time on it, I can&amp;rsquo;t think of anything that would increase sales.&lt;/li&gt;
&lt;li&gt;Subterfuge is a blip in the radar. But what&amp;rsquo;s even worse, Subterfuge took 3.5 years to make, whereas Flower Garden was around 2 years (including all updates).&lt;/li&gt;
&lt;li&gt;The US tax system isn&amp;rsquo;t really set up for people with really spikey income like this.&lt;/li&gt;
&lt;li&gt;I need to make games more quickly.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here&amp;rsquo;s to releasing a game in 2017 that is visible on that chart!&lt;/p&gt;</description><content:encoded><![CDATA[<p>Inspired by <a href="https://twitter.com/GreyAlien">Jake Birkett</a>&rsquo;s <a href="https://twitter.com/GreyAlien/status/815949620727709696">game dev income chart</a>, I decided to dig out my own data and make a similar chart. I figured it would be a good way to start the year looking at a retrospective of my time as an independent developer.</p>
<p><img alt="Game income2" loading="lazy" src="/game-development-income/images/game_income2.png"></p>
<p>Some interesting observations:</p>
<ul>
<li>I made zero income in my first two years as as independent developer! I was supplementing my income writing a column for Game Developer Magazine, teaching classes, and doing some contracting. I even started interviewing thinking I would have to give up the indie life and go back to work for a company. I always tell new game developers to be ready not to make any money for a while for this reason.</li>
<li>Flower Garden seems to have a reasonable tail in spite of minimal updates. Every so often I feel a bit guilty for not doing more with it, but even if I wanted to spend time on it, I can&rsquo;t think of anything that would increase sales.</li>
<li>Subterfuge is a blip in the radar. But what&rsquo;s even worse, Subterfuge took 3.5 years to make, whereas Flower Garden was around 2 years (including all updates).</li>
<li>The US tax system isn&rsquo;t really set up for people with really spikey income like this.</li>
<li>I need to make games more quickly.</li>
</ul>
<p>Here&rsquo;s to releasing a game in 2017 that is visible on that chart!</p>
]]></content:encoded></item><item><title>Most Influential Games (on Me)</title><link>https://gamesfromwithin.com/most-influential-games-on-me/</link><pubDate>Wed, 28 Dec 2016 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/most-influential-games-on-me/</guid><description>&lt;p&gt;I&amp;rsquo;ve been wanting to write about the project that I&amp;rsquo;m working on at the moment, but unfortunately we haven&amp;rsquo;t been able to announce it this year, so that will have to wait until January. I could do one of those year retrospective lists, but to be honest, I haven&amp;rsquo;t played enough digital or physical games from 2016 to be very interesting or representative.&lt;/p&gt;
&lt;p&gt;Instead, I&amp;rsquo;m going to try something a bit different. I want to highlight the games that have had the most influence on me as a game maker. Not the best games, not the most memorable games, not the most impressive games, but the ones that have directly influenced me and the games I&amp;rsquo;ve made.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I&rsquo;ve been wanting to write about the project that I&rsquo;m working on at the moment, but unfortunately we haven&rsquo;t been able to announce it this year, so that will have to wait until January. I could do one of those year retrospective lists, but to be honest, I haven&rsquo;t played enough digital or physical games from 2016 to be very interesting or representative.</p>
<p>Instead, I&rsquo;m going to try something a bit different. I want to highlight the games that have had the most influence on me as a game maker. Not the best games, not the most memorable games, not the most impressive games, but the ones that have directly influenced me and the games I&rsquo;ve made.</p>
<p>It was actually really hard coming up with this list. I initially had games that I absolutely love as a player and I spent many hours playing them. When I started fleshing things out, I realized they didn&rsquo;t directly influence me as a designer, so I ended up cutting them, even though it was really hard to do that (anyone who knows me will wonder why <a href="https://en.wikipedia.org/wiki/Fallout_(video_game)">Fallout</a> or <a href="https://en.wikipedia.org/wiki/Master_of_Orion">Master of Orion</a> are missing from this list).</p>
<h2 id="sorcery-1985">Sorcery (1985)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/YI0TKuWh2TA" frameborder="0" allowfullscreen></iframe>
<p>This game single-handedly set me in the course of making games. I saw Sorcery at a friend&rsquo;s house, and I knew I had to make my own games, even before I owned a computer. I was blown away with everything about it: The sense of exploration and adventure, the atmosphere, the graphics, and the gameplay. I even dared replay this game recently and it mostly stands the test of time (although the tunnels over water are as frustrating as always).</p>
<h2 id="the-hobbit-1982">The Hobbit (1982)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/SZsyv5aKw4U" frameborder="0" allowfullscreen></iframe>
<p>This is the oldest game in the list, but I actually didn&rsquo;t discover until later. The Hobbit, along with other text adventures, changed my preconceptions of what games could do. I felt I was free to walk around and interact with the world in any way I wanted in a way that graphic adventure games wouldn&rsquo;t let me.</p>
<p>I also learned the power of text in games, and how some good paragraphs of text can be much more evocative than graphics.</p>
<p>All of this led to the first serious game I completed: <a href="http://computeremuzone.com/ficha.php?id=695">La mÃ¡quina del tiempo</a> (which was an adaptation of H.G. Well&rsquo;s <a href="https://en.wikipedia.org/wiki/The_Time_Machine">The Time Machine</a>).</p>
<h2 id="macadam-bumper-1985">Macadam Bumper (1985)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/SOE6zr8qRbQ" frameborder="0" allowfullscreen></iframe>
<p>This was the first game I played that allowed me to create my own levels (I suppose that in another world I should have played the earlier <a href="https://en.wikipedia.org/wiki/Pinball_Construction_Set">Pinball Construction Set</a>). For a budding game creator, this was a dream come true. I remember spending many afternoons with my cousin making our own version of a pinball table at the local arcade. I didn&rsquo;t play it much beyond that, but the seed of games with built-in level creation had been planted.</p>
<p>Casey&rsquo;s Contraptions is clearly the game I created that was most directly influenced by Macadam Bumper.</p>
<h2 id="sim-city-1989">Sim City (1989)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/A54blk-ojA4" frameborder="0" allowfullscreen></iframe>
<p>The idea of a game being a simulation you can interact with was completely new to me, and I was instantly drawn to Sim City (even with the horrendous initial graphics). Later versions became much prettier and refined, but the basic idea remained the same. As a game designer, simulations are probably my favorite genre, and I&rsquo;m planning on exploring them more in the future.</p>
<h2 id="magic-the-gathering-1994">Magic: The Gathering (1994)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/SPitPk-qiaA" frameborder="0" allowfullscreen></iframe>
<p>Another love at first sight. So many ideas from this game were new to me! Customization, card interactions, expandability&hellip; I also saw first hand how a game can grow beyond being a game that you play and &ldquo;finish&rdquo; to a full hobby that becomes part of your life. I&rsquo;ve taken some breaks from the game over the years, but even today I&rsquo;m playing it quite actively.</p>
<p>In spite of its flaws, I consider it one of the best and deepest games I&rsquo;ve ever played.</p>
<p>There&rsquo;s a lot I could write about Magic, but I&rsquo;m going to save it for another (or multiple) posts down the line.</p>
<h2 id="braid-2008">Braid (2008)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/OqIKs_nRCLg" frameborder="0" allowfullscreen></iframe>
<p><a href="http://braid-game.com/">Braid</a> (along with <a href="https://worldofgoo.com/">World of Goo</a>) really showed me how an independent developer can make not just similar, but better and different games than traditional companies. This was particularly relevant to me at the time since it was around the time I had quit my full-time job to go independent and make games with a friend.</p>
<p>Playing through Braid and listening to <a href="https://www.youtube.com/watch?v=gwsi7TEQxKc">Jon&rsquo;s</a> <a href="https://www.youtube.com/watch?v=d0m0jIzJfiQ">talks</a> also opened my eyes to the idea of deliberate design. In Braid everything has a reason to be where it is. Every puzzle explores a slightly different consequence of the rules of the game (<a href="http://gamedesignreviews.com/reviews/braid-understanding-difficulty/">even when they&rsquo;re not very player friendly</a>). That&rsquo;s an important idea I&rsquo;ve tried to carry with me since then, and it definitely had an impact in <a href="http://subterfuge-game.com/">Subterfuge</a>.</p>
<h2 id="binding-of-isaac-2011">Binding of Isaac (2011)</h2>
<iframe width="560" height="315" src="https://www.youtube.com/embed/c5PLC6nmOO4" frameborder="0" allowfullscreen></iframe>
<p>Binding of Isaac is a bit of an odd duck in this list. I&rsquo;m usually not a big fan of games that rely on speed and reflexes, yet Binding of Isaac is very much a twitch game. It&rsquo;s also a game that was not love at first sight. I played it for a bit and put it down. I even remember asking on Twitter what&rsquo;s so good about it. Fortunately some friends convinced me to give it another try, thinking about it less as an arcade game and more as the rogue-like it really is. At that point everything clicked in and I was hooked.</p>
<p>It was my first and strongest experience with rogue-like games (sorry <a href="http://www.spelunkyworld.com/">Spelunky</a>, I tried but never really got into you). I fell in love with the idea of games that can be completed relatively quickly, but are intended to be replayed over and over as things change from play to play.</p>
<h2 id="observations">Observations</h2>
<p>I had no idea what list I was going to come up with when I started writing this, so it&rsquo;s quite interesting to see the date distribution. There are more games from the 80s in this list than any other decade. That&rsquo;s to be expected since that was my first contact with games and that&rsquo;s when I had the strongest influences.</p>
<p>What&rsquo;s more interesting is that all decades since then are represented. I consider myself to be pretty jaded with respect to games (and movies and books), so it takes a lot for me to take notice of something and get excited about it. So I&rsquo;m really glad to see that there are standout games recently that wow me with something new and awesome.</p>
<p>Another interesting point is that there are no Japanese games in this list. Most game developers I know (especially in the US), grew up with Nintendo and Sega consoles and playing lots of Japanese games there. On the other hand, I never played more than 5 minutes of a Mario, Zelda, or Castlevania game! Instead, I grew up on Jet Set Willy, Roland in Time, and Dizzy. Whether you want it or not, that definitely changes the way I see and interpret games today (it never happened, but maybe I&rsquo;ll revisit the idea in the future).</p>
<p>At one point I was even going to use that source of uniqueness to make a game based around my love of the old games I grew up with. The idea was to present something familiar but that would be different to most people that had a different gaming background than me.</p>
<p>Finally, the game I&rsquo;m currently working on (which I hope we can announce any day now) has very clear influences from games on this list:</p>
<ul>
<li>Strong game element interactions and combinations(Magic: The Gathering).</li>
<li>Some simulation elements (Sim City).</li>
<li>Deliberate design (Braid).</li>
<li>Rogue-like structure (Binding of Isaac).</li>
</ul>
<p>Hopefully next post I can finally talk about this super-duper secret project.</p>
<p>Happy new year!</p>]]></content:encoded></item><item><title>Best Board Games of 2015</title><link>https://gamesfromwithin.com/best-board-games-of-2015/</link><pubDate>Tue, 19 Jan 2016 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/best-board-games-of-2015/</guid><description>&lt;p&gt;My tastes in board games are always evolving and changing, and 2015 was a very different year that marked a turning point for me. Looking at my play statistics, it&amp;rsquo;s clear that something changed: I played fewer games than in previous years, and, most importantly, I played many fewer new games than other years.&lt;/p&gt;
&lt;p&gt;2015 was the year when I started focusing on playing more often the games I loved, and stopped chasing after trying all the hot new games.&lt;/p&gt;
&lt;p&gt;Towards the end of 2014 it dawned on me that most new board games I was playing were ranging from bad to just OK, and only a selected few made it into the good or very good category. So why was I spending so much time and energy playing new games? It&amp;rsquo;s not like I had played the old ones too much and was done with them. As a matter of fact, I was frustrated with how little I was playing them, and how, if I only play a game once every six months or a year, I&amp;rsquo;m basically starting over from scratch. So I was always playing games at a very superficial level, without being able to get deeper into them. Not to mention it&amp;rsquo;s a pleasure to pull out a game and not have to worry about reading or explaining the rules!&lt;/p&gt;
&lt;p&gt;2015 was the year of depth for me.&lt;/p&gt;
&lt;p&gt;Of course depth comes at the cost of breath, so when it comes time to make a best-of list for 2015, I don&amp;rsquo;t have nearly as many different games to draw on as other years. Because of that, I&amp;rsquo;ll limit my list to just 3 games.&lt;/p&gt;</description><content:encoded><![CDATA[<p>My tastes in board games are always evolving and changing, and 2015 was a very different year that marked a turning point for me. Looking at my play statistics, it&rsquo;s clear that something changed: I played fewer games than in previous years, and, most importantly, I played many fewer new games than other years.</p>
<p>2015 was the year when I started focusing on playing more often the games I loved, and stopped chasing after trying all the hot new games.</p>
<p>Towards the end of 2014 it dawned on me that most new board games I was playing were ranging from bad to just OK, and only a selected few made it into the good or very good category. So why was I spending so much time and energy playing new games? It&rsquo;s not like I had played the old ones too much and was done with them. As a matter of fact, I was frustrated with how little I was playing them, and how, if I only play a game once every six months or a year, I&rsquo;m basically starting over from scratch. So I was always playing games at a very superficial level, without being able to get deeper into them. Not to mention it&rsquo;s a pleasure to pull out a game and not have to worry about reading or explaining the rules!</p>
<p>2015 was the year of depth for me.</p>
<p>Of course depth comes at the cost of breath, so when it comes time to make a best-of list for 2015, I don&rsquo;t have nearly as many different games to draw on as other years. Because of that, I&rsquo;ll limit my list to just 3 games.</p>
<h2 id="honorable-mention-magic-the-gathering">Honorable mention: <a href="http://magic.wizards.com/">Magic: The Gathering</a></h2>
<p><img alt="Cardart H0njz9txi1" loading="lazy" src="/best-board-games-of-2015/images/cardart_H0njz9txi1.jpg"></p>
<p>Magic: the Gathering and I go a long way back. I&rsquo;ve played Magic on and off for over 20 years and it&rsquo;s irrevocably intertwined with a lot of the different stages of my life. It has also strongly influenced me as a game designer.</p>
<p>But why list Magic as one of the best games of this year? Because I started playing seriously it again and it&rsquo;s an amazing game, in every way better than it was in 1995. Standard competitive play is constantly evolving and adapting, and booster draft is very balanced, fun, and skill-intensive. Wizards of the Coast did an amazing job with the Khans of Tarkir, Fate Reforged, Dragons of Tarkir, and Origins sets, and even though Battle for Zendikar was a big let down, I have my hopes up for Shadows Over Innistrad.</p>
<h2 id="3-the-gallerist">3. <a href="https://www.boardgamegeek.com/boardgame/125153/gallerist">The Gallerist</a></h2>
<p><img alt="Pic2503200" loading="lazy" src="/best-board-games-of-2015/images/pic2503200.png"></p>
<p>Even though I&rsquo;m moving away from complex games, one of my favorite games of 2015 was The Gallerist by Vital Lacerda. Kanban, by the same author, snuck in <a href="/noels-best-board-games-of-all-time-2014-edition/">my top games of all time list</a> that I created last year, and I like the Gallerist better. The theme is quite unique, the mechanics fresh and different, and you&rsquo;re hardly ever locked out of a particular action, which is something I find very frustrating in games. The game feels like a giant puzzle with lots of gears where you need to figure out how to make the most money before the end.</p>
<p>To top it off, <a href="http://amyshamansky.com/">my wife Amy</a> had a painting accepted in the abstract paintings category, so it&rsquo;s really cool to play a game with a piece of her art in it.</p>
<h2 id="2-grand-austria-hotel">2. <a href="https://www.boardgamegeek.com/boardgame/182874/grand-austria-hotel">Grand Austria Hotel</a></h2>
<p><img alt="Pic2648647 md" loading="lazy" src="/best-board-games-of-2015/images/pic2648647_md.jpg"></p>
<p>I love it when a neat theme meets good design into a very cohesive game. That&rsquo;s exactly what happened in Grand Austria Hotel, and somehow, it manages to go beyond the usual resource-conversion-to-points-engine to something fairly unique and interesting. Two warnings with this game though: 1) It can be a bit brain-burning towards the end with all the bonus actions, and 2) I would avoid playing this at full player count. There&rsquo;s a fair amount of downtime, and the board state would probably change too much between turns. It worked great at two players and I suspect it would be good with three as well.</p>
<h2 id="1-pandemic-legacy">1. <a href="https://www.boardgamegeek.com/boardgame/161936/pandemic-legacy-season-1">Pandemic Legacy</a></h2>
<p><img alt="PandemicLegacy red" loading="lazy" src="/best-board-games-of-2015/images/PandemicLegacy-red.jpg"></p>
<p>(Spoiler free) And the #1 game for 2015 is&hellip; Pandemic Legacy! But&hellip; this is not the glowing review you may be expecting of the game that rocketed up the BGG rankings and was the first game to displace the Twilight Struggle from the top spot in many years.</p>
<p>I love <a href="https://www.boardgamegeek.com/boardgame/30549/pandemic">Pandemic</a> and I love <a href="https://www.boardgamegeek.com/boardgameexpansion/40849/pandemic-brink">the</a> <a href="https://www.boardgamegeek.com/boardgameexpansion/137136/pandemic-lab">Pandemic</a> <a href="https://www.boardgamegeek.com/boardgameexpansion/137136/pandemic-lab">expansions</a>. My wife and I play it frequently and it&rsquo;s always a fun experience, teetering between success and world collapse. We can play it over and over. None of this should be a surprise since <a href="/noels-best-board-games-of-all-time-2014-edition/">Pandemic was #6 of my all-time games list from last year</a>.</p>
<p>How about Pandemic Legacy? Frankly, if I have to choose, I&rsquo;ll pick regular Pandemic. Pandemic Legacy is a nice little distraction. It&rsquo;s a sequence of games where the rules keep changing a bit, sometimes half way through a game. If I didn&rsquo;t already know and love Pandemic, I might even find it annoying. We&rsquo;re only about half way through the campaign, but I feel that nothing we do has a meaningful impact in the overall storyline. Things are going to happen independently of what you do, and you&rsquo;re just going to reveal the next card in the legacy deck.</p>
<p>Still, is Pandemic Legacy fun? Yes, but because it&rsquo;s Pandemic. It&rsquo;s good enough to take the #1 spot for 2015 for me. But plain Pandemic is better and it&rsquo;s the place you should start if you haven&rsquo;t already.</p>
<p>How about you? Any interesting picks for you top board games of 2015?</p>]]></content:encoded></item><item><title>Noel's Best Board Games of All Time - 2014 Edition</title><link>https://gamesfromwithin.com/noels-best-board-games-of-all-time-2014-edition/</link><pubDate>Sun, 04 Jan 2015 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/noels-best-board-games-of-all-time-2014-edition/</guid><description>&lt;p&gt;There is no doubt that my game tastes are changing over time. Last year I was very much in love with point-salad games, and now I&amp;rsquo;m craving games with interesting player interactions or economic systems. This list is my attempt at capturing my top 20 favorite games at the end of 2014. It should be very interesting to compare it with the 2015 edition and see what has changed.&lt;/p&gt;
&lt;p&gt;This list was inspired by &lt;a href="https://boardgamegeek.com/geeklist/182599/casualgods-3rd-annual-top-20-games-all-time"&gt;Casualgod&amp;rsquo;s 3rd Annual Top 20 Games of All Time&lt;/a&gt;. David and I have a lot of overlapping tastes, so if you like what you see here, make sure you check out his list as well.&lt;/p&gt;</description><content:encoded><![CDATA[<p>There is no doubt that my game tastes are changing over time. Last year I was very much in love with point-salad games, and now I&rsquo;m craving games with interesting player interactions or economic systems. This list is my attempt at capturing my top 20 favorite games at the end of 2014. It should be very interesting to compare it with the 2015 edition and see what has changed.</p>
<p>This list was inspired by <a href="https://boardgamegeek.com/geeklist/182599/casualgods-3rd-annual-top-20-games-all-time">Casualgod&rsquo;s 3rd Annual Top 20 Games of All Time</a>. David and I have a lot of overlapping tastes, so if you like what you see here, make sure you check out his list as well.</p>
<h2 id="20-arkham-horror"><a href="https://boardgamegeek.com/boardgame/15987/arkham-horror">20. Arkham Horror</a></h2>
<p><img alt="Ah" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/ah1.jpg"></p>
<p>I make no claims this is a good game. However, this game is an amazing experience. The cooperative aspect is very important, and it&rsquo;s definitely a game that you get better the more you play.</p>
<p>Our first few games were way too long (3-4 hours), but once we got the rules down, now we can knock a game out in 2 hours or less.</p>
<p>The expansions add a lot of much-welcome variety. My favorite way of playing with them is to focus on each expansion, by just using about half the cards from the base game, and the rest from the expansion. That way each expansion shines to the maximum, with a lot of encounters being directly relevant to the theme of the game. Mixing them all just dilutes the experience and makes it a worse game than just plain base game.</p>
<h2 id="19-keyflower"><a href="https://boardgamegeek.com/boardgame/122515/keyflower">19. Keyflower</a></h2>
<p><img alt="Keyflower" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/keyflower3.jpg"></p>
<p>The rating for Keyflower could change quite a bit (up or down) simply because I haven&rsquo;t played it enough. My plays of it have been great, and I&rsquo;m looking forward to playing it a lot more.</p>
<p>The mix of bidding on tiles and using them at the same time is brilliant. Knowing some of the winter tiles ahead of times let&rsquo;s you plan more strategically for the end of game scoring. At least for the first few plays, this is probably best with 3 players, otherwise it&rsquo;s too many villages to keep track of.</p>
<h2 id="18-kanban-automotive-revolution"><a href="https://boardgamegeek.com/boardgame/109276/kanban-automotive-revolution">18. Kanban: Automotive Revolution</a></h2>
<p><img alt="Kanban" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/kanban.jpg"></p>
<p>This is the only entry in this list for a 2014 game, and it wasn&rsquo;t even part of the original list when I first put it together. However, a couple more plays quickly shot this up the ranks. I wouldn&rsquo;t be surprised to see this higher up in next year&rsquo;s list.</p>
<p>Kanban is a complex game, and on the surface like the kind of games I&rsquo;ve been getting away from recently. I don&rsquo;t like games that are complex for complexity sake (like Madeira), but Kanban pulls it all together and makes it work very well.</p>
<p>There are a lot of things going on on the board, but each department is quite simple. The complexity comes in how to put together all the actions in the most efficient way. I&rsquo;m four plays into this game and still learning new games.</p>
<p>Also, each play is quite different given the meeting goals and end of game bonus. Variability between games is a theme that will appear over and over in this list.</p>
<h2 id="17-notre-dame"><a href="https://boardgamegeek.com/boardgame/25554/notre-dame">17. Notre Dame</a></h2>
<p><img alt="Notredame" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/notredame.jpg"></p>
<p>One of my favorite Feld games (Castles of Burgundy barely missed the list). It plays in about an hour, the card drafting adds a nice limitation on your actions and keeps you very interested in what your neighbors are doing.</p>
<p>The extra cards in the mini-expansion make the game much better since it&rsquo;s more varied from game to game.</p>
<h2 id="16-the-palaces-of-carrara"><a href="https://boardgamegeek.com/boardgame/129948/palaces-carrara">16. The Palaces of Carrara</a></h2>
<p><img alt="Carrara" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/carrara.jpg"></p>
<p>I have to admit that my first play of this was underwhelming, but repeated plays quickly turned it around, and eventually pushed it all the way to #16.</p>
<p>Variability in this game is huge and no two games are alike. You have to re-evaluate everything depending on the scoring cards that come up for each game. Sometimes you build wide, sometimes you go tall, sometimes you focus on some buildings, or cities, or&hellip; The resource market is very simple and interesting, and the bits are great too.</p>
<p>Word of advice: Ignore the basic game. Sure, play with the basic goals once, but with the rest of the advanced rules (not moving the wheel, upgrading buildings, 8-point buildings, etc). I didn&rsquo;t and I almost missed out on this gem of a game.</p>
<h2 id="15-in-the-year-of-the-dragon"><a href="https://boardgamegeek.com/boardgame/31594/year-dragon">15. In the Year of the Dragon</a></h2>
<p><img alt="Ityotd" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/ityotd.jpg"></p>
<p>This is my other Feld on the top 20, and not surprisingly, it&rsquo;s from the same period as Notre Dame. It&rsquo;s still pretty focused, and quite different than most other games: You see all the disasters ahead of time, it&rsquo;s a matter of planning around them, maximizing scoring opportunities, and fighting everybody else who is trying to do the same thing. Deliciously tight and it plays great with 5 (and also great at lower player counts).</p>
<h2 id="14-race-for-the-galaxy"><a href="https://boardgamegeek.com/boardgame/28143/race-galaxy">14. Race for the Galaxy</a></h2>
<p><img alt="Rftg" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/rftg.jpg"></p>
<p>Yet another game that is hugely variable from play to play. Here you have some control (through Exploring) but ultimately it comes down to what you find and how you use it.</p>
<p>This is one of the rare games that has simultaneous action selection that I actually like, probably because other people&rsquo;s choices can only benefit you, and never negate your whole turn (unless you tried to get really cute).</p>
<p>I haven&rsquo;t even started playing with the expansions, or with any of the alternate lines. Looking forward to many more plays of this.</p>
<h2 id="13-santiago"><a href="https://boardgamegeek.com/boardgame/8125/santiago">13. Santiago</a></h2>
<p><img alt="Santiago" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/santiago.jpg"></p>
<p>Santiago was a total surprise. Yes, I had read very good comments from my Geekbuddies, but I really wasn&rsquo;t expecting it would be that good.</p>
<p>Santiago embodies everything I&rsquo;m looking for in games these days: - Strong player interaction (you&rsquo;re competing but still need to rely on other people) - Short playtimes - Simple ruleset</p>
<p>The result is an amazing game that some people describe as vicious, but I choose to think as self-interested. You&rsquo;re in it to win, and other players will have to make it worth your while if they want you to do something in particular. It&rsquo;s great that the game can be won through smart bidding, being a hard negotiator as the Overseer, or just by saving up lots of money and being opportunistic.</p>
<h2 id="12-the-great-zimbabwe"><a href="https://boardgamegeek.com/boardgame/111341/great-zimbabwe">12. The Great Zimbabwe</a></h2>
<p><img alt="Zimbabwe" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/zimbabwe.jpg"></p>
<p>This is a very unique race game (the same way that Race for the Galaxy is a race) where you can change the ending line in exchange for some advantages. It features the kind of player interaction I like, where you&rsquo;re competing with people, but at the same time using each other&rsquo;s resources in a positive way.</p>
<p>Each game is very different depending on the map layout and which gods come out. The only downside is how suddenly the ending can arrive, and how it can be spotted a turn or two in advance and there&rsquo;s nothing that can be done to stop it.</p>
<p>My favorite player count for this is probably 3 or 4.</p>
<h2 id="11-troyes"><a href="https://boardgamegeek.com/boardgame/73439/troyes">11. Troyes</a></h2>
<p><img alt="Troyes" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/troyes.jpg"></p>
<p>I never made a top-20 list last year, but I think this would have ended up much higher on last year&rsquo;s edition. Unfortunately I only played it twice on 2014, so I&rsquo;m not surprised it slid down a bit. Maybe next year it&rsquo;ll go back up.</p>
<p>I love dice as inputs, coupled with dice-manipulation mechanics, and this game is all about that.</p>
<p>Extremely varied gameplay is again present here: Only a few cards come up in each game, that those completely determine how the game is played (along with the event cards). No two games are alike, although that sometimes can be a bad thing (I introduced a friend to this game and we ended up with punishing events and cards that didn&rsquo;t combine very well with each other).</p>
<p>I was a bit disappointed with the expansion, so those of you looking for it, I&rsquo;d say skip it and save all that money.</p>
<h2 id="10-ra"><a href="https://boardgamegeek.com/boardgame/12/ra">10. Ra</a></h2>
<p><img alt="Ra" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/ra.jpg"></p>
<p>By now this list has quite a few games with bidding mechanisms (and there will be more further down). Ra is the purest of them all in that it&rsquo;s only about bidding.</p>
<p>It&rsquo;s another one of those games with a very simple ruleset that I love (with a slightly complicated end-game scoring, but it&rsquo;s easy enough with the player mats).</p>
<p>The thing that makes Ra stand out is that the bidding is very &ldquo;chunky&rdquo;. You have four tiles and you can bid one of them. That&rsquo;s all. Sure, it makes valuing things easier than Medici, but that&rsquo;s not a bad thing.</p>
<h2 id="9-lord-of-the-rings-the-card-game"><a href="https://boardgamegeek.com/boardgame/77423/lord-rings-card-game">9. Lord of the Rings: The Card Game</a></h2>
<p><img alt="Lotr" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/lotr.jpg"></p>
<p>It&rsquo;s not surprisingly that an LCG is very variable, but I&rsquo;m always amazed at how completely different each scenario makes this game feel. And by that I don&rsquo;t mean that one scenario is more combat heavy and another one more questing heavy. It&rsquo;s that the new rules and events for each scenario change the game completely, and at the same time make it so extremely thematic. For example, in Journey Down the Anduin, at one point you get on a boat and you&rsquo;re not attacked by the enemies in the engaging area, but you draw an extra card during the encounter phase (because you&rsquo;re traveling so quickly).</p>
<p>I haven&rsquo;t tried this solo yet (which I hear is brutally hard), but it&rsquo;s great fun with two players. Some scenarios are extremely hard though (I&rsquo;m looking at you, The Hobbit!), and most of them encourage you to tweak your decks in different ways.</p>
<h2 id="8-glen-more"><a href="https://boardgamegeek.com/boardgame/66362/glen-more">8. Glen More</a></h2>
<p><img alt="Glenmore" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/glenmore.jpg"></p>
<p>I love the jump-ahead mechanic in this game. There&rsquo;s always a great tension between getting something before other people, and still getting the other tiles you want along the way. The end-of-game penalty for having larger towns makes it even more interesting.</p>
<p>The tile-laying part of the game is very interesting too, because you have some restrictions (roads and river) and only the tiles next to a tile you lay down are activated, so you need to plan very carefully.</p>
<p>All in all, it combines short play time, and extremely meaningful and difficult decisions. Oh and it plays great with two as well.</p>
<h2 id="7-hansa-teutonica"><a href="https://boardgamegeek.com/boardgame/43015/hansa-teutonica">7. Hansa Teutonica</a></h2>
<p><img alt="Hansa" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/hansa.jpg"></p>
<p>For the longest time I kept reading about Hansa Teutonica as the poster child of boring, dry euros, as well as having a reputation for being extremely aggressive.</p>
<p>I don&rsquo;t mind my euros dry, but I typically don&rsquo;t like them aggressive. However, it turns out this was love at first sight for me. From the first play, I enjoyed every minute of this game. I didn&rsquo;t see the play as aggressive, but more of a blocking play that you get a benefit when someone moves you out of the way.</p>
<p>Unlike many other games in this list, this doesn&rsquo;t have much (any?) variability from game to game, but because there are so many ways to approach it, it can still feel quite different.</p>
<p>I&rsquo;m looking forward to many more plays and trying some of the expansion maps as well.</p>
<h2 id="6-pandemic"><a href="https://boardgamegeek.com/boardgame/30549/pandemic">6. Pandemic</a></h2>
<p><img alt="Pandemic" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/pandemic.jpg"></p>
<p>My highest-rated cooperative game. There may be some nostalgia in here, but I would pick this one above all other coops.</p>
<p>Cooperative games have strong random elements, and sometimes things are stacked in such a way that no matter what you do, you will fail. That&rsquo;s the nature of the game. Pandemic has that problem as well, but play time is short enough that it doesn&rsquo;t matter. You pick up the cards and do it again.</p>
<p>I love that the infection is driven by a deck of cards because you have a lot of information about what is likely to come up soon (since the discard pile is shuffled and put on top after every epidemic). That&rsquo;s something that was sorely missing from Pandemic The Cure (the dice version of Pandemic).</p>
<p>Finally, in case things start feeling too samey, the expansions add a lot of variability (I didn&rsquo;t like my first play of In The Lab, but I suspect it has a very steep learning curve).</p>
<h2 id="5-kingdom-builder"><a href="https://boardgamegeek.com/boardgame/107529/kingdom-builder">5. Kingdom Builder</a></h2>
<p><img alt="Kb" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/kb.jpg"></p>
<p>This game is the definition of variability from game to game. The rules themselves are just a couple of mechanics on how to put settlements on the board, and the scoring is mostly down to the cards that are drawn at the beginning of each game.</p>
<p>This was another one of those games that the first play felt a bit underwhelming. I thought the game was playing me, rather than me the game. It wasn&rsquo;t until the second game that I realized it was about positioning myself to accomplish what I want to do, rather than trying to select different terrain cards. It&rsquo;s also really interesting how you have very different goals early in the game (minimize terrain adjacencies so you can move to other places on the board), than you do late in the game (touch as many terrain types as possible so you can put your pieces anywhere you want).</p>
<p>Yes, you can get some ridiculously broken power/scoring combos, but again, games are quick. Have a laugh and play it again.</p>
<h2 id="4-homesteaders"><a href="https://boardgamegeek.com/boardgame/26566/homesteaders">4. Homesteaders</a></h2>
<p><img alt="Homesteaders" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/homesteaders.jpg"></p>
<p>Short, tense, and every decision is extremely meaningful. There are only 10 rounds to the whole game, and you won&rsquo;t even get a building in each round. You can go hugely in debt, and yet (hopefully) everything kind of comes together at the end.</p>
<p>It certainly fits with me liking bidding games, but it might initially stand out as a game with very little apparent variability from game to game. Rahdo even dismissed it because it didn&rsquo;t vary enough. Let me tell you something: This game is so tight, that minor changes will throw off your long-term plans in no time. I recently started a game where I had decided I was going to go for the Church and in-game points, but the way the bidding tiles came out, and the way Amy was bidding against me, I was forced to change plans and go for a resource/dudes strategy. So much for lack of variability!</p>
<p>It plays fantastic with any player count. The only downside is that a lot of buildings are available right from the start, so it&rsquo;s a bit overwhelming for new players. Well worth a small time investment to learn this fantastic game though.</p>
<h2 id="3-age-of-steam"><a href="https://boardgamegeek.com/boardgame/4098/age-steam">3. Age of Steam</a></h2>
<p><img alt="Aos" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/aos.jpg"></p>
<p>I&rsquo;ve tried a lot of train/route-building games, and Age of Steam comes out clearly on top (I need to play more <a href="https://www.boardgamegeek.com/boardgame/27833/steam">Steam</a> to decide between the two though).`</p>
<p>The auctions for player order/bonus are extremely interesting an unforgiving. The roles themselves are very well thought out so even if you don&rsquo;t get first place, you can still snatch first build or first move.</p>
<p>The route building and delivery aspect are always very fun and satisfying, the only downside is the randomness of where new goods appear on the board (yes, you see where they&rsquo;ll appear, but you don&rsquo;t know when, which makes all the difference in the world). Players can also find themselves in a downward spiral that takes them out of the game completely, but that&rsquo;s part of the experience of the game (although I agree that a 2-3 hour game where you&rsquo;re out of contention for half of it is not very fun, experience or no experience, so don&rsquo;t let that happen).</p>
<p>Finally, the variety of maps for Age of Steam out there make this game infinitely replayable. It&rsquo;s not jut a different distribution of mountains and rivers, it&rsquo;s that most maps radically change a few rules and transform the experience into something completely different.</p>
<h2 id="2-dominion"><a href="https://boardgamegeek.com/boardgame/36218/dominion">2. Dominion</a></h2>
<p><img alt="Dominion" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/dominion.jpg"></p>
<p>Speaking of variability, here&rsquo;s Donald X&rsquo;s other hugely variable game. Dominion was the first deck builder. I&rsquo;ve played a bunch since then, and I keep coming back to this one: it plays quickly, works great with any player count (but best with just 2 or 3), and it&rsquo;s always completely different.</p>
<p>Just like Troyes, some games are going to be more amazing than others depending on the combinations that come up, but it&rsquo;s always really fun looking at that new set of cards and figuring out a path to victory.</p>
<h2 id="1-brass-and-age-of-industry"><a href="https://boardgamegeek.com/boardgame/28720/brass">1. Brass and Age of Industry</a></h2>
<p><img alt="Aoi" loading="lazy" src="/noels-best-board-games-of-all-time-2014-edition/images/aoi.jpg"></p>
<p>I&rsquo;m giving my #1 game of all time award to both <a href="https://boardgamegeek.com/boardgame/65901/age-industry">Age of Industry</a> and <a href="https://boardgamegeek.com/boardgame/28720/brass">Brass</a>. It might feel like I&rsquo;m cheating, but I really consider Brass as a particular Age of Industry map with some funky rules thrown in. The fact is, both games feel very similar (with card drawing being the main difference).</p>
<p>I might give Brass the edge as a best game, but Age of Industry wins because of the different maps available and the different experiences it provides. I go back and forth between which one I like better, but I have them both rated as 10 (my only two 10 ratings on BGG).</p>
<p>They have the exact kind of player interaction that I love, where players are jockeying for position, using each other resources, and yet trying to out-do each other. I love that player order is determined by how much you spend in a turn, which gives you very interesting control over your turn.</p>
<p>I also consider Brass to be game that can be best played online: each turn is fairly long and meaty, and there are at most 16 turns in a 4-player game (most likely you&rsquo;ll have a couple of them back to back, so more like 14). As opposed to games that are 100+ turns long, and in each turn you&rsquo;re just clicking OK to something. I&rsquo;m always up for <a href="http://brass.orderofthehammer.com/index.php">a game of Brass online</a>, so if anyone is interested, let me know me and let&rsquo;s play.</p>
<p> </p>
<p><em><a href="https://boardgamegeek.com/geeklist/183750/noels-top-20-games-all-time-2014-edition">This list first appeared on BGG</a></em></p>]]></content:encoded></item><item><title>Best Board Games of 2013</title><link>https://gamesfromwithin.com/best-board-games-of-2013/</link><pubDate>Sun, 12 Jan 2014 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/best-board-games-of-2013/</guid><description>&lt;p&gt;Looking back, 2013 continued my trend of diving deeper in board games, both playing and designing them. It&amp;rsquo;s no coincidence that &lt;a href="http://subterfuge-game.com/"&gt;Subterfuge&lt;/a&gt;, the game I&amp;rsquo;m working on with &lt;a href="http://twitter.com/roncarmel"&gt;Ron Carmel&lt;/a&gt;, has very strong board game influences. I&amp;rsquo;ll talk more in a future post about the design part, what kind of games I tried making and which ones I&amp;rsquo;m still working on. This post will focus on the best games I played that came out on 2013.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Looking back, 2013 continued my trend of diving deeper in board games, both playing and designing them. It&rsquo;s no coincidence that <a href="http://subterfuge-game.com/">Subterfuge</a>, the game I&rsquo;m working on with <a href="http://twitter.com/roncarmel">Ron Carmel</a>, has very strong board game influences. I&rsquo;ll talk more in a future post about the design part, what kind of games I tried making and which ones I&rsquo;m still working on. This post will focus on the best games I played that came out on 2013.</p>
<p>I try to <a href="http://www.boardgamegeek.com/plays/bymonth/user/llopis/subtype/boardgame">log every board game play</a>, so I can see that <a href="http://friendless.servegame.org/dynamic/tabbed/llopis/2#pbmever">I logged 674 different plays during the course of the year, and 246 of those were games new to me</a>. I didn&rsquo;t invent a time-expanding machine, so the time for that has come straight from TV, movies, and video games. After realizing that we were spending just about every evening playing board games, my wife an I cancelled our Netflix subscription and never looked back. I also only played a handful of PC and iOS games during the whole year.</p>
<p>Another good portion of those games were due to going to local game days, and to two board game conventions: <a href="http://originsgamefair.com/">Origins</a> and <a href="http://boardgamegeek.com/bggcon">BGGCon</a>.</p>
<p>Having played that many games, I figured it would be interesting to write a best-of list for the year. For this one, I wanted to focus exclusive on games that came out on 2013. I played 43 games that came out on 2013, and of those, these are my favorites.</p>
<h1 id="5-nations"><a href="http://www.boardgamegeek.com/boardgame/126042/nations">5. Nations</a></h1>
<p>I absolutely love Civilization and <a href="http://en.wikipedia.org/wiki/Master_of_Orion_II:_Battle_at_Antares">Civ-like</a> games. Unfortunately, for the most part, those work best on a computer due to the long play time, and the large amount of parts, pieces, and interconnecting systems. I&rsquo;ve tried playing some board game versions (<a href="http://www.boardgamegeek.com/boardgame/25613/through-the-ages-a-story-of-civilization">Through the Ages</a>, <a href="http://www.boardgamegeek.com/boardgame/40765/clash-of-cultures">Clash of Cultures</a>) and while they weren&rsquo;t bad, I would probably rather play the computer version of Civilization.</p>
<p>Nations is finally the first civilization board game that works really well for me. It has a reasonable play time (under 2 hours for 4 players), interesting player interaction without direct conflict, and a great power curve. One of the key things design aspects that allows this game to work so well is that they did away with the map (just like Through the Ages), so players can focus exclusively on advancing their civilization rather than exploring the map.</p>
<p><img alt="Nations" loading="lazy" src="/best-board-games-of-2013/images/nations.jpg"></p>
<h1 id="4-bora-bora"><a href="http://www.boardgamegeek.com/boardgame/127060/bora-bora">4. Bora Bora</a></h1>
<p>It&rsquo;s no secret that I like a lot of <a href="http://www.boardgamegeek.com/boardgamedesigner/4958/stefan-feld">Stefan Feld</a> games. I particularly like some of his earlier games (<a href="http://www.boardgamegeek.com/boardgame/31594/in-the-year-of-the-dragon">In The Year of the Dragon</a>, <a href="http://www.boardgamegeek.com/boardgame/25554/notre-dame">Notre Dame</a>), but I also like some of his recent ones (<a href="http://www.boardgamegeek.com/boardgame/84876/the-castles-of-burgundy">Castles of Burgundy</a>). Some critics dismiss a lot of his designs as &ldquo;point salads&rdquo;, but I do like my veggies! Seriously, there are badly done point salads, where the things you do have little significance beyond getting you some points (<a href="http://www.boardgamegeek.com/boardgame/102680/trajan">Trajan</a> fell in that category for me), and well-done points salads like Bora Bora, where you&rsquo;re showered with points, but you&rsquo;re also opening up new paths and possibilities with each new action. Bora Bora hits all the right buttons for me: interweaving of effects on the board, different strategies, and the sense of building something. It&rsquo;s a tad long with 4 players, but it plays great with 2 or 3.</p>
<p><img alt="Bora bora board game" loading="lazy" src="/best-board-games-of-2013/images/bora-bora-board-game.jpg"></p>
<h1 id="3-spyrium"><a href="http://www.boardgamegeek.com/boardgame/137269/spyrium">3. Spyrium</a></h1>
<p>While Bora Bora is a game that hits you with its colorful game board, fancy player boards, and loads of chits, Spyrium stands in stark contrast and it manages to do with very few components: A deck of cards, a few tokens, and a minimal (almost unnecessary) central board. Spyrium is a amazing piece of design because it manages to have a very rich and deep gameplay with minimalistic components.</p>
<p>In spite of having so few components, Spyrium has a huge amount of variability between games. Apart from the variations from the actions other players take, there&rsquo;s the order in which cards will come up, the order of events for each round, and even the tokens that go on the cards themselves (which is an extra layer of variability for those cards since it changes their cost or effect).</p>
<p>The key mechanic of adding or removing workers for money or the card is very innovative and fresh. It&rsquo;s also a game that plays well, but very differently, at different player counts. So playing with 4 people after learning the game with 2 will cause you to re-learn everything you thought you knew about it.</p>
<p><img alt="Spyrium" loading="lazy" src="/best-board-games-of-2013/images/Spyrium.jpg"></p>
<h1 id="2-prosperity"><a href="http://www.boardgamegeek.com/boardgame/145203/prosperity">2. Prosperity</a></h1>
<p>Prosperity was co-designed by <a href="http://www.boardgamegeek.com/boardgamedesigner/2/reiner-knizia">Reiner Knizia</a> and <a href="http://www.boardgamegeek.com/boardgamedesigner/7448/sebastian-bleasdale">Sebastian Bleasdale</a>. While Dr. Knizia is the big name there, I&rsquo;m a particular fan of Bleasdale&rsquo;s earlier design, <a href="http://www.boardgamegeek.com/boardgame/122515/keyflower">Keyflower</a>. In spite of that, I was afraid this game was going to be a too-abstract tile-laying game not to my tastes.</p>
<p>Boy was I wrong! Prosperity was my surprise game of the show at BGG Con (and I played a lot of games at the con). It hits the perfect level of abstractness that you feel you&rsquo;re in charge of a city, but without degenerating in a sea of details that bog the game down. It manages to hit that magical middle-weight game category, that packs a lot of very interesting decisions in a playing time of an hour or less.</p>
<p><img alt="Prosperity" loading="lazy" src="/best-board-games-of-2013/images/prosperity.jpg"></p>
<h1 id="1-bruxelles-1893"><a href="http://www.boardgamegeek.com/boardgame/144592/bruxelles-1893">1. Bruxelles 1893</a></h1>
<p>Unlike other simpler games, Bruxelles 1893 presents the player with a myriad of choices. It falls a bit in the camp of a Feldian point-salad game, but where each action and choice is very interconnected to the rest of the actions and the state in the board. You want to do action A, but if you do action B before, then A will be a lot more efficient. But of course, if you do C, then B will be even more powerful. Those kind of tough choices elevate this game to the top of my 2014 games.</p>
<p>Bruxelles 1893 is by new designer <a href="http://www.boardgamegeek.com/boardgamedesigner/69130/etienne-espreman">Etienne Espreman</a>, but with some involvement by <a href="http://www.boardgamegeek.com/boardgamedesigner/38335/sebastien-dujardin">SÃ©bastien Dujardin</a>, who designed my favorite board game, <a href="http://www.boardgamegeek.com/boardgame/73439/troyes">Troyes</a>.</p>
<p><img alt="Bruxelles" loading="lazy" src="/best-board-games-of-2013/images/bruxelles.jpg"></p>
<p> </p>
<p>Maybe even more interesting than looking at the list itself, is to look at what those games have in common. I have fairly varied tastes in games, but all the games in this list have some strong common elements:</p>
<ul>
<li>Tough, interesting choices</li>
<li>Themes that appeal to me (no generic fantasy or zombies)</li>
<li>They play well with 2 players</li>
<li>Some player interaction, but no direct player confrontation and screwage</li>
<li>Play times under 2 hours</li>
</ul>
<p>Some of my other favorite games for this year that didn&rsquo;t quite make it in the top 5 were:</p>
<ul>
<li><a href="http://boardgamegeek.com/boardgame/119506">Freedom: The Underground Railroad</a>: A cooperative game (a weakness of mine) with a very strong history theme.</li>
<li><a href="http://www.boardgamegeek.com/boardgame/144415/nauticus">Nauticus</a>: By wonder duo Michael Kiesling and Wolfgang Kramer. I wasn&rsquo;t impressed with their other 2013 release, Coal Baron, but Nauticus is a perfect middle-weight game with possibilities for clever play.</li>
<li><a href="http://www.boardgamegeek.com/boardgame/131357/coup">Coup</a>: Technically this is a 2012 release, but it became much more widely available in 2013. It&rsquo;s an amazing, quick, social game of bluffing and deduction. . The love child of Resistance and Love Letter.</li>
<li><a href="http://www.boardgamegeek.com/boardgame/136280/la-boca">La Boca</a>: A unique spacial game that forces players to collaborate to build something they can only see from their side. You really have to experience to understand it.</li>
<li><a href="http://www.boardgamegeek.com/boardgame/143986/cv">CV</a>: A quirky dice-rolling game with delightful art where you build the life of your character. It&rsquo;s mostly luck-driven, but it ends up with very memorable stories.</li>
</ul>
<p>I didn&rsquo;t play every board game released on 2013 (or even close), so take my list with a grain of salt. As a reference, these are the other games I played that didn&rsquo;t make the cut: <a href="http://boardgamegeek.com/boardgame/137408">Amerigo</a>, <a href="http://boardgamegeek.com/boardgame/143741">Bang! The Dice Game</a>, <a href="http://boardgamegeek.com/boardgame/140933">Blueprints</a>, <a href="http://boardgamegeek.com/boardgame/137237">Bremerhaven</a>, <a href="http://boardgamegeek.com/boardgame/136888">Bruges</a>, <a href="http://boardgamegeek.com/boardgame/136440">Canterbury</a>, <a href="http://boardgamegeek.com/boardgame/102794">Caverna: The Cave Farmers</a>, <a href="http://boardgamegeek.com/boardgame/124052">Cinque Terre</a>, <a href="http://boardgamegeek.com/boardgame/143515">Coal Baron</a>, <a href="http://boardgamegeek.com/boardgame/124361">Concordia</a>, <a href="http://boardgamegeek.com/boardgame/142451">Cornish Smuggler</a>, <a href="http://boardgamegeek.com/boardgame/140603">Francis Drake</a>, <a href="http://boardgamegeek.com/boardgame/27574">Island Fortress</a>, <a href="http://boardgamegeek.com/boardgame/52461">Legacy: The Testament of Duke de Crecy</a>, <a href="http://boardgamegeek.com/boardgame/126000">Letnisko</a>, <a href="http://boardgamegeek.com/boardgame/140620">Lewis &amp; Clark</a>, <a href="http://boardgamegeek.com/boardgame/130912">The Lord of the Rings Dice Building Game</a>, <a href="http://boardgamegeek.com/boardgame/121122">The Lost Dutchman</a>, <a href="http://boardgamegeek.com/boardgame/131891">Lost Legends</a>, <a href="http://boardgamegeek.com/boardgame/147624">Mount Everest</a>, <a href="http://boardgamegeek.com/boardgame/71906">NÃ¡ufragos</a>, <a href="http://boardgamegeek.com/boardgame/102148">NOIR: Deductive Mystery Game</a>, <a href="http://boardgamegeek.com/boardgame/146094">Plunder</a>, <a href="http://boardgamegeek.com/boardgame/143519">Quantum</a>, <a href="http://boardgamegeek.com/boardgame/109764">Quarantine</a>, <a href="http://boardgamegeek.com/boardgame/119591">Rialto</a>, <a href="http://boardgamegeek.com/boardgame/144344">Rococo</a>, <a href="http://boardgamegeek.com/boardgame/144733">Russian Railroads</a>, <a href="http://boardgamegeek.com/boardgame/121615">Shadows over the Empire</a>, <a href="http://boardgamegeek.com/boardgame/132407">Stone &amp; Relic</a>, <a href="http://boardgamegeek.com/boardgame/133473">Sushi Go!</a>, <a href="http://boardgamegeek.com/boardgame/137238">Time &rsquo;n&rsquo; Space</a>, <a href="http://boardgamegeek.com/boardgame/137397">Via Appia</a>, <a href="http://boardgamegeek.com/boardgame/128621">Viticulture</a>.</p>]]></content:encoded></item><item><title>Board Games: My New (Old) Love</title><link>https://gamesfromwithin.com/board-games-my-new-old-love/</link><pubDate>Mon, 01 Jul 2013 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/board-games-my-new-old-love/</guid><description>&lt;p&gt;It feels like I&amp;rsquo;ve been making and playing video games all my life. It turns out I&amp;rsquo;ve been playing board games even longer.&lt;/p&gt;</description><content:encoded><![CDATA[<p>It feels like I&rsquo;ve been making and playing video games all my life. It turns out I&rsquo;ve been playing board games even longer.</p>
<p>I&rsquo;ve always loved board games, but being an only child, it was always challenging to find people to play with. My dad was often willing to play, and I would often pull out <a href="http://www.boardgamegeek.com/boardgame/10293/en-busca-del-imperio-cobra">some of my favorites</a> when friends came over. But it never felt like I could get enough.</p>
<p>It was no big surprise then, that as soon as I saw games on a computer I fell in love heads over heels. My first thought was &ldquo;Wow! I can play games with the computer without having to depend on other people being here&rdquo;. Imagine that! It didn&rsquo;t matter that the games were uniformly horrible, hardly responsive, chunky, and monochrome. It was nirvana for me.</p>
<p>My second thought after seeing a video game was &ldquo;I want to make those!&rdquo; And that&rsquo;s what I&rsquo;ve been doing pretty much constantly since that day almost 30 years ago.</p>
<p>During that time board games took a back seat. My love was still there, but I was too busy with video games to consider them as serious entertainment. At times I&rsquo;m sure I even thought that video games were a step up from board games; the next logical step in evolution.</p>
<p>That phase of my life lasted until grad school. That&rsquo;s when a good friend of mine introduced me to this new little game that had just come out a couple of years before called Magic The Gathering. You&rsquo;d think that grad school wouldn&rsquo;t be the best time to get hooked on a game like that, and you&rsquo;d be right. It was an amazing ride for several years (from <a href="http://www.wizards.com/magic/tcg/productarticle.aspx?x=mtg/tcg/fallenempires/productinfo">Fallen Empires</a> until <a href="http://www.wizards.com/magic/tcg/productarticle.aspx?x=mtg/tcg/exodus/productinfo">Exodus</a> for those of you keeping track). I realized how much I loved the physical and social aspect of board and card games, and how it was mostly missing from video games. At the time I was playing a lot of Warcraft and Quake 1 online, but the experience was nothing like playing Magic across the table from another person.</p>
<p>After my Magic phase, I tried some of the flourishing &ldquo;euro&rdquo; games that were just coming out at the time, but I was mostly absorbed back in video games again. Steam and iOS were taking up all my gaming time for a few years.</p>
<p>Then, last year, everything changed. <a href="https://twitter.com/mysterycoconut">Miguel</a> came to visit with a car trunk full of board games. Literally! Not only did I have an absolute blast playing board games all week, but so did Amy, my wife. We were instantly hooked. Now all my gaming time is dedicated to board games, and I have hardly touched some kind of video game in the last year.</p>
<h2 id="why-i-love-board-games">Why I Love Board Games</h2>
<p>My love of board games comes from many different reasons.</p>
<p><strong>Physical aspect</strong>. I love the convenience of digital distribution of books, music, and video games. But at the same time, I&rsquo;m tired of manipulating pixels on the screen for all my activities (both work and entrainment). Touch screens are a small step in the right direction, but they still feel very artificial. When it comes down to it, nothing beats the feel of some wood pieces as you move them around the table. There are already too many screens and digital bits in my life.</p>
<p><img alt="Keyflower" loading="lazy" src="/board-games-my-new-old-love/images/keyflower.jpg"></p>
<p><strong>Social aspect</strong>. Video games are mostly solitary experiences. Even multiplayer games, you&rsquo;re usually not facing the people you play with, unless it&rsquo;s with one of my favorite patterns: local multiplayer games, which are not extremely popular (and it&rsquo;s hard to have the right people to play with around). On the other hand, most board games are inherently social. Not only I get to spend lots of extra time with my wife and friends, but I also get to meet lots of new people at conventions and game days.</p>
<p><strong>Variety of experiences</strong>. I didn&rsquo;t quite realize what a huge variety of experiences board games offer. Just a few games off the top of my head that offer a huge range of different experiences: <a href="http://www.boardgamegeek.com/boardgame/30549/pandemic">Pandemic</a>, <a href="http://www.boardgamegeek.com/boardgame/84876/the-castles-of-burgundy">Castles of Burgundy</a>, <a href="http://www.boardgamegeek.com/boardgame/113294/escape-the-curse-of-the-temple">Escape</a>, <a href="http://www.boardgamegeek.com/boardgame/3076/puerto-rico">Puerto Rico</a>, <a href="http://www.boardgamegeek.com/boardgame/21763/mr-jack">Mr. Jack</a>, <a href="http://www.boardgamegeek.com/boardgame/15987/arkham-horror">Arkham Horror</a>, or <a href="http://www.boardgamegeek.com/boardgame/39856/dixit">Dixit</a>. And that&rsquo;s only games in my collection, which is limited to my own tastes and doesn&rsquo;t include war games or much <a href="http://boardgamegeek.com/wiki/page/Ameritrash">Ameritrash</a>. Video games probably offer an even wider range of experiences because a computer can be so versatile, but the board game landscape feels more varied and healthy. That might be due to video games being mass market, while board games are still trying to get there. I suspect that&rsquo;s a topic for a future post.</p>
<p><img alt="Arkham horror intro" loading="lazy" src="/board-games-my-new-old-love/images/arkham-horror-intro.jpg"></p>
<p><strong>Learning new games</strong>. I love learning new games. You could even say I&rsquo;m addicted to it. I love to see how things fit together, how the game plays out, and trying to figure out a good strategy. Generally, I&rsquo;m much happier playing 20 new games 5 times than playing a single game 100 times. With video games, since the game is the running the simulation, not me, there&rsquo;s a lot less to learn. There&rsquo;s also something about tutorials that are an absolute chore and I dread learning a game through them.</p>
<p><strong>Replaying games</strong>. At the same time, I love replaying games I already know how to play. This is something that often doesn&rsquo;t happen with video games. A lot of them are intended to make more progress every time you play, culminating in some climax at the end, after 10-20 hours of play. After that, you can play it again, but I usually move on to some other game. One recent notable exception is one of my all-time favorite games: <a href="http://bindingofisaac.wikia.com/wiki/The_Binding_of_Isaac_Wiki">The Binding of Isaac</a>, which forces you to replay it over and over.</p>
<p><strong>They&rsquo;re for me</strong>. I feel I&rsquo;m squarely in the target audience for a good portion of board games being released. I&rsquo;m eagerly anticipating releases later on this year, and I can&rsquo;t wait to read about the new Essen announcements. Most video games, on the other hand, with a few notable exceptions, leave me completely cold appealing mostly to adolescent power fantasies. A quick glance at the top sellers on the App Store or even most console titles, and it&rsquo;s clear that I don&rsquo;t belong there.</p>
<p><img alt="Burgundy box" loading="lazy" src="/board-games-my-new-old-love/images/burgundy-box.jpg"></p>
<h2 id="fun-new-world">Fun New World</h2>
<p>I love the experience of taking a field I didn&rsquo;t know much about, and diving right in. I&rsquo;ve been fully immersing myself in the world of board games. Every day <a href="http://boardgamegeek.com/plays/bydate/user/llopis/subtype/boardgame">I play one or more board games</a>, and I go to a full-day gaming events once or twice a month. Sometimes it feels like drinking from the proverbial firehose. I&rsquo;m constantly learning about new gameplay mechanics, the art of finely balancing a game, game evolution and trends, or even the works of specific designers and how they changed over time.</p>
<p>During a period like this, I tend to grow creatively a huge amount. Being exposed to something new causes all sorts of new associations result in a constant stream of new ideas. Some of them are related directly to board games, but a lot of them spill over into video games and even other parts of my life.</p>
<p>So what&rsquo;s next for me? I&rsquo;m not giving up making video games any time soon, don&rsquo;t worry. I love making games in any format, and my goal is to continue making a living making games for different platforms. Board games are like another platform, but one with some strong challenges and constraints.</p>
<p>Of the video games I&rsquo;m working on, one of them has very heavy board game influences in its design. I have no doubt that it would be completely different had I not rediscovered board games recently. We&rsquo;re hoping to announce the game and talk more about it soon.</p>
<p>In addition to that, I&rsquo;m, of course, dabbling on the side with board game ideas. Unfortunately there&rsquo;s virtually no money in physical board games, so it&rsquo;s just purely a hobby, but it&rsquo;s a really fun one. And who knows, I might be able to make a digital version of one of those board games if I end up with a good design.</p>
<p>In the meanwhile, I expect to write quite a bit here about board games, and especially of the cross over between board and video games and what we can learn from each of them to make better games. You can also <a href="http://boardgamegeek.com/user/llopis">find me regularly on BGG</a>.</p>]]></content:encoded></item><item><title>Why Am I Making Games?</title><link>https://gamesfromwithin.com/why-am-i-making-games/</link><pubDate>Fri, 03 May 2013 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/why-am-i-making-games/</guid><description>&lt;p&gt;A couple of weeks ago I posted &lt;a href="https://gamesfromwithin.com/why-are-you-making-games/"&gt;my GDC micro-talk titled &lt;em&gt;Why are you making games?&lt;/em&gt;&lt;/a&gt;. From the feedback I got, it seems that it resonated with a lot of people, and it also made some people stop and ask themselves that question (along with a few sleepless nights).&lt;/p&gt;
&lt;p&gt;However, the question I was asked over and over was why am &lt;strong&gt;I&lt;/strong&gt; making games? What are my answers to that question? As I said before, there are no right or wrong answers. Everybody needs to find their own answers, so in that respect, my answers don&amp;rsquo;t really matter.&lt;/p&gt;
&lt;p&gt;On the other hand, since what I write here is purely personal, and a lot of people are curious about it, I figured I would give it a shot and answers those questions publicly.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A couple of weeks ago I posted <a href="/why-are-you-making-games/">my GDC micro-talk titled <em>Why are you making games?</em></a>. From the feedback I got, it seems that it resonated with a lot of people, and it also made some people stop and ask themselves that question (along with a few sleepless nights).</p>
<p>However, the question I was asked over and over was why am <strong>I</strong> making games? What are my answers to that question? As I said before, there are no right or wrong answers. Everybody needs to find their own answers, so in that respect, my answers don&rsquo;t really matter.</p>
<p>On the other hand, since what I write here is purely personal, and a lot of people are curious about it, I figured I would give it a shot and answers those questions publicly.</p>
<p>Another thing I also want to stress is that these are not even permanent answers for me. These are my answers for the projects I&rsquo;m working on right now. Whenever it&rsquo;s time to start a new project, I will ask myself this question again and probably come up with different answers. That, I think, it&rsquo;s key to be able to focus on some aspects at the expense of others, instead of always compromising and trying to achieve a bit of everything.</p>
<h2 id="why-i-am-not-making-games">Why I Am Not Making Games</h2>
<p>You thought I was going to get right away to the reasons why I was making games? No, it&rsquo;s not that easy. I need to start with the reasons I thought I was making games, but turns out I discarded (for this time around).</p>
<h3 id="innovationawards">Innovation/awards</h3>
<p>I&rsquo;ve always felt an urge to innovate and create something original. Something that would be worthy of getting some awards and recognition. Even back in the <a href="/tag/power-of-two/">Power of Two Games days</a>, <a href="https://twitter.com/c_nich">Charles</a> and I (half) joked that if we won an IGF award, we would eat a whole cheesecake from <a href="http://www.estreetcafe.com">E Street</a>. Unfortunately (or fortunately, depending from your point of view), that never happened, and the cheesecake remained safe behind the glass. Flower Garden was pretty innovative (even to this day, there aren&rsquo;t many similar games&ndash;if you can even call it a game). Casey&rsquo;s Contraptions had some original aspects, but its main strength was in polish of execution.</p>
<p><img alt="Cheesecake" loading="lazy" src="/why-am-i-making-games/images/cheesecake.jpg"></p>
<p>For this time around, I decided that this was not going to be one of the main reasons behind me making games though. I&rsquo;m sure I&rsquo;ll come back to this one very soon though.</p>
<h3 id="money">Money</h3>
<p>It&rsquo;s hard not to think about money when one of your main target platforms is iOS. I know they&rsquo;re mostly the exception, but looking at the huge financial success of some indie developers, or the revenue of some of the games on the Top Grossing chart, it&rsquo;s only natural to want a slice of that pie.</p>
<p>Since free-to-play is one of the most profitable approaches on the App Store, I originally started out some of my designs by trying to do &ldquo;free-to-play done right&rdquo;. I was going to show the world how you can make a free-to-play game, treat players as human beings, not play any psychological tricks, not make the game suck on purpose, and still make a boatload of money.</p>
<p><img alt="Wq money woman" loading="lazy" src="/why-am-i-making-games/images/wq-money-woman.jpg"></p>
<p>Along the way, two things happened:</p>
<ol>
<li>It&rsquo;s a lot harder to design a game that does all those things than to write it out in a neat, little sentence like I just did.</li>
<li><a href="https://twitter.com/checker">Chris</a> called me on it. He asked the really pointed question of &ldquo;if you don&rsquo;t need the money, why focus your design around that idea when there are so many interesting design aspects out there to explore?&rdquo; He was totally right! At this moment, I don&rsquo;t have the financial pressure to ship a game, so why limit my game artificially like this?</li>
</ol>
<p>Those two things, combined with the fact that I hate most games in the Top Grossing chart of the App Store, means that I should not even try making a game aimed at that audience.</p>
<p>Since money eventually runs out, I will have to consider money more seriously in future projects. Even so, I will probably go the route of making more personal, niche games that appeal to a small percentage of people, rather than try to go after a pure mass-market approach.</p>
<h3 id="expressing-something">Expressing something</h3>
<p>I fall in the camp of people who believe that games are (or can be) art. That&rsquo;s especially true of indie games, which carry the strong creative touch of an individual or a small team. Starting from something you want to express. For this one time, I was going to put that aside and focus on other aspects.</p>
<h2 id="why-i-am-making-games">Why I Am Making Games</h2>
<p>After removing all those reasons (and lots more that I didn&rsquo;t talk about), why am I making games? Or rather, why am I making the games I&rsquo;m currently making? It turns out, the reasons for these game are mostly selfish.</p>
<h3 id="enjoy-the-development">Enjoy the development</h3>
<p>I wanted to make a game where I would enjoy the actual development as much as possible. This is a lot more constrictive than it may seem at first glance, and it means many things:</p>
<ul>
<li>I wanted to avoid games with large components that are uninteresting to design and implement (in-game stores, credits, managing users, etc).</li>
<li>I need to be exploring new concepts (to me) and trying new things to really enjoy the development process, so the game needs to be substantially different from other games that I made in the past: no growing virtual plants, or creating physics puzzles to share with friends.</li>
<li>The focus of the game should be on the design itself, not some technology. Even though most of my past experience comes from programming, I&rsquo;m only interested in design these days. Programming is just a means to quickly convert my ideas into something the computer can do, but I&rsquo;m not interested in programming for the sake of programming (as anyone who looks at my code can attest to).</li>
</ul>
<h3 id="create-something-ill-be-proud-of-afterwards">Create something I&rsquo;ll be proud of afterwards</h3>
<p>This is an easy one. It doesn&rsquo;t matter how much money the game makes, but I wanted it to be something I can be proud of afterwards. Interestingly, the &ldquo;innovation/awards&rdquo; point is a subset of this reason, but this point is more general, and I can be proud of the games I make for many reasons.</p>
<p>You would think that this point should go without saying, and nobody should be making games they&rsquo;re not proud of. Unfortunately, just a glance at the App Store will quickly convince anyone that&rsquo;s not the case.</p>
<h3 id="one-more-thingâ">One more thingâ€¦</h3>
<p>Indie game development can be a pretty solitaire affair, but that&rsquo;s not something that bothered me too much (maybe growing up an only child had something to do with that). I never needed someone else to keep me motivated in or committed to a project.</p>
<p>I am currently working on not one, but two different projects at once. Soon I&rsquo;ll be able to start talking about them in detail. Both of those projects are collaborations with other people. After working on them for a few months, I have come to realize that working with the right people can be really invigorating: Bouncing ideas back and forth and see them grow into something bigger than they started, or just pushing and motivating each other has become completely invaluable for me. I&rsquo;m hoping to be able to continue working and collaborating with amazing people in my future projects.</p>]]></content:encoded></item><item><title>Why Are You Making Games?</title><link>https://gamesfromwithin.com/why-are-you-making-games/</link><pubDate>Mon, 01 Apr 2013 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/why-are-you-making-games/</guid><description>&lt;p&gt;&lt;em&gt;This is a written version of my 5-minute talk from the Indie Soapbox session at this year&amp;rsquo;s GDC.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Why are you making games? No, I don&amp;rsquo;t mean &amp;ldquo;why are &lt;em&gt;you&lt;/em&gt; making games?&amp;rdquo;. Also, I don&amp;rsquo;t mean &amp;ldquo;why are you making &lt;em&gt;games&lt;/em&gt;?&amp;rdquo;. And I certainly don&amp;rsquo;t mean &amp;ldquo;&lt;em&gt;why (on earth)&lt;/em&gt; are you making games?&amp;rdquo;. I mean the question in the purest, most abstract sense. Just &amp;ldquo;why are you making games?&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;This was a key question for me last year, I spent a lot of time thinking about it, and I thought other people might benefit from asking themselves the same question. To see where I&amp;rsquo;m coming from, let&amp;rsquo;s do a quick flash back.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s late 2011. Miguel and I finished working on Casey&amp;rsquo;s Contraptions and my daughter was born. I took a couple months completely off from work (new dads will understand why), and then, right at the turn of the new year, I decided to start working again. The plan was to prototype a few of the juiciest ideas, pick one that really stood out, and make a new game in a few months. How hard could it be, right?&lt;/p&gt;
&lt;p&gt;Right?&lt;/p&gt;</description><content:encoded><![CDATA[<p><em>This is a written version of my 5-minute talk from the Indie Soapbox session at this year&rsquo;s GDC.</em></p>
<p>Why are you making games? No, I don&rsquo;t mean &ldquo;why are <em>you</em> making games?&rdquo;. Also, I don&rsquo;t mean &ldquo;why are you making <em>games</em>?&rdquo;. And I certainly don&rsquo;t mean &ldquo;<em>why (on earth)</em> are you making games?&rdquo;. I mean the question in the purest, most abstract sense. Just &ldquo;why are you making games?&rdquo;.</p>
<p>This was a key question for me last year, I spent a lot of time thinking about it, and I thought other people might benefit from asking themselves the same question. To see where I&rsquo;m coming from, let&rsquo;s do a quick flash back.</p>
<p>It&rsquo;s late 2011. Miguel and I finished working on Casey&rsquo;s Contraptions and my daughter was born. I took a couple months completely off from work (new dads will understand why), and then, right at the turn of the new year, I decided to start working again. The plan was to prototype a few of the juiciest ideas, pick one that really stood out, and make a new game in a few months. How hard could it be, right?</p>
<p>Right?</p>
<p>It turns out it was a lot harder than I ever imagined. I was confident in my list of hundreds of game ideas that I had been adding to over the years. I picked one idea, made a quick prototype in a day or two, and decided that I wasn&rsquo;t as excited about that idea as I thought. So I picked another one, and another prototype that didn&rsquo;t go anywhere. Then another, then another, and then another. This went on for months.</p>
<p>By the time I realized that my prototype icons weren&rsquo;t fitting in a single page on my development iPad, I started worrying that something was wrong. Prototyping is great, it allows you to find the truly great ideas and all of that, but I wasn&rsquo;t any closer to a game idea I wanted to make than when I started.</p>
<p><img alt="Prototypes" loading="lazy" src="/why-are-you-making-games/images/prototypes.jpg"></p>
<p>At this point, I even started prototyping game ideas I knew I was <em>not</em> going to make, just to remove any pressure on me, as well as to get it out of my system how much I hated those game genres. It was an interesting effort, but, as you can imagine, it didn&rsquo;t lead to any shipped games.</p>
<p>I did, however, help me start figuring out what was going on. I realized that the prototypes I was creating were dissatisfying because my intentions were unclear. I wanted too many conflicting things out of this next game, and that was pulling the game in all kinds of opposite directions.</p>
<p>I wanted to make a unique a different game, yet at the same time I wanted it to reach a huge audience. I wanted to ride the wave of financially successful iOS games, but I didn&rsquo;t want to sell my soul with freemium-based games, and instead, I was going to make a &ldquo;good&rdquo; freemium game. I wanted to make something innovative, but I wanted to do it in just 6-9 months. I wanted it all, and I wanted it yesterday. Bad combination.</p>
<p>That&rsquo;s when I sat down and asked myself point blank &ldquo;why am I making games?&rdquo;. Or at least the more concrete version &ldquo;why am I making my next game?&rdquo;. That&rsquo;s a surprisingly hard question to answer really honestly. I had to peel away a bunch of layers until I found the answers to my question.</p>
<p>My specific answers don&rsquo;t matter because there isn&rsquo;t a right and wrong answer. Any answer is good as long as it&rsquo;s honest, from the bottom of your heart. There are as many valid answers as game developers out there. Some people make games because they want to be famous, others because they want to make money, others because it&rsquo;s the only thing they know how to do, others because they want to win awards, others because they want to reach as many people as possible, others because they want to tell stories, etc, etc.</p>
<p>It&rsquo;s actually amazing it took me this long to ask and confront this question. When you&rsquo;re working on a game company things are different, and you don&rsquo;t need to do that level of introspection. But once you go indie, it becomes really important. Even though I&rsquo;ve now been indie for 6 years, I&rsquo;ve been going in automatic pilot all this time, kind of skirting around this issue and winging it. I see a lot of indie developers out there doing the same thing, with greater or lesser success, but still conflicted internally about what they&rsquo;re doing.</p>
<p>Once you have the answer to your question, you can use it to guide you in any big decisions related to game development, and even in life in general. Which projects to tackle, or even what features to add to your game, will often be easy to decide if you keep your goals in mind.</p>
<p>For me, within two weeks of answering the question, I had settled on not just one, but two different projects that I was super-excited about. Both projects are still moving along and I hope to start sharing information about them soon.</p>
<p>So I encourage anybody reading this to make some quiet time in the next few days, and pose yourself the question &ldquo;why am I making games&rdquo;. Once you find your answer, not only will it help you with future decisions, but it will make you more satisfied with them.</p>]]></content:encoded></item><item><title>Office Space</title><link>https://gamesfromwithin.com/office-space/</link><pubDate>Mon, 16 Jan 2012 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/office-space/</guid><description>&lt;p&gt;Those who put up with my incessant chatter (or rants, depending how long I&amp;rsquo;ve gone without a run) &lt;a href="https://twitter.com/#!/noel_llopis"&gt;on Twitter&lt;/a&gt;, know that I recently moved out of my home office and leased an office &lt;a href="http://maps.google.com/maps?q=carlsbad,+ca&amp;amp;hl=en&amp;amp;sll=33.158093,-117.350594&amp;amp;sspn=0.481134,0.737457&amp;amp;vpsrc=0&amp;amp;hnear=Carlsbad,+San+Diego,+California&amp;amp;t=m&amp;amp;z=12"&gt;in town&lt;/a&gt;. This change was mostly due to my wife and I having a baby daughter a few months ago. I&amp;rsquo;ve taken most of this time as an extended paternity leave, but when it was time to do some work again, it was clear that working from home wasn&amp;rsquo;t the ideal environment anymore.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Those who put up with my incessant chatter (or rants, depending how long I&rsquo;ve gone without a run) <a href="https://twitter.com/#!/noel_llopis">on Twitter</a>, know that I recently moved out of my home office and leased an office <a href="http://maps.google.com/maps?q=carlsbad,+ca&amp;hl=en&amp;sll=33.158093,-117.350594&amp;sspn=0.481134,0.737457&amp;vpsrc=0&amp;hnear=Carlsbad,+San+Diego,+California&amp;t=m&amp;z=12">in town</a>. This change was mostly due to my wife and I having a baby daughter a few months ago. I&rsquo;ve taken most of this time as an extended paternity leave, but when it was time to do some work again, it was clear that working from home wasn&rsquo;t the ideal environment anymore.</p>
<p>Having a separate office not only gives me the distraction- and interruption-free environment I need, but also gives me some much-needed separation between home and work. My office is about a mile away from home, so that makes for a very nice 15-minute walking commute (with the Macbook Pro in my backpack). It&rsquo;s also located right in the Carlsbad village, so it&rsquo;s a block or two away from tons of cool places to have lunch, grab a coffee, or even go to the beach for a quick break!</p>
<p>Here are a few pictures from the new office. Things aren&rsquo;t completely set up yet (that bare wall is waiting for some Flower Garden and Casey&rsquo;s Contraptions posters that should be arriving today).</p>
<p><img alt="CRW 5052" loading="lazy" src="/office-space/images/CRW_5052.jpg"></p>
<p><img alt="CRW 5056" loading="lazy" src="/office-space/images/CRW_5056.jpg"></p>
<p><img alt="CRW 5059" loading="lazy" src="/office-space/images/CRW_5059.jpg"></p>
<p><img alt="CRW 5055" loading="lazy" src="/office-space/images/CRW_5055.jpg"></p>
<p>The thing I like the most about this office is the light. It&rsquo;s a corner office and it&rsquo;s aiming north, so that means great, indirect light all day long. Oh, and the windows can be opened to let some fresh air in. That might seem like an odd detail to mention to some of you, but you&rsquo;d be surprised how many office buildings in the US have windows that can&rsquo;t be opened. Really.</p>
<p>Both desks are adjustable, standing desks. The main desk in the pictures is the <a href="http://www.geekdesk.com/">large frame GeekDesk</a> one. I used to have the small frame because I didn&rsquo;t have the room at home, but I love the extra space, especially with the <a href="/big-displays-the-good-the-shiny-and-the-ugly/">30&quot; display</a>! I&rsquo;ve kept the small desk to the side, that way I can invite other people to come work from here for the day (indie work day!) or even (gasp) hire someone if the right time comes.</p>
<p>The rest is pretty standard: whiteboard (I prefer use one much larger, but that&rsquo;s what I had around), bouncy ball (gotta have a bouncy ball!), and couch (pretty important to unwind, or just to take a break from standing all day).</p>
<p>So far, I&rsquo;m very happy with this setup. Working from here is definitely invigorating, and the separation between work and home helps a lot in both locations. Maybe once our daughter is older and going to school I&rsquo;ll consider working from home again, but this is perfect for now.</p>
<p>What does your work setup look like? Post some pictures and let me know. I love seeing other devs work setups.</p>]]></content:encoded></item><item><title>Xcode 4 Trials and Tribulations</title><link>https://gamesfromwithin.com/xcode-4-trials-and-tribulations/</link><pubDate>Thu, 22 Sep 2011 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/xcode-4-trials-and-tribulations/</guid><description>&lt;p&gt;Wether you want it or not, Xcode 4 is around to stay when it comes to iOS development. I&amp;rsquo;ve been happily comfortable with Xcode 3 for quite a while, and my first impressions of Xcode 4 left me completely cold. However, support for Xcode 3 will soon go away, so I need to get ready for the inevitable transition. Maybe I was just having a bad day when I looked at Xcode 4 for the first day. Or maybe my nightmares finally came true and I&amp;rsquo;ll be forced to look for an alternative IDE. Which one is it? Read on to find out.&lt;/p&gt;</description><content:encoded><![CDATA[<p>Wether you want it or not, Xcode 4 is around to stay when it comes to iOS development. I&rsquo;ve been happily comfortable with Xcode 3 for quite a while, and my first impressions of Xcode 4 left me completely cold. However, support for Xcode 3 will soon go away, so I need to get ready for the inevitable transition. Maybe I was just having a bad day when I looked at Xcode 4 for the first day. Or maybe my nightmares finally came true and I&rsquo;ll be forced to look for an alternative IDE. Which one is it? Read on to find out.</p>
<p>To put all the whining and complaining that&rsquo;s about to come in perspective, I want to build some character references first. I&rsquo;ve been programming for 27 years, 13 of those professionally in the games industry, although the non-professional years I probably did just as much coding. I have used everything from emacs + make files to the gamut in IDEs: Turbo C++, Visual Studio, KDevelop, and Xcode 3 among others.</p>
<p>Contrary to popular belief, I&rsquo;m not that picky when it comes to a development environment. Or at least, it doesn&rsquo;t feel that way to me. I want the basics, that&rsquo;s all. Doesn&rsquo;t everybody want this?</p>
<ul>
<li>Have 2-3 source code windows opened side by side.</li>
<li>Build and see the output.</li>
<li>Do everything with keyboard shortcuts.</li>
</ul>
<p>There are lots of other things I want (project configuration, debugging, run tests), but those are the ones I&rsquo;m doing 99% of the time. I never had a problem doing any of those things with past development environments.</p>
<h2 id="the-hit-list">The hit list</h2>
<p>Having more tools and options is great. I love having the option to do advanced operations on my code, but I want to decide when to use those tools, not being bombarded by them. That, in a single sentence, is why Xcode 4, out of the box, is completely unusable for me.</p>
<p>Attempting to do something as simple as type code and build it is extremely frustrating. Xcode will react to me doing that by flashing all sorts of stuff on screen, bring up sidebars with messages, change which source files are displayed, draw squiggles all over my code, and flash alerts overlays. All of that, while not showing me the build output.</p>
<p>Working on Xcode is an extremely noisy (visually) and distracting experience. I understand it&rsquo;s trying help me, but it&rsquo;s failing miserably at it. I&rsquo;m trying to concentrate on what the code does, and I feel I have a parrot yelling stuff from my shoulder and flapping in front of the screen in some misguided attempt to help me code better.</p>
<p>That might work for some people, but not for me. I&rsquo;m the guy who turns off &ldquo;spell check as I type&rdquo; everywhere because I don&rsquo;t want to be taken out of flow while I&rsquo;m typing (I&rsquo;ll do a spell checking pass later on, thank you). I don&rsquo;t have notifications on my mail or Twitter; I check them explicitly when I want to. Now take that kind of annoyances and multiply it times 10 and you start getting an idea of what working on Xcode 4 is like. Xcode 4 feels like it&rsquo;s squarely designed for the texting/ADD generation.</p>
<p>Fortunately, most of it can be remedied and turned into a half-way sane environment.</p>
<p>Here&rsquo;s how to tame the noise in Xcode 4:</p>
<ul>
<li>
<p>Autocomplete is one of the worst offenders. Turn it off! Good autocomplete is awesome, but I&rsquo;d rather ask for it (with a keystroke) than have it bombard me constantly. Not just that, but it&rsquo;s so badly implemented that it will a) put shadows on top of the text I&rsquo;m typing b) replace the text I&rsquo;m typing on the fly so I can&rsquo;t even see what I typed (see screenshot below). Off with it!
<img alt="Autocomplete" loading="lazy" src="/xcode-4-trials-and-tribulations/images/autocomplete.png" title="autocomplete.png"></p>
</li>
<li>
<p>Having the whole screen flash with squiggles on and off while I&rsquo;m typing isn&rsquo;t helping in any way. Xcode is trying to &ldquo;highlight instances of selected symbol&rdquo;, which is a really useful tool, but not while I&rsquo;m typing/thinking! Not just that, but half the time it will add extra squiggles to the screen to make sure I can&rsquo;t even read the symbols themselves. So off with that one too.</p>
<p><img alt="Squiggles" loading="lazy" src="/xcode-4-trials-and-tribulations/images/squiggles.png" title="squiggles.png"></p>
<p>Here&rsquo;s one very frustrating thing: When I turn off the option to automatically highlight instances of the selected symbol from the settings, I lose the ability to do that at all. Yes, you heard that right: I can&rsquo;t (as far as I can tell) press a key and have the IDE highlight all the instances on demand. No sir, that&rsquo;s not the way it was intended.</p>
</li>
<li>
<p>Continuing with the theme of noise and distractions, having a sidebar popup and start showing me errors with my code as I&rsquo;m typing is also definitely NOT helping. Fortunately we can turn off &ldquo;Show live issues&rdquo; in the general settings.</p>
</li>
<li>
<p>One thing that Xcode 4 appeared to have gotten right is the idea of showing multiple source files at the same time. Now many IDEs do that by default these days, so that was a plus. Unfortunately, it&rsquo;s part of the &ldquo;smart&rdquo; assistant. As a general rule, I end up turning off anything with the word &ldquo;smart&rdquo; in it, and this is no exception. The assistant tries to present &ldquo;relevant&rdquo; files to the one I&rsquo;m working on. No, no, no, no! *I* want to decide what to display and what to work on. Just get out of the way and let me do that easily. You can turn off the view to &ldquo;Manual&rdquo;, which helps a huge amount.</p>
</li>
</ul>
<p>Just those changes make Xcode 4 into something that at least I can type into and not get sick at my stomach. We&rsquo;re making progress.</p>
<p>Now I can finally build and&hellip; everything goes wrong. Xcode doesn&rsquo;t show me the build output and it decides to flash a &ldquo;build completed&rdquo; screen overlay in case I looked away in the two seconds it took to build. Seriously? Maybe my attention was drawn into some of the flashing squiggles and I forgot it was building.</p>
<p><img alt="Alert" loading="lazy" src="/xcode-4-trials-and-tribulations/images/alert.png" title="alert.png"></p>
<p>Fortunately for my sanity, it&rsquo;s possible to fix both those things. The alert is easy: Go to behaviors, &ldquo;Build succeeds&rdquo; and turn off &ldquo;Show bezel alert&rdquo; (make sure it&rsquo;s off for all the others while you&rsquo;re there).</p>
<p>The other one is a bit trickier, but it&rsquo;s certainly possible. Set up the &ldquo;Build starts&rdquo; behavior to open a named tab and go to the current log. Like this: <img alt="Behaviors" loading="lazy" src="/xcode-4-trials-and-tribulations/images/behaviors.png" title="behaviors.png"></p>
<p>Now when you build your project, you&rsquo;ll get to see something sane like this. It might initially be as a tab, but you can drag that out and make it into a separate window of its own so it doesn&rsquo;t obscure the source code window: <img alt="Build" loading="lazy" src="/xcode-4-trials-and-tribulations/images/build.png" title="build.png"></p>
<p>You should be able to navigate through any issues found during the build with Cmd + &lsquo;, or, if you like the fancy issue display, press Cmd + 4. Things are so much better when you initiate them on demand rather than when they&rsquo;re forced on you!</p>
<p>Finally, a couple minor UI annoyances that are easily fixed:</p>
<ul>
<li>The toolbar is positively huge. I feel crammed in the high-res 15&quot; MBP (1680 x 1050), so I can&rsquo;t imagine how anyone works with something smaller. In any case, hiding the toolbar helps tremendously. As a bonus, the setting is per window, so your source code windows get the extra real estate, but the build output window keeps the toolbar so you have easy access to changing the target platform.</li>
<li>Line wrap is on by default. Seriously? Off.</li>
</ul>
<h2 id="the-suck-list">The suck list</h2>
<p>If that was everything, I&rsquo;d be happy. It means that even though Xcode 4 ships with retarded defaults, it can be whipped into shape into something usable. Unfortunately, there are a two major things I haven&rsquo;t found a workaround for:</p>
<ul>
<li>
<p>Can&rsquo;t build a single file. Someone at Apple, in their infinite wisdom, decided that building a single file was obsolete with the awesome new feature of &ldquo;show live features&rdquo;. Except that &ldquo;show live features&rdquo; sucks and has to be turned off. Apparently you either take it their way, or the highway, because there isn&rsquo;t an alternative. As with the case of highlighting symbol instances, there isn&rsquo;t a command I can use to &ldquo;show live features&rdquo; on demand.</p>
<p>The alternative is doing a full build. Most of the time that&rsquo;s fine, but whenever you&rsquo;re doing one of those refactorings that breaks half the codebase, then you&rsquo;re really screwed. The only way I can stay focused in a case like that is by cleaning up one file at the time, but this makes it impossible as you keep getting errors from all over the codebase. And as you fix one, the first error in the next build might be in a different file. Very annoying to say the least, especially because this was working and they removed it on purpose. I never file radar bugs (long story), but I made an exception just for this.</p>
</li>
<li>
<p>Build configurations and schemes. Did you notice that when you built the project earlier there was no option to choose debug vs. release or some other configuration? That&rsquo;s another one of those decisions that make you wonder if Apple uses Xcode to manage their own projects (and if they do, what kind of developers or projects they have).</p>
<p>They turned something simple like project configurations that nobody ever complained about, into something byzantine worthy of some of the best efforts from Redmond. This gets the award for &ldquo;most complicated feature nobody needed or wanted&rdquo;. It seems now we have an extra layer of indirection. So you act on a scheme, which then decides which configuration to build and what to do. That&rsquo;s why there are &ldquo;Build for analysis&rdquo; (debug), &ldquo;Build for running&rdquo; (release), &ldquo;Build for testing&rdquo; (WTF?), &ldquo;Build for archiving&rdquo; (distribution?).</p>
<p>After spending some time with it, I&rsquo;m still confused how I would go about running the release configuration, or how to mass-edit all the schemes at once (every target seems to get a different scheme).</p>
<p>The whole schemes thing leaves me completely speechless, and that vein on the side of my forehead is pulsating just from thinking about it, so let&rsquo;s just move on.</p>
</li>
</ul>
<h2 id="the-good">The good</h2>
<p>After you take the time to fix Xcode 4 into something usable, and (somehow) put up with the new broken features, is there something to like?</p>
<p>I had to dig deep, but I found a couple of things that I like better than Xcode 3:</p>
<ul>
<li>Much better project settings UI: Multiple panes, showing multiple values for different configurations, etc. Way better than Xcode 3.</li>
<li>Better semantic analysis. During the build process, Xcode 4 was able to correctly flag some problems in my code that Xcode 3 never warned me about. Mostly to do with constness of parent-scope variable when using blocks.</li>
<li>Better keyboard shortcut support for opening files in different windows (assistant pressing the Option key). I never found a way to open a file in a specific window in Xcode 3 without having to use the mouse.</li>
</ul>
<p>And that&rsquo;s pretty much the whole good list that I was able to find :-|</p>
<h2 id="conclusion">Conclusion</h2>
<p>Xcode has been progressively evolving from version 1 until version 3.2. I have no doubt that&rsquo;s the reason for some of the quirks in the later versions. Xcode 4 seems to be a total re-design and re-implementation, and suffers from the classic <a href="http://en.wikipedia.org/wiki/Second-system_effect">second system effect</a>. It&rsquo;s change for the sake of change, most of the time scrapping useful features and not offering useful alternatives.</p>
<p><img alt="Lawn" loading="lazy" src="/xcode-4-trials-and-tribulations/images/lawn.jpg" title="lawn.jpg"></p>
<p>I&rsquo;m sure I only scrapped the surface of the horrors of Xcode 4 in the day I spent with it. I didn&rsquo;t look very closely at the debugger or the Interface Builder (saving those for another day). I keep hearing about developers with stability problems with Xcode, although I didn&rsquo;t run into any crashes (but I hardly did any real work with it).</p>
<p>Overall, my recommendation is that, if you&rsquo;re comfortably working on Xcode 3, stay as far as possible from Xcode 4. We&rsquo;ll all be forced to move there sooner or later, but in the meanwhile you can continue being productive. Maybe by the time they discontinue Xcode 3, Xcode 4 will have improved a bit.</p>]]></content:encoded></item><item><title>Quick Notes On Lion</title><link>https://gamesfromwithin.com/quick-notes-on-lion/</link><pubDate>Wed, 21 Sep 2011 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/quick-notes-on-lion/</guid><description>&lt;p&gt;&lt;img alt="Mac OS X Lion" loading="lazy" src="https://gamesfromwithin.com/quick-notes-on-lion/images/Mac-OS-X-Lion.png" title="Mac-OS-X-Lion.png"&gt;A couple of days ago I had the misfortune of getting back home to find my 6 month-old MacBook Pro completely dead (my second Apple laptop casualty in three years&amp;ndash;not a great track record). Long story short, the Apple Store wasn&amp;rsquo;t able to help me in any way other than ship out the laptop for repairs. Since without it I&amp;rsquo;m dead on the water, I bought a 17&amp;quot; MacBook Pro on the spot. They didn&amp;rsquo;t have one with SSD hard drive, so this is most likely going back to the store when I get back my repaired laptop. In the meanwhile, I can continue working and it lets me check out first hand Lion and Xcode 4.&lt;/p&gt;
&lt;p&gt;These are mostly quick notes to myself so I remember what to change when I upgrade my main machine, but I thought other developers hesitant to upgrade to Lion might find it useful as well.&lt;/p&gt;</description><content:encoded><![CDATA[<p><img alt="Mac OS X Lion" loading="lazy" src="/quick-notes-on-lion/images/Mac-OS-X-Lion.png" title="Mac-OS-X-Lion.png">A couple of days ago I had the misfortune of getting back home to find my 6 month-old MacBook Pro completely dead (my second Apple laptop casualty in three years&ndash;not a great track record). Long story short, the Apple Store wasn&rsquo;t able to help me in any way other than ship out the laptop for repairs. Since without it I&rsquo;m dead on the water, I bought a 17&quot; MacBook Pro on the spot. They didn&rsquo;t have one with SSD hard drive, so this is most likely going back to the store when I get back my repaired laptop. In the meanwhile, I can continue working and it lets me check out first hand Lion and Xcode 4.</p>
<p>These are mostly quick notes to myself so I remember what to change when I upgrade my main machine, but I thought other developers hesitant to upgrade to Lion might find it useful as well.</p>
<h2 id="things-that-had-to-go">Things that had to go</h2>
<p>I found Snow Leopard (and Leopard before it) to be very palatable out of the box. I don&rsquo;t remember any things I absolutely had to do. Lion, however, had some questionable defaults. Or at least, ones that I just can&rsquo;t take.</p>
<p>After making these changes, Lion was quite usable:</p>
<ul>
<li>
<p>Turn off &ldquo;natural&rdquo; scroll direction. The fact that before you can run Lion for the first time it forces you to scroll that way should be a tip off that people aren&rsquo;t ready for this one yet. Maybe in a few years it will make sense to have it as the default, but now it&rsquo;s just against every single computer out there (including most Macs).</p>
</li>
<li>
<p>Autocorrect. This is not an iPhone. It *has* a perfectly fine keyboard. Thank you.</p>
</li>
<li>
<p>Setting up Spaces. Oh, excuse me, Mission Control (sigh). This is the one I was really afraid of. I absolutely rely on having about 8 spaces (2 monitors in each) open at all times and swapping with a keystroke. That&rsquo;s something that I&rsquo;ve been using for many years (first in Linux, then hacked onto Windows XP, and finally in Leopard/Snow Leopard). I just absolutely have to have that.</p>
<p><strong>Update:</strong> There are still a couple annoying things with the new setup. You can&rsquo;t see the number of the desktop you&rsquo;re currently on, like you did with earlier versions of OS X. <a href="https://twitter.com/#!/daniel_collin/status/116889821707902976">Daniel Collin</a> pointed me to an <a href="http://stackoverflow.com/questions/6768684/osx-lion-applescript-how-to-get-current-space-from-mission-control">interesting thread on StackOverflow</a> where people are discussing how to get access to desktop numbers. Give it a few more weeks. Also, when you restart the computer, Lion is smart enough to restore all the apps to their last state&hellip; except that they&rsquo;re all opened in the first desktop, not in the one they were when the system restarted. How difficult would that have been? Here&rsquo;s hoping it&rsquo;s fixed in a patchupdate soon.</p>
<p>The good news is that it&rsquo;s possible to set up Lion that way. The bad news is that by default, it&rsquo;s quite far from that. Bring up Mission Control and create by hand as many desktops as you want. Then go to System Settings | Keyboard | Keyboard Shortcuts and turn on one for each desktop. And for the love of god, please go to Mission Control settings and turn off &ldquo;Automatically rearrange spaces based on most recent use&rdquo;. Clearly Apple doesn&rsquo;t think people want to go to a space directly, and instead prefer to browse them one at the time.</p>
</li>
</ul>
<p>The next few changes just made my experience better, but they&rsquo;re not absolutely musts:</p>
<ul>
<li>This might sound dumb, but Finder didn&rsquo;t have a good way to easily browse my files. Instead, it has this weird &ldquo;All My Files&rdquo; view that jumbles together all your junk there. I have no idea who thought that was a good idea. Maybe Apple is trying to wean users from browsing around the file system. In any case, you can drag your home directory to the sidebar in Finder and that makes it much easier to browse. While you&rsquo;re at it, turn off the &ldquo;Hide extensions in files&rdquo; dumb setting.</li>
<li>Having used a Mac for several years, I&rsquo;m much more sensitive to ugly UI elements. That&rsquo;s why it&rsquo;s so weird that, by default, Lion has the sidebar font in all programs just very slightly larger than the regular system font. Fortunately I wasn&rsquo;t the <a href="http://navinpeiris.com/2011/07/23/os-x-lion-change-finder-sidebar-font-size/">only one bothered by that and it&rsquo;s an easy fix</a>.</li>
</ul>
<p>That&rsquo;s about it. Lion is not very nice and usable (i.e. looks like Snow Leopard). You have that weird &ldquo;full screen&rdquo; button on the top right of all windows, but that&rsquo;s much better ignored (which funny that, was the feature Apple really pushed in their PR for Lion). I have no idea why anyone would want to use that other than the usual word processor that blocks out everything else. If I want to have crippled multitasking, I&rsquo;ll just use the iPad.</p>
<h2 id="good-things-about-lion">Good things about Lion</h2>
<p>So far, if all I&rsquo;m going to do is disable new features so it looks like Snow Leopard, is there there any reason to upgrade to Lion? I surprised myself, but the answer is yes (although they&rsquo;re all very, very minor).</p>
<ul>
<li>Resize a window in any corner and cursor feedback (finally, only 20 years late to the party).</li>
<li>Perfect contact and calendar syncing with Google. I can&rsquo;t tell you how much I appreciate that. I use Google as the backend for all my mail, calendar, and contacts. With Snow Leopard you could sync them, but you had to do some digging and mess around with the sync program. With Lion it works out of the box. Totally awesome. That alone makes it worth the upgrade.</li>
<li>Much improved Mail UI: Better layout, better shortcuts, better conversation view, and, my favorite by far, finally an Archive command for Gmail. Archive doesn&rsquo;t exactly do the same as archiving in Gmail, but it&rsquo;s close enough. Finally I can have two different keyboard shortcuts: One for trashing an email and another one for archiving it.</li>
<li>The jury is still out on how Lion restores the application state when you launch an app. I&rsquo;ve been pleasantly surprised a couple of times, and annoyed a couple other times that I had to close a bunch of useless tabs. Maybe there&rsquo;s a shortcut like Shift + Cmd + Q that quits and app without saving state? That&rsquo;d be handy (OK, that one is not it :-) Oh wow, it&rsquo;s Option + Cmd + Q! I love it when something makes sense like that and you can guess it. OK, so that makes this feature very cool.</li>
<li>Slightly improved Safari (better download management). I really don&rsquo;t see a reason to use Firefox or Chrome when you can use the preinstalled Safari. But then again, I can&rsquo;t stand web UIs and I use native clients for lots of things.</li>
</ul>
<h2 id="must-have-apps">Must-have apps</h2>
<p>It&rsquo;s actually quite refreshing to use the bare minimum number of extra apps beyond what comes with the OS. But there are some apps I just have to have in order to do anything. The main two are <a href="https://agilebits.com/products/1Password">1Password</a> and <a href="http://www.alfredapp.com/">Alfred</a>. I can&rsquo;t recommend them highly enough. They completely change how I work and make me ten times as productive (you&rsquo;ve probably noticed by now that I&rsquo;m not a mouse person).</p>
<p>After those two awesome super-apps, is the second tear of very useful ones: <a href="http://selfcoded.com/app/justnotes/">JustNotes</a>, <a href="http://culturedcode.com/things/">Things</a>, and <a href="http://www.barebones.com/products/textwrangler/">TextWrangler</a>.</p>
<p>Probably <a href="http://www.dropbox.com/">Dropbox</a> should be there somewhere, but for some reason, I still haven&rsquo;t felt the need to use it heavily. I know some people put almost everything on Dropbox and can use across computers. Maybe it&rsquo;s because I only have one that I haven&rsquo;t felt the need for it too much. 1Password and Things both sync from the iPhone so it was really handy restoring all my data. I probably could have done the same thing with Dropbox.</p>
<p>Tomorrow I&rsquo;ll post similar quick notes about Xcode 4. Those might not be quite as positive though.</p>]]></content:encoded></item><item><title>2010: Living The Dream</title><link>https://gamesfromwithin.com/2010-living-the-dream/</link><pubDate>Fri, 31 Dec 2010 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/2010-living-the-dream/</guid><description>&lt;p&gt;It&amp;rsquo;s that time of the year again. We all look back at what happened and have high hopes for the coming year.&lt;/p&gt;
&lt;p&gt;&lt;img alt="New-Year-in.jpg" loading="lazy" src="https://gamesfromwithin.com/2010-living-the-dream/images/New-Year-in.jpg"&gt;&lt;/p&gt;
&lt;p&gt;For me this marked my fourth year as an indie developer. It&amp;rsquo;s not a huge milestone by any standard, but the fact that I&amp;rsquo;ve been going at it for this long and I&amp;rsquo;m not broke yet means it&amp;rsquo;s a sustainable business. Actually, as you know if you followed some of &lt;a href="https://gamesfromwithin.com/making-a-living-barely-on-the-iphone-app-store/"&gt;my&lt;/a&gt; &lt;a href="https://gamesfromwithin.com/making-a-living-comfortably-on-the-app-store/"&gt;numbers&lt;/a&gt; &lt;a href="https://gamesfromwithin.com/the-power-of-free/"&gt;posts&lt;/a&gt;, this was the first year that income from my apps finally became (reasonably) profitable. Now, *that* is something worth celebrating!&lt;/p&gt;</description><content:encoded><![CDATA[<p>It&rsquo;s that time of the year again. We all look back at what happened and have high hopes for the coming year.</p>
<p><img alt="New-Year-in.jpg" loading="lazy" src="/2010-living-the-dream/images/New-Year-in.jpg"></p>
<p>For me this marked my fourth year as an indie developer. It&rsquo;s not a huge milestone by any standard, but the fact that I&rsquo;ve been going at it for this long and I&rsquo;m not broke yet means it&rsquo;s a sustainable business. Actually, as you know if you followed some of <a href="/making-a-living-barely-on-the-iphone-app-store/">my</a> <a href="/making-a-living-comfortably-on-the-app-store/">numbers</a> <a href="/the-power-of-free/">posts</a>, this was the first year that income from my apps finally became (reasonably) profitable. Now, *that* is something worth celebrating!</p>
<p>Doing this kind of small-scale game development is exactly what I would do if I didn&rsquo;t have to worry about money at all, so this is truly living the dream for me.</p>
<h3 id="goals">Goals</h3>
<p>All is not sunshine and roses in Noel indie-land though. I accomplished some of my goals for this year, but missed others by a mile and a half:</p>
<p><img alt="goals.png" loading="lazy" src="/2010-living-the-dream/images/goals.png"></p>
<p>I released a bunch of Flower Garden updates and ran a bunch of promotions that kept bringing revenue up. That went very well. Check.</p>
<p><a href="http://twitter.com/#!/mysterycoconut">Miguel</a> and I also submitted <a href="http://www.caseyscontraptions.com/">Casey&rsquo;s Contraptions</a> to the <a href="/caseys-contraptions-and-the-igf/">IGF</a> (with three hours to spare the day of the deadline). I&rsquo;m very proud of that one. Even if we&rsquo;re not selected as a finalist, the experience of submitting it and finally participating in the IGF was fantastic. Check.</p>
<p>Games shipped. Hmm&hellip;. That&rsquo;s the total fail. The only new game I shipped this year was <a href="http://itunes.apple.com/us/app/lorax-garden/id366510234?mt=8&amp;partnerId=30&amp;siteID=aDkhM0mDflg">Lorax Garden</a>, a very short project in collaboration with <a href="http://oceanhousemedia.com">Oceanhouse Media</a>, mixing their Dr. Seuss license with the flower technology I had already developed. I didn&rsquo;t even manage to ship Casey&rsquo;s before Christmas like I was hoping to do. I could make excuses but there&rsquo;s no point. Real life happens and things go slower than planned (that topic is already brewing for a future post).</p>
<p>My goal for next year is to ship three new games, but always of the quality that I can be proud of. I&rsquo;ll have to be very careful about design and scope to achieve that (I&rsquo;m hoping that hanging out with <a href="http://twitter.com/#!/eeen">Ian</a> and <a href="http://twitter.com/#!/nimbledave">Dave</a> will rub off some of that genius they have for making <a href="http://nimblebit.com/">awesome games on a crazy-short schedule</a>).</p>
<h3 id="games-from-within">Games From Within</h3>
<p>I started my blog, Games From Within, <a href="/book-review-slack-getting-past-burnout-busywork-and-the-myth-of-total-efficiency/">exactly 7 years ago today</a>. I guess that counts as my longest-running project. Some years it was sorely neglected with just a few posts, but this year I spent a significant amount of time on it, thanks in large part to <a href="http://idevblogaday.com/">#idevblogaday</a>.</p>
<p>These were the most popular posts for this year (based on page views, which RSS readers make much harder to track):</p>
<ul>
<li><a href="/making-a-living-barely-on-the-iphone-app-store/">Making A Living (Barely) On The iPhone App Store (aka The Numbers Post)</a></li>
<li><a href="/data-oriented-design/">Data-Oriented Design (Or Why You Might Be Shooting Yourself in The Foot With OOP)</a></li>
<li><a href="/the-const-nazi/">The Const Nazi</a> (This one is a total surprise that it made it this high up!)</li>
<li><a href="/making-a-living-comfortably-on-the-app-store/">Making A Living (Comfortably) On The App Store (aka The Numbers Post #2)</a></li>
<li><a href="/prototyping-youre-probably-doing-it-wrong/">Prototyping: Youâ€™re (Probably) Doing It Wrong</a></li>
<li><a href="/google-app-engine-as-back-end-for-iphone-apps/">Google App Engine As Back End For iPhone Apps</a></li>
<li><a href="/increase-your-app-ratings-on-the-app-store/">Increase Your App Ratings On The App Store</a></li>
<li><a href="/gdc-2010-the-best-of-both-worlds-using-uikit-with-opengl/">GDC 2010: The Best of Both Worlds: Using UIKit with OpenGL</a></li>
</ul>
<p>2011 should be an exciting year for me personally and for all indie game developers out there. Happy new year everybody!</p>
]]></content:encoded></item><item><title>Jigsaw Guru For The Windows Phone 7 Postmortem</title><link>https://gamesfromwithin.com/jigsaw-guru-for-the-windows-phone-7-postmortem/</link><pubDate>Thu, 23 Dec 2010 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/jigsaw-guru-for-the-windows-phone-7-postmortem/</guid><description>&lt;p&gt;&lt;em&gt;This is a new guest post by &lt;a href="http://twitter.com/#!/fredericmy"&gt;Frederic My&lt;/a&gt;. Frederic and I worked together in the past in big console games development, and now we&amp;rsquo;re both enjoying the indie life and making games for mobile platforms. Frederic is sharing with us how the development of his first Windows Phone 7 game went. Thanks Frederic!&lt;/em&gt;&lt;/p&gt;
&lt;h3 id="new-beginning"&gt;New beginning&lt;/h3&gt;
&lt;p&gt;When my job position got terminated last summer, I decided I would take a break from working for big companies, and try to make a game on my own at home. I&amp;rsquo;ve been in the video game industry since the late nineties, I&amp;rsquo;ve written code for a few released PC and console AAA titles and probably as many canceled ones, and I wanted to do something different at least for a few months. Go back to the roots of game development, when one or two guys could create something in their garage or bedroom, without spending years and millions of dollars on it.&lt;/p&gt;</description><content:encoded><![CDATA[<p><em>This is a new guest post by <a href="http://twitter.com/#!/fredericmy">Frederic My</a>. Frederic and I worked together in the past in big console games development, and now we&rsquo;re both enjoying the indie life and making games for mobile platforms. Frederic is sharing with us how the development of his first Windows Phone 7 game went. Thanks Frederic!</em></p>
<h3 id="new-beginning">New beginning</h3>
<p>When my job position got terminated last summer, I decided I would take a break from working for big companies, and try to make a game on my own at home. I&rsquo;ve been in the video game industry since the late nineties, I&rsquo;ve written code for a few released PC and console AAA titles and probably as many canceled ones, and I wanted to do something different at least for a few months. Go back to the roots of game development, when one or two guys could create something in their garage or bedroom, without spending years and millions of dollars on it.</p>
<h3 id="platform-choice">Platform choice</h3>
<p>I&rsquo;m a C# fan, I won&rsquo;t deny it, I even <a href="http://www.fairyengine.com/articles/cppvscsharp.htm">explained why</a> back in 2007. I also toyed with XNA each time a new version was released, and I like how straightforward it is to use. When the beta version of the tools to develop for the Windows Phone 7 (WP7 for short) became available, just at the right time for me, it seemed like the obvious choice for what I wanted to do. And developing for a brand new platform sounded exciting as well, even if it was perhaps a riskier bet than targeting well established markets. For those who don&rsquo;t know much about WP7 development, I just want to highlight a few key points:</p>
<ul>
<li>Applications are written in Visual Studio using C#, and either XNA or Silverlight. This may come in the future, but at this point you are not allowed to mix them, and use the controls of Silverlight with the faster rendering of XNA, for example.</li>
<li>In App Purchases are not supported yet.</li>
<li>Programmable shaders are not available for WP7 (they obviously are for the PC and XBox360) in the current version of XNA. Instead, you have 5 predefined shaders with features that can be toggled on and off (such as fog or per pixel lighting). These shaders should cover most of the usual needs, but if you want something very specific that they don&rsquo;t support, you&rsquo;re out of luck (or have to fall back to multiple passes and alpha blending).</li>
<li>Paid applications have a trial mode, that allows users to evaluate them before making a purchase. Unlike on XBox Live Indie Games (XBLIG), where the game just abruptly stops after 8 minutes, developers have a complete control over what they want to show in trial mode (for example, the first few levels of a game, with no time limit, or without the ability to save, etc). In theory, this means you shouldn&rsquo;t have to make a free version of your game in addition to the paid one, but I&rsquo;ll come back to this later.</li>
<li>The certification requirement document is only 27 pages long, table of content and change history included.</li>
</ul>
<h3 id="the-project">The project</h3>
<p><img alt="aaa9dd16-fbda-df11-a844-00237de2db9e.png" loading="lazy" src="/jigsaw-guru-for-the-windows-phone-7-postmortem/images/aaa9dd16-fbda-df11-a844-00237de2db9e.png">I wrote a few ideas on paper, but they all looked too ambitious for a first project. One thing in particular that I wanted to avoid was to require a lot of content, since I didn&rsquo;t even know how I was going to find an artist yet. During a bike ride, I thought about using photos, and that&rsquo;s how I decided to make a jigsaw puzzle game. Not super original, I know, there are several of those on the iPhone and iPad, but there was none on the WP7 since it wasn&rsquo;t released yet :), and it looked like a good project of the right scope to keep things under control and learn the platform. For example, I had never worked with a touch screen device, and it was pretty obvious from the start that I was going to spend quite some time iterating on the user interface part of the game. ï¿¼ The game is called Jigsaw Guru, and you can go to <a href="http://www.fairyengine.com/">http://www.fairyengine.com</a> to see more screenshots and a video.</p>
<h3 id="what-went-right">What went right</h3>
<p>I actually already mentioned some of the things that went right in my opinion, but here is the full list:</p>
<ul>
<li>Working on a short project, without too much content to integrate, instead of picking another more ambitious and time consuming idea, was the right choice. My goal was to have Jigsaw Guru on the marketplace the day of the WP7 launch, I submitted it on 10/18 and it got approved on 10/23 (the update I submitted in December passed even faster than that), two weeks before the US launch and two days after the other territories started getting their phones. At times I still had more items on my to-do list than I would have liked, and I made a good push in the last 3 weeks to get everything wrapped up in time, but it never got too crazy.</li>
<li>Knowing the tools beforehand, and using C# and XNA, definitely made me feel productive. The phone emulator was surprisingly stable in the beta, and the XNA forums were very helpful when I wasn&rsquo;t sure about something. It&rsquo;s also worth noting that the website used to submit bug reports allows everybody to see what other people have written, and vote on issues you think are important and should be fixed first.</li>
<li>Garbage collection is the one thing that can hurt your framerate really bad when using XNA on XBox360 and WP7. But it&rsquo;s not that hard to avoid: when I had a look at my memory usage late in the project, I only found two spots where I was creating some amount of garbage each frame (both related to strings). Basically what I do is each time the player goes from one screen to another, I load everything I need for the new screen, and I force a garbage collection. This gets rid of temporary objects that may have been created during the loading process, and objects from the previous screen that are not used anymore. After that, I don&rsquo;t allocate anything, and the garbage collector never has to do any work.</li>
<li>Finally: testing. Very few people tested my game while I was developing it, but my friend Alexis alone kept giving me more feedback than I thought I could handle. He never said anything was good just to make me happy, he reported every little detail he didn&rsquo;t like, even and especially the ones I was aware of but never had time to fix (and maybe thought nobody would notice). Even if I sometimes felt he was nitpicking, this was exactly what I needed.</li>
</ul>
<p><img alt="jigsawguru2small.png" loading="lazy" src="/jigsaw-guru-for-the-windows-phone-7-postmortem/images/jigsawguru2small.png"></p>
<h3 id="what-went-wrong">What went wrong</h3>
<p>Developing for a new platform has its share of drawbacks, it&rsquo;s just how it is. The final version of XNA 4.0 only came out mid-September, and before that I was working with the beta version. As mentioned before, it was pretty solid already, but there was no redistribution of the runtime. Which means you had to install all the tools to be able to just run the game, and you could only install them under Vista or Windows 7 because the phone emulator requires DirectX10, and some of my potential testers were still using Windows XP. So, even if what I was sending was a PC version of the game, they couldn&rsquo;t run it on XP just because the phone emulator, which they didn&rsquo;t need, requires a more recent operating system. To work around this problem, I made an XNA 3.1 PC version of Jigsaw Guru, but maintaining two versions side by side for several weeks and merging back and forth between them was not fun.</p>
<p>Coding for a device that wasn&rsquo;t released yet also meant I could not test what I was doing on real hardware. I unsuccessfully tried to get a phone prototype, and basically the only way I found to run my game on a WP7 at the end of September was to go to a Microsoft event. Even there, I thought there would be phones locked to the tables, that developers could connect to their laptop and use for the whole day, but I was wrong: there was no such thing, and the 4-5 persons who already had a working application to test like me had to do it on the phone of the event&rsquo;s organizer, when he wasn&rsquo;t using it for something else. I was able to run my application twice for about 5 minutes each time, and fortunately everything seemed to be working fine, which is a testament of the reliability of the emulator.</p>
<p>When the game began to be really playable, with most of the screens that are in the final version, I started looking for an artist and a musician. I did it way too late, and I was lucky to find Aimee and Tim through the XNA forums, and that the time estimates they gave me just matched my own programming deadline. So, in the end everything worked out well, but even if I wanted to wait and be sure the UI elements were final before asking somebody to redo them, I believe I also waited just because I was more comfortable doing my programming tasks first, and that was a mistake.</p>
<p>Marketing was a difficult problem: I knew I needed to do some, but how? When Jigsaw Guru got approved, the WP7 wasn&rsquo;t out yet in the US, and had just been released in a few countries of Europe and Asia, as well as Australia and New Zealand. Basically, nobody had that phone yet, and I couldn&rsquo;t find any website reviewing its games. Even when I had a second look for the US launch, I only saw a couple of sites testing 2 or 3 of the official XBox Live games (that&rsquo;s how they&rsquo;re called even if they run on a phone), but nothing related to indie games. So, what ended up happening is I did nothing, and just hoped that because there weren&rsquo;t too many applications on the marketplace yet (which is the reason for being a launch title, right?), people interested in jigsaw puzzle games would fine mine. Of course I was wrong, and the fact that the search in the Zune software didn&rsquo;t seem to care about the keywords you enter when submitting your app, or couldn&rsquo;t find my game when searching for &lsquo;jigsaw&rsquo;, didn&rsquo;t help (this seems to be fixed now). I don&rsquo;t know how other developers releasing WP7 games around the same time as me handled their marketing, but I would be curious to hear it, that question is still a mystery to me.</p>
<h3 id="downloads-and-sales">Downloads and sales</h3>
<p>This could have been another paragraph in the &ldquo;what went wrong&rdquo; category, but I think this subject deserves its own section. Download and sale numbers for WP7 apps became available on Wednesday 12/08, and I don&rsquo;t think anybody was thrilled. Don&rsquo;t get me wrong: WP7 is a very young platform, there aren&rsquo;t tens of millions of phones in circulation, sale expectations have to be low for now, and can certainly not be compared with those of competing platforms. No, what really surprised me is not the number of sales, but the number of downloads.</p>
<p>On the &ldquo;top selling&rdquo; tab of the Zune software (which is more likely based on downloads, like the Bing visual search), Jigsaw Guru has always been in the middle of the paid games from the puzzle &amp; trivia category, the biggest category by far (about 45% of all games). Today for example, it&rsquo;s 174th out of 363. How many downloads do you think this means on average? About 0.65 per day. This totally blows my mind, but is in line with <a href="http://wmpoweruser.com/developer-sales-data-reveals-logarithmic-marketplace-70000-downloads/">a graph a developer made with the numbers from his 4 apps</a>, that shows the relationship between the marketplace rank and the number of downloads.</p>
<p>One potential problem is it&rsquo;s not obvious enough that lots of paid games support the free trial mode, and some players don&rsquo;t know they can download them for free. But really, it all comes down to most players only checking the XBox Live and the free sections, and rarely visiting the paid one. Which is why although I said earlier that in theory, and thanks to the trial mode, you shouldn&rsquo;t need to make a free version of your paid game, in practice it&rsquo;s obvious this doesn&rsquo;t work, and you have to do it. My friend Noel, who is an experienced iPhone developer, had actually told me I should release my game as a free, ad supported app; unfortunately, the ad SDK&rsquo;s for XNA didn&rsquo;t exist at launch and are still in their infancy, the one from Microsoft got released this month and only serves ads in the US, the other ones are either not finished or not stable yet.</p>
<p>So, what&rsquo;s next? I&rsquo;m submitting Jigsaw Guru Free (with the Microsoft ad SDK) this week, because as a developer, I still want people to play my game and hopefully have a good time with it. The two projects I started working on after Jigsaw Guru might follow the same path and be free apps from the start, whether it&rsquo;s on the WP7 or another platform.</p>
]]></content:encoded></item><item><title>Communicating With Players</title><link>https://gamesfromwithin.com/communicating-with-players/</link><pubDate>Thu, 30 Sep 2010 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/communicating-with-players/</guid><description>&lt;p&gt;By now every iOS developer knows that making a great game and putting it on the App Store is only part of the work. In order to get significant sales, it needs to be noticed. You need to spend a significant amount of time in marketing and PR, making sure that blogs cover it, magazines review it, or at least jump-starting it with a group of devoted and vocal forum fans.&lt;/p&gt;</description><content:encoded><![CDATA[<p>By now every iOS developer knows that making a great game and putting it on the App Store is only part of the work. In order to get significant sales, it needs to be noticed. You need to spend a significant amount of time in marketing and PR, making sure that blogs cover it, magazines review it, or at least jump-starting it with a group of devoted and vocal forum fans.</p>
<p>Most often, the advice stops there. So you get your initial sales spike and then sales go way down. What do you do then? Usually, developers release new features and updates. That&rsquo;s great, but how do you get people to notice it. You need to establish some form of communication with your players.</p>
<h3 id="update-messages">Update Messages</h3>
<p>The simplest form of communication is through the &ldquo;What&rsquo;s new&rdquo; section in the update. You can use that section not just to list what features you added and what bugs you fixed, but also to let your players know about other things: plans for the future, other games to try, or even the URL for your Facebook group.</p>
<p>Credit goes to <a href="http://twitter.com/limasky">Igor</a> for bringing up this idea and pointing out the URLs are even clickable in this field (but they aren&rsquo;t in the app description).</p>
<p>Of course, if you&rsquo;re like me and you update your apps only once in a while, this technique isn&rsquo;t as effective. Right now my iPhone tells me I have 67 new updates available. I&rsquo;m clearly not going to be reading through the release notes of each one.</p>
<h3 id="in-game-news">In-Game News</h3>
<p><img alt="fg_promo.jpg" loading="lazy" src="/communicating-with-players/images/fg_promo.jpg">A more direct way of reaching out to your players is to have some sort of in-game news system. At any point you can update a file in your web server with any news, and it is displayed in the game. It can be implemented in many different ways depending on &ldquo;on your face&rdquo; you want to be about it: a pop up that comes up when the user runs the game, a ticker that runs constantly across the bottom of the screen, or, what I did for Flower Garden, a news icon with a badge indicating how many unread items there are, that brings up the news page when you tap it.</p>
<p>Make sure players are able to click on URLs in your news messages so you can direct them to different web pages easily. More on that on a bit.</p>
<h3 id="emails">Emails</h3>
<p>Update messages are only good for players who update their apps (ahem, ahem), and in-game news for active players who&rsquo;re currently launching your apps. For maximum effect, you can send an email newsletter and that way you can also reach users who played the game at some point in the past, but aren&rsquo;t currently playing it now. They&rsquo;re the ones probably most interested in new updates and features, and chances are you can rekindle their interest in the game.</p>
<p>To do this, you should encourage users to register for your mailing list, or collect their emails with their consent in some other way. This was a technique I started using back in December of last year <a href="/making-a-living-barely-on-the-iphone-app-store/">with great success</a>.</p>
<p>I&rsquo;m currently using <a href="http://www.yourmailinglistprovider.com/">Your Mailing List Provider</a> as a means to delivering thousands and thousands of emails <a href="#1">[1]</a>. By the way, <a href="http://ymlp.com/xgemmyyugmgj">don&rsquo;t miss a chance to join the Flower Garden mailing list</a> :-)</p>
<h3 id="facebook">Facebook</h3>
<p>Similar to the mailing list approach, <a href="http://www.facebook.com/iphoneflowergarden">Facebook groups</a> can be a very effective form of communication. An additional benefit is that friends of your players might see them participating in the page and might make them try out your game.</p>
<h3 id="case-study-pocket-frogs-cross-promotion">Case Study: Pocket Frogs Cross-Promotion</h3>
<p>All that is fine in theory. How does it work in practice? I have been using all four forms of communication for a while, and I&rsquo;m definitely seeing good bumps of sales and downloads with each update and each major communication.</p>
<p>Last week, <a href="http://twitter.com/eeen">Ian</a> and <a href="http://twitter.com/NimbleDave">Dave</a> from <a href="http://nimblebit.com/">Nimblebit</a> and I, decided to set up a cross promotion between Pocket Frogs and Flower Garden.</p>
<p><img alt="pf_promo.jpg" loading="lazy" src="/communicating-with-players/images/pf_promo.jpg"></p>
<p>I updated the in-game news and send out an email newsletter coinciding with the latest Flower Garden update telling the players that if they downloaded Pocket Frogs from within Flower Garden, they would be awarded 5 doses of fertilizer. Nimblebit awarded players a flower if they downloaded Flower Garden Free from within Pocket Frogs.</p>
<p>When you have over a million downloads in a week like Pocket Frog did, that kind of player communication is the equivalent of a nuclear cannon. The effects of the cross-promotion were obvious the instant the news went live:</p>
<p><img alt="fgf_chart.png" loading="lazy" src="/communicating-with-players/images/fgf_chart.png"></p>
<p>As you can see, Flower Garden Free made it all the way to the <a href="http://www.topappcharts.com/327466677/app-details-flower-garden-free-grow-flowers-and-send-bouquets.php">number 56 in the iPhone Top Apps chart</a> in the US! The effect even <a href="http://www.topappcharts.com/311265471/app-details-flower-garden-grow-flowers-and-send-bouquets.php">spread to the paid version of Flower Garden</a>:</p>
<p><img alt="fg_charts.png" loading="lazy" src="/communicating-with-players/images/fg_charts.png"></p>
<p>Pocket Frogs at the time was hovering at around #9 on the charts, so it was difficult to have much of an impact on that position without major numbers, but we suspect it might have hovered there a little longer because of the extra downloads from Flower Garden.</p>
<p>Here is what the downloads for Flower Garden Free looked like for the last month. The Pocket Frogs cross-promotion is quite noticeable:</p>
<p><img alt="fg_downloads.png" loading="lazy" src="/communicating-with-players/images/fg_downloads.png"></p>
<p>All those downloads also translated into in-app sales through the Flower Shop. Here are the revenues for that time period:</p>
<p><img alt="fg_revenue.png" loading="lazy" src="/communicating-with-players/images/fg_revenue.png"></p>
<p>One consequence I wasn&rsquo;t expecting, but in retrospect I&rsquo;m not that surprised about, is that the ratings for Flower Garden Free dropped by a whole star (from 4 to 3), with a large percentage of 1-star reviews. That&rsquo;s because a lot of people who wouldn&rsquo;t have downloaded Flower Garden otherwise did it anyway, didn&rsquo;t like it, and deleted it right away.</p>
<p>To wrap things up on a better note, there was yet another side effect of the cross promotion. The Pocket Frogs link was using my LinkShare referral code. Sending all those users to the App Store to download a free game link resulted in about $200 in referral profit for the week.</p>
<h3 id="conclusion">Conclusion</h3>
<p>Communicating with your players is more than just profitable: It&rsquo;s crucial to the sustained success of your games. Make sure you try to engage with them in every way you can, keep them up to date with developments in your game, and don&rsquo;t hesitate to run the occasional cross-promotion, especially with other games that are a good match for your target audience.</p>
<p>[1] If you <a href="http://ymlp.com/psignup_promo">decide to use them</a> and wouldn&rsquo;t mind using my referral code (WQHVUF), I can get a small percentage back.</p>
<p><em>This post is part of <a href="http://idevblogaday.com/">iDevBlogADay</a>, a group of indie iPhone development blogs featuring two posts per day. You can keep up with iDevBlogADay through the <a href="http://idevblogaday.com/">web site</a>, <a href="http://feeds.feedburner.com/idevblogaday">RSS feed</a>, or <a href="http://twitter.com/#search?q=%23idevblogaday">Twitter</a>.</em></p>
]]></content:encoded></item><item><title>My Standing Desk Experiment</title><link>https://gamesfromwithin.com/my-standing-desk-experiment/</link><pubDate>Fri, 24 Sep 2010 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/my-standing-desk-experiment/</guid><description>&lt;p&gt;I&amp;rsquo;m not sure where I first heard about standing desks. It was probably about a year ago in some online article, but it didn&amp;rsquo;t have much of an impact at the time. Since then, the benefits of standing (or rather, the dangers of sitting down for prolonged periods of time) has been appearing &lt;a href="http://opinionator.blogs.nytimes.com/2010/02/23/stand-up-while-you-read-this/?em"&gt;in the news&lt;/a&gt; &lt;a href="http://www.usatoday.com/news/health/2010-01-20-sitting-death_N.htm"&gt;more often&lt;/a&gt;. Some people even went as far as setting up &lt;a href="http://lifehacker.com/171537/coolest-workspace-contest--the-treadputer"&gt;treadmill desks&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Initially I dismissed it for me because I&amp;rsquo;m reasonably active: I either run or bike 5 or 6 days per week, and the rest of the days I go for a walk around the neighborhood. It was the combination of &lt;a href="http://press.psprings.co.uk/bjsm/january/sm67702.pdf"&gt;increased studies&lt;/a&gt; on the effects of sitting, some people in &lt;a href="http://twitter.com/castano"&gt;my&lt;/a&gt; &lt;a href="http://twitter.com/eeen"&gt;social&lt;/a&gt; &lt;a href="http://twitter.com/ClickNothing"&gt;circle&lt;/a&gt; finally making the jump and raving about it, and me developing some problems in a hamstring that finally made me consider it more seriously. And trust me, if you&amp;rsquo;re a cyclist or a runner, the last thing you want to have is hamstring problems.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I&rsquo;m not sure where I first heard about standing desks. It was probably about a year ago in some online article, but it didn&rsquo;t have much of an impact at the time. Since then, the benefits of standing (or rather, the dangers of sitting down for prolonged periods of time) has been appearing <a href="http://opinionator.blogs.nytimes.com/2010/02/23/stand-up-while-you-read-this/?em">in the news</a> <a href="http://www.usatoday.com/news/health/2010-01-20-sitting-death_N.htm">more often</a>. Some people even went as far as setting up <a href="http://lifehacker.com/171537/coolest-workspace-contest--the-treadputer">treadmill desks</a>!</p>
<p>Initially I dismissed it for me because I&rsquo;m reasonably active: I either run or bike 5 or 6 days per week, and the rest of the days I go for a walk around the neighborhood. It was the combination of <a href="http://press.psprings.co.uk/bjsm/january/sm67702.pdf">increased studies</a> on the effects of sitting, some people in <a href="http://twitter.com/castano">my</a> <a href="http://twitter.com/eeen">social</a> <a href="http://twitter.com/ClickNothing">circle</a> finally making the jump and raving about it, and me developing some problems in a hamstring that finally made me consider it more seriously. And trust me, if you&rsquo;re a cyclist or a runner, the last thing you want to have is hamstring problems.</p>
<p>It turns out that my 5-mile morning runs weren&rsquo;t making me immune to the dangers of sitting. It&rsquo;s not how much exercise you get per day, but how long do you sit on a chair continuously. And no, buying an fancy, expensive chair might help with your back, but it&rsquo;s not going to do one bit of good with all the other problems.</p>
<p>One of the many advantages of working from home is that I can try weird things that would be much more difficult in a regular workplace. I also have a track history of liking to experiment on myself <a href="#1">[1]</a>, so it didn&rsquo;t take much convincing to give this a try.</p>
<p>After some initial research, it appeared that the way to go was an adjustable-height desk. That way you can work standing, but you still have the flexibility to sit down whenever you need to. I also found out that apparently this is not all that uncommon in Europe. The only drawback is that adjustable standing desks are not easily available here in the US, and the ones that are out there are aimed at offices and big companies, with matching eye-popping price tags. Even though <a href="/the-power-of-free/">Flower Garden continues to do well</a>, I wasn&rsquo;t quite ready to plop down several thousand dollars on something I might end up hating.</p>
<p><img alt="standing_1.jpg" loading="lazy" src="/my-standing-desk-experiment/images/standing_1.jpg">So I decided to start cheap and work my way up from the bottom. First I had to decide if I even liked this whole working-while-standing thing. I wasn&rsquo;t even sure I would be able to type! I thought about raising my desk with cinder blocks, but I would have to raise a lot and would make it very unstable. So instead, I created four stacks of books on top of my desk and put a board on top. Then I was able to put the keyboard, computer, and monitor on the board and give that a try.</p>
<p>Let me tell you: It was weird.</p>
<p>At first I didn&rsquo;t know how to type. My fingers were constantly off to the side. It turns out my initial height was too low. You really want to have the keyboard at a height that puts a 90 degree bend on your elbows. That&rsquo;s what they say about the sitting position, but somehow I can manage to have less. However, standing, I really needed that height.</p>
<p>Even once I adjust the height, the first day was kind of rough. After an hour, I was definitely feeling it in my feet. I think I did half a day the first day and I felt totally exhausted. All that running wasn&rsquo;t helping that much standing at my desk apparently.</p>
<p>Fortunately things got better very quickly. In a few days, I was able to work for hours without much problem. I would find myself constantly shifting my weight between my feet and moving around a little bit. I was definitely liking that whole standing thing.</p>
<p><img alt="standing_2.jpg" loading="lazy" src="/my-standing-desk-experiment/images/standing_2.jpg">At this point I decided that the stack of books was too annoying, but I wasn&rsquo;t quite ready for an expensive desk. So I picked up a <a href="http://www.ikea.com/us/en/catalog/products/60141484">Fredrik Ikea</a> desk from Craigslist for $50. The nice thing about this desk is that it can be assembled so the top of the desk is almost at any height. You can&rsquo;t change it on the fly, but at least it serves as a standing desk.</p>
<p>Finally I was able to work standing and be comfortable at the same time now that I had space for more than a mug along with the keyboard. The extra shelves on the desk were also very handy (one over the table top and one underneath).</p>
<p>After spending a couple of weeks with the desk, I decided that I definitely liked standing and it was something I wanted to continue doing long term. I felt more focused while standing, and my productivity was up. An unexpected side benefit was that when someone else comes into the room, they can walk right up to the desk and we can look at the monitor together, or look at some papers, much more easily than if it was a sitting desk.</p>
<p>However, it was also clear that I needed to switch things up a bit. Spending the whole day standing continued to be pretty tough on my feet, and it even made it so I didn&rsquo;t want to work any longer than I had to. I really had to combine the standing with some hours of sitting down, which is probably a healthier thing to do anyway.</p>
<p>At this point I had two options: I could go full out and get a motorized adjustable desk, or I could get an adjustable draft chair which are tall enough to sit comfortably at a standing-height desk. Since I already had a nice office chair, and the Ikea desk was a bit wobbly set up like that, I decided to spend the money on the motorized desk.</p>
<p>Again, after a bunch of research, it seemed that one of the best options was to order a (very appropriately named), <a href="http://www.geekdesk.com/">GeekDesk</a> online. They have them in two sizes, Classic and Mini. It turns out I wanted something more in the middle (around 60&quot; wide), so I ended up ordering the Mini frame and a <a href="http://www.ikea.com/us/en/catalog/products/50106773">desk top from Ikea for $80</a>. It wasn&rsquo;t cheap, but it was way cheaper than the alternatives and all the reviews and experiences I read were very positive.</p>
<p>It arrived very quickly and it was a breeze to assemble. I did have a scary moment that it looked like one of the wheels didn&rsquo;t fit in the metal opening, but I eventually managed to coerce it. Hopefully this kind of manufacturing problems aren&rsquo;t common.</p>
<p><img alt="x2_277d29f.jpeg" loading="lazy" src="/my-standing-desk-experiment/images/x2_277d29f.jpeg"><img alt="x2_277d225.jpeg" loading="lazy" src="/my-standing-desk-experiment/images/x2_277d225.jpeg"></p>
<p>I can only describe the final setup with one word: Awesome. The desk isn&rsquo;t wobbly at all, and it takes just a few seconds to change heights with the push of a button. Not just that, but I can fine tune the height at any moment in tiny increments. And in the sitting position, I can put it low enough to make typing very comfortable (most desks are set up too high to type really comfortably for me).</p>
<p>My daily work routine has settled into working standing in the mornings, sitting for an hour or so after lunch, standing all afternoon, and then sitting in the evening I have have to do some work. With the wonderful weather here in Southern California, I&rsquo;ll often take my sitting work time outside in the back patio in the shade. So all in all, I probably spend one or two hours sitting down at the desk.</p>
<p>Yes, it was a significant amount of money, but it&rsquo;s something I&rsquo;m using every day and it improves both my productivity and my health. Definitely worth it.</p>
<p>Standing desks have one downside though. This situation happens embarrassingly often. Good thing I work home alone!</p>
<p>[1] A few years ago I gave polyphasic sleep a try. It was actually really great for gaining extra hours, but eventually I gave it up because I was constantly out of sync with the rest of the world. I&rsquo;d do it again if I were spending months <a href="http://www.imdb.com/title/tt0084787/">alone in a research station in the Antarctica</a>.</p>
<p><em>This post is part of <a href="http://idevblogaday.com/">iDevBlogADay</a>, a group of indie iPhone development blogs featuring two posts per day. You can keep up with iDevBlogADay through the <a href="http://idevblogaday.com/">web site</a>, <a href="http://feeds.feedburner.com/idevblogaday">RSS feed</a>, or <a href="http://twitter.com/#search?q=%23idevblogaday">Twitter</a>.</em></p>
]]></content:encoded></item><item><title>2009: The Year of The Indie Developer?</title><link>https://gamesfromwithin.com/2009-the-year-of-the-indie-developer/</link><pubDate>Thu, 01 Jan 2009 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/2009-the-year-of-the-indie-developer/</guid><description>&lt;p&gt;A few days ago I went out to lunch with some friends and they brought up an interesting thought: Will 2009 be the year of the indie developer?&lt;/p&gt;
&lt;p&gt;I loved the sound of that! I&amp;rsquo;ve been an indie developer for a year and a half, and I&amp;rsquo;m seeing &lt;a href="http://appyentertainment.com/"&gt;more&lt;/a&gt; &lt;a href="http://www.torpexgames.com/index.php"&gt;and&lt;/a&gt; &lt;a href="http://2dboy.com/"&gt;more&lt;/a&gt; people taking tha route. I think indie development is necessary for a healthy game development industry. Where else are people going to try weird ideas, experimental development techniques, an commercially unproven designs? I think it&amp;rsquo;s a sign of maturity that we&amp;rsquo;re seeing a need filled by independent development next to the Maddens and Worlds of Warcraft and other chart-toppers.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A few days ago I went out to lunch with some friends and they brought up an interesting thought: Will 2009 be the year of the indie developer?</p>
<p>I loved the sound of that! I&rsquo;ve been an indie developer for a year and a half, and I&rsquo;m seeing <a href="http://appyentertainment.com/">more</a> <a href="http://www.torpexgames.com/index.php">and</a> <a href="http://2dboy.com/">more</a> people taking tha route. I think indie development is necessary for a healthy game development industry. Where else are people going to try weird ideas, experimental development techniques, an commercially unproven designs? I think it&rsquo;s a sign of maturity that we&rsquo;re seeing a need filled by independent development next to the Maddens and Worlds of Warcraft and other chart-toppers.</p>
<p>I think 2008 will go down as the year that indie games made it to the big time: <a href="http://braid-game.com/">Braid</a>, <a href="http://www.torpexgames.com/games.php">Schizoid</a>, and <a href="http://www.worldofgoo.com/">World of Goo</a> are just the top of the iceberg. It showed that it was possible to become an indie developer and make a living from it. 2009 has to be the year that indie development really explodes, right? The trend is certainly there. I&rsquo;m constantly hearing about people or even whole teams leaving <a href="http://www.ea.com/">large</a> <a href="http://www.activision.com/index.html">development</a> <a href="http://www.ubi.com/">houses</a> and starting their own, small companies. These developers are not trying to become the next EA, but they want to keep things small, creative, and, above all, fun.</p>
<p>If the only path for indie game development were downloadable console games on XBLA and PSN, the future wouldn&rsquo;t look so bright. I used to be really excited about those platforms, but the restrictive zeal of Microsoft and Sony, the dingy royalty deal on XBLA, plus the high-development costs required for most games in those platforms, makes them very difficult to develop for and make any money from them. More and more, I&rsquo;m hearing of donwloadable console titles with budgets around a million dollars. A million dollars!! That&rsquo;s &ldquo;just&rdquo; a tad bit out of my indie pocket range.</p>
<p>Fortunately there are other paths. We have the usual PC market, which seems to be on its way to being abandoned by the major players but leaves a void for indies. <a href="http://www.bit-blot.com/aquaria/">Some</a> <a href="http://www.wolfire.com/lugaru">guys</a> seem to be doing well there, especially if you consider the Mac and Linux markets in addition to Windows.</p>
<p>Then there&rsquo;s Nintendo&rsquo;s <a href="http://www.nintendo.com/wii/wiiware">WiiWare</a>, which seems surprisingly much more open than the Xbox360 or PS3. I don&rsquo;t have any friends who are personally developing for WiiWare, but I hear the barriers of access are not insurmountable. I&rsquo;d love to see some sales numbers though. Nintendo certainly has the name to attract players and developers. Maybe they need to open up their DS development a bit too. <a href="http://www.bobsgame.com">Bob would like that</a> for sure!</p>
<p>And then we have our last, best hope for indie game development: The iPhone <a href="#note1">[1]</a>.</p>
<p>The iPhone seems to hit all the right marks: Hardware advanced enough that you can develop really interesting and good-looking games, yet simple enough that one or two people can create a top title. Very open (<a href="http://developer.apple.com/iphone">the SDK and tools are available for free</a> to anyone!!) but with a very clear <a href="http://www.apple.com/iphone/appstore/">distribution channel</a>.</p>
<p>Given the low prices of games (between $0.99 and $10) on the iPhone, not only is it possible to make great games with a team of two people, but actually having larger teams can make development much less profitable. I can&rsquo;t imagine how EA or Maxis are making any money from their iPhone games if they put even just 10 or 20 people to work on them for a few months.</p>
<p>In order for indies to succeed in the app store, it&rsquo;s important that we get enough visibility. Right now, the big money is on the top lists that Apple publishes which are unfortunately out of reach for most of us. A trend I&rsquo;ve noticed lately is that big publishers are starting to elbow out indies out of the <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewCustomPage?name=pageiTunes2008_Apps">Top Ten charts</a>. I hope that&rsquo;s not a trend that continues much further.</p>
<p>I&rsquo;m glad to see that the app store has related links when you browse a product, and also a variety of independent web sites that are appearing trying to sort the iWheat from the iChaff. It&rsquo;s a start, but we need more initiatives along those lines. In the meanwhile, support your indie iPhone developers. Or at least go out of your way to learn a bit more about them. If you haven&rsquo;t seen it already, check out the <a href="http://www.newyearappblowout.com/">New Year&rsquo;s App Blowout Sale</a> and pick up <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=298155609&amp;mt=8">Sneezies</a>, <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=299876012&amp;mt=8">Up There</a>, and <a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=294789951&amp;mt=8">Mouse House</a>. All three totally adorable, very polished games.</p>
<p>Happy New Year 2009 to everybody! I&rsquo;m sure this year will bring a lot of surprises and interesting developments.</p>
<p>[1]Yes, I shamelessly stole that line from <a href="http://babylon5.warnerbros.com/">my favorite sci-fi show</a>.</p>]]></content:encoded></item><item><title>Stranger in a Mac Land</title><link>https://gamesfromwithin.com/stranger-in-a-mac-land/</link><pubDate>Mon, 08 Dec 2008 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/stranger-in-a-mac-land/</guid><description>&lt;p&gt;I&amp;rsquo;ve worked with many operating systems over the years: from the humble CP/M, to early versions of DOS, toÂ  Windows 3.0 (if you can even call that an OS), along with many different versions of Linux since 1993, a smattering of VMS, and, of course, all the recent flavors of Windows. But somehow, I always managed to avoid Apple operating systems.&lt;/p&gt;
&lt;p&gt;Starting iPhone development was a bit of a change since it required me to work exclusively under OSX and use a new IDE (XCode). I had talked to people who found the change very cumbersome and found the new environment got in their way, so I approached it with a bit of trepidation.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I&rsquo;ve worked with many operating systems over the years: from the humble CP/M, to early versions of DOS, toÂ  Windows 3.0 (if you can even call that an OS), along with many different versions of Linux since 1993, a smattering of VMS, and, of course, all the recent flavors of Windows. But somehow, I always managed to avoid Apple operating systems.</p>
<p>Starting iPhone development was a bit of a change since it required me to work exclusively under OSX and use a new IDE (XCode). I had talked to people who found the change very cumbersome and found the new environment got in their way, so I approached it with a bit of trepidation.</p>
<h2 id="its-an-os-x-world">It&rsquo;s An OS X World</h2>
<p>With my new Macbook Pro under my arm (actually, it wasn&rsquo;t new, I bought it used off Craigslist because I couldn&rsquo;t afford a new one), I embarked on an adventure to this strange, new world of OS X development.</p>
<p>Some background is necessary here: I&quot;m a minimalistic, no frills kind of guy when it comes to my preferences when working with computers (although now that I think about it, it probably applies to most other things in my life as well). The first thing I do with a new install of Windows is turn off all the GUI animations (don&rsquo;t get me started on the <a href="http://www.microsoft.com/windowsxp/using/helpandsupport/learnmore/crawford_september03.mspx">search puppy dog</a>!!), most of the sounds, all the auto-complete and auto-spellcheck features, and automatic upgrades. When I want the computer to do something, I&rsquo;ll tell it to do so. Otherwise I want it to be quiet and responsive.</p>
<p>My ideal Visual Studio setup is also pretty similar: No fancy web startup page, no animations, no autocompletions by default (unless I press CTRL-Space), out with all the toolbars, just give me two text windows side by side and control everything from keyboard shortcuts (which I&rsquo;m still using the ones from Visual C++ 6.0).</p>
<p>Needless to say, I was afraid of clashing with Mac OSX&rsquo;s environment. I had a suspicious that it was full of eye candy, GUI frills, and required a mouse for everything. Not a good match.</p>
<p>There wasn&rsquo;t as much of a learning curve as some getting-used-to. There are some Mac quirkiness that I just don&rsquo;t get: The disembodied menu on the top of the screen, the lack of change of mouse cursor when you can resize a window, or not being able to automatically restore a file to its original location from the recycle bin.</p>
<p>But those are all relatively small things that don&rsquo;t overshadow the fact that I just love this new environment. I used to like the Windows fonts, but after a week of using a Mac, I can&rsquo;t go back to those tiny, jaggedy Windows fonts. Handling of multiple monitors is perfectly integrated and works like a charm. In general, things Just Work (TM).</p>
<p>Then there are the things that I love from my time in Linux that I can&rsquo;t live without: Multiple desktops with Spaces, a decent command line shell, or being able to tweak settings directly in low-level config files.</p>
<p>And the thing that has changed how I work the most: <a href="http://www.apple.com/macosx/features/300.html#spotlight">Spotlight</a>. No need for icons everywhere, or &ldquo;Start | Programs&rdquo; or anything. Just start typing what you want and there it is. It&rsquo;s like the return of the command line on steroids. Between Spotlight, <a href="http://www.mozilla.com/en-US/firefox/features/#location-bar">Firefox smart locaton bar</a>, <a href="https://addons.mozilla.org/en-US/firefox/addon/2888">GMarks</a>, and <a href="http://labs.mozilla.com/projects/ubiquity/">Ubiquity</a>, I feel right at home. Now combine them all somehow and I&rsquo;ll be in heaven!</p>
<h2 id="but-wait-what-about-windows">But Wait, What About Windows?</h2>
<p>I ended up falling in love with OS X so much, that I quickly moved to it as my primary environment at home for everything. Frankly, these days, it&rsquo;s pretty easy for me to change environments since most of what I do is online. Just give me Firefox (or a good browser) and I&rsquo;m there: GMail, Google Calendar, Google Reader, Google Docs (hmm&hellip; I sense a theme here), and a Wiki cover most of what I do on a daily basis.</p>
<p>For the rest of the apps, almost everything I need runs under OS X: good media visualizer (Preview), photograph organizer (<a href="http://www.adobe.com/products/photoshoplightroom/">Lightroom</a>), image editor (<a href="http://www.gimp.org/">The Gimp</a>/<a href="http://www.adobe.com/products/photoshop/photoshop/">Photoshop</a>), audio editor (<a href="http://audacity.sourceforge.net/">Audacity</a>), music player (iTunes), and a few more odds and ends. OS X comes with some great utilities out of the box too, like Grab, Preview, or Activity Monitor.</p>
<p>Unfortunately, there are still a couple of things that I can only run under Windows. The main thing are games unfortunately, so I need to keep my Windows box around just for that. Although I just started playing <a href="http://en.wikipedia.org/wiki/Crack_cocaine">World of Warcraft</a> and it runs great on my Mac. Thanks Blizzard! Apart from that, every so often I need to do something in Visual Studio, or run some application I wrote in .Net. For that, I go about it in two different ways.</p>
<p>I can run it on the Windows box itself. Instead of keeping two sets of keyboards and mice (or a switch box), I used <a href="http://synergy2.sourceforge.net/">Synergy</a> for a while. It was pretty cool being able to move the mouse cursor from one screen on the Mac to the screen on Windows and continue working there, and that might be a great solution if you&rsquo;re working 50-50 on both platforms. In my case, it was more like 90-10 at the time (more like 99.9 to 0.1 now), so it felt a bit of a waste to have a full monitor dedicated to Windows. Instead, I decided to use Remote Desktop to control my Windows computer from the Mac. Amazingly enough, Microsoft wrote a <a href="http://www.microsoft.com/mac/products/remote-desktop/default.mspx">Remote Desktop app for OS X</a> that works like a charm, much better than some of the VNC programs I tried.</p>
<p>Whenever I don&rsquo;t need to run something that is performance critical, I reach for <a href="http://www.vmware.com/products/fusion/">Fusion</a>. I&rsquo;ve tried many products in the past that claim to run programs for another platform in your own computer: Wine, CrossOver Office, earlier versions of VMWare, but they&rsquo;re always plagued by problems and incompatibilities. VMWare Fusion really surprised me by running anything I threw at it flawlessly, including Quicken (yes, I need to switch to <a href="http://www.mint.com/">Mint</a> or <a href="http://www.buxfer.com/">Buxfer</a>) and some hardware-accelerated 3D programs (those were a bit chuggy though, but they worked). And the coolest feature ever: Unity&ndash;I can run Windows apps in a window of their own directly on the Mac desktop. Totally awesome! On top of all that, I can have multiple snapshots, restore earlier states, and I can even run other operating systems like different versions of Linux. A geek&rsquo;s true dream!</p>
<p>Some people will claim that I have drunk from the Apple kool-aid, and to a certain extent, they&rsquo;re right. But I&rsquo;d like to think I was swayed by many good reasons having to do with using the computer and being more productive, rather than Apple&rsquo;s brainwashy, lifestyle marketing message. That and the smooth feel of the Macbook against the palm of my hands, its sleek profile, and sexy design. :-)</p>
<p>What about XCode and development? That&rsquo;s another story for another day.</p>
]]></content:encoded></item><item><title>Prototyping for Fun And Profit</title><link>https://gamesfromwithin.com/prototyping-for-fun-and-profit/</link><pubDate>Tue, 08 May 2007 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/prototyping-for-fun-and-profit/</guid><description>&lt;p&gt;So here we are, ready to start development of our first game. We have the time, the resources, and the game idea itself. Where do we start?&lt;/p&gt;
&lt;p&gt;Since both Charles and I are tech guys, we knew we could implement our game idea without any problem and make it sing and dance at a silky-smooth 60 fps. But would it be fun? Now that we have these brand-new designer hats, finding that always elusive fun factor is a big concern. The idea of waiting for a couple of months before we could tell if our game idea was fun seemed too risky, so we tackled that problem first and head-on by prototyping.&lt;/p&gt;
&lt;p&gt;&lt;img loading="lazy" src="https://gamesfromwithin.com/prototyping-for-fun-and-profit/images/stick_1.png" title="stick_1"&gt;We could start at the bottom, write some low-level input handling, some graphics rendering, a basic &lt;a href="https://gamesfromwithin.com/optimizing-the-content-pipeline/" title="asset pipeline"&gt;asset&lt;/a&gt; &lt;a href="https://gamesfromwithin.com/optimizing-the-content-pipeline/" title="asset pipeline"&gt;pipeline&lt;/a&gt;, and all the other usual suspects. The problem is that, even if we try to keep things as simple as possible, it would still be several weeks or even months before we can actually start implementing the game itself. And even when we do, we&amp;rsquo;ll always be running up against incomplete technology and having to spend time fleshing it out as we try to make a game come out of the other end.&lt;/p&gt;
&lt;p&gt;Instead, we decided to start with a prototype. This isn&amp;rsquo;t supposed to be a &amp;ldquo;prototype&amp;rdquo; that eventually morphs into a shipping game, or a prototype that uses the same technology as the production code, or even a prototype that&amp;rsquo;s used to impress the big-wigs to squeeze some money out of them (ha!). No, all that stuff detracts from the ultimate goal of our prototype. Our approach was very similar to what &lt;a href="http://chrishecker.com/Homepage" title="Chris Hecker"&gt;Chris Hecker&lt;/a&gt; and &lt;a href="http://www.slackworks.com/%7Ecog/" title="Chaim Gingold"&gt;Chaim Gingold&lt;/a&gt; described in their &lt;a href="http://www.d6.com/users/checker/gdc06-AdvancedPrototyping.ppt" title="GDC presentation"&gt;GDC presentation&lt;/a&gt;. We had the need to answer one very specific question: &amp;ldquo;Is our game idea fun?&amp;rdquo; And we wanted the answer as quickly and cheaply as possible. Everything else was secondary.&lt;/p&gt;</description><content:encoded><![CDATA[<p>So here we are, ready to start development of our first game. We have the time, the resources, and the game idea itself. Where do we start?</p>
<p>Since both Charles and I are tech guys, we knew we could implement our game idea without any problem and make it sing and dance at a silky-smooth 60 fps. But would it be fun? Now that we have these brand-new designer hats, finding that always elusive fun factor is a big concern. The idea of waiting for a couple of months before we could tell if our game idea was fun seemed too risky, so we tackled that problem first and head-on by prototyping.</p>
<p><img loading="lazy" src="/prototyping-for-fun-and-profit/images/stick_1.png" title="stick_1">We could start at the bottom, write some low-level input handling, some graphics rendering, a basic <a href="/optimizing-the-content-pipeline/" title="asset pipeline">asset</a> <a href="/optimizing-the-content-pipeline/" title="asset pipeline">pipeline</a>, and all the other usual suspects. The problem is that, even if we try to keep things as simple as possible, it would still be several weeks or even months before we can actually start implementing the game itself. And even when we do, we&rsquo;ll always be running up against incomplete technology and having to spend time fleshing it out as we try to make a game come out of the other end.</p>
<p>Instead, we decided to start with a prototype. This isn&rsquo;t supposed to be a &ldquo;prototype&rdquo; that eventually morphs into a shipping game, or a prototype that uses the same technology as the production code, or even a prototype that&rsquo;s used to impress the big-wigs to squeeze some money out of them (ha!). No, all that stuff detracts from the ultimate goal of our prototype. Our approach was very similar to what <a href="http://chrishecker.com/Homepage" title="Chris Hecker">Chris Hecker</a> and <a href="http://www.slackworks.com/%7Ecog/" title="Chaim Gingold">Chaim Gingold</a> described in their <a href="http://www.d6.com/users/checker/gdc06-AdvancedPrototyping.ppt" title="GDC presentation">GDC presentation</a>. We had the need to answer one very specific question: &ldquo;Is our game idea fun?&rdquo; And we wanted the answer as quickly and cheaply as possible. Everything else was secondary.</p>
<p>Prototyping period</p>
<p>And so we dove into a prototyping frenzy. For our first day, we set up shop at the <a href="http://www.estreetcafe.com" title="E Street Cafe">E Street Cafe</a>. We opened up the place, took over a table, hooked up gamepads to our laptops, and hacked away furiously until late in the evening, fueled all the while by cappuccinos, gourmet tea, and pastries <a href="#%5B1%5D" title="[1]">[1]</a>. Yum! By the end of the day, we had the basics of the game implemented and even some of the more advanced features. Heck, we even thought it was kind of fun, but that&rsquo;s because we were tired and we had been staring at Charles&rsquo; horrible programmer art all day long. In all honesty, it really was a pretty sucky game, even if the enemy characters were wearing party hats. But hey, that was just end of day one.</p>
<p>Over the next few days, we had to take a break to deal with all the paperwork and logistics involved with setting up the new company and the office, but we resumed prototyping as soon as possible. The plan was to keep hammering away at the prototype until we saw it was clearly fun, or we decided it was hopeless and we had better think of something new (or go back and beg for our jobs back). Charles took it even further and swore not to shave his beard until the prototype was fun, much to his fiancee&rsquo;s delight (seriously, the only thing the ladies think is hotter than a game programmer is a bearded game programmer).</p>
<p>A week later, things weren&rsquo;t looking too hot. The game hadn&rsquo;t gotten much beyond what we had done the first day. Sure, we had a bunch of advanced features in, but it didn&rsquo;t really make it much more fun. Were we on the wrong path?</p>
<p>The major breakthroughs happened in the last few days. First of all, we removed a key feature that had been there since the very beginning. We really thought it was going to be key to the whole game, but it really made the game too easy and boring. As soon as we removed it, the feel of the game changed completely and things started to look up.</p>
<p>Then, as we were discussing some other advanced moves and features, the idea for a minor feature came up. Since the caffeine hadn&rsquo;t kicked in yet and I didn&rsquo;t have the energy to work on the next big feature, I implemented our little idea in about ten minutes. Charles saw it over my shoulder and he started laughing and begging me to check in the code. It was an instant hit! We ended up liking it so much that we decided to expand on with a few features, and before the end of the day, it&rsquo;s clear that it&rsquo;s going to become a main gameplay mechanic in the final game. That day we went home knowing we were nearing the end of the prototype face. Good thing because Charles&rsquo; beard was starting to look scary!</p>
<p><img loading="lazy" src="/prototyping-for-fun-and-profit/images/stick_2.png" title="stick_2"></p>
<p><em>We tried about seven different captions, but none of them did the sprite justice.</em></p>
<p>One more day of tweaking the prototype and we officially called it done. We knew we had gotten there when we tweaked a small feature, fired up the game to see how it felt, and then spent 10-15 minutes going crazy with the controller because we were having too much fun. Another good sign was when we would start playing and then yell at each other to look at the crazy things we had just accomplished.</p>
<p>Finally, Charles was able to shave. Thank God.</p>
<p>The prototype</p>
<p>The prototype process was supposed to be as quick and cheap as possible. None of the code written was intended to be kept or extended to go into production code, and performance wasn&rsquo;t an issue either. So, with that in mind, what did we use for developing our prototype?</p>
<p>C++ and <a href="http://www.talula.demon.co.uk/allegro/" title="Allegro">Allegro</a>. Yes, you read it right the first time. Let me say that again: C++ and Allegro.</p>
<p>With all the other choices available of higher-level languages and extensive game development libraries and frameworks, why on earth did we make that choice? Wouldn&rsquo;t Python with <a href="http://www.pygame.org" title="PyGame">PyGame</a> or C# and the <a href="http://msdn2.microsoft.com/en-us/directx/aa937794.aspx" title="Game Studio Express">Game Studio Express</a> have been better choices? The honest answer is that I don&rsquo;t think either one of those options would have allowed us to get the prototype done any faster for several reasons:</p>
<ul>
<li>
<p>Small scope. The scope and size of the prototype was quite small, so there wasn&rsquo;t much to be gained by using slightly higher-level language constructs or more complete libraries.</p>
</li>
<li>
<p>Allegro. Even though it might seem like an odd choice and be behind the times, it&rsquo;s precisely the old-school, fully procedural approach that makes Allegro so valuable. There are no frameworks, no enforced class hierarchies&hellip; heck, no classes or private members to get in the way. In Allegro, if you want to do something, you call the function and you&rsquo;re done. Exactly what we needed for the prototype. In retrospect, <a href="http://www.libsdl.org" title="SDL">SDL</a> might have been a better choice since it would have allowed us to use a DirectX surface and do video capture more easily. But Allegro worked like a charm and we have nothing but good things to say about that experience <a href="#%5B2%5D">[2]</a>.</p>
</li>
<li>
<p>Proficiency. Both Charles and I are quite proficient at C++, so even if another language gave slightly faster development time, we more than made up for it by being very familiar with C++ and its libraries. For the prototype we allowed ourselves to use STL recklessly and with wanton disregard for memory access patterns and spurious allocations.Â  We also didn&rsquo;t care about memory leaks at the end, so that helped get things up and running a lot faster.Â  Destructors?Â  Delete?Â  Free?Â  Cache coherency?Â  How do those equate to fun gameplay?!</p>
</li>
</ul>
<p>It&rsquo;s no secret that I&rsquo;m an avid advocate of <a href="http://www.gamesfromwithin.com/articles/cat_software_engineering.html" title="good software engineering practices for game development">good software engineering practices for game development</a>. As with anything, good software engineering practices have some very real and important benefits, but those benefits come with a cost. Because of the small scope of the prototype, and the fact that the code wasn&rsquo;t going to survive more than a week or two, we decided to throw any software engineering practice that would slow us down in the least straight out the window!Â  Forget about accessors and private scoping; skip any unit tests; bye bye factories, loose coupling, and proper physical dependency management. Welcome to hackfest, check your engineering discipline at the door!</p>
<p>One of the things that made the prototype very successful for us was to concentrate on a single gameplay mechanic. We didn&rsquo;t try to prototype the whole game, just the one bit we were most concerned about (and that was going to take 80% of the player&rsquo;s time and attention). That allowed us to deal with a small subset of the game and iterate on it very quickly without getting bogged down by creeping features or dealing with a larger scope.</p>
<p>The prototype shamelessly used the worst programmer art imaginable (Charles + MS Paint == &hellip; you can imagine [edit: Charles] TOTALLY AWESOME SWEET). Yes, it looked horrible, but if the game was so much fun with those graphics, just imagine how it&rsquo;s going to blow people away whenever we add some real art and animations.</p>
<p>Lessons learned</p>
<p>The most valuable lesson we learned was the value of constantly asking ourselves the questions &ldquo;Is this fun?&rdquo; and &ldquo;What can I do now to make it more fun?&ldquo;Â  That was actually really crucial. Having such a specific (even if subjective and nebulous) goal allowed us to remain in the right path. Sometimes it was tempting to add feature X or Y, but when we realized that it wouldn&rsquo;t make the game any more fun, we quickly dropped it and moved to something else.</p>
<p>It&rsquo;s important not to over-intellectualize the idea of &ldquo;fun&rdquo;, though. Sure, most of the fun comes from the choices the player makes and what happens as a result of those choices (even if the choice is to mash the buttons). But don&rsquo;t underestimate the value of &ldquo;fun&rdquo; in having cool, flashy things on the screen, or to have the character jump with a nice ramp-up curve and land with some squishiness to give it that &ldquo;just right&rdquo; feel.</p>
<p>It was also very helpful to run the prototype by somebody else towards the end to make sure we weren&rsquo;t finding it fun because we were simply delirious. Clearly, it has to be someone you can trust and who can understand what the prototype represents and not be put off by the stick figures. It was great to get confirmation from an outside source that it really was getting to be fun. We also got a bunch of feedback that made it a much tighter experience. A lot of it was pretty obvious, but we were too close to the game to be able to see it by ourselves.</p>
<p>As with most prototypes, it&rsquo;s always very tempting to not throw it away and continue hammering at it until it looks like something that could be shipped. We didn&rsquo;t really have a choice because of the technologies we went with (allegro is a fully cpu-based renderer), but we could feel the call of the dark side. It really was a good thing that we didn&rsquo;t even try. Towards the end, the terrible hacked code we&rsquo;d written was starting to slow our productivity. Code that bad builds up an &ldquo;engineering debt&rdquo; that you have to pay off sooner or later or you hit a wall.Â  Our particular wall came in the form of extending a pre-existing player action in what seemed like a trivial way.Â  Something like this would have literally taken about 5 minutes at the beginning of the prototype, but by the point we were at it would have taken closer to an hour. Heck, even having to go on for another week would have started to be painful. So in a way, the prototype came with a built-in self-destruct mechanism, which is a good thing because it discouraged us to continue working on it for too long.</p>
<p>Using existing technology is definitely the way to go. That way there&rsquo;s very little &ldquo;wasted&rdquo; time getting up to speed. The fact that we were able to get most of the core mechanics of the game in the first day goes to show how useful is to hit the ground running instead of getting bogged down in how to load bitmaps or create a window.</p>
<p>Additionally, the procedural, non &ldquo;framework-y&rdquo;, non-object oriented approach of the API we chose made it much easier to bend to our will and make it work the way *we* wanted, and not the way somebody decided for us ahead of time. The fewer restrictions your prototyping API has, the easier it will be to do all the crazy things that come to mind during the prototyping phase.</p>
<p>The game</p>
<p>Unfortunately, we can&rsquo;t really talk about the game right now. Just rest assured that we&rsquo;re working on it at full steam and we&rsquo;ll announce some details as soon as we can. Clearly, we&rsquo;re not going to release the prototype since it has a good chance of scaring away any potential publishers in its current state. But if one day the game sells tons of units, maybe we&rsquo;ll release the prototype as a &ldquo;behind the scenes&rdquo; feature so other people can have a glimpse at how things got started and they can laugh at our artistic skills.</p>
<p>Conclusion</p>
<p>There you have it. Now at least we can be confident that the game is going to be pretty fun. Sure, there are lots of aspects of the game that we haven&rsquo;t prototyped, but we consider those to be lower risk and we&rsquo;ll figure them as we go along. At least the core mechanic has proven to be fun. Now it&rsquo;s just a matter of writing the production code and implementing it all. That simple. What could possibly go wrong? ;-)</p>
<p>[1] Money saving tip #1 for starving startups: If you have to pay for a 24-hour Internet connection in a coffee shop and you need to have several computers with Internet access, connect them with an ethernet cable and share the Internet connection from one of them. Ta-dah! :-)</p>
<p>[2] Actually, I&rsquo;ve been wanting to create a movie of the prototype in action, but I haven&rsquo;t been able to. It seems that <a href="http://www.fraps.com" title="Fraps">Fraps</a> doesn&rsquo;t work because it&rsquo;s not using a DirectX surface, and saving each frame is too slow. Anybody has any suggestions? Don&rsquo;t get your hopes up though, we&rsquo;re not uploading a movie of the prototype any time soon, we&rsquo;re just saving it to show our grandchildren one day.</p>]]></content:encoded></item><item><title>Bringing Back The Dream</title><link>https://gamesfromwithin.com/bringing-back-the-dream/</link><pubDate>Thu, 17 Aug 2006 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/bringing-back-the-dream/</guid><description>&lt;p&gt;A lot of people have a particular moment or experience that defined their future. It can be anything: reading a particular book, traveling through a different country, meeting somebody special, or going through a very painful (or happy) experience. For me, the future crystallized on a Fall afternoon in 1985, when I sat in front of an 8-bit computer at a friend&amp;rsquo;s house. It was the beginning of a long personal journey.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A lot of people have a particular moment or experience that defined their future. It can be anything: reading a particular book, traveling through a different country, meeting somebody special, or going through a very painful (or happy) experience. For me, the future crystallized on a Fall afternoon in 1985, when I sat in front of an 8-bit computer at a friend&rsquo;s house. It was the beginning of a long personal journey.</p>
<p>The computer was laughably primitive by today&rsquo;s standards: <a href="http://en.wikipedia.org/wiki/Zilog_Z80">Z80</a> 4MHz CPU with 64KB of RAM. What made <a href="http://en.wikipedia.org/wiki/Amstrad_CPC">it stand out from other computers</a> at the time was a whopping 16 simultaneous colors (as long as you gave up half your horizontal resolution), three-channel square wave sound generation, and 3â€ floppy disks. Cell phones these days are hundreds of times more powerful than that computer. Heck, the chip inside your microwave oven is probably more powerful!</p>
<p>What was it that caused love at first sight with that computer? Impressive as they were at the time, it wasn&rsquo;t the technical specs that attracted me. It wasn&rsquo;t the <a href="http://www.cpcgamereviews.com/">silly games</a> either, even though <a href="http://tacgr.emuunlim.com/downloads/filedetail.php?recid=829">those were fun for a few days</a>. It was being able to give commands to the machine and have it execute them immediately.</p>
<p>The computer booted directly into a Basic interpreter. I started experimenting with a few PRINT statements, then moved to FOR loops, getting input and solving algebra problems as if by magic. I spent endless hours typing game listings that came in magazines (usually with a few printing errors, which made them so much more fun to get working correctly). I experimented with graphics, sounds, and animations.</p>
<p><img alt="Amstrad CPC" loading="lazy" src="/bringing-back-the-dream/images/amstrad.jpg"> Before I knew it, the Basic interpreter was too slow and bloated and I had to graduate to assembly. Programming became a bit slower (especially since for some reason I could only save the assembly onto tapes, not disks), but the programs became thousands of times faster. I was finally able to draw sprites without annoying flickering, use all available memory, and even overwrite part of the ROM jump table to squeeze in a few extra KB.</p>
<p>I was hooked.</p>
<p>That experience totally changed the rest of my life. It caused me to study computer engineering and computer science, and eventually to write games professionally (much to my parents&rsquo; dismay).</p>
<p>If that little, primitive computer had that effect on me, today&rsquo;s dazzling multimedia computers with broadband Internet connection must have a hundred times that effect on today&rsquo;s children, right? Quite the opposite.</p>
<p>Today&rsquo;s computers might be a lot more powerful, but they&rsquo;re also a lot more complicated. Windows is very large and intimidating to a newcomer. It doesn&rsquo;t exactly scream â€œplay with me, experiment!â€. Instead, it is a very closed system. It discourages experimentation, and you&rsquo;re in constant fear of disturbing any of the overly complex configurations (like the registry or system dlls), not to even mention dealing with viruses and other malware. Linux is much more transparent, but it&rsquo;s still far from an inviting system to play and experiment with for newcomers to computers.</p>
<p>Another problem with modern computers is the lack of a programming language out of the box. Things are actually a bit better now than they were a few years ago. Microsoft offers a free express edition of <a href="http://msdn.microsoft.com/vstudio/express/">Visual Studio</a>. <a href="http://www.python.org/">Python</a> and <a href="http://www.ruby-lang.org/en/">other scripting languages</a> are also free downloads, and they also <a href="http://www.pygame.org/">have libraries for game development</a>. Unfortunately none of those tools come pre-installed, which makes it hard to get started and even harder to share your results with other people. Also, a lot of free development tools and environments today are geared towards GUI programming, which is very different from the free-form, take-control-of-the-machine approach that you need not just for games, but to really learn about the machine. There really aren&rsquo;t many better ways to permanently scare people away from programming than showing them <a href="http://msdn.microsoft.com/vstudio/previous/2003/posters/posterfiles/Namespaces_Selected_Classes_X0910395pst_a_OL.pdf">something like this</a>.</p>
<p>Web development is a bit better because it tends to be simpler, and once you have a web server set up, it&rsquo;s easy to show the results to anybody with an Internet connection (which I hope is everybody these days). Unfortunately it&rsquo;s not particularly well suited for something like games with the exception of things like <a href="http://www.adobe.com/products/flash/flashpro/">Flash</a>.</p>
<p>Although I&rsquo;m sure that part of it is nostalgia, I&rsquo;m clearly not the only one who feels this way. <a href="http://www.internetnews.com/ent-news/article.php/3520606">Computer science enrollment has been dropping dramatically in recent years</a> and there seems to be a lack of interest in learning more about these machines that surround us, beyond how to use a browser and how to share videos with friends.</p>
<p>Really, when I look at things this way, I feel bad for kids growing up today. They&rsquo;re missing out on a huge source of enjoyment that I had growing up as a kid. Of course, today there are other new frontiers to explore, and they have the Internet with all the new social aspects, but it&rsquo;s not the same.</p>
<p>So, is the dream dead?</p>
<p>I have often wondered, isn&rsquo;t there a platform out there that is more like the 8-bit computers were in their day? The closest parallel today is game consoles, except that they&rsquo;re very closed and proprietary and they&rsquo;re only intended to play games. Sony started making some progress along these lines with the <a href="http://en.wikipedia.org/wiki/Net_Yaroze">Yaroze</a> program for PSX and <a href="http://playstation2-linux.com/">Linux for the Playstation 2</a>. Unfortunately neither program was particularly successful for a variety of reasons, but it was a start.</p>
<p><img alt="Xbox 360" loading="lazy" src="/bringing-back-the-dream/images/xbox.jpg"> A couple of days ago, in the keynote for GameFest, Microsoft announced that they&rsquo;re taking things further on the Xbox 360 with <a href="http://www.microsoft.com/presspass/press/2006/aug06/08-13xnagamestudiopr.mspx">Game Studio Express</a>. They&rsquo;re planning to open it up and allow everybody to develop games for it. Even better, the code will be mostly common between Windows and the Xbox 360, so it will be possible to do a lot of development on the PC and then move it over to the 360 relatively painlessly. How cool will it be for kids to write their own games running on the Xbox 360 and be able to show them off in their friends&rsquo; living room?</p>
<p>It seems that the only language available will be C#. At first I was disappointed as I was hoping it would work with C++. Then I realized it wasn&rsquo;t such a bad idea. If anything, it would be better if it were something simpler, more like <a href="http://darkbasic.thegamecreators.com/">Dark Basic</a>, that people with very little programming experience can quickly start messing around with. Game Studio Express is supposed to include several tools and APIs that allow you to program things at a really high level, so that might be good enough.</p>
<p>I&rsquo;m very curious about the details, though. For instance, are we going to be able to get our hands dirty and write as much C# as we want, or are we going to be limited to a very strict framework? Is the link between the PC and the 360 something that they&rsquo;re going to expose? In other words, will we be able to create other tools that use that functionality to create new types of content?</p>
<p>A really important question is whether anybody will be able to play content created by users, or will they have to have some special payment-based subscription. Having to pay to develop for the 360 is not ideal, but I don&rsquo;t see it as an unsurmountable barrier. However, if users have to pay and be part of the developer program just to be able to play some user-generated content, that would come close to killing its usefulness. I hope that Microsoft learns some lessons from <a href="http://www.youtube.com/">YouTube</a> and <a href="http://video.google.com/">Google Video</a> and realize that the lower the barriers for people to browse the content, the more successful it is going to make the product. People have been able to share videos for a long time already, but it involved downloading them, getting a player that could decode them, and playing them back. Now it&rsquo;s as simple as clicking on a link, and that&rsquo;s why it has finally reached critical mass.</p>
<p>I&rsquo;m definitely keeping a very close eye on this project, and I&rsquo;ll try to give it a test drive as soon as I get a chance. It&rsquo;s a bit ironic that with dozens of multi-million AAA titles out there, the reason I might end up buying an Xbox 360 is the chance to do play around with some sprites on the screen and re-create a bit of the old 8-bit days. The dream might indeed be back.</p>]]></content:encoded></item><item><title>The Winds of Change</title><link>https://gamesfromwithin.com/the-winds-of-change/</link><pubDate>Sun, 08 May 2005 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/the-winds-of-change/</guid><description>&lt;p&gt;E3 is just around the corner, so we can expect to finally get the official announcements of Microsoft&amp;rsquo;s next-generation console, and maybe even Sony&amp;rsquo;s. That will mark the official transition into the next generation. And this is not just another console generation transition. This time it&amp;rsquo;s bigger. Much bigger.&lt;/p&gt;</description><content:encoded><![CDATA[<p>E3 is just around the corner, so we can expect to finally get the official announcements of Microsoft&rsquo;s next-generation console, and maybe even Sony&rsquo;s. That will mark the official transition into the next generation. And this is not just another console generation transition. This time it&rsquo;s bigger. Much bigger.</p>
<p>The underlying current at this year&rsquo;s GDC was the transition to the next generation of platforms. The change was in the air. It wasn&rsquo;t just the topic of the talks, but it was also underlying the questions asked, the technologies shown in the expo, and even the conversations at lunch. It influenced every activity and message. If it wasn&rsquo;t because of what was said, it was because of what was left out, or what was put on hold &ldquo;for a few more months.&rdquo;</p>
<p>E3 is just around the corner, so we can expect to finally get the official announcements of Microsoft&rsquo;s next-generation console, and maybe even Sony&rsquo;s. That will mark the official transition into the next generation.</p>
<p><img alt="tornado" loading="lazy" src="/the-winds-of-change/images/tornado_warning.png"> And this is not just another console generation transition. This time it&rsquo;s bigger. Much bigger. Certainly much bigger than the PSX to PS2 console transition we went through five years ago. Maybe even of the same caliber as the transition from 2D to 3D that we saw 10 years ago. The changes that are about to happen affect more than the hardware we develop for. They&rsquo;re going to affect how we develop games, how we organize ourselves, how we sell games, what type of games we make, and even how we think about games. Winds of change indeed.</p>
<p>These are the major changes I see coming.</p>
<h3 id="content-generation">Content generation</h3>
<p>As the consoles become more powerful, we can create much more detailed environments, and players are going to expect that. Whereas it took someone a day to create a <em>Doom 1</em> level that was roughly in a shippable state, now it takes someone several weeks to create just some of the geometry that is in a room in one of those levels. The team sizes, especially on the content creation side, are going to balloon, and soon teams numbering in the hundreds are going to be commonplace.</p>
<p>Large volumes of content aren&rsquo;t just going to affect team sizes. We&rsquo;re already struggling to deal with the amount of content we&rsquo;re generating today, so we better get ready for the demands of tomorrow. A smooth, fast, robust, and efficient asset pipeline is going to be of prime importance. Probably more so than fancy tech and clever algorithms. The games that are going to stand out from the crowd from the point of view of visuals and polish are the ones with really good asset pipelines that allowed their content creators to iterate over and over and come up with something very close to what they were thinking. Tech-centered teams might have some impressive algorithms under the hood, but the resulting product is going to pale in comparison to their competitors.</p>
<p>The whole topic of asset pipelines is very dear to my heart. I previously wrote about the <a href="http://www.convexhull.com/articles/gdmag_content_pipeline.pdf"><em>MechAssault</em> asset pipeline</a>, and I&rsquo;ve changed my mind about several things since then. Adding the demands of next-generation content is going to make this topic even hotter.</p>
<p>From a technical point of view, we also have to consider the rebirth of procedural content. This is something we had considered in the previous console generation (and quickly dismissed), but this time it&rsquo;s going to make much more of an impact. In a machine that can render a gorgeous scene that fully fits in memory, we&rsquo;re going to need to have either an amazing streaming system, or great procedural content creation (or both!). Will Wright drove this point home in his talk about his new game, <a href="http://www.gamingsteve.com/archives/2005/03/pictures_of_wil.php"><em>Spore</em></a>.</p>
<p>Alternatively, maybe we&rsquo;ll see a more clear distinction in what paths games take. Some games are trying to follow movies in the experience they offer: they are short (8-10 hours or less), full of new content, and giving players totally new experiences throughout the game. These are what I call &ldquo;interactive experiences.&rdquo; Then we have the &ldquo;real&rdquo; games, or toys. These are not a content showcase, but a game, with some rules and some variations, and lots of interaction with the player. This is the category of <em>Sim City</em>, <em>Amplitude</em>, or even sports or driving games. Games like <em>Grand Theft Auto</em> fall in an intermediate category because they straddle both types of games (mostly a toy sandbox with a story bolted on top). The point is, the more difficult or labor-intensive content creation becomes, the more we&rsquo;re going to see this divide.</p>
<h3 id="development-model">Development model</h3>
<p>Next-generation games are going to need large number of people during production, but pre-production will still require only a small number of people. That&rsquo;s the case today, but this trend will be exaggerated further.</p>
<p>Up until now, small companies with only one or two projects at once just put up with it and didn&rsquo;t fully take advantage of everybody during pre-production. But will they be able to keep doing that now when they need to staff up to 100 people per project during production? If they staff up, how are they going to continue in business between projects? Does everybody need to grow to a size of 200-300 people to have multiple projects going on at once and smooth out the production spike needs?</p>
<p><img alt="Hollywood" loading="lazy" src="/the-winds-of-change/images/hollywood.jpg"> One alternative that has been banded about for the last couple of years is the movie industry model. Game companies could do pre-production with a small number of people, and then assemble a team just for the duration of one project. There are some among us (<a href="http://pc.gamespy.com/articles/608/608237p1.html">especially from the UK</a>) who will say that that&rsquo;s already happening, just unofficially, with companies regularly laying people off after a game ships (see recent <a href="http://www.thehollywoodreporter.com/thr/columns/video_games_display.jsp?vnu_content_id=1000884458">Oddworld</a> news after completing <a href="http://www.amazon.com/exec/obidos/ASIN/B0006I5I58/ref=nosim/gamesfromwith-20"><em>Stranger&rsquo;s Wrath</em></a>).</p>
<p>Personally, I really dread this development model. Not only does it mean that we&rsquo;ll lack a stable paycheck (and probably have even more emphasis on crunch periods), but it also means that the industry is going to cluster around a few central locations. In the US that will most certainly be Los Angeles, San Francisco, and maybe one other city. This is necessary to have a readily available talent pool, but it&rsquo;s really a bummer for those of us who&rsquo;d like to live elsewhere. Not like there are many companies in remote locations, but today you can choose to work in places like <a href="http://firaxis.com/">Maryland</a>, <a href="http://www.epicgames.com/">North Carolina</a>, <a href="http://cyberlore.com/">Western Massachusetts</a>, or <a href="http://www.gearboxsoftware.com/">Texas</a>. Tomorrow we might not have that luxury.</p>
<p>Outsourcing went from being something that other industries talked about a few years ago, to something that we now accept as fairly common for art resources or cinematics. Outsourcing is a great way of flattening the curve of necessary resources, so I fully expect it to become the norm. Anything that can be outsourced will be. And a few things that can&rsquo;t be will also be outsourced. For now that means cinematics, static geometry, some animations, music and some sound, and maybe some level layout.</p>
<p>Is outsourcing going to affect programming? I don&rsquo;t think so right now. The closest thing we have to outsourcing is middleware, which is also a trend that is going to continue to grow. Especially if companies want to hit the ground running for a large production project, it makes total sense to use as much middleware as possible. Just look at how many developers are flocking to the Unreal Engine 3. It&rsquo;s a very good set of technology and Epic managed to position itself in the right place at the right time (i.e. console generation transition).</p>
<h3 id="multiprocessors">Multiprocessors</h3>
<p>This is undoubtedly going to be the biggest architecture change we&rsquo;ve seen in a long while: multiple processors.</p>
<p>We all know that writing threaded programs is difficult. But this is something that goes beyond making your program thread-safe; it&rsquo;s going to be a whole lot more than that. We have to deal with not just splitting the game into parallelizable parts, but we have to make sure those parts don&rsquo;t interfere with each other, and that they access main memory in a controlled, efficient way. The gap between CPU and memory speeds continues to widen, and adding multiple processors to the mix isn&rsquo;t going to help any. Games that ignore memory access patterns are going to crawl along in next-generation hardware.</p>
<p><a href="http://research.scea.com/research/html/CellGDC05/index.html">Sony&rsquo;s PS3 is going to take things even further</a>. It&rsquo;s going to use a <a href="http://arstechnica.com/articles/paedia/cpu/cell-1.ars">cell processor</a> with multiple cores, but each of the cores only has access to a very small amount of local memory. Not exactly the everyday programming model of the hardware we&rsquo;re used to.</p>
<p>To be able to take full advantage of the new hardware, we&rsquo;re going to have to change how we think about our programs. Take a snapshot of your game engine architecture, tilt your head 90 degrees, and that&rsquo;s more how it&rsquo;s going to look now. <a href="http://www.cmpevents.com/GD05/a.asp?option=C&amp;V=11&amp;SessID=4678&amp;Mgt=0&amp;RVid=0">Data-driven architectures</a> and service-oriented systems are going to dominate this new landscape.</p>
<p>Fortunately this is not just a bizarre architectural decision that console manufacturers pulled out of a hat. They are just leading the way as far as future architectures. More and more multiprocessors are becoming the norm on PCs, and both Intel and AMD have been <a href="http://www.amd.com/us-en/assets/content_type/DownloadableAssets/MC_Whitepaper_vFINAL.pdf">busy at work for several years to take advantage of this trend</a>. When you can&rsquo;t make your processors faster, cheaper, and smaller, you need to start thinking of different directions to continue improving performance. Herb Sutter <a href="http://www.gotw.ca/publications/concurrency-ddj.htm">has been talking about it for a while now</a> and he also sees it the inevitable future. So, as a programmer, don&rsquo;t be afraid to dive in and get comfortable with this architecture. Multiprocessors are here to stay, and it&rsquo;s going to be a valuable skill in the future.</p>
<h3 id="online-focus">Online focus</h3>
<p>It seems that everybody is talking online this, online that. Especially <a href="http://www.gamespot.com/news/2005/03/09/news_6120142.html">Microsoft</a>. Personally, I&rsquo;m a bit scared (and skeptical) of this trend. Even though I enjoy the occasional multiplayer game (and I&rsquo;m enjoying <a href="http://www.amazon.com/exec/obidos/ASIN/B0002BJQDY/ref=nosim/gamesfromwith-20/102-6548099-6063309"><em>Guild Wars</em></a> quite a bit right now), I certainly don&rsquo;t want to make all my gaming experience be multiplayer. I do enjoy playing against the AI, or against somebody else sitting on my couch. I certainly don&rsquo;t want to wait 10 or even 5 minutes to get everybody together before we can start a game, and I most certainly don&rsquo;t want to hear eight-year-olds yelling while I&rsquo;m trying to unwind by playing a quick game in the evening. I don&rsquo;t want that on a PC game, and certainly not on a console game, which is supposed to provide a quick gaming experience.</p>
<p>I think the PC went through that phase about five years ago, when online gaming was new and exciting and every game had to have an online component, but it has reached a more mature position now. In the console realm, online play is still pretty new, so it keeps being pushed as a big marketing point. Xbox Live was apparently a big hit (certainly much bigger than I predicted back when it was announced), but it&rsquo;s still only a tiny fraction of the market. Console manufacturers and publishers seem to think that broadband penetration is what&rsquo;s preventing more people from jumping online. Have they considered that maybe most people don&rsquo;t want to play online?</p>
<p>It always amazes me to see games whose multiplayer component is a completely different game from the single player one. They are two totally different experiences duct-taped together in one package, and usually one (or both) suffers for it. Wouldn&rsquo;t it have been better to spend the resources in one of those areas and do it well? For example, the <em>Grand Theft Auto</em> series got it right. Sure, they could have done multiplayer with capture the flag, conquest modes, etc, but that&rsquo;s not what the game is about.</p>
<p>So please, let&rsquo;s not get drawn in by the hype and let&rsquo;s keep the single player alive.</p>
<h3 id="conclusion">Conclusion</h3>
<p>Times really are a-changing. The potential changes to the development model scare me. I hope things are not as grim as they seem right now and small game developers can stay afloat and not have to move to California to survive. On the other hand, I&rsquo;m genuinely excited about the new technical challenges and figuring out how they&rsquo;re going to affect the way we develop software. Bring on those multiprocessor machines!</p>]]></content:encoded></item><item><title>So You Want to Be a Game Programmer?</title><link>https://gamesfromwithin.com/so-you-want-to-be-a-game-programmer/</link><pubDate>Mon, 24 Jan 2005 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/so-you-want-to-be-a-game-programmer/</guid><description>&lt;p&gt;I often get email from people looking to get their first job in the game industry asking me for advice. What are companies looking for in candidates for entry-level programming positions? How come it&amp;rsquo;s so difficult to land a job? I can&amp;rsquo;t answer for the industry as a whole, but I can certainly tell you what I am looking for when trying to fill an entry-level programmer position.&lt;/p&gt;</description><content:encoded><![CDATA[<p>I often get email from people looking to get their first job in the game industry asking me for advice. What are companies looking for in candidates for entry-level programming positions? How come it&rsquo;s so difficult to land a job? I can&rsquo;t answer for the industry as a whole, but I can certainly tell you what I am looking for when trying to fill an entry-level programmer position.</p>
<p>A few weeks ago, Joel <a href="http://joelonsoftware.com/articles/CollegeAdvice.html">wrote an article</a> with advice for college students looking to become programmers. It was good, solid advice overall, but it was a bit too general, and it didn&rsquo;t apply very well to the games industry. I often get email from people looking to get their first job in the game industry asking me for advice. What are companies looking for in candidates for entry-level programming positions? How come it&rsquo;s so difficult to land a job? I can&rsquo;t answer for the industry as a whole, but I can certainly tell you what I am looking for when trying to fill an entry-level programmer position.</p>
<p>Specifically, I&rsquo;m going to concentrate on the case of someone without any previous industry development experience applying to game companies for the first time, possibly straight out of college. At the end I&rsquo;ll touch on people switching industries with previous experience in other software industries. If you&rsquo;re already in the games industry, then you already have a pretty good idea how you got there, and that experience will carry you forward much more easily than someone trying to break in for the first time. Still, you should be able to meet all these requirements in spades for your next job interview, so you might want to read on anyway.</p>
<p>The type of job openings you&rsquo;ll be looking for are usually referred to as junior programmer, entry-level programmer, associate programmer, or something similar. Sometimes it&rsquo;ll be listed simply as programmer but they&rsquo;ll specify that previous experience is not required.</p>
<p>What exactly am I looking for, then, in an entry-level programmer candidate? Here is what I&rsquo;d like to see, roughly in order of importance.</p>
<h3 id="enthusiasm">Enthusiasm.</h3>
<p>Maybe this goes without saying, but I figured I would put it as my number one item. If you aren&rsquo;t extremely enthusiastic about developing games for the first time, you might as well look for something else. In a couple of years you&rsquo;ll be extremely disappointed and will be thinking of switching industries anyway.</p>
<p>How do you show this enthusiasm of yours? Working on a project of your own is an excellent way of convincing potential employers that you really care about this stuff. Write some small games, participate in some open-source projects, make some mods, do whatever you want, but work on some game-related projects. I would recommend working on several small projects, and then try to work on one larger one to get exposure to several areas and get experience working on a large code base.</p>
<p>Make sure to bring up those projects in your resume and put them on your web page (yes, we do check web pages and google for people before bringing them in for an interview). In a way, they&rsquo;re the closest thing you have to experience in the industry. Be ready to discuss your project, why you did things in certain ways, ask how other people deal with particular issues, etc.</p>
<h3 id="always-learning">Always learning.</h3>
<p><img alt="textbooks" loading="lazy" src="/so-you-want-to-be-a-game-programmer/images/textbooks.jpg"> You&rsquo;re about to finish your college education. If you think you&rsquo;re done learning, think again. You&rsquo;ve just finished the base that allows you to continue learning. Especially in this always-changing industry, you will always be learning new things: new platforms, new APIs, new languages, new approaches, new styles, new everything. Don&rsquo;t think for a moment you can learn a couple of things and then stick to them without learning anything new.</p>
<p>It&rsquo;s great to be confident in your skills, but if I catch a whiff that the candidate is set in his ways and is not interested in learning anything new, it&rsquo;s &ldquo;hasta la vista, baby.&rdquo;</p>
<p>So go out and learn new things. I always like to be reading a technical book on things directly applicable to what I do at work, and maybe some on things that are more off-the-wall. In addition, I recommend reading trade magazines (<a href="http://gdmag.com/"><em>Game Developer Magazine</em></a>, <a href="http://www.sdmagazine.com/"><em>Software Development</em></a>, <a href="http://cuj.com/">C/C++ Users Journal</a>, etc), conference journals (<a href="http://gdconf.com/">GDC</a>, <a href="http://www.siggraph.org/">Siggraph</a>, <a href="http://www.acm.org/">ACM</a>), web sites (<a href="http://gamasutra.com/">Gamasutra</a>, <a href="http://flipcode.com/">Flipcode</a>, <a href="http://www.gamedev.net/">GameDev.net</a>), mailing lists (<a href="http://lists.sourceforge.net/lists/listinfo/gdalgorithms-list">gd-algorithms</a>, <a href="http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com">sweng-gamedev</a>, <a href="http://sourceforge.net/projects/gamedevlists/">gd-general</a>), and just about anything you can get your hands on. Don&rsquo;t be afraid to look at open source projects (<a href="http://nebuladevice.cubik.org/">Nebula Device</a>, <a href="http://crystal.sourceforge.net/">Crystal Space</a>), figure out how they do things, and even participate in their development.</p>
<p>The book <em><a href="http://www.amazon.com/exec/obidos/ASIN/020161622X/ref=nosim/gamesfromwith-20">The Pragmatic Programmer</a></em> recommends learning one new computer language every year. It might be a bit of overkill, but it&rsquo;s certainly not a bad idea. Even if you&rsquo;re not planning on using <a href="http://www.smalltalk.org/">Smalltalk</a> or <a href="http://www.ruby-lang.org/">Ruby</a>, it can only broaden your skillset and give you new perspectives on things. Learn about garbage collection, dynamic languages, etc. Of course, make sure you have the basics covered and you have a good grasp of C and C++ before you branch into other languages.</p>
<h3 id="plays-games">Plays games.</h3>
<p>Doh! If you&rsquo;re going to be developing games, you better play games on a regular basis. You don&rsquo;t have to be a hardcore player, but you should enjoy playing some games. Be ready to discuss your tastes in games, what you&rsquo;re played recently, why you liked them, etc. It&rsquo;s not like you&rsquo;re going to be designing the games (after all, you&rsquo;re applying for a programming position), but it&rsquo;s good to have an idea of what you&rsquo;re aiming for when you&rsquo;re creating a game. Also, the more you enjoy playing games, the more of a reason you have to actually want to work on them.</p>
<p>In my time in the industry, I&rsquo;ve only known one programmer who didn&rsquo;t play any games (and he was extremely talented to boot), but he was certainly the exception to the rule. If you don&rsquo;t like games, you better have a really good reason as you why you want to get in this business.</p>
<h3 id="skills">Skills.</h3>
<p>Ah, yes. It finally had to come up. As an entry-level programmer, you&rsquo;re expected to learn a lot on the job, but you need certain skills to be useful and productive from the very beginning. Hobbyist game programmers obsess about DirectX and OpenGL. That&rsquo;s fine, but don&rsquo;t worry too much about it. You&rsquo;re not going to see a single line of those APIs unless you&rsquo;re hired as a graphics specialist (unlikely for a junior-level position). The specific skills will depend on the exact job and company, but these are pretty universal given what typical junior programmers get to work on.</p>
<ul>
<li>Fluent in C++. Most game development (for PCs and game consoles) these days is done in C++, so you&rsquo;d better be comfortable with the language. Knowing the syntax and compiling â€œHello worldâ€ isn&rsquo;t good enough. A class in college isn&rsquo;t going to cut it either. The ideal candidate will have at least read <em><a href="http://www.amazon.com/exec/obidos/ASIN/0201924889/ref=nosim/gamesfromwith-20">Effective C++</a></em> and will have used C++ in some significant projects (either your own projects, or in some term projects at school). You should be able to discuss the order in which destructors are called for classes with inheritance, when you need to provide a copy constructor, or what const-correctness is and why is it a good idea. If not, hit the books right away.</li>
<li>Basic 3D linear algebra. As an entry-level programmer, you&rsquo;ll most likely work extensively on high-level game code at first. To do things effectively, you&rsquo;ll need a good understanding of the fundamentals of 3D linear algebra. Make sure you know your dot and cross products, how to calculate them, but, most importantly, what they represent and when you should use them. You should be comfortable with relative coordinate systems, and matrices as transforms (I don&rsquo;t care if you know the formula for a rotation matrix, just that you know how to use it). Calculating if an object in the world is within a certain distance from the player, and within a certain angle of its aiming direction, should be close to second nature. Review your linear algebra books from college or check out <em><a href="http://www.amazon.com/exec/obidos/ASIN/1584502770/ref=nosim/gamesfromwith-20">Mathematics for 3D Game Programming and Computer Graphics</a></em></li>
<li>Software engineering. This is not a requirement for total entry-level positions, but it&rsquo;s certainly a nice bonus. Unfortunately it&rsquo;s not often emphasized (or even taught) in many schools, but being familiar with good software engineering practices is very important. Learn all you can about good object-oriented design, design patterns, encapsulation, unit testing, physical insulation, etc. There&rsquo;s more to programming than knowing a language or API. This is difficult for people straight out of college, but it&rsquo;s a huge bonus when you have it. Internships could help with this, but they&rsquo;re not nearly as crucial for me as Joel says. I&rsquo;d rather see an impressive set of home projects than a couple of summers working at IBM or Sun (on one hand I see a guy with lots of internal drive, and another one that needs to be told what to do and needs guidance). Having both would be awesome.</li>
<li>Tools. I certainly don&rsquo;t expect new programmers to be familiar with the exact tools we happen to use. However, the ideal candidate should be familiar with version control, should know how to use a debugger, etc.</li>
</ul>
<h3 id="ability-to-get-things-done">Ability to get things done.</h3>
<p>As an entry-level programmer, you&rsquo;re going to be thrown in the water and you&rsquo;re going to have to figure out a lot of things by yourself. Sure, you&rsquo;ll hopefully get some supervision, and people will be able to answer a lot of your questions and work with you. But you&rsquo;ll be expected to tackle something, learn about it, and get it done.</p>
<p>Here&rsquo;s one that I completely agree with Joel: Make sure you get a degree, and do the best job you can with it. Sure, a degree doesn&rsquo;t measure many things, but getting a good GPA means that you were able to stick with something for four years, even when things got tough or when you had to do things that you didn&rsquo;t feel like working on. Working in games is not all fun (even if it&rsquo;s all games), so making sure that people are not easily discouraged and can get things done is very important.</p>
<p>Another way of showing that is, as I said earlier, by working on projects on your spare time. That shows someone who went to the effort of creating something while learning something new. It doesn&rsquo;t have to be a super-polished, finished game, but it should be more than a couple of classes that compile without errors and print â€œOKâ€.</p>
<h3 id="well-rounded-education">Well-rounded education.</h3>
<p>Knowing things outside of games is a good thing (knowing the detailed history of the <em>Star Wars</em> universe doesn&rsquo;t really count). Taking and doing well in classes in a variety of topics in college is a good start. You may think that your South American archaeology class will never be of any relevance, but you&rsquo;ll be surprised how things you learn there will come in useful in the most unexpected ways.</p>
<p>Make sure you do something beyond games. Take up a hobby of something totally unrelated. Some of the best candidates are art enthusiasts, practice sports seriously, are into oriental philosophy, or play the viola. I always ask about people&rsquo;s hobbies during an interview. Usually the weaker candidates won&rsquo;t have any hobbies or their only hobby is playing computer games.</p>
<p>I really think that if you&rsquo;re going to dedicate yourself professionally to games, you need to have some interests in other areas. Also, being familiar with wildly different subjects allows people to approach problems from a completely different angle and come up with very creative solutions. Don&rsquo;t discount the importance of a well-rounded education.</p>
<p>One thing you should not worry about at this point is specialization. If you have one in mind, that&rsquo;s fine, and share it with your employer so you can plan a way to get there. But keep in mind that at first, breadth is more important than depth. It&rsquo;ll be much better for you to learn as much as possible about game development in general. The brightest graphics guru who only knows about graphics will not be half as effective as he could be if he had broader experience developing games.</p>
<p>However, one specialty you can jump straight into is tools. Learn the APIs. Write some tools. Create an editor for an existing game. However, don&rsquo;t think of tools as a temporary thing to pay your dues. Tools are an extremely important part of game development, now more than ever, so <a href="http://www.gamasutra.com/gdc2004/features/20040324/moar_01.shtml">you can make a full career as a tools programmer</a>.</p>
<p>How about people from other software industries with some years of experience? There&rsquo;s a certain bias against them in the industry. On one hand, they&rsquo;re not considered to have the right &ldquo;experience,&rdquo; and then they ask for too much money because they have several years in development already. You can bring a lot of experience, and a lot of it will be different. That&rsquo;s very valuable, but the company needs to see that. Play that angle in your resume/interview. Explain how your skills can be invaluable to the company (and that also shows you&rsquo;re familiar with the development process). Doing a game-related project on the side can go a long way to convince a company that your heart is in the right place.</p>
<p>If you only take one thing away from this article, this should be it: Always be looking to learn new things. Always read new books. Always try new things. Always be willing to listen to and try a different approach. Someone like that will quickly gain a huge amount of experience and become an invaluable member of the team, but the converse (someone with lots of experience not willing to learn anything new) is nearly useless in a rapidly-changing field.</p>
<p>Having said all that, I&rsquo;m afraid we&rsquo;re not currently looking for any entry-level positions at <a href="http://sammystudios.com/">Sammy Studios</a>. We might be hiring again this summer, so check back then. In the meanwhile, hit the books and sharpen up those skills.</p>]]></content:encoded></item><item><title>Optimizing the Content Pipeline</title><link>https://gamesfromwithin.com/optimizing-the-content-pipeline/</link><pubDate>Tue, 03 Aug 2004 00:00:00 +0000</pubDate><guid>https://gamesfromwithin.com/optimizing-the-content-pipeline/</guid><description>&lt;p&gt;A successful game needs to provide top-notch content, and the best way to provide it is to optimize the content pipeline so that artists and designers can create, preview, add, and tweak new assets as easily and rapidly as possible.&lt;/p&gt;</description><content:encoded><![CDATA[<p>A successful game needs to provide top-notch content, and the best way to provide it is to optimize the content pipeline so that artists and designers can create, preview, add, and tweak new assets as easily and rapidly as possible.</p>
<p>This article was first published in the April 2004 issue of Game Developer Magazine. <a href="http://www.convexhull.com/articles/gdmag_content_pipeline.pdf">Printer-friendly format</a>.</p>
<h3 id="introduction">Introduction</h3>
<p>After years of being almost completely technology-driven, the driving force behind games is finally swinging towards the game content itself: level design, models, sounds, story, cinematics, etc. Major technological leaps are not making enough of a difference to set games apart from each other. Game content will also continue getting larger and more complex. The amount of content going into AAA games seems to double every few years. Since there&rsquo;s no hardware upgrade for the artists and designers themselves, content doesn&rsquo;t get created any faster.</p>
<p>A successful game needs to provide top-notch content, and the best way to provide it is to optimize the content pipeline so that artists and designers can create, preview, add, and tweak new assets as easily and rapidly as possible.</p>
<p>The content pipeline is the path that all the game assets follow, from conception until they can be loaded in the game. Game assets include everything that is not code: models, textures, materials, sounds, animations, cinematics, scripts, etc. During their trip through the pipeline, assets might be converted, optimized, chopped to bits, or combined. In the end, the asset is in a format that will be shipped with the final version of the game.</p>
<p>The first issue to consider when defining the content pipeline is its efficiency. With large teams of artists and designers constantly creating and tweaking game content, the content pipeline becomes a critical path. A slight inefficiency in the pipeline, such as taking one full minute from the time a change is made to the time it can be seen in the game, can easily cost a company thousands of wasted man-hours during the course of a project. Alternatively, if the content creators don&rsquo;t preview their work as frequently, the overall quality of the game will suffer.</p>
<p>The other main point to consider is robustness. The content pipeline is the jugular vein of a project: if it breaks it can quickly kill the whole project. You can&rsquo;t afford to have 30 idle people waiting for the pipeline to be fixed, or working around it and consequently losing half their work. Whatever happens, the pipeline must always work correctly.</p>
<h3 id="birds-eye-view-of-the-pipeline">Bird&rsquo;s-Eye View of the Pipeline</h3>
<p>What does an asset pipeline look like? It depends on the project. On one extreme, in some projects the pipeline is minimal and informal: assets are exported from their tool and loaded directly in the game. While that might be sufficient for small games, it usually doesn&rsquo;t hold up well in large projects: Where are the files stored so multiple people can work on them? How are assets for multiple platforms dealt with? How can the format of the resources be changed easily? How can any extra processing be applied to them?</p>
<p>On the other end of the spectrum, pipelines can be very deep and elaborate. Adding a new asset to the game requires going to the pipeline guru and asking him to add the new content, causing turnaround time to suffer significantly.</p>
<p>This article presents a general pipeline that many different game projects can adopt and modify to fit their needs. It is fairly lightweight and provides a quick turnaround time, yet it allows for any number of expensive steps to be performed on the assets along the way. This is the pipeline that we&rsquo;re using at Day 1 Studios for our current Xbox project, MechAssault 2. A previous incarnation of this pipeline was used in MechAssault 1. This pipeline might be a good starting place if you&rsquo;re just beginning a new project, or you can try to adapt some of the ideas that make sense for your current situation.</p>
<p><img alt="Content pipeline" loading="lazy" src="/optimizing-the-content-pipeline/images/pipeline_1.png">Figure 1. A partial view of the MechAssault 2 content pipeline (only models and textures shown).</p>
<p>Figure 1 shows the pipeline for some of the major types of assets in MechAssault 2. The following sections describe in detail each of the pipeline stages.</p>
<h3 id="source-assets">Source Assets</h3>
<p>Source assets are those created by artists and designers, usually through some specialized tool (both in-house tools and off-the-shelf ones). A source asset is one that can be put into the pipeline and will be converted into the final asset without any human intervention. The key idea is that source assets should contain all the information necessary to add them to the game correctly. A material should have all its specular parameters specified, and a model should have all the flags in the weapon barrels so the game knows from what point to shoot projectiles. This is what will allow us to automate the pipeline later on.</p>
<p>The way source assets are created can vary significantly. Sometimes they are created through a set of different, very specialized tools (one for modeling, one for texture creation, one for specifying game information, one to lay out a level, etc). Other times, one large tool (often done as a plug-in in the model-editor program) can be used to create all the assets and export full levels.</p>
<p>Since the source assets contain all the information needed for the final assets in the game, we should treat them very carefully and protect them from being lost or accidentally overwritten. Using a version control program provides a centralized location for all assets, prevents people from overwriting each other&rsquo;s work, and keeps a history of previous versions of each asset. Keep in mind that source asset files can sometimes be as large as several hundred megabytes each, so make sure your version control program is up to it and can also deal well with binary files.</p>
<p>Pre-rendered movies and sound are also game assets, but they&rsquo;re often treated differently because of their huge size. They might have a slightly different path through the content pipeline: Maybe movies won&rsquo;t be kept under version control, or maybe they will but only the most recent version will be kept in the database.</p>
<h3 id="intermediate-assets">Intermediate Assets</h3>
<p>Intermediate assets are exported directly from the source assets, usually with the tool they were created with. This requires a bit more plug-in work in the form of exporters if you&rsquo;re dealing with off-the-shelf tools.</p>
<p>The intermediate assets are in a format that is very easy to read, parse, and extend without breaking backwards compatibility. These assets should contain all the information we could possibly want in the future, even if some of it gets discarded before the end. Loading performance is of no consequence at this point; we&rsquo;ll leave that up to the final assets.</p>
<p>Plain text files are the perfect match for our requirements. In addition, XML is a particularly attractive option to structure those text files, especially if we need to represent information hierarchically. Doing so will also provide us with a whole range of tools and APIs to edit, parse, and transform files with minimal effort. If XML files are overkill for your needs, you can still use a simpler format like INI files or even write your own with minimal effort.</p>
<p>What is the purpose of having this intermediate asset format?</p>
<p>The main reason to have it is to provide a buffer between the source assets and the final ones. Final assets are optimized to load blazingly fast, but as a result, their format will often change and render previous versions unusable. In an ideal world, we would be able to efficiently re-export all source assets automatically into the new final asset format. Unfortunately, we don&rsquo;t live in an ideal world, and that is often impractical. Many off-the-self tools used for modeling and texture creation are not easily and efficiently driven from the command line to batch re-export thousands of models at the time. The intermediate format is not likely to change much during the course of a project, so we can always use it as a starting point to generate our final assets.</p>
<p><img alt="MA2" loading="lazy" src="/optimizing-the-content-pipeline/images/pipeline_2.jpg"> Another reason for having this intermediate format is to defer some of the complex and time-consuming operations like mesh optimizations or lightmap generation until a later time instead of doing them at export time. Also, we often end up creating a set of final assets for each platform we&rsquo;re dealing with. Without the intermediate format, artists would have to export a set of assets for each platform, ensure they&rsquo;re in synch with each other, and wait while each set of assets is converted and optimized every time an asset is changed.</p>
<p>Last but not least, having an intermediate format provides an excellent point for debugging and experimentation for the programmers. Intermediate assets should be in a very easily readable format, so anybody can view the contents of the asset, and even make small modifications for testing and debugging purposes without having to re-export them.</p>
<p>For MechAssault 2 we&rsquo;re exporting full models into one XML file: all the hierarchy information, meshes, vertex data, and materials are included into one large XML file. One of those files for a detailed model can easily be 3-4 MBytes.</p>
<p>As much as plain text is a really nice format to work with, exporting textures into text format would be overkill. In the case of textures, we export them into 32-bit tiff files with custom information in the comments field containing any information artists specified from within Photoshop: bit-depth, dithering, mip-mapping options, etc. The advantage of this format is that all the image is still there since it&rsquo;s exported at full 32-bits (although soon we&rsquo;ll have to worry about larger color channels!), and images can be examined with any program that displays tiff files. Again, mip-mapping, changing bit depths, and dithering are not cheap operations we want to do at load time, but we&rsquo;ll postpone all that until later.</p>
<p>It can be very tempting to modify an intermediate asset directly for many reasons: a &ldquo;quick&rdquo; change right before a milestone, the change we&rsquo;re trying to make is not exposed through the plug-in of the tool, etc. We did exactly that in MechAssault 1 and ended up regretting it. We were too pressed for time to provide good plug-ins for our custom material types, so artists would modify material parameters on the intermediate assets directly. Those parameters would get overwritten next time somebody else re-exported the model and would have to be re-entered by hand. If you absolutely must modify intermediate assets, then consider providing full re-importing capabilities back into your source assets; however, this is usually not a trivial task. For MechAssault 2 we&rsquo;re sticking to only making changes in the source and providing much better plug-in support, and things are running much more smoothly.</p>
<p>Even though this intermediate format is very flexible, chances are there will come a time during a project when it will be necessary to break backwards compatibility. Don&rsquo;t fight it; get ready for it instead. Make sure you have versioning as part of the format, and that you can easily run a script through all exported intermediate assets and convert them to the new format. Since you hopefully chose an easily parsed format such as XML, the conversion process should be almost painless.</p>
<h3 id="final-assets">Final Assets</h3>
<p>The final assets have been highly optimized so they can be loaded and used as efficiently as possible in their target platform. The specific file format doesn&rsquo;t have to be particularly robust or withstand many format changes since the final assets will be regenerated many times a day. The number one goal here is speed. Ideally, this resource should be a direct memory image of what it&rsquo;ll be in when it&rsquo;s loaded in the game, so that it can be loaded straight without any parsing. The standard warnings about optimizations also apply here: don&rsquo;t blindly optimize everything, and spend your time in those assets where you&rsquo;ll get the most benefit.</p>
<p>If you&rsquo;re doing multiplatform development, you&rsquo;ll probably want to have one set of final assets for every platform. That way Xbox textures can be in their own format, and PS2 textures can be packed and formatted differently. At Day 1 Studios, even though we were only developing for the Xbox, we have two sets of resources: one for the Xbox, used in the game, and one for the PC, used in our PC-based tools.</p>
<p>The type of operations done at this stage range from quick ones such as simple format changes, to somewhat expensive ones such as mip-map generation, dithering, or compression, to really time-consuming ones such as lightmap generation and mesh optimizations. At this point we don&rsquo;t care too much about how long it takes to perform an operation, we just care about the final result and how optimized the final asset is. As a result of this step some assets could be split into different assets (for example, our model XML file is split into several smaller files containing vertex and index data), and sometimes multiple assets get combined into one larger asset (packing a set of textures into one larger texture).</p>
<p>At Day 1 Studios, this step is performed by a command-line conversion tool, which takes a set of intermediate assets and produces the final assets. The actual conversion happens through a set of conversion plug-ins implemented as DLLs, each of which takes care of converting a particular type of resource (identified by filename extension or a header on the file itself). Any resources not handled by the conversion plug-ins are just copied straight through without any modifications.</p>
<p>Be warned that doing a full resource conversion on all the assets of the game can be a very time-consuming operation. There can easily be hundreds of thousands of files, and each of them needs to be loaded, parsed, converted, and saved in the new format. This process can take up to several hours even with a fast CPU and a very fast hard drive. Minimizing this time will help with the overall turnaround time, so you might want to profile the conversion program to find any obvious bottlenecks. Other solutions include doing incremental conversions (only convert files that have changed since the last build), and doing distributed builds (have a farm of machines where each one takes care of converting a subset of the resources).</p>
<p>During this step we should also generate errors and warning messages as necessary. Sometimes an asset won&rsquo;t meet the requirements to be converted successfully (for example, a texture might be marked as needing mip-maps but it has dimensions that are not a power of two). It&rsquo;s much better to prevent invalid assets from making it this far down the pipeline by preventing them from being generated in the first place, but we should still be ready for them here. By keeping a log of all the failed conversions and all the warning messages, the art and design leads can quickly identify what the problems are and correct them for the next build.</p>
<p>If you have specific dependencies between resources that need to be enforced (for example, packing all the textures for a particular model together and the textures need to be converted before they&rsquo;re packed), you might want to use an existing dependency-management tool such as make or jam.</p>
<h3 id="catalog-files">Catalog Files</h3>
<p>The final step of the pipeline consists in packing all the loose final asset files into larger catalog files. A catalog file is nothing more than a large file containing other files inside, possibly along with their names and hierarchy information.</p>
<p>The advantage of using catalog files are pretty obvious: reduced number of open/close file operations, enforced physical proximity between files, easier and more efficient distribution of assets, faster directory parsing, etc. Surprisingly, not all modern games provide catalog files with their assets (you can usually tell who the guilty parties are by the outrageously long load or install times!).</p>
<p>Using a standard catalog file format (such as .zip, .cab, or even .wad) is very convenient because there are already-made tools to create, load, and view them. On the other hand, you might not have as much control over them as you want (for example, to enforce a specific file alignment or ordering for optimal seeking performance on a DVD).</p>
<p>In this step, the final assets for each platform are packaged into separate files. You might want to have separate catalog files for each level, or have sound and music on a separate catalog file from the rest of the assets. Those strategies will depend on how you need to load resources in your game. Once these catalog files are created, they can be copied onto the network and everybody can copy them locally to their machines or work with them directly from the network if there&rsquo;s enough bandwidth. The game and the tools should be able to read these files directly and load any of the resources inside transparently.</p>
<h3 id="the-fast-path">The Fast Path</h3>
<p><img alt="MA2" loading="lazy" src="/optimizing-the-content-pipeline/images/pipeline_3.jpg"> Unfortunately, the process we&rsquo;ve described so far isn&rsquo;t exactly speedy. To make a change and see it in the game, we need to go through the following steps: modify a source asset, export the intermediate one, check it in version control, kick off a resource conversion, and wait for a few hours until new catalog files are ready. That doesn&rsquo;t meet our earlier requirement of a fast turnaround time.</p>
<p>The solution is to provide a fast path into the tools and the game that bypasses all the time-consuming steps. In our case, we made it so both the tools and the game could load intermediate assets as well as the final assets (see Figure 1 again). All an artist has to do to see how their updated texture looks in the game is to export the intermediate asset, copy it on the directory where the game or tool expects to find it, and run the game. You can even provide a macro or a button that does all those steps at once, including launching the game to the correct level. The artists just make a change, push a button, and see their new assets in the game. It can&rsquo;t get much easier than that.</p>
<p>How exactly is the local file loaded instead of the one residing in the catalog? That&rsquo;s part of the magic of the file manager. As far as the tools and the game are concerned, they&rsquo;re just opening a file like any other. However, our file manager gives local files priority over catalog files so they override any similar entries in a catalog file. Whenever the game attempts to open that file, the file manager redirects it to the local file. Otherwise it loads it from the catalog as usual.</p>
<p>Since we designed the intermediate format so it was easy to parse and modify, but not fast to load, isn&rsquo;t that going to slow loading levels down to a crawl? It would if all the resources in the level were in the intermediate format. The idea is that only the assets that artists and designers are working with at the moment are going to be found locally in the intermediate format, so load times are only going to increase by a very small amount.</p>
<p>This approach also requires that the game and all the tools have code in them to load and parse assets in their intermediate formats. That is not a trivial amount of code, but chances are you&rsquo;ve already written it to make it part of your conversion tool. However, you might want to strip this code out of the final shipped game, so separate it cleanly and surround it with conditional compilation statements so it&rsquo;s easy to remove.</p>
<p>There is one important lesson we learned from using this fast load path: Make sure that your fast load path and your normal path (following the rest of the pipeline) both produce the same results; otherwise you&rsquo;ll have some very disconcerted artists who are not sure why their assets look different after they check them in. In our case, we were using one library for texture conversion in the slow path and a different one in the fast path. The results were often similar, but sometimes different enough to raise a few questions. Whenever possible, use the same code in both paths.</p>
<h3 id="putting-it-all-together">Putting It All Together</h3>
<p>Now that the whole pipeline is in place, we can finally start thinking about automating the process. It should be relatively straightforward to create a script to get the latest source or intermediate assets from source control, run the conversion process on all of them, and package them on the catalog files. Perl and Python are some good glue languages for that type of tasks. The most difficult aspect of the script is making it robust enough to deal with errors (network going down, version control server being down, etc), so take good care of that from the beginning. With such a script in place, we can run the resource build automatically once or twice a day, or on demand when new resources are needed.</p>
<p>The more we automate the content pipeline, the more important feedback becomes. People are not going to be watching every step of the pipeline, so we need to collect all the important information and deliver it to the people who care about it. In addition to gathering all errors and warnings, we might also want to collect other information, such as memory footprints, texture usage, or even some rough performance statistics. All that is best done as a final step to the resource build, running each of the levels in the game with the latest resource and executables. As a side benefit, it also serves as a very rough smoke test of the build.</p>
<p>Robustness was one of the goals of the pipeline from the very beginning. Part of it involves making sure that the conversion and packaging tools work flawlessly and report any errors correctly. The other part is making sure the game and the tools are never left in an unusable state because of bad resources. A good philosophy to maintain is that bad data should never break the game or tools; an artist or designer should never be able to crash the game. It might sound a bit radical, but it&rsquo;s worth aiming for that goal. Any engineering time spent towards this will be paid back many times over as soon as assets start being added to the game at full speed. When loading a level, take the time to report any loading or initialization errors, disable the entities that had problems, and move on. In addition to that, it&rsquo;s helpful to put some sort of ugly debugging model (a big pink lollipop in our case) in place of any entity that failed initialization.</p>
<h3 id="further-work-on-the-pipeline">Further Work on the Pipeline</h3>
<p>Turnaround time is very good already, but we&rsquo;d like to make it even shorter. We&rsquo;d like the game to detect that some assets have changed and load them on the fly. This can be particularly beneficial for games without discrete levels where reaching specific locations is a time-consuming task.</p>
<p>A full resource build for MechAssault 2 can take up to an hour and a half. We&rsquo;d like to further investigate the possibility of doing distributed builds. There are open-source, general frameworks for doing distributed operations that could be easily added to the process. We might also want to look into integration with the build systems such as Ant for added robustness.</p>
<p>Games are very different from each other and teams are organized differently, so content pipelines will vary significantly from project to project. It is important to identify the assets for a given game, what kind of operations will be done to them, who will be working on them, and at what stage of the development they will occur. Use whatever pipeline organization works best for your particular needs and automate as much of it as possible. The artists and designers in your team will thank you for it, and you&rsquo;ll end up with a much better game in the end.</p>]]></content:encoded></item></channel></rss>