<?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>ios &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<atom:link href="https://jessewarden.com/tag/ios/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:42:24 +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>ios &#8211; Software, Fitness, and Gaming &#8211; Jesse Warden</title>
	<link>https://jessewarden.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MVC in Corona via Robotlegs</title>
		<link>https://jessewarden.com/2013/06/mvc-in-corona-via-robotlegs.html</link>
					<comments>https://jessewarden.com/2013/06/mvc-in-corona-via-robotlegs.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Thu, 06 Jun 2013 00:03:19 +0000</pubDate>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[corona]]></category>
		<category><![CDATA[coronasdk]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[modelviewcontroller]]></category>
		<category><![CDATA[modelviewpresenter]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[mvp]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[responsivedesign]]></category>
		<category><![CDATA[robotlegs]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=3560</guid>

					<description><![CDATA[I&#8217;ve recorded a new video series that goes over how to do Model View Controller development for medium to Enterprise mobile applications in Corona SDK via Robotlegs. It&#8217;s a popular framework from the Flash/Flex world that I&#8217;ve spent the last 2 years on and off porting from ActionScript 3 to Lua. It&#8217;s mature enough now [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>I&#8217;ve recorded a new video series that goes over how to do <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">Model View Controller</a> development for medium to Enterprise mobile applications in <a href="http://www.coronalabs.com/products/corona-sdk/">Corona SDK</a> via <a href="http://www.robotlegs.org/">Robotlegs</a>. It&#8217;s a popular framework from the Flash/Flex world that I&#8217;ve spent the last 2 years on and off porting from ActionScript 3 to Lua. It&#8217;s mature enough now that I can start actually recommending its usage, primarily to garner feedback for guiding it&#8217;s future implementation.</p>
<p>Additionally, I recorded a code walkthrough separately below. Code&#8217;s in the <a href="https://github.com/JesterXL/Robotlegs-for-Corona/tree/master/examples/cafe-townsend">Cafe Townsend</a> section in the <a href="https://github.com/JesterXL/Robotlegs-for-Corona">repo</a>.</p>
<p><iframe src="http://www.youtube.com/embed/videoseries?list=PLZEZPz6HkCZkQk_jnPczqab-Vk7rZ7mLf" height="360" width="640" allowfullscreen="" frameborder="0"></iframe></p>
<p><iframe src="http://www.youtube.com/embed/6MpuB654_hM" height="360" width="640" allowfullscreen="" frameborder="0"></iframe></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2013/06/mvc-in-corona-via-robotlegs.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<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 loading="lazy" 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>Papaya Mobile&#8217;s Social Splash: HTML5 &#038; Flash Game Integration</title>
		<link>https://jessewarden.com/2011/12/papaya-mobiles-social-splash-html5-flash-game-integration.html</link>
					<comments>https://jessewarden.com/2011/12/papaya-mobiles-social-splash-html5-flash-game-integration.html#comments</comments>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Fri, 02 Dec 2011 15:58:46 +0000</pubDate>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[air]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[captiveruntime]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[nativeextension]]></category>
		<category><![CDATA[papayamobile]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=3001</guid>

					<description><![CDATA[Hard to get specifics on this, but here&#8217;s what I think I&#8217;ve found out. Papaya Mobile, a social game &#038; distribution network, has released a beta of &#8220;Social Splash&#8221;. What It allows you to package your HTML5 or Flash games into an APK (an Android application). I believe it currently is a browser wrapper, thus [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" src="http://jessewarden.com/archives/blogentryimages/html5flashpapaya.jpg" width="317px" height="124px" style="padding-right: 8px;" align="left"  />Hard to get specifics on this, but here&#8217;s what I think I&#8217;ve found out. <a href="http://papayamobile.com">Papaya Mobile</a>, a social game &#038; distribution network, has released a beta of &#8220;Social Splash&#8221;.</p>
<p><span id="more-3001"></span><b>What</b></p>
<p>It allows you to package your HTML5 or Flash games into an APK (an Android application). I believe it currently is a browser wrapper, thus using whatever browser is supported on that particular phone. For Flash games, this means never targeting any player version about 11.1 since Adobe has abandoned Flash Player for mobile browsers, unless a manufacturer implements a newer Flash Player version on their particular phone. Once approved, Papaya will then publish this APK to their gaming market.</p>
<p><b>Why</b></p>
<p>2 reasons.</p>
<p>First, for all the reach HTML/JS/CSS has, you aren&#8217;t in the mobile markets. This is where people buy apps/games on mobile. This is yet another option for getting into app markets as well as Papaya&#8217;s translation and market maneuvering/placement features&#8230; using HTML5 or Flash games. Even if you were to utilize <a href="http://phonegap.com/">PhoneGap</a>, they&#8217;re just a mobile development &#038; deployment technology, unlike Papaya which is a social network + market distribution + translation services.</p>
<p>Second, as far as I know, there previously was no way to utilize Papaya&#8217;s social features such as Achievements, Scores, Chat, Leaderboards, and Virtual Currency unless you coded native Android Java or Objective C iOS. Even <a href="http://anscamobile.com">Corona SDK</a> only gives you access to the high scores and achievements. Now, you can utilize all of them via HTML5 or Flash games. Granted, you could use the Captive Runtime in Adobe AIR to interface their Java JAR with your Flash as another option as a <a href="http://www.adobe.com/devnet/air/native-extensions-for-air.html">Native Extension</a>, but Papaya has automated it for you.</p>
<p><b>How</b></p>
<p>Build your game, test it, and when ready, upload to their site and it&#8217;ll make an APK and eventually approve to the market for you. What I haven&#8217;t figured out yet is how you actually access these API&#8217;s. There&#8217;s references to use &#8220;askUserInput&#8221; for offloading text input to the SDK vs. using built in Flash TextFields, but I can&#8217;t find this in any of the docs I&#8217;ve searched. I&#8217;ll update this post when I get my hands on some docs/info.</p>
<p>Either way, feels very Android ish (aka simple git-r-done): Upload file on single form == done, which I like. Be nice if this supported AIR eventually, but I reckon they assume you&#8217;ll use native extensions, so&#8230; maybe it&#8217;s already perceived as supported.</p>
<p><a href="http://jessewarden.com/archives/blogentryimages/papayasocialsplash.png"><img decoding="async" src="http://jessewarden.com/archives/blogentryimages/papayasocialsplash.png" width="600" /></a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jessewarden.com/2011/12/papaya-mobiles-social-splash-html5-flash-game-integration.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>RIA Unleashed 2011 Presentation and Code</title>
		<link>https://jessewarden.com/2011/11/ria-unleashed-2011-presentation-and-code.html</link>
		
		<dc:creator><![CDATA[JesterXL]]></dc:creator>
		<pubDate>Thu, 03 Nov 2011 18:58:46 +0000</pubDate>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[corona]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[workshop]]></category>
		<guid isPermaLink="false">http://jessewarden.com/?p=2996</guid>

					<description><![CDATA[For those who need the presentation slide decks and/or code from my Mobile Gaming: Corona SDK and Adobe AIR work shop and/or the Refactoring presentation, they can be found on my Github project for them. Refactoring RIA Unleashed 2011 View more presentations from Jesse Warden Mobile Gaming: Corona SDK &#38; Adobe AIR RIA Unleashed 2011 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>For those who need the presentation slide decks and/or code from my <a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=121&#038;presentation_id=1677">Mobile Gaming: Corona SDK and Adobe AIR</a> work shop and/or the <a href="http://www.fitc.ca/events/presentations/presentation.cfm?event=121&#038;presentation_id=1655">Refactoring presentation</a>, they can be found on <a href="https://github.com/JesterXL/Corona-SDK---Adobe-AIR-Workshop-and-Refactoring-Presentation">my Github project for them</a>.</p>
<p><span id="more-2996"></span></p>
<div style="width:595px" id="__ss_10012662"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/jesterxl/refactoring-ria-unleashed-2011" title="Refactoring RIA Unleashed 2011" target="_blank">Refactoring RIA Unleashed 2011</a></strong> <iframe loading="lazy" src="http://www.slideshare.net/slideshow/embed_code/10012662" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </p>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/jesterxl" target="_blank">Jesse Warden</a> </div>
</p></div>
<div style="width:595px" id="__ss_10012947"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/jesterxl/mobile-gaming-corona-sdk-adobe-air-ria-unleashed-2011" title="Mobile Gaming: Corona SDK &amp; Adobe AIR RIA Unleashed 2011" target="_blank">Mobile Gaming: Corona SDK &amp; Adobe AIR RIA Unleashed 2011</a></strong> <iframe loading="lazy" src="http://www.slideshare.net/slideshow/embed_code/10012947" width="595" height="497" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </p>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/jesterxl" target="_blank">Jesse Warden</a> </div>
</p></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
