<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Indie Game Developer

My days, my works, and full-time indie experience out of box.Tweets by @haxpor
!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");



 

 

</description><title>Wasin Thonkaew</title><generator>Tumblr (3.0; @haxpor)</generator><link>http://haxpor.org/</link><item><title>Case study for iOS game especially downloads report</title><description>&lt;p&gt;Two similar cases for good reference in iOS game.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;a href="https://itunes.apple.com/us/app/candymeleon/id614514475?mt=8" target="_blank"&gt;Candy Meleon&lt;br/&gt;&lt;/a&gt;It&amp;#8217;s freemium game developed by 2 people. It reached 400k downloads within 4 days, and 1M downloads within 1 week. It&amp;#8217;s backed by publisher.&lt;br/&gt;&lt;br/&gt;See it here &lt;a href="https://www.facebook.com/photo.php?fbid=453867238040874&amp;amp;set=a.453864604707804.1073741825.200879290006338&amp;amp;type=1" target="_blank"&gt;&lt;a href="https://www.facebook.com/photo.php?fbid=453867238040874&amp;amp;set=a.453864604707804.1073741825.200879290006338&amp;amp;type=1"&gt;https://www.facebook.com/photo.php?fbid=453867238040874&amp;amp;set=a.453864604707804.1073741825.200879290006338&amp;amp;type=1&lt;/a&gt;&lt;/a&gt;.&lt;a href="https://itunes.apple.com/us/app/candymeleon/id614514475?mt=8" target="_blank"&gt;&lt;br/&gt;&lt;br/&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://itunes.apple.com/us/app/badland/id535176909?mt=8" target="_blank"&gt;Badland&lt;/a&gt;&lt;a href="https://itunes.apple.com/us/app/badland/id535176909?mt=8" target="_blank"&gt;&lt;br/&gt;&lt;/a&gt;It&amp;#8217;s premium game ($3.99 as of now) with no publisher or investor. It&amp;#8217;s developed by 2 people. It reached 100k downloads within 1 week.&lt;br/&gt;&lt;br/&gt;More info here &lt;a href="http://www.badlandgame.com/2013/04/16/100-000-players/" target="_blank"&gt;&lt;a href="http://www.badlandgame.com/2013/04/16/100-000-players/"&gt;http://www.badlandgame.com/2013/04/16/100-000-players/&lt;/a&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;</description><link>http://haxpor.org/post/50569145397</link><guid>http://haxpor.org/post/50569145397</guid><pubDate>Thu, 16 May 2013 17:41:00 +0700</pubDate><category>ios</category><category>badland</category><category>case study</category><category>candy meleon</category></item><item><title>"Ultimately, we refuse to accept this as a part of our industry. We believe that showing our games to..."</title><description>“Ultimately, we refuse to accept this as a part of our industry. We believe that showing our games to our fans early is a better way of developing Vlambeer games than keeping secrets and just dropping the final result on people when it’s done.”&lt;br/&gt;&lt;br/&gt; - &lt;em&gt;Rami Ismail’s respond statement &lt;a href="http://toucharcade.com/2013/04/22/vlambeer-cloned-again/"&gt;http://toucharcade.com/2013/04/22/vlambeer-cloned-again/&lt;/a&gt;&lt;/em&gt;</description><link>http://haxpor.org/post/48627999803</link><guid>http://haxpor.org/post/48627999803</guid><pubDate>Tue, 23 Apr 2013 02:05:00 +0700</pubDate><category>rami</category><category>vlambeer</category><category>rami ismail</category></item><item><title>Ridiculous Cloning: Vlambeer's LUFTRAUSERS Cloned On The App Store - Indie Statik</title><description>&lt;a href="http://indiestatik.com/2013/04/22/ridiculous-cloning-vlambeers-luftrausers-cloned-on-the-app-store/"&gt;Ridiculous Cloning: Vlambeer's LUFTRAUSERS Cloned On The App Store - Indie Statik&lt;/a&gt;: &lt;blockquote class="link_og_blockquote"&gt;What is it about Vlambeer that so readily attracts companies to make clones of their games before the development pair can release their own projects themselves?&lt;/blockquote&gt;
&lt;p&gt;Vlambeer faced this kind of crap news for a 2nd time. This is the moment when I really realize how dangerous of clones.&lt;/p&gt;
&lt;p&gt;Please do me a favor, you should not support clone games. Go to genuine creators and hug them instead. I wonder of normal usual people (users) that normally won’t track or know this kind of news or which entity is the true original developer of the game. It damages the whole game industry.&lt;/p&gt;</description><link>http://haxpor.org/post/48624352191</link><guid>http://haxpor.org/post/48624352191</guid><pubDate>Tue, 23 Apr 2013 01:04:32 +0700</pubDate><category>clone</category></item><item><title>Inspiring videos</title><description>&lt;p class="centerimg"&gt;&lt;img alt="image" src="http://media.tumblr.com/9672d97ba2c879072797068f379d8d09/tumblr_inline_mlnprqwgex1qz4rgp.png"/&gt;&lt;/p&gt;
&lt;p&gt;It all begins with this tweet shout out from &lt;a href="https://twitter.com/draknek" target="_blank"&gt;@draknek&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then I got a couple of inspiring videos from his friends as follows. I finished watching them.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="320" src="http://www.youtube.com/embed/qX9FSZJu448" width="480"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="320" src="http://www.youtube.com/embed/MiQE_Lb801U" width="480"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;Hope you enjoy and get inspiring energy.&lt;/p&gt;</description><link>http://haxpor.org/post/48608707606</link><guid>http://haxpor.org/post/48608707606</guid><pubDate>Mon, 22 Apr 2013 19:44:00 +0700</pubDate><category>inspired</category><category>inspiration</category><category>draknek</category></item><item><title>A feeling of perfection ?</title><description>&lt;p&gt;I&amp;#8217;m planing to do an announcement, hmm, not so much about the big announcement like that, but more like a shout out that we&amp;#8217;re up to something we&amp;#8217;re doing right now.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m not like a guy who can do a secret project for years then make a word up on that in one time. I love community. But for some reasons, I&amp;#8217;m feeling skeptical and kind like &amp;#8220;not-quite-ready-yet&amp;#8221; to do so.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve seen several indie dev guys out there in which they did a simple and plain clean shouting out without much worry about expectations or else. &lt;a href="http://forums.tigsource.com/index.php?topic=31526.0" target="_blank"&gt;One&lt;/a&gt; of many &lt;a href="http://forums.tigsource.com/index.php?board=27.0" target="_blank"&gt;examples&lt;/a&gt; I have witnessed and is a prime example for my point of view. I like how he expressed the design mental through the game and writing content. He kept track of &lt;a href="http://wiki.xxiivv.com/Hiversaires" target="_blank"&gt;devlog&lt;/a&gt; in day-to-day basis. It&amp;#8217;s fun to just grasp and skim through all of the items. Although after the release he just found a couple of major issues &amp;#8220;crashes&amp;#8221; and &amp;#8220;leaks&amp;#8221; in which he can patch it immediately. That latter problem seems to be really minor and don&amp;#8217;t affect much of the game&amp;#8217;s reputation as the whole things started from community based and keep pushing thing forwards within 2 months~. The community loves him no matter what.&lt;/p&gt;
&lt;p&gt;Also I got a sense that most of the projects posted in Tigsource&amp;#8217;s devlogs section didn&amp;#8217;t seem to be up to any serious expectations. Showing works-in-progress and get feedback along the way may be an objective.&lt;/p&gt;
&lt;p&gt;In indie scene, the mechanism is really different from what profitable entities may have to be. It&amp;#8217;s emotional, and keeping each day better and worth for others to see the progress.&lt;/p&gt;
&lt;p&gt;The point I want to make is the question that asks &amp;#8220;Do we really need to wait for a perfect moment for shouting out?&amp;#8221; even if I&amp;#8217;m really ready and have everything set up, will that be going to be a better position to interact with community?&lt;/p&gt;
&lt;p&gt;#randomthought&lt;/p&gt;</description><link>http://haxpor.org/post/48514681535</link><guid>http://haxpor.org/post/48514681535</guid><pubDate>Sun, 21 Apr 2013 17:40:15 +0700</pubDate><category>random thought</category><category>perfection</category><category>announcement</category><category>devlog</category></item><item><title>A quick note to self.
Files that should be ignored when...</title><description>&lt;img src="http://24.media.tumblr.com/807f416ac711bd9f9a9348e50d9b9188/tumblr_ml9e00w7C31qkbepmo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;A quick note to self.&lt;/p&gt;
&lt;p&gt;Files that should be &lt;strong&gt;ignored&lt;/strong&gt; when collaborating via source control (ie. github) for project working with XCode are listed below.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;1.) *.xcworkspacedata&lt;br/&gt;2.) &lt;/span&gt;&lt;span&gt;*.xcuserstate&lt;br/&gt;3.) &lt;/span&gt;&lt;span&gt;*.xcscheme&lt;br/&gt;4.) &lt;/span&gt;&lt;span&gt;*.plist&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Those files are meant for user-state and don’t affect a project when time of compiling / building comes.&lt;/p&gt;</description><link>http://haxpor.org/post/47974149152</link><guid>http://haxpor.org/post/47974149152</guid><pubDate>Mon, 15 Apr 2013 01:57:00 +0700</pubDate><category>xcode</category><category>git</category></item><item><title>The proper way of using open source library to increase chances of contributing</title><description>&lt;p&gt;I would think it&amp;#8217;s not only in the game field that if you use open source project with your own project, you will end up modify a lot of the library&amp;#8217;s source code, or at least to say enough to make you feel I should share my code for the benefit to others.&lt;/p&gt;
&lt;p&gt;Back in time, I usually do a quick job just to quickly download and do a fast integration with my own project. The purpose is to make things run up quickly. That reduces the chance of contributing back properly and cleanly to the original source, open source community.&lt;/p&gt;
&lt;p&gt;Of course, you could share your snippet of code else where, but it&amp;#8217;s not the cleanest solution. Todays git source control will always be used even you do a private project. Who code stuff without using source control?&lt;/p&gt;
&lt;p&gt;So,&lt;/p&gt;
&lt;p&gt;If you found a certain library to work with ie. &lt;a href="https://github.com/blackberry/GamePlay" target="_blank"&gt;Gameplay&lt;/a&gt; as hosted on GitHub, don&amp;#8217;t rush out to click on ZIP button as it will left no traces for git repository on your download package. The proper way should be clicking on &lt;strong&gt;Fork&lt;/strong&gt; button then use your provided forked git-link to clone it to your system via a favorite git client ie. &lt;a href="http://www.atlassian.com/software/sourcetree/overview" target="_blank"&gt;Sourcetree&lt;/a&gt;. This way in the future if you ever need to modify the original source code of a library itself, then you can properly make a &lt;strong&gt;pull request&lt;/strong&gt; (as far as I know both GitHub and Bitbucket has this feature). That&amp;#8217;s the way of pushing back to community.&lt;/p&gt;
&lt;p&gt;The above approach will be the most effective if the target project is open source and has some what large enough community, and importantly authors structured its folder in a way that allows easy in integrating with custom project and there&amp;#8217;s no need to move away library files from where they belong.&lt;/p&gt;</description><link>http://haxpor.org/post/47963016978</link><guid>http://haxpor.org/post/47963016978</guid><pubDate>Sun, 14 Apr 2013 23:42:04 +0700</pubDate><category>open source</category><category>contributing</category><category>git</category><category>github</category><category>bitbucket</category><category>fork</category><category>pull request</category></item><item><title>Finally found true indie spirit
I have spent my indie life for 1...</title><description>&lt;img src="http://25.media.tumblr.com/b9d4fe3f2901244d85098bc5df24ecf8/tumblr_ml0etqtyCw1qkbepmo1_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://25.media.tumblr.com/9a2eb17c9b6ffac19c0ab36bc2779c79/tumblr_ml0etqtyCw1qkbepmo2_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://25.media.tumblr.com/0121d5b86899d5b317ad994172a85ca7/tumblr_ml0etqtyCw1qkbepmo3_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://24.media.tumblr.com/32dd34e5b264ac759154656965cfc7a1/tumblr_ml0etqtyCw1qkbepmo4_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;h1&gt;Finally found true indie spirit&lt;/h1&gt;
&lt;p&gt;I have spent my indie life for 1 year and 10 months by now. Most of the time I were depressed, struggling for not having enough paycheck to live month by month, and more importantly too strict of mind to form an organization in which indie is not!&lt;/p&gt;
&lt;p&gt;I would say this piece of time is so right, and opens for me to find the true spirit. Thirty Flights of Loving is a game that I’ve put it on wish-list for so long. Unfortunately, I only watched the trailer, see some gameplay videos with the hope that I will get all of the actual experience the game would give me and understand why this game is so highly rated. That’s the bad idea. Only true experience ones may get is coming from the actual play time, a tiny single piece of time ones would give it away with the game they purchased from steam or whatever. Anyway it’s blending of reasons why I didn’t get it until recently. Not enough money, price-tag is too high for very short experience. That’s not important …&lt;/p&gt;
&lt;p&gt;Who knows that only 15 minutes gameplay can give me a life lesson I fought un-properly during my past indie game scene! I just found it out after I finished this game.&lt;/p&gt;
&lt;p&gt;I made 2 attempts of complete but almost careful play-through + 1 attempt in developer commentary mode. My first attempt can’t fulfill my complete understanding why the game has such a plot / story, or twisting one, or even sudden scene transition like that. I know that it has something there in conflict between the 3 characters which have really deep connection between them. I then gave it a try again with a 2nd attempt. Now I could understand more of why this and that with a plus that I enjoy more dancing scene in a roof-top meal.&lt;/p&gt;
&lt;p&gt;To be honest, those 2 attempts cannot be counted as a complete game experience for my case. After I fired up a developer commentary mode then “aha!” moment and deep appreciation comes to play. My level of understanding of why indie games and the way it should be start to make a leap, and maxed out in the time when I bounced off from the car crash scene and jumped right into the museum action. That’s great feeling as far as I can tell.&lt;/p&gt;
&lt;p&gt;I always want to be an indie game developer but with the fact that the “word” indie has buzzed me that much and failed me to be in the right path of indie-ian. I aim to form an indie game studio making a brand and organizational structure. It should not be that way. Along the way I were doing that, the organizational sense is starting to creep in and eat away the joy moment in doing what you love the most. There’s a policy or rule to tear the individual sense apart in order to let the blunt whole of entity moves forward. It should be inverse. What you do should not have any expectations ahead (to get awards, enough paycheck, good or bad game ideas?, or a success hit game), but only a flow of expression of creators transitioning into the work. Left alone audience decide whether your game is suitable for them to experience. There’re always someone who will love your game, not to mention if that’s just a tiny portion. That’s the way art is created. Game is art!&lt;/p&gt;
&lt;p&gt;Please don’t get me wrong saying that I define all those stuff above. That’s just my immediately explanation of feeling and deep satisfying after digested the core message which the game can offer.&lt;/p&gt;
&lt;p&gt;I guess I will have a happier life continuing making indie games in a true spirit and healthier way then ever, also with a benefit of staying in this kind of weird industry for unforeseeable future.&lt;/p&gt;
&lt;p&gt;Who knows I may create a true art in 73th attempt?&lt;/p&gt;
&lt;p&gt;Keep the faith, and keep crawling.&lt;/p&gt;</description><link>http://haxpor.org/post/47570535713</link><guid>http://haxpor.org/post/47570535713</guid><pubDate>Wed, 10 Apr 2013 05:37:02 +0700</pubDate><category>indie</category><category>spirit</category><category>thirty flights of loving</category></item><item><title>I created a C++ wrapper for TestFlight SDK here.
The purpose is...</title><description>&lt;img src="http://24.media.tumblr.com/8212f65aa974fef962163a4c5b2e08dd/tumblr_mkzmk322CT1qkbepmo1_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://25.media.tumblr.com/20f7a20f068f6f83caf865fab810a3be/tumblr_mkzmk322CT1qkbepmo2_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;img src="http://24.media.tumblr.com/11259d7087140d95abbc2c2e0dbf1ec3/tumblr_mkzmk322CT1qkbepmo3_500.png"/&gt;&lt;br/&gt; &lt;br/&gt;&lt;p&gt;I created a C++ wrapper for &lt;a href="https://testflightapp.com/sdk/" target="_blank"&gt;TestFlight SDK&lt;/a&gt; &lt;a href="https://gist.github.com/haxpor/5344901" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The purpose is that I want a clear cut on using either Objective-C or C++ or both of them in time of development.&lt;/p&gt;
&lt;p&gt;The wrapper code is tested with cocos2d-x v.2.0.3 against TestFlight SDK v.1.2.4 on iOS platform. Images above show the statistics grabbed from TestFlight website as I were testing my app in real time.&lt;/p&gt;
&lt;p&gt;You may want to look at the cross post at cocos2d-x forum &lt;a href="http://cocos2d-x.org/boards/6/topics/26371" target="_blank"&gt;here&lt;/a&gt; as well.&lt;/p&gt;</description><link>http://haxpor.org/post/47534901228</link><guid>http://haxpor.org/post/47534901228</guid><pubDate>Tue, 09 Apr 2013 19:26:27 +0700</pubDate><category>testflight</category><category>cocos2d-x</category><category>wrapper</category><category>c++</category><category>sdk</category></item><item><title>Creator name or Logo Branding - A way to go for remembrance</title><description>&lt;p&gt;I had thought back and forth in my head about a good way for remembrance. It&amp;#8217;s either an actual name of the one who made it, or a logo.&lt;/p&gt;
&lt;p&gt;In the sense of making game, if you participate in a project and contribute your effort to it in some ways. Would only name of yourself, or a logo representing yourself be a good choice to use?&lt;/p&gt;
&lt;p&gt;Take an interesting case of indie game developers out there such as &lt;a href="http://distractionware.com/blog/" target="_blank"&gt;Terry Cavanagh&lt;/a&gt;, a single game developers who created Super Hexagon, VVVVVV, and Don&amp;#8217;t Look Back. He didn&amp;#8217;t choose to have a logo to represent himself or anything, just &amp;#8220;A game by Terry Cavanagh&amp;#8221; or &amp;#8220;Terry Cavanagh presents&amp;#8221;. That&amp;#8217;s pretty much a very genuine way to express a sense of ownership to games ones made.&lt;/p&gt;
&lt;p&gt;I would think that another benefit would be ones who use this if contributes to any project would just insert his name into credits section, and don&amp;#8217;t mind much about the logo or stuff to be presented in the splash screen, I could be wrong but it gives no sense and possibly go across the lines to collaborators if just put &amp;#8220;A game by &amp;#8230;..&amp;#8221; among other splash screens.&lt;/p&gt;
&lt;p&gt;But if choosing to use a logo &amp;#8230;&amp;#160;? Surely it can solve the previous problem but whether it will make a difference at all is another story.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;For sure, this way creating a brand would be much easier to recognize and grasp. It&amp;#8217;s way cooler than the previous method. Having your weird logo represents yourself is way too cool. But if there&amp;#8217;s a need to be remembered, a small team would nail it, but for very large, I don&amp;#8217;t think it&amp;#8217;s possible for almost everyone to be recognized. Yes, I know it&amp;#8217;s way more factors to be considered, it&amp;#8217;s trading-off stuff.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I can&amp;#8217;t decide on it now, but as far as I can tell I really like the first option, ha ha, maybe too biased here. If you&amp;#8217;re working as a single whole indie, you may not outsource art skill out and ask for help as you may lack some resource to hire someone. You may not need a logo to represent yourself but your name to be remembered, sense of ownership is high. Maybe I go with first one.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What&amp;#8217;s about you?&lt;/span&gt;&lt;/p&gt;</description><link>http://haxpor.org/post/46937251891</link><guid>http://haxpor.org/post/46937251891</guid><pubDate>Tue, 02 Apr 2013 21:31:20 +0700</pubDate><category>logo</category><category>name</category><category>remember</category><category>recognize</category></item><item><title>Cache complex actions as much as you can - cocos2d-x</title><description>&lt;p&gt;I experienced a problem myself that involves a complex final action to be invoked via &lt;em&gt;runAction() &lt;/em&gt;on certain object. I firstly started with creating everything on demand. That means whenever I want to &lt;em&gt;punch() &lt;/em&gt;then all related actions (ranging from &lt;em&gt;CCRepeat, CCCallFunc, CCSequence, CCSpawn, to etc.) &lt;/em&gt;will be created on the fly in that time. This really causes a problem later on when you bring in more and more number of game objects into the game world.&lt;/p&gt;
&lt;p&gt;My situation is that I have self implemented object pool class to manage recyclable (or reusable) objects such as hit-effect (simply particle effect), or enemy characters. I double and tripple checked everything to ensure object pool works just fine in which case it does. The problem goes when I frequently spawn a new recyclable object out, and immediately run action right away in every short period of time in terms of milliseconds. When that happens, some objects still shows on screen and not get recycling when it&amp;#8217;s time, and is freezing there like action is paused. &lt;strong&gt;My doubt was about the cost of creating those actions&lt;/strong&gt;. Then I tried to cache them as much as I could even if it&amp;#8217;s really complex that for ones such functionality I need to cache actions separately into two instances, and bring them together later. Luckily and correctly, it solved the problem. No leaks of object ever occur.&lt;/p&gt;
&lt;p&gt;So basically, when you get a complex consisting of long listing of sub-actions to be created or chained together to create a final action to perform a certain action. You should try to cache those sub-actions or if possible a final action which will be ready to use later when you need it. This helps reducing a problem like I described above, and swiping away a painful bug that might occurs later.&lt;/p&gt;</description><link>http://haxpor.org/post/46072965955</link><guid>http://haxpor.org/post/46072965955</guid><pubDate>Sat, 23 Mar 2013 21:38:00 +0700</pubDate><category>cocos2d-x</category></item><item><title>How to play sfx with pan option in SimpleAudioEngine of cocos2d-x </title><description>&lt;p&gt;If you didn&amp;#8217;t see any option to set pan value whenever you &lt;strong&gt;playEffect()&lt;/strong&gt;, don&amp;#8217;t worry and don&amp;#8217;t go too far trying to dig it deep. It&amp;#8217;s there lying inside SimpleAudioEngine class but there&amp;#8217;s just no interface for us to use. Solution? We will create ones.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We will modify the following files (as of cocos2d-x 2.0.3).&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;SimpleAudioEngine.h&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;SimpleAudioEngine.mm&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;SimpleAudioEngine_objc.h&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;SimpleAudioEngine_objc.m&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;1. &lt;/span&gt;&lt;span&gt;Add the following line to SimpleAudioEngine_objc.h after the line of playEffect() function.&lt;/span&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;-(ALuint) playEffect:(NSString*) filePath loop:(BOOL) loop pan:(Float32) pan;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;We focus on pan value. In fact, there&amp;#8217;re another twos which are pitch, and gain but they&amp;#8217;re not what we concern here.&lt;/p&gt;
&lt;p&gt;2. Add the following lines to SimpleAudioEngine_objc.m.&lt;/p&gt;
&lt;blockquote&gt;

