<?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>onegameamonth &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<atom:link href="https://jessewarden.com/tag/onegameamonth/feed" rel="self" type="application/rss+xml" />
	<link>https://jessewarden.com</link>
	<description>Software &#124; Fitness &#124; Gaming</description>
	<lastBuildDate>Mon, 08 Jul 2013 14:43:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://jessewarden.com/wp-content/uploads/2016/08/cropped-Lambda2-32x32.png</url>
	<title>onegameamonth &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<link>https://jessewarden.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>One Game A Month &#8211; April Postmortem: Health Katas</title>
		<link>https://jessewarden.com/2013/05/one-game-a-month-april-postmortem-health-katas.html</link>
					<comments>https://jessewarden.com/2013/05/one-game-a-month-april-postmortem-health-katas.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Sun, 05 May 2013 14:19:21 +0000</pubDate>
				<category><![CDATA[CoronaSDK]]></category>
		<category><![CDATA[1gam]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[corona]]></category>
		<category><![CDATA[coronasdk]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[onegameamonth]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[robotlegs]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=3539</guid>

					<description><![CDATA[I&#8217;ve entered into the One Game a Month party. It&#8217;s like Ludum Dare, a challenge to make, and most importantly FINISH, a game in a set amount of time based on a theme. What makes #1GAM unique is you have an entire month and it spans an entire year. They have a thriving Twitter and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve entered into the <a href="http://www.onegameamonth.com/">One Game a Month</a> party. It&#8217;s like <a href="http://www.ludumdare.com/compo/">Ludum Dare</a>, a challenge to make, and most importantly FINISH, a game in a set amount of time based on a theme. What makes #1GAM unique is you have an entire month and it spans an entire year. They have a thriving <a href="https://twitter.com/search?q=%231gam%20%23onegameamonth&amp;src=hash">Twitter</a> and <a href="https://plus.google.com/communities/117275686212402755276">Google+ group</a>.</p>
<p>I&#8217;ve entered strictly for learning purposes and to see if I can actually finish something. Game development is surprisingly very different from application development, and it&#8217;s nice to feel really stupid again.</p>
<p><span id="more-3539"></span><strong>Synopsis</strong></p>
<p>I fell back to my roots and attempted to build a mobile application that used &#8220;gamification&#8221;. Basically, you make the application fun through adding gaming elements to it. I&#8217;m good at building applications so figured if I fell back to my roots and adding just a little bit of game dev to it, I&#8217;d be able to create a lot more in the same period.</p>
<p>I changed my lifestyle last year in March of 2012 through adding fitness and changing my diet. A year later, I feel better and look better. I wondered how I could help others reach the same goals. While people tell you it&#8217;s 50% diet, 50% exercise, I felt for me 80% of the challenge was diet. I know nothing about cooking beyond what I&#8217;ve taught myself. My mom and grand mom taught me some stuff, but for whatever reason as I kid I just never really cared to better myself at it.</p>
<p>So, I made a list of all the smaller things I did that had longer term impact. I realize Type A Personality techniques of making huge changes with hardcore willpower are not the most effective way at changing people&#8217;s behavior. I&#8217;ve also read the statistics on how many actually keep weight off after they&#8217;ve lost it, and the time people devote to foodÂ preparationÂ vs.Â exercise. For Americans, it&#8217;s pretty dire. I took that list I wrote, and selected the ones that were the low hanging fruit, and hopefully easy attainable without requiring a Doctor&#8217;s note to attempt.</p>
<p>If you look at most nutrition advice, at least online or in books, it&#8217;s usually huge lifestyle changes. That&#8217;s asking a lot of people, and the #&#8217;s prove it doesn&#8217;t lead to longterm positive lifestyle changes. What DOES work is small habits that lead to longer term change. If you change a bunch of them, they collectively, slowly, lead to a more healthier, and more importantly, a self-empowered, individual. I started to make the application I wish I originally had: simple tips I could try everyday that didn&#8217;t totally shock my way of life, and that I could actually accomplish, and feel good about.</p>
<p><strong>Goals</strong></p>
<p>Give people simple healthy diet changes to try. From making people healthier, feel better, or empowering them to learn on their own. Giving someone 1 thing to try every day, even multiple times if they wished, to practice at being moreÂ healthy without having to focus 100% of their life on doing so. My hope was it&#8217;d be the least invasive thing in their life, thus hopefully maximizing the success rate. Kata&#8217;s are simpleÂ exercisesÂ you do in martial arts to practice and get better. I wanted something like that in a diet context vs. &#8220;OMG CHANGE YOUR LIFE!&#8221;</p>
<p>Additionally, they&#8217;d have both motivation in the form of videos and citations that show the positives of even minor diet changes as well as a world wideÂ achievementsÂ bored to see how many others had already accomplished each kata (or simpleÂ exerciseÂ  to also help with motivation.</p>
<p><strong>Actual Results</strong></p>
<p>I didn&#8217;t finish.</p>
<p>That said, all of the original katas are in the app, and you can try them, and have a record of your accomplishments. So it&#8217;s technically an early alpha, heh.</p>
<p><img fetchpriority="high" decoding="async" style="padding-left: 8px;" alt="" src="http://jessewarden.com/archives/blogentryimages/onegameamonth/apr/example-1.jpg" width="320" height="480" align="right" /></p>
<p>I ran out of time for motivations, and theÂ achievementsÂ board was slowed because it was the first time I used <a href="http://www.coronalabs.com/products/corona-cloud/">Corona&#8217;s Cloud</a> API.</p>
<p>The main problem with the data entered currently is that 3 important things are missing. I wanted to ensure all health recommendations I had were based on science that had at least 1 scientific study/citation. A lot of these studies are extremely wordy. Most people just want to know either WHY something isÂ healthy or how it&#8217;s POTENTIALLY healthy. The later is horrible in terms of how we humans operate, but it&#8217;s also a good tool to get people to do what you want them to do. Anyway, collecting +Â summarizingÂ all of that information is a ton of work. I&#8217;m constantly reading nutrition books and articles and taking notes, just not finished yet.</p>
<p>The other issue is turning those successes intoÂ congratulatoryÂ notes. When you complete a kata, you get a success message. For example, although I assumed users didn&#8217;t do drugs nor smoke, even just stopping smoking for example has a swath of awesome things that <a href="http://whyquit.com/whyquit/a_benefits_time_table.html">happen to your body</a>. It&#8217;s important you not only reward people forÂ accomplishingÂ the simpleÂ exercise, this builds self-confidence in them, but also you teach them WHY. Once someone knows the why and has self-confidence, change is afoot. Writing those is tough&#8230; even tweet size ones.</p>
<p>Finally, the questions are sometimes backwards; I need to add a boolean to the VO&#8217;s to say if yes leads to completing or starting the kata&#8230; or just make all the questions have &#8220;yes&#8221; lead to starting the kata. If you use the app now, just say yes to everything.</p>
<p><strong>What Went Wrong</strong></p>
<p>The main problems were:</p>
<ul>
<li><span style="line-height: 16px;">not enough free time</span></li>
<li>still learning nutritional science</li>
<li>Corona&#8217;s lack of basic GUI components and redraw invalidation</li>
<li>not enough documentation on Corona Cloud + having to learn a new API</li>
<li>Responsive Design</li>
<li>explaining to people how no longer eating their favorite unhealthy things is fun&#8230; in a mobileÂ application&#8230; yeah.</li>
</ul>
<p><strong>Free Time</strong></p>
<p>As usual, work both in client projects as well as outside took a lot of time. My main current client has a huge feature release coming up that we&#8217;ve all be tag teaming. This requires a lot of consistent communication as well as on-site visits which means I&#8217;m travelling a lot.Â I also travelled back to Georgia to sell my house. I&#8217;mÂ uncompromisingÂ in my workout schedule and picking up my kids from school which is 2 hours minimum a day. Also, it took me about 5 days to recover from March #1GAM burnout. Finally, <a href="http://webappsolution.com">my company</a> released the <a href="http://webappsolutioninc.github.io/flow-mvc">FlowMVC</a> framework based on the <a href="http://deftjs.org/">DeftJS</a> framework that all works atop <a href="http://www.sencha.com/">Sencha</a>, and that took a lot of time to ensure we got the alpha out as well.</p>
<p><strong>Nutrition Knowledge</strong></p>
<p>I&#8217;m notÂ classicallyÂ trained in nutrition, so am learning the same way I learned how to program: read online articles, read books, and asking questions of those who appear to be experts. Suffice to say it&#8217;s just as hard as programming to get to the real truth; it&#8217;s all masked in subjectivity and utter untruths. Making definitive statements is VERY hard to back up with science. America in particular has a ton of science around how to cure sickness, but very little on how to keep us not-sick via good nutrition. Frustrating. You have tread carefully when utilizing Qualitative science from qualified individuals. Bottom line there are a few facts, and a few of studies that reach conclusions but aren&#8217;t facts.</p>
<p>Sadly, a lot online is useless. At least with programming you can use sites like <a href="http://stackoverflow.com/">Stackoverflow.com</a>Â and communities that reference certain blogs/articles to find the good stuff. For nutrition, there are a few sites like that, but they don&#8217;t always cite their sources, nor differentiate between &#8220;the facts&#8221; and &#8220;the guesses based on the following studies which may/may not have contradictory studies&#8221;.</p>
<p>I wanted the app to have solid science, and getting solid science as a n00b is hard.</p>
<p><strong>Corona&#8217;s App State</strong></p>
<p>While Corona has made great strides on the widget front, their gaming focus, both as a company and in the runtime features are clearly biased. Even the <a href="https://github.com/coronalabs/framework-cloud">Corona cloud library</a> they posted on Github uses &#8220;name spacing&#8221;, aÂ pseudoÂ copy of how Python handles classes and packages. This, instead of using the proper class/module packages they introduced about a year ago. I reckon they did this to cater to game devs who freak out if you do 2 dots to get a &#8220;module&#8221; whereas for application developers, it&#8217;s just expected if you&#8217;re from a traditional OOP background and you get the time to actually think about class structure that often doesn&#8217;t change as much as it does in gaming.</p>
<p>This seems like a digression but it&#8217;s not; the simple fact they&#8217;re game focused makes even simple things application developers expect to be non-existent. For example, I DARE you to center a multiline block of text on the screen with arbitrary widths&#8230; and then put a different block of text in it. Works no problem in Flash/Flex and HTML(!). Corona doesn&#8217;tÂ recalculate/remeasure, and your registration point is off, and using simple x and width values to center the text suddenly fail. If you just create another text field, no problem, but even game developers know you object pool where possible.</p>
<p>Layout in this case is made worse as they abstract away device specific text fields. While it&#8217;s nice to use native device (iOS/Android) text fields that do render well, they don&#8217;t always render like you think on the simulator, namely the native options with backgrounds/borders disabled. Haveing to compile to view on the device is just awful. It defeats the whole purpose of Lua being an instantaneous code reload solution. If I wanted to recompile andÂ redeployÂ to the device, I&#8217;d use native XCode and Objective C.</p>
<p>These basic needs make building higher level abstractions that are actually efficient harder. As components scale in size and complexity,Â especiallyÂ data driven ones, you need some form ofÂ invalidationÂ routine. Invalidation is a huge topic <a href="http://jessewarden.com/2007/01/invalidation-strategies-for-flash-player.html">I&#8217;ve</a> <a href="http://jessewarden.com/2008/03/how-to-fix-the-flash-cs3-components.html">written</a> <a href="http://jessewarden.com/2005/06/dataselector-data-interaction-core-of-the-v2-framework-for-your-views.html">about</a> <a href="http://jessewarden.com/2009/03/creating-dynamic-lists-in-flex-flash.html">before</a>, but suffice to say it prevents common race conditions, is an efficient redrawÂ mechanismÂ for runtimes like Corona that share both code execution and redraw on the same thread (see <a href="http://updates.developmentarc.com/flex_4_lifecycle.pdf">elastic</a> <a href="http://www.quilix.com/node/61">race</a> <a href="http://books.google.com/books?id=Gn1fnqBIUEgC&amp;pg=PA363&amp;lpg=PA363&amp;dq=ted+patrick+elastic+racetrack&amp;source=bl&amp;ots=bfhJonDoW0&amp;sig=nyN5BaCrh1sEi7sJbpn3tF5v9Uk&amp;hl=en&amp;sa=X&amp;ei=iWWGUcL3OIeC8ATv44HYAQ&amp;ved=0CG0Q6AEwBg#v=onepage&amp;q=ted%20patrick%20elastic%20racetrack&amp;f=false">track</a> <a href="http://techie-jackie-blogs.blogspot.com/2012/11/elastic-racetrack-for-flash-9-and-avm2.html">articles</a>Â <a href="http://www.craftymind.com/2008/04/18/updated-elastic-racetrack-for-flash-9-and-avm2/">discussing</a>Â <a href="http://www.senocular.com/flash/tutorials/asyncoperations/">this</a>), and solve order of operation errors for developers using components that require multiple properties to be set to work.</p>
<p>I&#8217;m in the process of building one on top ofÂ theirÂ enterFrame, but it&#8217;s like a flash back to 2001 in Flash MX; i.e. it&#8217;s a lot of work for 1 person to complete. A company like Corona should have the resources to handle this. Either they don&#8217;t have the people working for them that know these problems, or they&#8217;re focused on other things. I think it&#8217;s the latter; game specific features like their 2.5 graphics and cloud initiatives whilst open sourcing the components are signs. That&#8217;s fine, but oy vey&#8230; pain&#8230;</p>
<p>Another annoying thing is some widgets/components don&#8217;t work with groups. I get why, but this makes layout a royal journey into frustration and workarounds, and just generally nasty looking code.</p>
<p>I will say the widgets they DO have are great overall and <a href="https://github.com/coronalabs/framework-widgets">open sourcing</a> them was a dope move. The API consistency, while I get challenging, needs to be improved in both the libraries they distribute and in their internal SDK.</p>
<p><strong>Responsive Design (lack thereof)</strong></p>
<p>Because of the above crunch, I didn&#8217;t get a very responsive design. This lead to some devices not scaling properly&#8230; which sucked. For games, you can just scale up or down; Corona does this automatically. For applications, however, you basically do a &#8220;<a href="http://en.wikipedia.org/wiki/Responsive_web_design">responsive </a><a href="http://mashable.com/2012/12/11/responsive-web-design/">design</a>&#8220;. While most web sites prefer to use <a href="http://alistapart.com/article/responsive-web-design">media queries</a> and <a href="http://www.html5rocks.com/en/mobile/responsivedesign/">funky</a> <a href="http://alistapart.com/article/fluidgrids">fontÂ measurements</a>Â to accomplish this, using things like Sencha, Flex, or even Corona, and you can simply have each component size itself and it&#8217;s children. As the application grows, this works out well because they&#8217;ll fill whatever space you tell them too.</p>
<p>The kicker here is &#8220;if the design supports it&#8221;. For example a toolbar can scale infinitely horizontally, but tends to stay 60 pixels high. On most smartphones, this is fine, but on tablets,Â especiallyÂ the high rez ones, it gets a bit too small to work. At that point you fall back to another nav. I didn&#8217;t even get that far&#8230; as soon as I went from a Nexus One to a Droid X, my app couldn&#8217;t even handle the extra 24 pixels.</p>
<p>I put a 640&#215;960 mask on stage and called it a day.</p>
<p><strong>Corona Cloud</strong></p>
<p><a href="http://coronalabs.com/blog/2013/03/20/corona-cloud-1-0-is-here/">Corona Cloud</a> is awesome. The documentation is ok. The example code is awesome, although completely ignores Corona&#8217;s package structure and they&#8217;ve foregone using metatable vs. closure based classes for the same reason a lot of JavaScript libraries do the &#8220;large object on global window&#8221; to avoid the closure vs. Object.prototype debates. Anyway, nothing major here, just hard to learn a new API in such a short time frame with all the other challenges going on, thus compounding it.</p>
<p><strong>Making Health Fun</strong></p>
<p>For me, I was sick and tired of being sick and tired. Once I make my mind up, there&#8217;s no changing my mind. I have discipline with certain things I set my mind to. I get that to make broader changes to the world, you need to be moreÂ pragmaticÂ about what you expect out of the general populace. I took the approach of &#8220;simple with positive messaging as instant reward and global awareness through achievements of other users&#8221;. The &#8220;simple&#8221; was simple, the CoronaÂ cloudÂ achievements isn&#8217;t something I need but totally get how others need thatÂ motivation.</p>
<p>The &#8220;positive messaging&#8221; though is rough. When you look at the back of a &#8220;Matt&#8217;s Organic Orange Juice&#8221; container for example, they&#8217;ll go off about Vitamin D, and how it&#8217;s greatest thing for you evarrr. It clearly was written by a talented marketing copy writer and put through a few revisions. Trying to do that, for every single kata, was rough. As you can see, I can write a lot, but saying a lot with few words is HARD. Fun, but hard.</p>
<p><strong>What Went Right</strong></p>
<p><img decoding="async" style="padding-right: 8px;" alt="" src="http://jessewarden.com/archives/blogentryimages/onegameamonth/apr/example-2.jpg" width="320" height="480" align="left" />Finding a fitting design and icons I needed on <a href="http://graphicriver.net/">GraphicRiver</a> was <a href="http://graphicriver.net/item/zweir-complete-mobile-interface/2617224">uber</a> <a href="http://graphicriver.net/item/70-food-and-drink-icons/3543222">easy</a>. Getting the design to work in Corona, my component issues non-withstanding, also easy.</p>
<p>Setting up the MVC structure, also easy. I hadn&#8217;t messed with my port of <a href="https://github.com/JesterXL/Robotlegs-for-Corona">Robotlegs for Corona</a> for almost 2 years(!) since those kind of frameworks are more used for applications and less so games, so took the opportunity to bring it up to speed.</p>
<p>Coming up with simple things that are healthy for people to try was actually pretty easy as well. I just charted my own path andÂ rememberedÂ all the hard things I did, and modified the order based onÂ difficulty and organized into levels of lifestyle impact. The app was responsive on the device, and I only had minor masking problems with the Corona widgets. Once I got some good low level components, building the GUI&#8217;s was pretty quick and easy.</p>
<p><strong>Key Takeaways</strong></p>
<p>I think like my Februrary entry, I&#8217;d like to come back to this, finish it, and polish it. Even in application development, you can get into &#8220;the grind&#8221;, the last, brutal 10%. It&#8217;s easier to power through if you believe in the final product.</p>
<p>It&#8217;s also clear I shouldn&#8217;t do anything more GUI heavy without a Corona component framework ready before I start. Oh goody, another side project! *face palm*</p>
<p>I need to organize my notes about nutrition more. Most of it is for me related to fitness vs. justÂ pragmaticÂ well being. That and I forget what research/study/book told me what, and whether it was a &#8220;study&#8221; vs. a &#8220;paper&#8221; vs. a &#8220;theory&#8221; vs. a &#8220;scientific fact&#8221;&#8230; which greatly affects the other research/beliefs it&#8217;s related to. Like programming.</p>
<p>Finally, I need more time with Corona Cloud. It&#8217;s really cool, just haven&#8217;t had enough time to play to learn it more.</p>
<p><strong>Conclusions</strong></p>
<p>May: Go back to the 2D side scroller. From myÂ FebruaryÂ entry, it&#8217;s clear I liked making Box2D levels, and need more practice in making them, even if I don&#8217;t finish.</p>
<p>Once again, I&#8217;m burnt, and need a few days to recover. This time, though, I knew it was coming and planned for it: notes for May dev all ready, concepts documented from awhile ago when I&#8217;m ready to nail down an idea, and tons of alcohol and XBox games while I recover.</p>
<p>The <a href="https://github.com/JesterXL/Health-Katas">source code</a> is up on Github and you can <a href="https://play.google.com/store/apps/details?id=com.jessewarden.healthkatas">install on your Android device here</a>Â (although I&#8217;d wait until the version says &#8220;beta&#8221; hah).</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2013/05/one-game-a-month-april-postmortem-health-katas.html/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>One Game A Month &#8211; March Postmortem: Manifest Crystal</title>
		<link>https://jessewarden.com/2013/04/one-game-a-month-march-postmortem-manifest-crystal.html</link>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Mon, 01 Apr 2013 13:40:14 +0000</pubDate>
				<category><![CDATA[Lua]]></category>
		<category><![CDATA[1gam]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[coronasdk]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[onegameamonth]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=3520</guid>

					<description><![CDATA[I&#8217;ve entered into the One Game a Month party. It&#8217;s like Ludum Dare, a challenge to make, and most importantly FINISH, a game in a set amount of time based on a theme. What makes #1GAM unique is you have an entire month and it spans an entire year. They have a thriving Twitter and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve entered into the <a href="http://www.onegameamonth.com/">One Game a Month</a> party. It&#8217;s like <a href="http://www.ludumdare.com/compo/">Ludum Dare</a>, a challenge to make, and most importantly FINISH, a game in a set amount of time based on a theme. What makes #1GAM unique is you have an entire month and it spans an entire year. They have a thriving <a href="https://twitter.com/search?q=%231gam%20%23onegameamonth&amp;src=hash">Twitter</a> and <a href="https://plus.google.com/communities/117275686212402755276">Google+ group</a>.</p>
<p>I&#8217;ve entered strictly for learning purposes and to see if I can actually finish something. Game development is surprisingly very different from application development, and it&#8217;s nice to feel really stupid again.</p>
<p><span id="more-3520"></span><strong>Synopsis</strong></p>
<p>An role playing game in the play and art style of 1996&#8217;s Final Fantasy 6 released in 1994.</p>
<p>A group of 11 or so individuals come into contact with Manifest Crystals and come to terms with their new powers. Â They learn the true depth of humanity&#8217;s crystal exploitation as well as the ecological impact and purpose of crystals. Â They are tenuous allies with the military/government as they learn the truths, overcome some planetary threats, and work to stop the main antagonist.</p>
<p><strong>Manifest Crystal Goals</strong></p>
<p>I wanted to do an RPG, badly. It&#8217;s the whole reason I wanted to work for <a href="http://na.square-enix.com/">Squaresoft</a> when I grew up. However, I really struggled to get excited about <a href="http://getmoai.com/">Moai</a>. While they have grids and <a href="http://getmoai.com/docs/class_m_o_a_i_path_finder.html">pathfinding</a> built in, I just didn&#8217;t see how the low-level API helped me; what I&#8217;m doing is not that sophisticated in terms of GUI. <a href="http://www.giderosmobile.com/">Gideros</a> had aÂ similarÂ fate when with their simplistic API that was missing some things I wanted from <a href="http://coronalabs.com">Corona</a>. I looked at them specifically because their API is familiar and had bitmap features, like Moai, which Corona doesn&#8217;t have. Some tests I did of Corona last year moving large masked bitmaps were promising, so I figured I&#8217;d give her a go.</p>
<p><strong>Actual Results</strong></p>
<p>March was a no show. Not even a build.</p>
<p>First week I was extremely burnt out of #1GAM. I worked really hard for my February entry, so spent the first week fixing burn out: which means no computer.</p>
<p>Additionally, March is when taxes are due in the USA, so that was a lot of work as well aside from the normal quarterly state and federal filings</p>
<p>Also work was pretty rough in March. Lots of challenges in the code, working multiple projects with multiple developers; huge cognitive load that made me collapse at night with zero energy left for #1GAM. March is also the month when companies start hiring to close their 1st quarter budget or get plans for 2nd quarter, so fielded a lot of sales calls/emails.</p>
<p>Finally, I&#8217;ve been playing with my diet for fitness and health goals. That means 40% protein, 30% fats, 10% carbs + a 300 calorie deficit. This means 3 weeks of adjusting my head to the lack of carbs it needs to produce mad serotonin + being distracted by being hungry. That and I still struggle with getting enough sleep. Grumpy, tired me.</p>
<p>Not the best combination to tackle my hardest game challenge yet. At the end of the day, I prioritize work 1st, working out 2nd, and #1GAM 3rd so he&#8217;s the first to get cut from a busy life.</p>
<p><strong>What Went Wrong</strong></p>
<p>First, this is the 2nd time I attempted this game. The first was about 3 years ago. I picked the best people in the industry I knew at the time that I&#8217;d kill to work with, sent them a mass email, and laid out my plan. It was clear I could inspire, but not get people to actually do what I wanted them to do. Additionally, not sure everyone bought into the idea, and I think everyone wanted some more organization around tasks &amp; milestones. That, and doing a game on the side is asking a lot of people who are A players in this industry and already have a ton going on. You need to provide key incentives. I think.</p>
<p>I tried to learn from that mistake and organize things a bit more,Â especiallyÂ since what I learned fromÂ JanuaryÂ and March is that even spending 10 minutes to write, organize, and prioritize high level tasks has a HUGE impact down the line. I know what I&#8217;m supposed to be doing, if I hit a brick wall or just get tired of a task, I can jump to another one, and if scope becomes a problem it&#8217;s easier to see what I can cut vs. keep. It wasn&#8217;t enough, though; I probably should have spent 2 days vs. 10 minutes. An RPG, even a small one that&#8217;s story driven like mine, requires a ton more upfront work as I&#8217;ve found. Twice, hah!</p>
<p>At this point I&#8217;ve been content producing horrible game art myself. However, I misjudged just how much and the varied types I need for this game. I struggled to reduce the scope because evenÂ minimalistÂ design still has the responsibility to evoking the emotions in the player the story is trying to convey and key junctures. I could probably pull it off, but without a full list knowing what was needed, and where, it was too much work for me and sabotaged my momentum on art days.</p>
<p><strong>What Went Right</strong></p>
<p>I got a lot of great code out of this. Although I only put in maybe 10, 1 hour days, I now have a ton of great converted from ActionScript to Lua and new code I can use to try again later this year.</p>
<p>I also finally managed to get a highly level scalable battle system that I hired aÂ mathematicianÂ to verify.</p>
<p>I really enjoyed playing with various menu systems on mobile devices, and built my 2nd <a href="https://www.google.com/search?q=radial+menu&amp;hl=en&amp;source=lnms&amp;tbm=isch&amp;sa=X&amp;ei=9Y9ZUezxLof69gSil4CQAw&amp;ved=0CAoQ_AUoAQ&amp;biw=1311&amp;bih=726">pie / radial menu</a>, taking many cues from <a href="http://en.wikipedia.org/wiki/Secret_of_Mana">Secret of Mana</a>. I still haven&#8217;t gotten the <a href="http://www.swype.com/">Swype</a> esque way of using it down, but it&#8217;s good enough even with just taps.</p>
<p>My tile engine performed just fine with large textures on crappy Android devices so that was promising.</p>
<p>Finally, I learned yet again a ton whilst coding and designing and writing. Just a lot of little things that all add up to make even this failure totally worth it.</p>
<p><strong>Key Takeaways</strong></p>
<p>I&#8217;ve yet to see myself over plan. It&#8217;d be nice to make that mistake and see results.</p>
<p>I really should put a budget together for an artist to handle most of the game art, and I can handle the GUI well ahead of the start date at least to get discussions going. It was such a huge percentage of my time this month and required some iterations to get right both for story and technical reasons. I fail to see how I can do it all myself. Reducing scope is out of the question, so maybe I can write a different story to test all the engine + code out first for aÂ separateÂ game, much like <a href="http://www.gametrailers.com/full-episodes/ucf5sb/gt-retrospectives-final-fantasy-retrospective--part-iv">Square did back in 1995 (scrub to 11:45)</a> at Siggraph making 3D FF6 characters to test out the FF7 3D engine for the upcoming Playstation 1. It&#8217;d make a good tracer bullet, not sure how fun though, we&#8217;ll see.</p>
<p>Yet again I&#8217;ve proven even failures results in tons of good, reusable code and a lot of things learned.</p>
<p><strong>Conclusions</strong></p>
<p>I think I&#8217;ll postpone my next RPG attempt for June or August for a variety of reasons. First, I need some more practice getting teams to work together; would really rather tackle it NOT by myself even if it&#8217;s just an art + audio sub. Second, it&#8217;ll be summer then, and I&#8217;ll be outside more. While I&#8217;m taking Vitamin D supplements (yes, no dairy + no outside == deficient), by then the pool will be open and I&#8217;ll be taking the girls their daily. That and carbs will be 50% of my diet. Those&#8217;ll up the mood. Third, I&#8217;m burnt out on involved game mechanics, I need to fall back to my roots to get rejuvenated: app development.</p>
<p>April: A health and nutrition game both to educate people and get them eating better. While games like this exist, it&#8217;ll be more app like so that&#8217;s something I excel at, and it&#8217;ll help me to continue to learn about nutrition which I&#8217;ve been learning about on the side for awhile. Making this a game sounds fun.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>One Game A Month &#8211; February Postmortem: Thuldanen Maestro</title>
		<link>https://jessewarden.com/2013/03/one-game-a-month-february-postmortem-thuldanen-maestro.html</link>
					<comments>https://jessewarden.com/2013/03/one-game-a-month-february-postmortem-thuldanen-maestro.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Tue, 05 Mar 2013 15:43:11 +0000</pubDate>
				<category><![CDATA[Gaming]]></category>
		<category><![CDATA[1gam]]></category>
		<category><![CDATA[corona]]></category>
		<category><![CDATA[coronasdk]]></category>
		<category><![CDATA[gamedevelopment]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[onegameamonth]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[thuldanenmaestro]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=3496</guid>

					<description><![CDATA[I&#8217;ve entered into the One Game a Month party. It&#8217;s like Ludum Dare, a challenge to make, and most importantly FINISH, a game in a set amount of time based on a theme. What makes #1GAM unique is you have an entire month and it spans an entire year. They have a thriving Twitter and [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve entered into the <a href="http://www.onegameamonth.com/">One Game a Month</a> party. It&#8217;s like <a href="http://www.ludumdare.com/compo/">Ludum Dare</a>, a challenge to make, and most importantly FINISH, a game in a set amount of time based on a theme. What makes #1GAM unique is you have an entire month and it spans an entire year. They have a thriving <a href="https://twitter.com/search?q=%231gam%20%23onegameamonth&amp;src=hash">Twitter</a> and <a href="https://plus.google.com/communities/117275686212402755276">Google+ group</a>.</p>
<p>I&#8217;ve entered strictly for learning purposes and to see if I can actually finish something. Game development is surprisingly very different from application development, and it&#8217;s nice to feel really stupid again.</p>
<p><span id="more-3496"></span><strong>Synopsis</strong></p>
<p>You&#8217;re a dwarven treasure hunter piloting a gnome sphere powered by music on Thuldanen, 2nd layer of Esheron, the plane of war. The plane has floating cubes with caves inside, and the 2nd layer, Thuldanen, is notorious for having many treasures left over from the ever-happening wars above. They turn to stone after a time, so you have to be quick&#8230; this includes if you go outside of the sphere.</p>
<p>The sphere is powered by colored crystals, and each color has a different element that unlocks different powers. You start with black, gravity, to roll and jump the sphere. Later you get blue, electricity, to power the explosive grappling hooks to traverse over the more rough terrain full of impassable refuse. The gameplay isÂ similarÂ &#8220;<a href="http://disney.go.com/wheresmywater/">Where&#8217;s My Water</a>&#8221; where as you learn a new power&#8217;s abilities, you can start to combine them to defeat each new level&#8217;s complexity.</p>
<p>I was inspired by the game <a href="http://en.wikipedia.org/wiki/Loom_(video_game)">Loom</a> which utilized a simple interface of music notes to basically do everything in the game. Some songs you knew, some you had to memorize, and some you had to simply find on your own. That, and I like dwarfs fighting orcs and goblins on their home turf with an axe or just rolling over the whole lot with a giant metal sphere, for the sake of getting pimp treasure, all the while attempting to do so quickly so you don&#8217;t turn to stone.</p>
<p><iframe src="http://www.youtube.com/embed/t6BeszhLF9c" height="360" width="640" allowfullscreen="" frameborder="0"></iframe></p>
<p><strong>Thuldanen Maestro Goals</strong></p>
<p>My goals with Thuldanen Maestro were to make a smaller scoped game than myÂ JanuaryÂ entry in the hope I could finish it. Additionally, I wanted to follow the month&#8217;s theme of &#8220;music&#8221;.</p>
<p><strong>Actual Results</strong></p>
<p>I didn&#8217;t finish.</p>
<p>&#8230; but it&#8217;s playable and feels&#8230; well, almost like a real game. I had sketched out 7 levels that utilized at least 2 crystals, and started getting pretty challenging and cool. Instead, I Â fell down the rabbit hole that is <a href="http://www.youtube.com/watch?v=Fy0aCDmgnxg">game juicing</a> (polishing). I didn&#8217;t know this ahead of time, but in retrospect it makes sense, it&#8217;s a lot like perfecting code that&#8217;ll never be perfected.</p>
<p>Even so, I was really happy with how it turned out. This isÂ definitelyÂ a game I want to come back to in 2014 first and git-r-done proper. My girls wanted to play this one during development a lot more than the first one.</p>
<p><strong>What Went Wrong</strong></p>
<p>First problem, I lost 18 days. I&#8217;m a adult, run a business, do business trips, have taxes, and 2 kids. And I got a flu I think for 10 days. And <a href="http://www.beachbody.com/product/fitness_programs/best_sellers/p90x.do">I workout</a> at least 1 hour, 5 days a week. All conspired to use the most amount of my time during the shortest month of the year.</p>
<p>Second problem, too much polish. I spent too much time in art land, when I should just be doing programmer art and hiring an artist to the real stuff.</p>
<p>Third, while it&#8217;s a music driven game, I had no time for music itself, and no time for sound effects, nor the dialogue I wanted to create.</p>
<p>Fourth, I didn&#8217;t even get to create proper buttons for moving the dwarf around, nor time to create enemies for him to fight (although the fight code IS in there&#8230;). That game didn&#8217;t really need &#8217;em but it DID need the stone bar; the progress bar that slowly shrinks before you turn to stone if you get out of your sphere. Without, you have no sense of urgency, and less of a desire to roll around in the sphere to explore andÂ experimentÂ with notes.</p>
<p><strong>What Went Right</strong></p>
<p>I&#8217;ve fallen in love with <a href="http://coronalabs.com">Corona SDK</a> because they make <a href="http://box2d.org/">Box2D</a> easy. You can do it in Flash which has some great implementations, but it doesn&#8217;t run on mobile devices at all. However, I&#8217;ve always felt compelled to make level editors because I never know how to properly generate the requiredÂ geometryÂ for Box2D. However, creating non-concave shapes, and MULTIPLE convex shapes toÂ assembleÂ a concave one was&#8230;Â ridiculous.</p>
<p>&#8230;until I found out about <a href="http://www.codeandweb.com/physicseditor">PhysicsEditor</a>. Holy. Drastically changed, sped up, and improved my workflow. That and I have little need for level editors on the smaller games. Now I can create un-even terrain for side-scrolling levels and all kinds of crazy shapes for terrain, both static and interactive.</p>
<p>I also found out PhysicsEditor has a friend called <a href="http://www.codeandweb.com/texturepacker">TexturePacker</a>. Now it&#8217;s uber-easy to create sprite sheets, and edit AND re-edit them vs. using those insanelyÂ unwieldyÂ and hard to write JSFL scripts for Fireworks. The workflow with After Effects was great as well.</p>
<p>I made my package structure only 1 level deep this go around and started the code base from scratch only pulling in classes/libs when I needed them. This made a massive difference in the speed of iteration. That said, it&#8217;s merely a work around for the lack of tooling.</p>
<p>While I suck at art, I really liked the <a href="http://browse.deviantart.com/?qh=&amp;section=&amp;global=1&amp;q=steam+punk">Steam Punk</a> style for the game. Victorian era steam tech works great with gnome engineering and dwarven grit.</p>
<p>Even during the first play iteration tests (you create a build just to see how the game feels to play), it felt like a game I&#8217;d actually want to play. I was CLOSE!</p>
<p><strong>Key Takeaways</strong></p>
<p>Like any n00b who isn&#8217;t a n00b in other things, I realize I still don&#8217;t know what I don&#8217;t know. Things likeÂ PhysicsEditor make curious what other earth shattering tooling or techniques I don&#8217;t know about that could drastically speed up my development process.</p>
<p>I didn&#8217;t use <a href="http://trello.com">Trello</a> as much this go around because I knew what needed to be done since the scope was smaller. I feel like that&#8217;s a good sign. That said, I could feel when I was spending too much time on a task because it was fun vs. actually needed. Not sure how to fix that since I&#8217;m doing this for fun.</p>
<p><strong>Conclusion</strong></p>
<p>March: Smaller scope, focus on more levels, just a little polish. Maybe team up?</p>
<p>The <a href="https://github.com/JesterXL/Thuldanen-Masestro">source code</a> is up on Github and you can <a href="https://play.google.com/store/apps/details?id=com.jessewarden.ThuldanenMaestro#?t=W251bGwsMSwxLDIxMiwiY29tLmplc3Nld2FyZGVuLlRodWxkYW5lbk1hZXN0cm8iXQ..">install on your Android device here</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2013/03/one-game-a-month-february-postmortem-thuldanen-maestro.html/feed</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
			</item>
		<item>
		<title>One Game A Month &#8211; January Postmortem: PlaneShooter</title>
		<link>https://jessewarden.com/2013/03/one-game-a-month-january-postmortem-planeshooter.html</link>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Tue, 05 Mar 2013 15:30:51 +0000</pubDate>
				<category><![CDATA[Google Docs]]></category>
		<category><![CDATA[1gam]]></category>
		<category><![CDATA[corona]]></category>
		<category><![CDATA[coronasdk]]></category>
		<category><![CDATA[gamedevelopment]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[onegameamonth]]></category>
		<category><![CDATA[programming]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=3494</guid>

					<description><![CDATA[Introduction I&#8217;ve entered into the One Game a Month party. It&#8217;s like Ludum Dare, a challenge to make, and most importantly FINISH, a game in a set amount of time based on a theme. What makes #1GAM unique is you have an entire month and it spans an entire year. They have a thriving Twitter [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" style="padding-right: 8px;" alt="" src="http://jessewarden.com/archives/blogentryimages/onegameamonth/jan/planeshooter-blog.jpg" width="320" height="320" align="left" /><strong>Introduction </strong></p>
<p>I&#8217;ve entered into the <a href="http://www.onegameamonth.com/">One Game a Month</a> party. It&#8217;s like <a href="http://www.ludumdare.com/compo/">Ludum Dare</a>, a challenge to make, and most importantly FINISH, a game in a set amount of time based on a theme. What makes #1GAM unique is you have an entire month and it spans an entire year. They have a thriving <a href="https://twitter.com/search?q=%231gam%20%23onegameamonth&amp;src=hash">Twitter</a> and <a href="https://plus.google.com/communities/117275686212402755276">Google+ group</a>.</p>
<p>I&#8217;ve entered strictly for learning purposes and to see if I can actually finish something. Game development is surprisingly very different from application development, and it&#8217;s nice to feel really stupid again.</p>
<p><span id="more-3494"></span><strong>Snynopsis</strong></p>
<p>PlaneShooter, a 1942 clone, was all about the story, improved plane engine &amp; weapon customizations, and taking advantage of improved graphical hardware. You play Kay, the protagonist, who flies a P90 Lightning aircraft modified for cargo. Her Dad, O, a former military pilot, and her battle bandits at their latest town of delivery. They slowly uncover a plot that leads to war with an ending that leads you to the 2nd version of the game.</p>
<p>I really liked how you could personalize even a 1940&#8217;s era plane with tech that was available around then, yet still leave room for the fantasy element to give itÂ otherworldlyÂ powers.</p>
<p><iframe loading="lazy" src="http://www.youtube.com/embed/S-3jVFYTr2o" height="360" width="640" allowfullscreen="" frameborder="0"></iframe></p>
<p><strong>PlaneShooter Goals</strong></p>
<p>My 2 goals with PlaneShooter was simple: finish a game I&#8217;d been working on for 8 months in my spare time, and hopefully learn more about the marketing/business side. I had a bonus goal of finally getting a chance to juice a game, ie polish.</p>
<p>It was basically a 1942 clone with a story behind it with extra side-scrolling levels to help in character and story development. Additionally, you could customize your plane between levels. Finally, the game had on going dialogue either during the game or it would pause at key points.</p>
<p><strong>Actual Results</strong></p>
<p>I didn&#8217;t finish.</p>
<p>I managed to get the game 99% there with 2 levels. I did get an intro screen, game play, reasonable interaction, aÂ semblanceÂ of scoring, reasonable programmer art, and an end screen.</p>
<p>I had created a script and recorded audio content + sound effects for 8 levels. Â I had completed all theÂ mechanicsÂ for drag and drop of upgrading your plane. This includes the speed + weapon power adjustments, etc. TheÂ achievementsÂ were half done, and scoring was 99% there, I just had some persistence challenges I was working through. None of which made it in the game, hah!</p>
<p>The intro screen and end screen were not completed and used the wrong art, but I made them functional to call it a day. All planes had 1 hit points except the bosses which was not planned.</p>
<p><strong>What Went Wrong</strong></p>
<p>I&#8217;m still learning, so this is all conjecture.</p>
<p>I believe my story scope added a ton of work. While I believe it made/will make the game actually fun to play, it required a significant amount of audio work man hours, including 4 days of purely just scripting writing. If I removed the entire story element, removed the plane weapon/engine customizations, and focused strictly completing levels + art, I may have had a game that felt more complete. That wasn&#8217;t the kind of game I wanted to create, though.</p>
<p>All in all, audio took up 60% of my entire work effort. Music creation, dialogue recording &amp; editing, and sound effects. Whoops. I sure had fun, though.</p>
<p>Conclusion: That level of scope was not something I could complete in a month.</p>
<p><strong>What Went Right</strong></p>
<p>Taking a year old code base with 8 months worth of work and yelling at it, &#8220;You&#8217;ll be frozen in a month&#8221; was a great feeling. Many of us programmers have ideas laying around, dozens of them, that are left unfinished. Some don&#8217;t need to beÂ completed, but others&#8230; yes. So over all that part really felt good to attempt to get some closure.</p>
<p>Secondly, I learned a ton. I read a lot about game design process, re-opened a lot of the artistic tools I haven&#8217;t really used professionally in 10 years (Photoshop, After Effects, Reason, Audition, etc). I got to spend significantly more time in them. Some things I remembered, but others I had to learn while under such a short deadline. I also learned new ways to put them into a workflow.</p>
<p>Third, the processes I did use SEEMED to pan out fine:</p>
<ol>
<li><span style="line-height: 16px;">think up idea</span></li>
<li>write it down, sketch it out</li>
<li>write up a list of goals, tasks, and scope</li>
<li>code the things I don&#8217;t know</li>
<li>create art &amp; audio</li>
<li>implement</li>
<li>bug test</li>
</ol>
<p>That general process seemed to work great, and while there were some kinks, it proves that the general way of build games is a lot like software; you do a hybrid approach of <a href="https://www.google.com/search?q=waterfall&amp;aq=f&amp;oq=waterfall&amp;aqs=chrome.0.57j0l2j5j62l2.1048&amp;sourceid=chrome&amp;ie=UTF-8">Waterfall</a>Â and <a href="http://en.wikipedia.org/wiki/Agile_software_development">Agile</a>, the requirements (heavy on the pen &amp; paper since they are cheap to undo/redo), and then you iterate on 4-7. I think I just put a too huge idea into the process.</p>
<p>Fourth, although not complete, I could taste I was getting close on some things, but I also started to get a better sense of how much work polish actually is. Additionally, some polish you don&#8217;t actually know about until you get the idea solid. Sometimes getting the idea solid is an actual prototype WITH assets in it to play with.</p>
<p>Fifth, <a href="http://coronalabs.com">Corona</a> actually worked with tons of assets and code. As a long time Director/Flash/Flex developer who grew up in tincy runtimes using dynamic languages and learned how much &#8220;better&#8221; it was to have a mature one with a strongly typed language&#8230; it was nice to have success with a non-mature runtime with a loosely typed language, <a href="http://www.lua.org/">Lua</a>.</p>
<p>Sixth, it was interesting to see where architecture got in the way, and where it didn&#8217;t, but more importantly WHEN it was too early to implement. People have written volumes about <a href="http://en.wikipedia.org/wiki/You_aren't_gonna_need_it">Y</a><a href="http://www.codinghorror.com/blog/2004/10/kiss-and-yagni.html">A</a><a href="http://www.skorks.com/2009/08/does-yagni-mean-you-ignore-the-obvious/">G</a><a href="http://c2.com/cgi/wiki?YouArentGonnaNeedIt">N</a><a href="http://codebetter.com/jeremymiller/2009/02/17/a-quick-example-of-yagni-simplest-thing-possible-in-action/">I</a>. They&#8217;re usuallyÂ exhaustedÂ Java developers who have found a job doing Ruby in a different company with good medical benefits. YAGNI, like all things software, is an on-going learning process. Building things only when you need them is a given, but it&#8217;s when is it too early, too late, how much do you build, etc&#8230; that&#8217;s the challenge.</p>
<p>Seventh, Chris gave us no deadline for January&#8230; which allowed me to learn my lesson. Sort of.</p>
<p>Eight, taking a 5 year old and having her do dialogue actually worked out well. We did all 8 levels in one sitting which took about 40 minutes with a few re-takes and 2 glasses of water. I was very impressed with Adobe&#8217;s <a href="http://www.adobe.com/products/audition.html">Audition</a> and howÂ quicklyÂ I could batch my hundreds of assets all with my effects applied. It&#8217;s a bit unstable, though, and I have to reinstall when the audio drivers get corrupted.</p>
<p>Nine, I actually liked most of the code. I suffered from a lot of left over ideas in the code which meant navigating it was a little challenging, but it is starting to be clear which parts of architecture I like and help. I lived and died by my game loop, and since Corona doesn&#8217;t have one built in, I was impressed you could build an entire game based on one. That, and <a href="http://box2d.org/">Box2D&#8217;s</a> collisions were solid.</p>
<p>Ten, <a href="https://soundcloud.com/jesterxl/planeshooter-level-1">creating</a> <a href="https://soundcloud.com/jesterxl/planeshooter-level-2-jungle">music</a> went quite well, and the timing was also just luck as well for theÂ crescendo&#8217;sÂ to hit when you reach the mini-bosses.</p>
<p><strong>Key Takeaways</strong></p>
<p>Over all, #6 was directly the result with the lack of tooling. While my package names, ways to build classes in Lua, and other architecture patterns were legit, wading through it and modifying it was way more challenging than it is in otherÂ languagesÂ that have mature tooling and IDE support. This in turn adjusted how much architecture I implemented, where, and when.</p>
<p>For example, yes, long descriptive package names are helpful, prevent you from having to think where things are, and really organize your code. However, in Lua and <a href="http://www.sublimetext.com/">Sublime</a>&#8230; they&#8217;re a pain in the ass to navigate and change. Once you want to refactor something, even with unit tests the entire effort is on you; you get no help from the IDE nor runtime what you forgot unless you&#8217;ve left asserts with descriptive error messages everywhere. That is a HUGE burden on a developer under a tight deadline.</p>
<p>Additionally, I learned that a lot of the <a href="http://www.robotlegs.org/">Robotlegs</a> code IÂ borrowedÂ you don&#8217;t need in Corona SDK because it has a built in event bus that works fine. You don&#8217;t often need to create sequestered event buses, 1 is fine. That and <a href="http://martinfowler.com/articles/injection.html">Dependency Injection</a> isn&#8217;t worth it merely because the language doesn&#8217;t support it; you&#8217;re better off just following a convention, much like jury-rigging <a href="http://puremvc.org">PureMVC</a> to act like Robotolegs by firing created and destroyed events in the View&#8217;s so the framework can add the required Mediators.</p>
<p>I spent 5+ years ensuring I don&#8217;t use global variables in my code, and another 5+ years ensuring you don&#8217;t create too many Singletons once ActionScript went to a class based language. Now, I&#8217;m always using the same 2 globals in my games and they&#8217;re really useful and make the code readable. It&#8217;s still not good practice, but for quick iterations and speed, they&#8217;re legit. Having to pass the same 2 variables into 99% of my classes externally isÂ ridiculous&#8230; it got a lot worse with composition. I no longer judge those who use _G intentionally.</p>
<p>Organizing my tasks into <a href="http://trello.com">Trello</a> quickly pointed out how much work I had left. If I kept tabs on my tasks, I could quickly judge if I was off track (doing the wrong tasks), or if I was going to have too much work. That, however, took a lot of discipline&#8230; when the whole reason I&#8217;m doing this is for fun.</p>
<p><strong>Conclusion</strong></p>
<p>Feburary: Smaller scope, focus on more levels.</p>
<p>The <a href="https://github.com/JesterXL/PlaneShooter">source code</a> is up on Github. You can <a href="https://play.google.com/store/apps/details?id=com.jessewarden.PlaneShooter">install on Android here</a>.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
