<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Steps In The Dark</title>
	<atom:link href="http://blog.klaimsden.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.klaimsden.net</link>
	<description>Whispering my love for what I build or discover.</description>
	<lastBuildDate>Thu, 14 Feb 2013 16:50:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<atom:link rel="payment" title="Flattr this!" href="" type="text/html" />
		<item>
		<title>Post-Mortem: One Game A Month &#8211; January</title>
		<link>http://blog.klaimsden.net/?p=580</link>
		<comments>http://blog.klaimsden.net/?p=580#comments</comments>
		<pubDate>Thu, 14 Feb 2013 16:37:06 +0000</pubDate>
		<dc:creator>Klaim</dc:creator>
				<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[One Game A Month]]></category>
		<category><![CDATA[Post-Mortem]]></category>

		<guid isPermaLink="false">http://blog.klaimsden.net/?p=580</guid>
		<description><![CDATA[In my last post I decided to participate to the One Game A Month challenge. It&#8217;s basically a web page gathering and connecting people who wants to release games regularly together. You&#8217;re not forced to do anything, you can release whatever that can be called a game, it&#8217;s not about making the game in one [...]]]></description>
				<content:encoded><![CDATA[<p>In my last post I decided to participate to the <a href="http://www.onegameamonth.com/">One Game A Month</a> challenge. It&#8217;s basically a web page gathering and connecting people who wants to release games regularly together.<br />
You&#8217;re not forced to do anything, you can release whatever that can be called a game, it&#8217;s not about making the game in one month but releasing something each month, even updates.<br />
The goal, in my view, is both to work your game dev skills and to work you &#8220;release&#8221; muscle which is the hardest thing you have to do when you want a game to be successful.</p>
<p>Here is a quick post-mortem of my January attempt.</p>
<h2>The context</h2>
<p>I called the game Links, it have a very simple mechanic which I will not talk about yet as I prefer people to discover.<br />
It&#8217;s an old concept of mine that I wanted to do for a dear friend.<br />
I initially wanted to release it in middle of January, for her anniversary, but failed (for the following reasons), so I&#8217;m doing it for February instead now.<br />
Keep in mind that I also have a &#8220;big&#8221; game, <strong>NetRush</strong>, that I&#8217;m working on every work day (and sometime week ends).<br />
And also sometime I work on<a href="http://artofsequence.org"> Art Of Sequence</a> projects.  Actually I will work on it this whole February.<br />
Which is why I cannot spend a lot of time on Links and early on decided to spend only one weekend on it.</p>
<p>&nbsp;</p>
<h2>What Went Right</h2>
<h3>Simple concept</h3>
<p>Technically, it involve connecting icons. Which is so simple it match my objective of scaling things down.<br />
It&#8217;s also very easy to level-design, which means I will discover the game while making it, which is always motivating pleasure.</p>
<h3>Don&#8217;t need much resources</h3>
<p>Even without music, simple graphics do the trick. I mean, iconic representation of concepts are the very game anyway.<br />
It can easily be enhanced later, maybe for a future version.</p>
<h2>What Went Wrong</h2>
<h3>Doing it like a Game Jam</h3>
<p>As I said before, I couldn&#8217;t spend a lot of time on this game and wanted to do something that I could do in a weekend.<br />
Theorically, it&#8217;s the perfect game for that.</p>
<p>In practice,<strong> I suck at Game Jams</strong> (like Ludum Dare).</p>
<p>This is because of globally two factors. First, I don&#8217;t have enough jam experience. I must say that after having done some, game jams aren&#8217;t really motivating me because it&#8217;s almost impossible (for me) to do something interesting without a long period of thinking about what it is I&#8217;m trying to build. But game jams aren&#8217;t really about the games themselves, they are more about sharing motivation for finishing games.<br />
Which is why I often try to do game jams anyway, even if I don&#8217;t think it contribute to the quality of my big projects (or maybe only for the release part).</p>
<p>Anyway, I suck at game jams. In particular, when doing it alone. Last time I managed to finish a game jam, I did it with a friend. We finished the game 10 minutes before the deadline and were not really happy about the quality of the concept. We had several tools problems and built the game from almost nothing. However at least we finished it. But I never finish a game jam alone. Maybe because it&#8217;s harder to keep total focus on one project in such a short time as 2 days.</p>
<p>Which is why I shouldn&#8217;t have planned to do it in one time. I think that, until I get better at game jams, I should just work a little bit on the game regularly, like one day of each week end of the month. I&#8217;m definitely more at ease with marathon-like developments because that&#8217;s what I&#8217;m used to. I need to train myself for shorter devs, even if I did make some games in short time before, it was not really the best experience ever.</p>
<p>The second reason was&#8230;</p>
<h3>Tools: Habit &amp; Choice</h3>
<p>Indeed when you&#8217;re making big games you don&#8217;t have the same mindset than with short dev games. As I&#8217;m working on big games on work-days, I am not really trained in tools which support really fast development of games. I did use such frameworks, like Flash and Cocos2D-X in my previous jobs, but I&#8217;m not totally at ease with them most of the time. I really want to learn Unity3D but it&#8217;s almost impossible to find time with my current works in progress.</p>
<p>So I initially tried to make this game with SFML (C++) only, which would have been a good choice with a longer timeframe because SFML is very good at giving you bricks to build game engine, but it&#8217;s not a ready game engine. I used it mainly because I&#8217;m very familiar with it, which should have been a big win, but for a work of 1 weekend, developing alone, it is still not good enough without engine code built around it.</p>
<p>After a weekend of building this game without really making yet the game-specific code, it got me a bit depressed and I stopped. I met a friend which is also making games and told him I was considering using other tools for really short devs, like Flash (which is the closest tool I know which allow very fast game dev). Other possibilties would have been Cinder (but I&#8217;m not sure it&#8217;s suited, I have no experience with it), Unity3D (overkill for my icon-based game) and Cocos2D-x (which I know is very powerful, used it to <a href="http://www.youtube.com/watch?v=v70MjlUpsL8">make in two weeks this when I was in japan</a>, without knowing anything about the platform, keyboard or framework, but I really don&#8217;t like being forced to use Objective-C idioms in a C++ program&#8230;). My friend recommanded using FlashDevelop with Flixel, so I started to remake the game this way.</p>
<p>&nbsp;</p>
<h3>Mental Block</h3>
<p>There have been two mental blocks. The first one was on each week end of January but the last, I had a really hard time motivating myself to work on Links. I think it was both because it&#8217;s an intimidating thing to make a game that you believe expose a bit of yourself to the public; and because I spent all other days working really hard on NetRush (and sometime AOS) on very difficult part of the game code, which might have totally sucked all energy from me, none left for the weekends. It was like reaching &#8220;the wall&#8221; but at the very first lines of code. Before I met the wall only in the middle or around the end of a project, but it was almost depressing to not being able to just dive in this.</p>
<p>I think it will get better this month as I feel far better (and I will take some needed vacation days soon) but I&#8217;m not finished with this game yet.</p>
<p>The second block was certainly due to my coming birthday. Since this week, I&#8217;m 30. The week before, I couldn&#8217;t work on anything at all. I didn&#8217;t really feel depressed, but I couldn&#8217;t dive in work like I did the 4 month before each day. Maybe I just need vacations, but I think this birthday, mixed with not being happy life yet (things gets better each year), and not having a single clue as to how to celebrate this, did make me do nothing in the end. I think I&#8217;ll reserve celebration for the first release of a NetRush public version instead. But I will take a few days totally off work soon. Also, this week I feel far better and worked on Art Of Sequence.</p>
<p>Now I need to finish a first version of this game, &#8220;with a beginning and an end&#8221; as requested by the One Game A Month website, for February. I have a list of other short games I want to make and I really need to push this one out to motivate me doing others.</p>
<h2><strong>A note about game jams format</strong></h2>
<p>I must add that I bought and read <a href="http://www.mcfunkypants.com/2012/the-game-jam-survival-guide/">The Game Jam Survival Guide</a> when it was first published, but I guess I didn&#8217;t fully get all the recommendations.</p>
<p>As I was saying before, I&#8217;m not totally convinced by the point of game jams, other than sharing the love and practicing release, because of the short time-frame don&#8217;t allow any kind of game to be made.<br />
However, I do believe that releasing something each month is a very good practice.</p>
<p>Now I&#8217;m thinking that maybe instead of doing a too short game each month, with other big projects going on in the same time, it might be a good idea to find a release timing which let me work on an idea for two or more months but release something (including updates) each month.</p>
<p>I have some ideas on how to do that, but I&#8217;m not sure yet. For example, there is a game I made two years ago that was a present to some friends. Fixing some details and translating the text to English (it&#8217;s in French) then releasing it publicly might be a good short project. It would then allow me to prepare another short project to be release the month after. Then after this one, a release of a version of my big game might happen. Interlocking projects might work better for me.</p>
<p>Any feedback on this is welcome. :)</p>
<p>&nbsp;</p>
 <p><a href="http://blog.klaimsden.net/?flattrss_redirect&amp;id=580&amp;md5=f22ab32d8f13804c6d4da45a025cfef6" title="Flattr" target="_blank"><img src="http://blog.klaimsden.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.klaimsden.net/?feed=rss2&#038;p=580</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One Game A Month? YES I CAN (BUT ONLY IF IT&#8217;s SMALL GAMES)</title>
		<link>http://blog.klaimsden.net/?p=574</link>
		<comments>http://blog.klaimsden.net/?p=574#comments</comments>
		<pubDate>Sat, 29 Dec 2012 18:31:23 +0000</pubDate>
		<dc:creator>Klaim</dc:creator>
				<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[One Game A Month]]></category>

		<guid isPermaLink="false">http://blog.klaimsden.net/?p=574</guid>
		<description><![CDATA[In 2013 I will be participating in ONE GAME A MONTH: http://www.onegameamonth.com/ As I&#8217;m already working on a big game (NetRush) and an open source projet (Art Of Sequence), I don&#8217;t intend to make one big game a month. I will just do a very tiny game a month, one weekend max. The goals for me [...]]]></description>
				<content:encoded><![CDATA[<p>In 2013 I will be participating in ONE GAME A MONTH: <a href="http://www.onegameamonth.com/" target="_blank" rel="nofollow nofollow">http://www.onegameamonth.com/</a></p>
<p><img class="alignnone" alt="" src="http://www.onegameamonth.com/logo.png" width="768" height="80" /></p>
<p>As I&#8217;m already working on a big game (NetRush) and an open source projet (Art Of Sequence), I don&#8217;t intend to make one big game a month.<br />
I will just do a very tiny game a month, one weekend max.</p>
<p>The goals for me will be:<br />
- learn some new techs (Unity and other tools)<br />
- practice more game dev in general<br />
- <strong>learn to SCOPE DOWN MY FUCKING PROJECTS DAMMIT</strong>!!!!<br />
- do more art (graphics and music)</p>
<p>That will be EPIC and hard.<br />
I&#8217;ll blog about it here.</p>
<p>I obviously fear the potential dispertion this could generate. But I also think one week end a month to do something widely different will help me on the long term.<br />
The hard part will be to not make these games more work than 2 days.</p>
 <p><a href="http://blog.klaimsden.net/?flattrss_redirect&amp;id=574&amp;md5=bc3f6d276eb28139acd70f339f01cfcc" title="Flattr" target="_blank"><img src="http://blog.klaimsden.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.klaimsden.net/?feed=rss2&#038;p=574</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First steps.</title>
		<link>http://blog.klaimsden.net/?p=564</link>
		<comments>http://blog.klaimsden.net/?p=564#comments</comments>
		<pubDate>Mon, 10 Dec 2012 12:22:45 +0000</pubDate>
		<dc:creator>Klaim</dc:creator>
				<category><![CDATA[Art Of Sequence]]></category>
		<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[My Life]]></category>
		<category><![CDATA[NetRush]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.klaimsden.net/?p=564</guid>
		<description><![CDATA[I always have a hard time figuring out who to address these posts to, other game devs or my future audience. It&#8217;s a recurring questioning that I feel act like a wall when I feel the need to write an article about something interesting. Anyhow I think it&#8217;s time to write a short report on what&#8217;s happening where I [...]]]></description>
				<content:encoded><![CDATA[<p>I always have a hard time figuring out who to address these posts to, other game devs or my future audience. It&#8217;s a recurring questioning that I feel act like a wall when I feel the need to write an article about something interesting. Anyhow I think it&#8217;s time to write a short report on what&#8217;s happening where I am right now, somewhere in a dark place.<img class="alignnone size-full wp-image-569" title="2658452_960b4170" src="http://blog.klaimsden.net/wp-content/uploads/2012/12/2658452_960b4170.jpg" alt="" width="640" height="425" /></p>
<h2>Current Context</h2>
<p>I just moved in a new flat-share with some people I don&#8217;t know at all but that so far have been very kind and are all working. Finding this place took me several weeks in which I would have half of my day lost in searching and visiting apartments. Then I had to organize and move my things there and I forgot how many book boxes I had (almost 20). It took me additional weeks just to setup my room and clean everything in the house (I was the first to come) as there were still some things to fix before it was really ok to sleep in my room. I slept in the living room almost a week.</p>
<p>Now all this is set and my room is both perfect to sleep and to work. Well almost perfect; I miss my whiteboard a lot.</p>
<p>In the end of the last week I resumed my work and worked almost all the weekend to finish what I started working on before moving.<br />
Some important money issues spawned and are burning a part of my mental power, but it should not be something that would prevent me to work on my things. I really hope this can be fixed ASAP but it seems it will take time.</p>
<h2>The NetRush</h2>
<p>I will be a bit technical on this.</p>
<p>At some points few months ago I started to work on really game-specific code until I reached a point I figured it made no sense to continue without a strong (game-specific) engine to support some of the features that would be, in the long term, incredibly important for this game. Two of them are networking and the client/server setup (which is related). Even in solo game session (actually even when entering the game menu) there needs to be both a client and a server for the game to work correctly. This means I had to setup some kind of master/slave protocol to make sure that processes are related and not leaking.<br />
To this day, the work necessary to make this possible is almost finished. The last part I need to write is the complete master/slave protocol, as currently it&#8217;s only a not-secure-enough part of it that I have. Once this is done (I think it wil be finished tomorrow), I&#8217;ll get back to more fun stuffs like graphics and audio rendering setup.<br />
Also, there is definitely a need for some kind of launcher that would also act like a crash report system. I&#8217;m not sure when I will do it though.<br />
Planning work on this game is incredibly hard so I just stopped planning and note how much time I spend on things.</p>
<p>edit&gt; I also want to spend a week soon to implement tests. I didn&#8217;t write much tests because I was a bit in a hurry but now I really feel a strong need for unit tests of a lot of the basic systems.</p>
<p>I&#8217;m having quite some fun drafting the world setting of the game too. Reading some post-cyberpunk books, some books about writing sci-fi and being inspired by totally related topics from these last years real-world events. We certainly live interesting times. This all make me realize again that it&#8217;s really the perfect time to release a game like NetRush. So I need to get first versions out ASAP. It stresses me a lot too.</p>
<p>I&#8217;ve been tinkering with some game features ideas that I need to push back in the &#8220;feature creep&#8221; box for now as it would certainly take ages (or a teammate) to have them ready in the beginning of next year (or maybe I&#8217;m just being pessimist). However I think at some point I&#8217;ll implement some of these ideas, maybe after the first release, because it would make this game quite unusual and unique (I mean, even more). For the sake of being able to release something soon, I just have to force myself to not think too much about these ideas that blow my mind. Hard times.</p>
<h2>Art Of Sequence</h2>
<p>I didn&#8217;t get back to AOS code these last months for several reasons, one being a big problem with some of the libraries I use for the editor tool (AOS Designer &#8211; AOSD). I think I know how to fix it now but I also think I should finish some of the important work on NetRush first before going back to AOS fully focused. That&#8217;s part of the dilemma of being alone working on projects: if you don&#8217;t work on a project, it&#8217;s not advancing AT ALL if there is no other team member. Getting sick, having to fix some non-project issues outside, trying to keep up with a social life, any interruption makes projects stop totally until you resume work. I so really wish I had a coworker. But in the current context it&#8217;s almost impossible. AOS is open source but don&#8217;t get much attention from developers, mainly because the purpose of this project isn&#8217;t very clear to a lot. I&#8217;m not surprised but it&#8217;s still annoying sometimes.</p>
<p>On the good news, I still took time to discuss about the project with some people in companies that are in the same domain and I hope it will help getting more resources for AOS. We&#8217;ll see.</p>
<h2>On Other Topics</h2>
<p>There is a game idea I would like to realize in the next year but with NetRush and AOS I don&#8217;t have enough hands to do it. I&#8217;m in the process of setting up a small team that would make the game, me being just a game designer. The goal would be to have a first version of the game without me being on all fronts as for NetRush. I will not spend much time on it as it&#8217;s fairly clear for me and the hard part will be to communicate the design directives efficiently.</p>
<p>I also have great plans to fix my &#8220;digital presence&#8221; problem. All my websites are in a poor state, including the one of my future company and I need to fix this at some point. I&#8217;ve put some thinking about how to proceed, but my current estimate is that it will take several weeks to setup all I need, even assuming I&#8217;m setting up static pages. Again it would be different with someone to do it for me, but I have no money to spend on this and I can&#8217;t rely on good will for this kind of work (I consider it commercial). I decided to push the time I will work on this to when I will feel it to be absolutely necessary.</p>
<p>Part of the time I&#8217;ve not been working on my projects was to prepare to setup my future company to support both projects. I met an accountant that told me I looked really prepared so I guess I am. I now have a clearer idea of how it will be done but I also now know that it will not be done before I start selling something, like the first NetRush version. What I&#8217;m not fully decided yet is how I will sell the game. I have some idea but I think I should decide only next year.</p>
<h2>The Dark Place</h2>
<p>On the mental side, I&#8217;m only now starting to feel the famous depressive state of mind that any &#8220;indie&#8221; game dev (or artist?) will get by working a lot on such a huge project as NetRush. I&#8217;m not depressed, but with the time I spent not advancing on NetRush and AOS, it really made me feel bad and now I have a strong pressure (that I made myself) to get to a faster pace of work. It&#8217;s really hard and I recently surprised myself wondering if it was all worth. Of course it is! Maybe it&#8217;s only the cold of winter mixed with money problems that makes me be a bit bitter. Anyway I know the best thing I can do is to just continue forward as much as I can, until I can&#8217;t anymore.</p>
<p>There is a strangely good thing that I realized recently: I don&#8217;t feel lost. Yeah sure it&#8217;s hard to do what I do, alone, isolated and having to be the sole believer in my own projects. However I don&#8217;t feel like I don&#8217;t know what to do to get forward. I think years of thinking about doing this prepared me for whatever is coming and that&#8217;s a very good thing.</p>
<p>One thing that I strongly miss is to work on some narratives. I miss making comics. I made a long webcomics page few months ago but didn&#8217;t publish it yet because it lacks some polish. I can&#8217;t find a time slot to be able to do some comics regularly and it&#8217;s making me feel bad. I think I&#8217;ll have to slow down programming as soon as I have the first testable NetRush game.</p>
<p>&nbsp;</p>
<p>That&#8217;s all for this time. I hope to write on more specific topic next time. Maybe screenshots?</p>
 <p><a href="http://blog.klaimsden.net/?flattrss_redirect&amp;id=564&amp;md5=4efdb46b937bdaf9aaaa513605da857e" title="Flattr" target="_blank"><img src="http://blog.klaimsden.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.klaimsden.net/?feed=rss2&#038;p=564</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why do they make games?</title>
		<link>http://blog.klaimsden.net/?p=554</link>
		<comments>http://blog.klaimsden.net/?p=554#comments</comments>
		<pubDate>Thu, 27 Sep 2012 12:49:14 +0000</pubDate>
		<dc:creator>Klaim</dc:creator>
				<category><![CDATA[Game Dev]]></category>

		<guid isPermaLink="false">http://blog.klaimsden.net/?p=554</guid>
		<description><![CDATA[While Laurent, Daniele and I were trying to answer the question &#8220;Why do you make video games?&#8221;, without any coordination, tons of very well known game developers were being asked the same thing. Here is their answers.]]></description>
				<content:encoded><![CDATA[<p>While <a href="http://blog.monkeymoon.net/2012/09/what-hell-am-i-doing-here.html">Laurent</a>, <a href="http://www.holoville.com/blog/?p=803">Daniele</a> and I were trying to answer the question &#8220;Why do you make video games?&#8221;, without any coordination, tons of very well known game developers were being asked the same thing.</p>
<p><a href="http://www.edge-online.com/features/why-i-make-games/">Here is their answers.</a></p>
 <p><a href="http://blog.klaimsden.net/?flattrss_redirect&amp;id=554&amp;md5=4b1197aaac6562a4a88e1d108c16e4ef" title="Flattr" target="_blank"><img src="http://blog.klaimsden.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.klaimsden.net/?feed=rss2&#038;p=554</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why do you make video games?</title>
		<link>http://blog.klaimsden.net/?p=537</link>
		<comments>http://blog.klaimsden.net/?p=537#comments</comments>
		<pubDate>Mon, 24 Sep 2012 10:46:56 +0000</pubDate>
		<dc:creator>Klaim</dc:creator>
				<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[My Life]]></category>

		<guid isPermaLink="false">http://blog.klaimsden.net/?p=537</guid>
		<description><![CDATA[Laurent is a French indie game developer, like me, who started recently working for himself to just do what he loves, like me. He posted this interesting article about why he just need to make games. I feel the same way but my answer to &#8220;Why do you make video games?&#8221; would have been different. [...]]]></description>
				<content:encoded><![CDATA[<p><em><a title="Laurent's Blog - Will make games for food" href="http://blog.monkeymoon.net/2012/09/what-hell-am-i-doing-here.html">Laurent is a French indie game developer</a>, like me, who started recently working for himself to just do what he loves, like me. He posted this interesting article about why he just need to make games.</em><br />
<em> I feel the same way but my answer to &#8220;Why do you make video games?&#8221; would have been different. Here I&#8217;m trying to expose my answer(s) to this question.</em></p>
<p>Actually, only one person seriously asked me that in my life before.</p>
<p><a href="http://blog.klaimsden.net/wp-content/uploads/2012/09/dino_graphiste.png"><img class=" wp-image-549 alignright" title="dino_graphiste" src="http://blog.klaimsden.net/wp-content/uploads/2012/09/dino_graphiste.png" alt="" width="480" height="419" /></a></p>
<p><a title="One Life Remains" href="http://oneliferemains.com/blog/">He is an indie developer</a> in Paris that asked directly this question when we first met. He wanted to check that I&#8217;m making video games for reasons that were not <a title="If you're not indie fuck you!" href="http://www.youtube.com/watch?v=617lGZjYyNo"> &#8221;I WANT MOONEYYY&#8221; or &#8220;I WANT TO BE A ROCKSTARRR&#8221;</a>.<br />
At the time, I was a bit surprised because it was really the first thing he asked me, in some sort of brutal way. I didn&#8217;t clearly answer at the time, but not because I didn&#8217;t know. I thought about it a lot through years.<br />
I&#8217;m the extreme specimen of a family in which males, one of my uncle describes, are all over-thinkers (that is rarely a good thing).</p>
<p>Even if I know in depths why I&#8217;m making games (and other creative things like comics), it is hard for me to formulate an answer. The answer(s) to this question, for some people, can feel very intimate, just because it exposes deep feelings.</p>
<p>I&#8217;ve been asking myself for a long time this question but I only see one way to really answer it: making games. As I can&#8217;t express very well my reasons using words, that to me can be extremely limited to provide epiphany moments, I find games to be the perfect medium to put people into context and let them explore by themselves what I think games can do, can provide, can make you feel like.</p>
<p>I like other media too. In fact I&#8217;m interested in both narratives and interactive stuffs. I love the narrative subtleties that can only occur while reading comics (which is why I put so much efforts in <a title="Art Of Sequence" href="http://artofsequence.org/">Art of Sequence</a> development). I also love how a book can put you in mental places that are too abstract to be represented by any other medium (which is why <a title="Ubik" href="http://en.wikipedia.org/wiki/Ubik">Ubik</a> doesn&#8217;t have a movie yet). All media have their specific mind blowing structures that allow them to move us into places hard to conceive in other media.</p>
<p>Video games (or more generally, games) can put us in some places I firmly believe exists but were not explored yet. It can also make us have feelings, like<a href="http://onlyagame.typepad.com/only_a_game/2008/04/top-ten-videoga.html"> &#8220;Fierro&#8221; or achievement or epiphany -that moment you just get it-</a>, which are far more difficult to achieve in other media. To explain why I make video games I have to use video game itself to make you really understand, intimately.</p>
<p>This is why, each time I&#8217;ll release a game, you can say:  &#8221;Here is one other reason he makes video games.&#8221;  Which should often be followed by &#8220;Wow, what the fuck was that???&#8221;. I hope.</p>
<p>Maybe a clearer answer to this question will be hidden in my games?</p>
 <p><a href="http://blog.klaimsden.net/?flattrss_redirect&amp;id=537&amp;md5=10f813265ad40bd37450ec195dcb4029" title="Flattr" target="_blank"><img src="http://blog.klaimsden.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.klaimsden.net/?feed=rss2&#038;p=537</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Naturally Complex</title>
		<link>http://blog.klaimsden.net/?p=517</link>
		<comments>http://blog.klaimsden.net/?p=517#comments</comments>
		<pubDate>Sun, 26 Aug 2012 08:00:10 +0000</pubDate>
		<dc:creator>Klaim</dc:creator>
				<category><![CDATA[Game Dev]]></category>
		<category><![CDATA[NetRush]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://blog.klaimsden.net/?p=517</guid>
		<description><![CDATA[In game development circles, and similar or more complex system design domains, it is common and very effective to just KISS. &#8220;Keep It Simple Stupid&#8221; is a simple rule that, as all simple rules, takes years of practice to understand full: The KISS principle states that most systems work best if they are kept simple [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://blog.klaimsden.net/wp-content/uploads/2012/08/NetRush-Complexity-Small.png"><img class="size-full wp-image-523 aligncenter" title="NetRush Complexity Small" src="http://blog.klaimsden.net/wp-content/uploads/2012/08/NetRush-Complexity-Small.png" alt="" width="400" height="285" /></a></p>
<p>In game development circles, and similar or more complex system design domains, it is common and very effective to just KISS.</p>
<p><a title="KISS (wikipedia)" href="http://en.wikipedia.org/wiki/KISS_principle">&#8220;Keep It Simple Stupid&#8221;</a> is a simple rule that, as all simple rules, takes years of practice to understand full:</p>
<blockquote><p>The KISS principle states that most systems work best if they are kept simple rather than made complex, therefore <a title="Simplicity" href="http://en.wikipedia.org/wiki/Simplicity">simplicity</a> should be a key goal in <a title="Design" href="http://en.wikipedia.org/wiki/Design">design</a> and unnecessary complexity should be avoided.</p></blockquote>
<p>Some, me included, may add: &#8220;complexity should be removed&#8221;. That&#8217;s actually the whole point of <a href="http://en.wikipedia.org/wiki/Code_refactoring">code refactoring</a>, removing complexity you added inadvertently and that you can&#8217;t see at first reads of the code but that you see now.</p>
<p>&nbsp;</p>
<p>You see, complex beasts are made of various simpler parts that added together makes the system far harder to understand. However, if each simpler part is as simple as possible to achieve it&#8217;s role, it is then easy to make correct and useful. The design of the system, structured in a few set of abstraction layers, become understandable by our limited brain if taken separately. Then the high level picture of the design of the system is made understandable too.<br />
However, I think KISS don&#8217;t tell the whole story. This famous <a href="http://en.wikiquote.org/wiki/Albert_Einstein">quote is far more correct</a>:That&#8217;s why most of the time, game developers avoid language features they don&#8217;t master. They don&#8217;t use threading if there is no obvious advantage. They avoid having tons of dependencies and if possible they reuse as much as they can both code and assets. Games are incredibly more complex systems than they seem even to the optimistic developer at the beginning of the project, even with years of experience making them.</p>
<blockquote><p><strong>Everything should be made as simple as possible, but no simpler.</strong></p></blockquote>
<p>This last part, &#8220;but no simpler&#8221;, is often misunderstood. <strong>Sometime, the problem</strong>, or set of problems that you are trying to solve (to make a game possible), <strong>is simply naturally complex</strong>. You can&#8217;t simplify it further. This makes things quite more challenging.</p>
<p>&nbsp;</p>
<p><span id="more-517"></span></p>
<p>NetRush, the game I am currently developing, is close to the worst case of complexity in games -that would be MMORPGs.<br />
This game is designed in a way that ultimately suggest the following architecture choices:</p>
<ol>
<li><strong>Exploit Concurrency</strong> as much as possible (or needed): multi-threading, task-based concurrency, etc. This is required for both performance (when CPU speed is your major bottleneck) and allowing a &#8220;smooth&#8221; experience, with no screens blocking. It&#8217;s also making the game performance automatically scaling with the hardware, if implemented correctly.</li>
<li><strong>Client-Server</strong>: The game session is hold by a server application even when playing in solo. This is required by the design of the game that just cannot be possible in a peer-to-peer organization. Also it allows players to host game sessions as they wish, without having to run the game&#8217;s client application.</li>
<li><strong>Graphic &amp; Audio Flexibility</strong>: one of the most important feature of the game is that player&#8217;s game experience can be &#8220;hacked&#8221; by other players in multiplayer or by the  game AI(s). The system is then designed so that some behaviour can be added or removed in both client and server code. This require some special attention and design of each system.</li>
<li><strong>Display Web Pages</strong>: NetRush embark a web browser (using <a href="http://awesomium.com/">Awesomium</a>) to display a lot of the game&#8217;s content.</li>
<li><strong>(Extreme) Modularity and Extensibility</strong>: the basics of the game are inspired from Magic: The Gathering kind of games, as your global strategy is defined by the sets of virus you choose to use in a game session. This meens that new packages of virus should be provided (as often as possible) and  will contain both executables and assets. This also imply that most parts of NetRush core system have to be usable by the modules code, and should be cut in several interdependent systems</li>
<li><strong>3D Graphics</strong>: interestingly, or counter-intuitively, it is initially for gameplay clarity reasons that I made this choice. Now the other reasons are linked to graphic flexibility, theming and</li>
<li><strong>Cross-Platform</strong>: because even if requires to have at least a keyboard to be played, Windows is not the only adequate market platform for such a game.</li>
</ol>
<p>All this ignores additional features like online match-making server that will be necessary at some point, and obvious asset-producing problems (I will  have to do most base assets myself, for the moment at least).</p>
<p>Some choices related to the game&#8217;s design also help making it simpler:</p>
<ul>
<li>No physics (at all).</li>
<li>Very simple graphics (even in 3D &#8211; that said it is true only for the core assets, I&#8217;m not sure yet for the extensions).</li>
<li>Game&#8217;s space structure is simple (it&#8217;s litterally an non-oriented cyclic graph).</li>
<li>Theming is easy (because of some of the architectural choices).</li>
<li>An internal editor will be easily implemented.</li>
</ul>
<p>This game is still quite complex. It is also the kind of game that really can&#8217;t be made with a full generic game engine without having to wrestle the engine very hard and some very specific features could even not be made possible, so I can&#8217;t use Unity or Unreal Engine for NetRush. Fortunately, a good mix of libraries and some glue-code help me avoid building my own engine &#8220;from scratch&#8221;. It&#8217;s a game-specific engine, for simplicity and to avoid getting it utopia mode and making something that &#8220;should solve all my game dev problems&#8221;.</p>
<p>In the process of re-booting this project, I spent some time reviewing and simplifying the architecture of  the code base I had so far, to the point I couldn&#8217;t make it simpler. To be precise, I am still doing this for some systems (and I am being late on my initial schedule&#8230;). Knowing that I am developing this game alone (but almost full-time) most experienced game developers would suggest to remove some of these design choices to simplify even further the  architecture and make it more manageable.</p>
<p>The interesting part is that it just don&#8217;t seem possible to make it simpler than how I&#8217;m doing it now. In fact part of my assumptions are based on this game&#8217;s version we made in high school with a friend that was quite different but is an excellent basis to learn what worked and what didn&#8217;t.</p>
<p>Some developers would suggest that for a first &#8220;indie&#8221; commercial game I should try to do something simpler by design.<br />
However nothing motivates me more than making this game.</p>
 <p><a href="http://blog.klaimsden.net/?flattrss_redirect&amp;id=517&amp;md5=fa26d20ab0f98e434e3509f71c2d26ce" title="Flattr" target="_blank"><img src="http://blog.klaimsden.net/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.klaimsden.net/?feed=rss2&#038;p=517</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