&lt;p&gt;-(ALuint) playEffect:(NSString*) filePath loop:(BOOL) loop pan:(Float32) pan&lt;br/&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;{&lt;br/&gt;&lt;/span&gt;&lt;span&gt;    return [self playEffect:filePath loop:loop pitch:1.0f pan:pan gain:1.0f];&lt;br/&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;/blockquote&gt;
&lt;p&gt;3. Add the following lines to SimpleAudioEngine.h after first playEffect() function.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;unsigned int playEffect(const char* pszFilePath, float fPan);&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;4. Add the following lines to SimpleAudioEngine.mm.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;static unsigned int static_playEffect(const char* pszFilePath, bool bLoop, float fPan)&lt;br/&gt;&lt;span&gt;{&lt;br/&gt;&lt;/span&gt;&lt;span&gt;    return [[SimpleAudioEngine sharedEngine] playEffect:[NSString stringWithUTF8String: pszFilePath] loop:bLoop pan:fPan];&lt;br/&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;unsigned int SimpleAudioEngine::playEffect(const char* pszFilePath, float fPan)&lt;br/&gt;&lt;span&gt;{&lt;br/&gt;&lt;/span&gt;&lt;span&gt;    return static_playEffect(pszFilePath, false, fPan);&lt;br/&gt;&lt;/span&gt;&lt;span&gt;}&lt;/span&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;static_playEffect() &lt;/em&gt;is underlying function that actually call the function for which we defined it earlier in step 1-2. &lt;em&gt;playEffect() &lt;/em&gt;is the function that we will be working with in normal coding, and in turns it calls &lt;em&gt;static_playEffect().&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;If you need to cover for all parameter, just follow the similar steps above.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The only reason why deep exposed of functionalities weren&amp;#8217;t implemented maybe because of other platforms are not that easy to perform similar task like in iOS.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Thus, this&lt;/span&gt;&lt;span&gt; only applies to iOS platform. For Android version, take a look at&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;a href="http://www.cocos2d-x.org/boards/6/topics/5572?r=10217#message-10217" target="_blank"&gt;this&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;</description><link>http://haxpor.org/post/44649839189</link><guid>http://haxpor.org/post/44649839189</guid><pubDate>Wed, 06 Mar 2013 04:06:12 +0700</pubDate><category>cocos2d-x</category><category>ios</category></item><item><title>Creating a combo system by hooking with animation system in cocos2d-x</title><description>&lt;p&gt;I came across to create a combo system for 2D game, and found out an interesting method to create such a combo system in the game.&lt;/p&gt;
&lt;p&gt;I would call it &lt;em&gt;hooking per-frame animation system&lt;/em&gt;. In fact, its core system was already implemented inside cocos2d-x itself but we just enable it and add our own usable system on top, then combo system is there to work with.&lt;/p&gt;
&lt;p&gt;Please note that the following steps I go through, I&amp;#8217;m using cocos2d-x version 2.0.3.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Firstly&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Go to CCActionInterval.cpp file.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Animation is managed and progressed within this file. Look for update() function, you will see a following line.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;//TODO: [[NSNotificationCenter defaultCenter] &lt;/em&gt;&lt;br/&gt;&lt;em&gt;postNotification::CCAnimationFrameDisplayedNotification &lt;/em&gt;&lt;br/&gt;&lt;em&gt;object:target_ userInfo:dict];&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;span&gt;That hints us a lot. As each frame of animation progresses and is displayed, it will check whether that frame has any data (Dictionary) to notify others. If there&amp;#8217;s any then it will send them across and any listeners who are observer for that notification will receive the call. You got my idea now, we can hook this up and make the combo system accurate in level of &lt;/span&gt;&lt;em&gt;frame &lt;/em&gt;&lt;span&gt;that is displayed on screen.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Not to worry about the language of Objective-C in used there, just change that line as follows.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;CCNotificationCenter&lt;span class="s1"&gt;::&lt;/span&gt;sharedNotificationCenter&lt;span class="s1"&gt;()-&amp;gt;&lt;/span&gt;postNotification&lt;span class="s1"&gt;(&lt;br/&gt;dict-&amp;gt;&lt;/span&gt;valueForKey&lt;span class="s1"&gt;(&lt;/span&gt;CCAnimationFrameDisplayedNotification&lt;span class="s1"&gt;)-&amp;gt;&lt;/span&gt;getCString&lt;span class="s1"&gt;(), dict);&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That means we will pass the dictionary along when that frame is displayed.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ll talk a little later about why not just plain string to send into just like in the old commented code, but a value that grabbed from a same key of dictionary itself as we did above.&lt;/p&gt;
&lt;p&gt;[optional] So any performance hit? I would say &lt;em&gt;yes, &lt;/em&gt;and believe it&amp;#8217;s really small that can be neglected to consider. Anyway I used this for my current in-progress game, and it performs 60 fps for 30 instances of simple AI objects that have animation running all the time along with other intensive calculations.&lt;em&gt;&lt;br/&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- more --&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Combo system design&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I design combo system in per-frame manner.&lt;/p&gt;
&lt;div&gt;Scenario&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Imagine you have such a punching animation with 6 frames of it. You would like users to hit &lt;em&gt;P P P P &lt;/em&gt;button in which the last &lt;em&gt;P &lt;/em&gt;will perform a hard punch attack which will use hard-punch animation with another 10 frames of it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In order to let pressing (or touch in the case of mobile game) consecutive buttons like that to work in combo system. There should be a timeout that allows some certain period or gap for users to press the next button to perform the desire combo attack. If they can&amp;#8217;t hit in time, then combo is cancelled and it&amp;#8217;s just a normal punch attack.&lt;/p&gt;
&lt;p&gt;To drill down a little bit, another way to do this is to forget about hooking per-frame animation and directly use trial-and-error timing which involves a lot of guessing to make the animation + combo works just fine. In fact, it&amp;#8217;s not totally guessing as you can grab total duration of such animation from &lt;em&gt;CCAnimation &lt;/em&gt;class and continue working from there. But if your target gap or duration is not total duration of certain animation then more effort is needed to make it work.&lt;/p&gt;
&lt;p&gt;Why? In per-frame mechanism above, we can specify directly which frame of such animation to start timing, and which frame to stop timing. Thus &lt;strong&gt;that&amp;#8217;s a gap&lt;/strong&gt; for pressing a next button in combo chain.&lt;/p&gt;
&lt;p&gt;So you just can&amp;#8217;t spam the buttons at once to make the entire combo chain works. Each pressing of button will trigger certain animation, and if only if that certain animation is running for restrict gap mentioned above you are allowed to pressed another button in perform combo chain.&lt;/p&gt;
&lt;p&gt;In practice, whenever you create animation, says we target 1st and last frame that you will create to allow the combo gap. A frame will contains dictionary information which can be set via&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;((CCAnimationFrame*)frameArray-&amp;gt;objectAtIndex(index))-&amp;gt;setUserInfo(dict);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;#8230;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The case above I packed up all &lt;em&gt;CCAnimationFrame &lt;/em&gt;inside frame-array (&lt;em&gt;CCArray), &lt;/em&gt;it&amp;#8217;s easier to work with so you need to do type casting. I use c-style casting for brevity and clear example, you can use &lt;em&gt;static_cast&amp;lt;&amp;gt; &lt;/em&gt;or even &lt;em&gt;dynamic_cast&amp;lt;&amp;gt; &lt;/em&gt;for better checking, but the latter would be overkill.&lt;/p&gt;
&lt;p&gt;You have to design on your own &lt;em&gt;dict &lt;/em&gt;data structure. You can layout the format which will be using along with your combo logic or any information related you would need there. I pack commands inside &lt;em&gt;dict &lt;/em&gt;to let it knows what to process, and that&amp;#8217;s accurate per-frame displayed. You will see at the last section that we can even adapt this system further not just combo system if we design the data of &lt;em&gt;dict &lt;/em&gt;in a right and flexible way.&lt;/p&gt;
&lt;p&gt;Just keep in mind that you have to send in data of &lt;em&gt;dict &lt;/em&gt;for key &lt;em&gt;CCAnimationFrameDisplayedNotification &lt;/em&gt;to be your name of notification allowing object to listen to. Things will be cleared out below.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Observer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Your game object will need to be an observer for such notification that sent directly from &lt;em&gt;CCAnimationInterval&lt;/em&gt; class. You may notice something here that we indeed send in not a plain fixed string but value that grabbed from dictionary with the same key to &lt;em&gt;postNotification()&lt;/em&gt; function back in &lt;em&gt;CCAnimationInterval.cpp &lt;/em&gt;file.&lt;/p&gt;
&lt;p&gt;This is important as if we just use the plain fixed string, then every animation that is running from every game object will trigger the notification and every others game objects including itself will receive it without necessary. Imagine you have 100 instances of animated game objects. One object manage its own animation, so it needs to just listen to itself not others. This is really important of why it looks like the way it is.&lt;/p&gt;
&lt;p&gt;The trick is that whenever we create a new game object, and its animation. Make sure you create an unique string for that object in order for it to listen to. Says I have 50 game objects. I may create such string in a way that describe its type and unique number concatenated together ie. &amp;#8220;zombie.1&amp;#8221;, or &amp;#8220;zombie.100&amp;#8221;.&lt;/p&gt;
&lt;p&gt;Please note that I use object-pool to manage my game objects thus if my (says) zombie dies then its unique number which in this case may be 1 or 100 won&amp;#8217;t be changed as it will be recycled. If you don&amp;#8217;t use object-pool yourself then you have to come up with unique number generator that assign to the object every time it went out of the game and is recreated.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adapt further&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Not just about a benefit to use in combo system but I already used it in collision checking in per-frame manner. As already mentioned, commands are sent in, whenever the notification receives it process according to the command it get. You may implement it in a way that there&amp;#8217;re several commands for one frame. So you can start combo timing, and checking for collision in 2nd frame. Then 5th frame to stop combo timing, so there&amp;#8217;s a gap of 3 frames for combo and 2nd frame will check for any collision (says frame of punching) with others.&lt;/p&gt;
&lt;p&gt;That&amp;#8217;s it. Good luck on your imagination making use of this kind of approach.&lt;/p&gt;</description><link>http://haxpor.org/post/43903708119</link><guid>http://haxpor.org/post/43903708119</guid><pubDate>Mon, 25 Feb 2013 00:28:00 +0700</pubDate><category>hooking</category><category>animation</category><category>per-frame</category><category>frame</category><category>combo</category><category>collision</category><category>notification</category><category>observer</category><category>cocos2d-x</category></item><item><title>Mojam is Coming up!</title><description>&lt;p&gt;&lt;img alt="image" src="http://media.tumblr.com/de8e8dda6331eb3178457fa476d98721/tumblr_inline_mihjhtYZ851qz4rgp.png"/&gt;&lt;/p&gt;

&lt;p&gt;Mojam, a livestream event for game jam ~60 hours event hosted by Mojang is coming up next tomorrow according to the announcement &lt;a href="http://mojang.com/2013/02/mojam-is-happening-tomorrow-help-inspire-us/" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;This time &amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The special for this time is that &lt;a href="http://vlambeer.com/" target="_blank"&gt;Vlambeer&lt;/a&gt;, and &lt;a href="http://grapefrukt.com/" target="_blank"&gt;Grapefrukt&lt;/a&gt; will be joining the jam event as well included with old fellows like &lt;a href="http://www.oxeyegames.com/" target="_blank"&gt;Oxeye game Studio&lt;/a&gt; and &lt;a href="http://www.wolfire.com/" target="_blank"&gt;Wolfire Games&lt;/a&gt;.&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I watched previous Mojam event and donated to get access to all games including sourcecode (but I didn&amp;#8217;t have a look at the latter yet). It&amp;#8217;s great experience to have a chance to watch indie developers to work together and put effort out to a complete games at the end.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Previous event &amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I did a drum cover for one of soundtracks of &lt;a href="http://www.youtube.com/watch?v=dlYq7iCKHI4" target="_blank"&gt;Catacomb Snatch&lt;/a&gt;. Ha ha, you know that I enjoy the event as much as how I enjoy playing drum in free time.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="no" height="166" scrolling="no" src="https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Ftracks%2F39504226" width="100%"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;A chance to be able to watch live coding from Notch is rewarding enough. Not to mention that I start to know about Unity because of this jam event as one of jammer (from Wolfire) create &lt;em&gt;The Broadside Express &lt;/em&gt;from scratch without knowledge about Unity from the ground up.&lt;/p&gt;
&lt;p&gt;&lt;iframe frameborder="0" height="315" src="http://www.youtube.com/embed/FH-XFT5ZjTw" width="560"&gt;&lt;/iframe&gt;&lt;/p&gt;

&lt;p&gt;That&amp;#8217;s it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;FYI&lt;/strong&gt;: This jam allows people to vote for the theme being used and it will random from the most popular.&lt;/p&gt;</description><link>http://haxpor.org/post/43508488935</link><guid>http://haxpor.org/post/43508488935</guid><pubDate>Wed, 20 Feb 2013 04:10:00 +0700</pubDate><category>mojang</category><category>mojam</category><category>vlambeer</category><category>grapefrukt</category><category>oxeye</category><category>wolfire</category><category>jam</category><category>livestream</category></item><item><title>Trello Pro-tips</title><description>&lt;p class="centerimg"&gt;&lt;img alt="image" src="http://media.tumblr.com/2fb31abbc7572cce00ca14aa960e899d/tumblr_inline_mibmc5ugwD1qz4rgp.png"/&gt;&lt;/p&gt;
&lt;p&gt;If you use Trello more than often, or use it in every single day.&lt;br/&gt;Here the pro-tips that I use it often myself.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: % symbol means &amp;#8220;while mouse is over a particular card&amp;#8221;&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;span&gt;Shift +&amp;#160;? = To show up list of short key&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;C (%) = Archive the card&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;D (%) = Set due date to the card&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;L (%) + 1 | 2 | 3 | 4 | 5 | 6= Set label of the card, the number is to select which label&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;N (%) = Insert a new card after the selected card&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;Space (%) = Assign self / De-assign self from the card&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;V (%) = Vote the card&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;&lt;span&gt;It&amp;#8217;s not that many to be used, but those ones will save time.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Happy making stuff!&lt;/span&gt;&lt;/p&gt;</description><link>http://haxpor.org/post/43231668517</link><guid>http://haxpor.org/post/43231668517</guid><pubDate>Sat, 16 Feb 2013 23:11:00 +0700</pubDate><category>tips</category><category>pro</category><category>trello</category></item><item><title>Avoiding problem on TestFlight &amp; Got accepted in DLC Quest Beta Testing</title><description>&lt;p&gt;Two quick update about avoiding time consuming problem on TestFlight, and my indie game involvement.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Avoiding problem on TestFlight&lt;br/&gt;&lt;br/&gt;&lt;strong&gt;&lt;img alt="image" src="http://media.tumblr.com/1743ee55a307266e4d890dae2847a6b2/tumblr_inline_mi5rs8Yrrg1qz4rgp.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/strong&gt;Important note is that TestFlight&amp;#8217;s invitation is 1-time acceptance, it&amp;#8217;s not unique. So when you sent an invitation to someone&amp;#8217;s email but the device that one&amp;#8217;s using is not his/her own for instance of time, it will cause a problem later on whenever you need to send another invitation to the real owner of that device.&lt;br/&gt;&lt;br/&gt;My situation is exactly like I described above.&lt;br/&gt;&lt;br/&gt;When this happens, those two users will show up in TestFlight website as exactly the same person. If you remove one of them, both of them will be removed. So I stuck for not be able to add a new tester in order to notify any new build directly to his/her e-mail. That&amp;#8217;s the reason for it. If you don&amp;#8217;t solve this problem, you have to add another hop effort that is whenever new build is ready. The first person that accepted the invitation will be notified and has to let another one know in any possible way. This is because they&amp;#8217;re actually the same person!&lt;br/&gt;&lt;br/&gt;I contacted TestFlight support and tried with the way they suggest but I went in cleanest way possible.&lt;br/&gt;What I did is remove them both (just one, then two will be gone) from the team. Then re-invite via direct e-mail to the first person in situation that accepted the invitation. But another one (real owner of the device) is invited via public recruiting link (here &lt;a href="https://testflightapp.com/dashboard/team/recruitment/edit" target="_blank"&gt;&lt;a href="https://testflightapp.com/dashboard/team/recruitment/edit"&gt;https://testflightapp.com/dashboard/team/recruitment/edit&lt;/a&gt;&lt;/a&gt;). To avoid the conflict of user.&lt;br/&gt;&lt;br/&gt;In fact, TestFlight suggests me to avoid additional step and not even remove any users but directly invite another one via public link right away. But I guess I can live with that, and remove them both first is cleanest way you can get without causing any problem from previous builds or information we got earlier.&lt;br/&gt;&lt;br/&gt;So stay safe, and make sure the owner of device is actually the person who accepts the invitation.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;strong&gt;Got accepted in DLC Quest Beta Testing&lt;br/&gt;&lt;br/&gt;&lt;img alt="image" src="http://media.tumblr.com/badc33b387320bacd7c2b912110479ff/tumblr_inline_mi5t07rOkZ1qz4rgp.jpg"/&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;br/&gt;&lt;br/&gt;&lt;/strong&gt;Recently &lt;a href="https://twitter.com/benkane" target="_blank"&gt;Ben Kane&lt;/a&gt;, the sole owner of &lt;a href="http://goingloudstudios.com/" target="_blank"&gt;Going Loud Studio&lt;/a&gt; &lt;a href="http://goingloudstudios.com/2013/02/08/dlc-quest-call-for-beta-testers-again/" target="_blank"&gt;announced&lt;/a&gt; about needing of beta tester for his game &lt;a href="http://steamcommunity.com/sharedfiles/filedetails/?id=92911011" target="_blank"&gt;DLC Quest&lt;/a&gt;. Yep, I already got and played his game way back long ago which I got the game via bundle called &amp;#8220;ST.PATRICK&amp;#8217;S DAY BUNDLE&amp;#8221;. I don&amp;#8217;t finish the game yet, but it&amp;#8217;s a good way to help out the indie community and got involving.&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;That&amp;#8217;s the update from me so far. Happy making your games indies!&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;</description><link>http://haxpor.org/post/42997984201</link><guid>http://haxpor.org/post/42997984201</guid><pubDate>Wed, 13 Feb 2013 19:48:00 +0700</pubDate><category>testflight</category><category>problem</category><category>dlc quest</category><category>beta</category><category>tester</category></item><item><title>Friction on XCode's weird bug and distribution</title><description>&lt;p class="centerimg"&gt;&lt;img alt="image" src="http://media.tumblr.com/3d0c5cbb40ee6a83e2549e28421e515a/tumblr_inline_mi2b08tyFa1qz4rgp.png"/&gt;&lt;/p&gt;

&lt;p&gt;I came across two frictions today during development on iOS using XCode.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;&lt;strong&gt;XCode suddenly stops and cannot build anymore builds on real device&lt;/strong&gt;&lt;br/&gt;&lt;span&gt;This is somewhat annoying and sometimes may act silently.&lt;/span&gt;&lt;br/&gt;&lt;br/&gt;&lt;span&gt;The problem I faced is that I added some code and hit run in order to build over to my device. It compiled successful and returned no errors. It lured me to think that what I added is basically working! That&amp;#8217;s what happens before this weird bugs occurs. The solution for my system is to remove out the &amp;#8220;Required device capabilities&amp;#8221; from info.plist. See the solution at &lt;/span&gt;&lt;a href="http://stackoverflow.com/a/12237294/571227" target="_blank"&gt;&lt;a href="http://stackoverflow.com/a/12237294/571227"&gt;http://stackoverflow.com/a/12237294/571227&lt;/a&gt;&lt;/a&gt;.&lt;br/&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;span&gt;Codesign error: Certificate identity appearing twice&lt;br/&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;This problem prevents you from archiving and distribute your app to your peers for testing. See the problem and solution at &lt;a href="http://stackoverflow.com/a/6163599/571227" target="_blank"&gt;&lt;a href="http://stackoverflow.com/a/6163599/571227"&gt;http://stackoverflow.com/a/6163599/571227&lt;/a&gt;&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;/p&gt;</description><link>http://haxpor.org/post/42848819573</link><guid>http://haxpor.org/post/42848819573</guid><pubDate>Mon, 11 Feb 2013 23:48:00 +0700</pubDate><category>weird</category><category>error</category><category>xcode</category><category>distribution</category></item><item><title>Fuck it, I'll do this alone.</title><description>&lt;p&gt;&lt;img src="http://media.tumblr.com/56ff6ac307f51de344038ccb421570e2/tumblr_inline_mhzz7est601qz4rgp.png"/&gt;source: Image from &lt;a href="http://bit.ly/WOI7SE" target="_blank"&gt;&lt;a href="http://bit.ly/WOI7SE"&gt;http://bit.ly/WOI7SE&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;BEWARE: The following writeup is so much in my random thought, I just need to flow it out, and yeah &amp;#8230;. FUCK IT, I&amp;#8217;ll do this alone.&lt;/p&gt;
&lt;p&gt;I think as of now my indie life is so fucked up with several reasons.&lt;/p&gt;
&lt;p&gt;I decided to go indie more than a year ago right after I graduated from university. I spent nearly more than half of that doing public activities spending time in coaching other younger people, and junior students from my faculty other than spending time with my own purpose. I don&amp;#8217;t say that it&amp;#8217;s not a good thing. It&amp;#8217;s a great thing ever I have a chance to be part of it.&lt;/p&gt;
&lt;p&gt;Indie studio never happen for my former team as we all split up, and now another chance comes in which I found another team mate to work with. We can complement each other skills. Although there&amp;#8217;s some frictions during the team working environment but I can take and eat with that from the start. Right now we will have a big project coming up next that will consume my own life time for another year, or possible more than that, but with benefit that I will get advance money to develop the project.&lt;/p&gt;
&lt;p&gt;To be honest, I never be in that particular level being interested to take part in creative job that need to do up on the order from above. My ego kills me for several reasons. Combining with any working relationship that I seek for only perfectionists to work with me. It&amp;#8217;s 0% or 100% no in-between or else, no mediocrity. That&amp;#8217;s my way of working, my natural instinct to survive with happiness along the way. But that always didn&amp;#8217;t work out when working with others.&lt;/p&gt;
&lt;p&gt;Turning back to my budget side of thing to keep the food on the table. I didn&amp;#8217;t get any income for several months now. That&amp;#8217;s because I didn&amp;#8217;t really focus on one particular thing, but rather just think about team development, how to fix the current friction in team, and whether it&amp;#8217;s worth enough to continue working with the team for the next bigger project.&lt;/p&gt;
&lt;p&gt;I spent darn too much time thinking inside my head about what should be going on next. You spent the wrong partial of time in nonsense stuff. Apparently, after multiples of failures I experienced way back counting from a year ago, I think I&amp;#8217;m best when working &lt;strong&gt;alone, &lt;/strong&gt;or when working with &lt;strong&gt;senior&lt;/strong&gt; persons only, or when working with &lt;strong&gt;no-string attached&lt;/strong&gt; environment.&lt;/p&gt;
&lt;p&gt;Hah, I think back and remember how many times I cancelled out the works in the middle of thin air, it&amp;#8217;s not that many but notable. That&amp;#8217;s lesser and lesser credits I would get. Anyway the current financial situation of my family doesn&amp;#8217;t work really well, my sister works hard to get money for the family to pay the house-bill (mainly). I can&amp;#8217;t risk her working with unhappy now. So it&amp;#8217;s best for me to work alone and don&amp;#8217;t waste any time thinking about non-sense stuff side of things.&lt;/p&gt;
&lt;p&gt;I have a current project I&amp;#8217;m working with situation above applies. I will cancel all other things out, no more volunteers, or organizing events with co-worker, no more parallel works for others. Now it&amp;#8217;s just for me and implicitly for my family.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s time to Fuck it, and I&amp;#8217;ll do this alone.&lt;/p&gt;</description><link>http://haxpor.org/post/42742315112</link><guid>http://haxpor.org/post/42742315112</guid><pubDate>Sun, 10 Feb 2013 16:54:44 +0700</pubDate><category>fuck</category><category>fucked up</category></item><item><title>Got this from LinkedIn.
I shall mark this as my pleasure...</title><description>&lt;img src="http://24.media.tumblr.com/984f61965865ca3d3bcbbc350a7ff2ff/tumblr_mhwsnqNBgs1qkbepmo1_500.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Got this from LinkedIn.&lt;/p&gt;
&lt;p&gt;I shall mark this as my pleasure history.&lt;/p&gt;</description><link>http://haxpor.org/post/42585879054</link><guid>http://haxpor.org/post/42585879054</guid><pubDate>Fri, 08 Feb 2013 23:04:38 +0700</pubDate><category>linkedin</category></item><item><title>Say Yes or No to Unity?</title><description>&lt;p&gt;Recently I came across to a tough decision making whether or not to use Unity for future game projects.&lt;/p&gt;
&lt;p&gt;To be honest, for a couple of years, I always discounted it as something which is not right to me, something cheaty. It&amp;#8217;s just &amp;#8230; not right to use it.&lt;/p&gt;
&lt;p&gt;Anyway, the previous statement holds for the case that I never really try to understand its architecture, or even use its product since then.&lt;/p&gt;
&lt;p&gt;But after GGJ 2013 that passed around a week ago, it triggers me to re-think and re-consider again.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;GGJ 2013&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s Global Game Jam 2013 which I participated with my team mate and one another of my friend. We use cocos2d-based framework, cocos2d-html5. What went wrong is that our game is not done, and I&amp;#8217;ve seen several other titles made by surrounding groups in the hall seems to be really complete in sense and they can show-off something off the ground.&lt;/p&gt;
&lt;p&gt;In fact, it involves with our decision to continue making too-much-work game and not-suitable-for-jam game, it&amp;#8217;s partial but I can hold on with it. The important part is the quality and pace they acquire through the development process. It&amp;#8217;s really fast and quality is there. Within one and a half day, they got really a complete game in which for the less of the timespan they can put into polishing and music stuff!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Got home &amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I went home after the event but still not too seriously thinking about it til my team mate shows interest in it and let me know he would like to try. So I grab the latest version and try by myself.&lt;/p&gt;
&lt;p&gt;In fact, I installed version 3.5 long time ago, but never really use it in the way developers learn something.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unity&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I take couple hours trying to understand the interface and make simple stuff following tutorials from Alex (InfiniteAmmo).&lt;/p&gt;
&lt;p&gt;-Left screen-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/22e29dbf0a2a512bb2086642b9306208/tumblr_inline_mhpf6znoHf1qz4rgp.png"/&gt;&lt;/p&gt;
&lt;p&gt;-Right screen-&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/9a88b4008e3c4d99dc79747a75e59767/tumblr_inline_mhpf80iGkK1qz4rgp.png"/&gt;&lt;/p&gt;

&lt;p&gt;I would say it&amp;#8217;s amazing experience to have really fast iteration with complete basic features like physics, and particularly in 3D space.&lt;/p&gt;
&lt;p&gt;I learned from his games like &lt;a href="http://infiniteammo.ca/schpooter/" target="_blank"&gt;schpooter&lt;/a&gt; and &lt;a href="http://infiniteammo.ca/blog/tutorial-saturday-c4ke/" target="_blank"&gt;C4ke&lt;/a&gt; and it&amp;#8217;s really fun to found out that game development is not like hardcore C/C++ or low level stuff anymore but more like script and adjustment. It can happen with Unity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Research go on &amp;#8230;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Of course, I don&amp;#8217;t really get into this kind of trouble if there&amp;#8217;s no important stuff ahead coming up. The next project my team will be involved in is cross-platform iOS / Android platform, multiplayer and it&amp;#8217;s 2D. The project&amp;#8217;s so darn important that I need to have quality and not that much to re-invent the wheel or start from scratch. So I really need something solid to put into production right away.&lt;/p&gt;
&lt;p&gt;More importantly, I need to do what cocos2d or normal 2D game do with sprite/animation/skeleton animation, I need to find out whether Unity is suit for that before jump right in.&lt;/p&gt;
&lt;p&gt;To be more elaborated, games like OMG Pirates! and ZombieVille are prime examples of what Unity can achieved in 2D sense. Interesting discussion like &lt;a href="http://forum.unity3d.com/threads/34994-OMG-Pirates!" target="_blank"&gt;OMG Pirates! on Unity Forums&lt;/a&gt; and &lt;a href="http://www.thecareergamer.com/braaaains-zombieville-usa-tech-review/" target="_blank"&gt;ZombieVille Interview&lt;/a&gt; can give some notable insights on how &lt;a href="http://www.mikamobile.com/" target="_blank"&gt;MikaMobile&lt;/a&gt; made it.&lt;/p&gt;
&lt;p&gt;I believe I can cross out all the point I chot down on the paper to find out whether Unity is right to continue developing 2D game with flexible workflow. Anyway it&amp;#8217;s interesting enough that MikaMobile team&amp;#8217;s background is 9 years in Maya. So their knowledge and animation with the tool will enhance the process and may completely cut out the need of 2D plug-ins to work with Unity (as they stated in the discussion on Unity forums about OMG Pirates! that they never use any plug-ins relating to 2D!). So animation part comes directly from Maya tool. I&amp;#8217;m shock to know that a bit, and pretty scare of what might turn into for the team with no deep knowledge about 3D artist-side tools. Can such team achieve that? We need to find out.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Last word &amp;#8230;. hmm &amp;#8230; not yet&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Current instance of time, I can&amp;#8217;t really say I will switch completely from cocos2d-x + cocos2d-html5 to Unity. There&amp;#8217;re other factors to be considered as well. To name a few&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;License Fee&lt;/li&gt;
&lt;li&gt;Too much rely on single tool&lt;/li&gt;
&lt;li&gt;Programming / Design Skill may drop as you use more with less coding&lt;/li&gt;
&lt;li&gt;Future cost from plug-in and stuff&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;Of course, you trade that off with something else, importantly, time.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m still using cocos2d-x and it&amp;#8217;s my favorite but up coming days researching will go on and after I finish porting 1 or 2 games &lt;span&gt;I did previously &lt;/span&gt;&lt;span&gt;with Unity. I will have more information.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;**What&amp;#8217;s about you? Do you think you will use Unity and/or switch to it completely?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tell me what you think, or jam this thread by commenting below. I want to know your thoughts.&lt;/strong&gt;&lt;/p&gt;</description><link>http://haxpor.org/post/42281459755</link><guid>http://haxpor.org/post/42281459755</guid><pubDate>Tue, 05 Feb 2013 00:00:29 +0700</pubDate><category>unity</category><category>ggj</category><category>cocos2d-x</category><category>cocos2d-html5</category></item></channel></rss>
