iPad 1 Memory Analysis

So I decided this weekend I’d take a really in depth look at the memory usage of my project on the iPad 1, and I found a number of very interesting facts.   The problem is that switching from one section of my project to another required swapping out sprite sheets, and I was hitting a memory limitation only on the iPad1.

 

So the app starts, and the main menu uses about 10 MB of allocations.   It’s very interactive, and has very pretty graphics.  Switching to the store front, however, would cause a crash.  The app would jump from 10 MB allocated to 28 MB allocated, and stabilizes at about 24 MB when the store shows up.  Loading the store took just under two seconds including a programmatic 0.75 second fade animation.  But what I found most interesting is how many memory flags were thrown just after the store appeared.  I assume that this is because of the Main Menu assets staying allocated, and needing to be released.  But the iPad 1 only appears to allocate 128 MB of Physical Memory Used portion shown above.

The first few times I tried running this, I couldn’t get my Physical Memory below 100 MB as a base for the amount used.  After restarting, and triggering some memory flags, the iPad 1 was able to get down to 85 MB including 24 MB from the active application.

What I learned today is that the iPad 1 can and will crash an app that uses more than 28 MB allocated memory.  I had previously assumed that it could handle up to 40 MB allocations (Bad practice, but if needed during a transition, or if you are too lazy, etc.)  So a reminder to devs:  Keep your allocations under 28 MB or so for iPad1.  And a reminder to users:  frequently restart your iPad 1 to get up to 60 MB of memory freed up for applications.

I learned a number of other things as well about the iPad 1 hardware, but these are probably more superflous to this post.   As a last note, be sure that you don’t load more than 3-4 1024×1024 sprite sheets at once for the iPad1.  Technically it’ll support a 2048×2048 atlas, but that just about fills the memory limit.

 

 

SEO experience

I’ve done a number of things in the SEO realm, but nothing to boast about, or be proud of.  I’ve dabbled.   But I’ve always been interested in how difficult it is to prove to Search Engines that a page is legitimate.  Engaging users, paying for sponsered listings, hiring SEO agents, modifying Meta Data… All of it seems like it comes down to luck of the draw, or who pays more.

Case and Point is The Johnson Company (http://www.tjclv.com/).   A friend of mine owns a landscaping company here in town, and they do great designs.  So if you are in the market, be aware of them (even though search engines refuse to become aware of them…).  In fact this company is the one who published Landscape Lighting Calculator, and Fertilizer Calcs.  I’ve tried helping him update Metadata, registering with search engines, and he’s now resorted to hiring an SEO magician to do some hocus pocus.  I wonder if all of this doesn’t boil down to a team of people who determine how much money they can get from a company to be listed properly… .

What is it that SEO magicians do other than register with search engines and alter metadata?

I’m bad at this

I’m really bad at typing up my thoughts.   Not sure if it’s concern of the permanency of words placed on the internet, or the fact that the things I have to say are truly inconsequential.  However, these concerns apply to all bloggers and yet many people still blog.  I’m confident that nobody ever reads any of the blogs, but I’ve decided to put more fodder out there for contextual search robots in determining who Jared Judd is.

I’ve gotten into Unity Development, and find it quite thrilling.  I was initially concerned that the cost of entry would be prohibitive to my enjoyment, but less than a month later I felt it had been worth the money.  I’m not one who believes in traditional educational experiences (College) and purchasing Unity has taught me more about Game Development then I had hoped.  Of course my life has become somewhat saturated by my obsession with Unity, and every video game I play I find myself now trying to decompile, and reconstruct a Unity Project in my mind as I play (despite the game being developed in Unity or not).  I’m a fan.

The third generation iPad comes out today, and I’m excited about acquiring one.  Each time Apple releases a product, I think it stands as a symbol of innovation waiting to happen.  When they announced the iPad, I instantly got the importance of it.  Pundits all stated that it was merely a big iPod, and who would pay for a 10″ device, when a 5″ device can do the same thing, and is more portable.  I knew it would be a huge new industry, and I’m sure the ‘nominal’ revisions in the third generation offer more potential innovation.  More importantly I think any improvement to the platform will increase household saturation, and bolster the supporters of the field in which I work.

So there are my ramblings, and mindless dronings on topics which I find to be relevant.  Hopefully next time I’ll pick a better topic, and develop some content, so that perhaps more will find interest.

Publishing & Developing

I started picking up more consulting work.  I quit my day job, and feel like the opportunity to perform work for additional companies is a good alternative to bringing in revenue.  Additionally, I’ve published two titles under a publisher, to see how things work out.  And I’ve been working on a number of interesting projects.  Overall it’s been a very progressive 2 months.  Very.  My eyes are open.

I hope to get back to my engineering programs though.  I feel like there is a huge potential for people using their phones corporately, and there are a couple of things I have in mind that could enter into an untapped market.  The gold rush is over, but there are still niche sectors which remain untapped.  I’m hoping to find time to finish those projects next.

I think Project Proclus might be the most extensive project that I never bring to market.  It was a huge learning experience for me in Cocos2D, and enabled me to develop skills necessary to move on in developing other things (Study Words & Radium).  Both of those projects used all of the frameworks that were setup for Project Proclus, and came together in about 2-3 weeks.  I think they allow me to continue progressing and taking steps to improve the products that I am developing.

Stepping Stones.  I hope everyone enjoys them!

Project Proclus – Update

I’ve been somewhat distracted by my life situations, and haven’t worked as diligently as I had intended. Between my employment, housing arrangements, Holidays, and my kids and wife being sick, I haven’t had much time. In addition to all of that, I took up a couple of other projects, but now have them mostly completed. One of which is Screen Cleaner for the Mac, and it was submitted to Apple yesterday for review. I have some big plans for it, but I got the basics working, and will work on adding features a bit later.

So I’m finally getting back to this project, and hopefully will be able to get something together within a week to put up here as a example of what this project even is. I know that hardly anybody even reads this, but I hope that after the end of the week, I get a little more web traffic. So to all those reading this in the future, hopefully you’ll appreciate the back story. This will be the week that I get most of the framework completed. The effects, and all of the functions will be setup and called correctly. Then it’s just a matter of fine tuning the development, and making it look stellar. As I already stated, I should be able to get some stuff up this week to demonstrate how awesome this is starting to be.

Project Proclus

I finally picked a ‘code name’ for my project. Project Proclus (Wikipedia Link). It seems like a fun word to say, and doesn’t come near describing what my project actually is. I’m still so far out on my project that I’m not sharing many details about it. Yet.

This week, I did all of the math necessary to come up with cool theme music, and that was just Monday during my lunch break. Then on Tuesday I took my iPad to work, and on my lunch break I drew up the first character. Then On Wednesday I drew the second character. Thursday I turned the first two into Illustrator formatted files, changed my icon, and put my character into the Cocos2D scene. Then it started getting fun. I decided I want to have 2 characters be able to be in the scene at once (for multiplayer), so I added in the 2nd Character, and got a turn based gameplay functional. So now I just need to implement GameKit, and make it simultaneous. Really shaping up to be a nice app, and that’s what it’s about right? Creating Quality.

Still have a very long way to go though, but it’s nice to have Two pieces sketched, Vectorized, Integrated, Implemented, and Play Tested.

New Project – Progress

I’ve had several conversations with people who I consider experts in the field of Art, Music, Games, and Code. Each have provided inspiration and direction to my project. I still don’t have a title, but I’ve got a very unique and extensive idea on what needs to be accomplished.

So I’ve put together 10,000 lines of code in implementing the various frameworks which I’ll need. Cocos2D, CocosDenshion, and Chipmunk. The code is amazingly clean, and very rewarding to work in. Outside of the separately compiled frameworks, I’ve gotten my Loading Screen, Main Menu, Settings Page, and GameLayer put together. I’ve got the Audio working correctly, and some slick transitions between each of the stages of the game. And I’ve got the logic put together for an alpha first level, including the detection to determine if a level has been completed. All in all, I have a workable prototype, and merely need to move forward in establishing the playability, graphics, sounds, and… well… yeah, the actual game.

Last weekend I watched my 6 and 4 year old play my game, and noticed that they wanted to interact in a specific way. I had thought it would be intuitive to play it a certain way, but my lowest common denominator user group taught me I needed to incorporate a different game play method. I plan on using this form of Child Labor in ensuring that my game appeals to as large a demographic as possible. After watching them play my game, I realized how important it will be to establish a good Beta Users Group.

I’m excited tonight, and finally getting to the purpose of this post: I just got a level loading subroutine written up. I had statically coded Level 1, but now have implemented an XML level loader. This will greatly facilitate things moving forward! I’ll probably end up writing a Level Editor into the game code, just so that I can use the device to build more and more levels. In addition to writing the level loader, I also have it so that when the level is complete, it maintains persistent game states. So Manipulating a level outside of playing the level would result in the creation of a new level.

I thought this process would take me years. I’ve started other extensive projects before, but I’ve quit them within a week when I hit an obstacle that I didn’t like. I think the difference with those projects, are that I wasn’t 100% committed, or convinced that they were GREAT ideas. So at the slightest indication that something else would be more effective use of my time, I switched projects. I’ve started just about every single possible type of App. I’ve done Bus Transit maps, Traffic Cameras, RSS Feed Readers, Camera, E-Mail, UIKit Games, Cocos2D Games, Entertainment, Utilities, and Productivity Apps. I’ve tried Free, Paid, Freemium, In-App purchase models… But I think I’ve finally got a project that I’m really excited about. And it’s much higher functioning than any of my other half finished products. This by far could be the best idea that I’ve had when it comes to making an App.

It’s not driven by the intent to make money, but the intent to make an excellent product. I’ve even debated registering a separate name with Apple, just because the quality of this App is so much higher than any others that I’ve done. I’m about 100 hours into development, and probably would have released the product by now, but I feel like I’m just getting started.

And I’m done rambling now. I realize that this process will require a lot of documentation, and I’ve got everything but a narative of the process documented. So this is the start of a new narrative. I’ll eventually need a name, Videos, Press Releases, Graphics, etc. And I think that my early ramblings will be fun to look back on where I thought I was heading after I’ve spent 2,000 hours on this project. Again, I’m done rambling.

Back to Coding.

New Project

My new project is probably the most ambitious yet.

In 2008 I realized I needed a little bit more income. I started a project, and was soon earning 20 dollars a week from my weekend of tinkering. I saw potential, so I reached a little bit deeper, and published Screen Cleaner. I saw great success, and was making 20 dollars a day, after another weekend of tinkering. So I took some time to make Screen Cleaner more diverse, and add some more dogs, etc. and increased my revenue a bit more. I then realized that crap apps were the easiest way to money, but not the most effective, nor the most sustainable. I then returned to my first project, and made it nice enough that I’d use it on a daily basis. The return on these efforts were amazing. I soon was led to the conclusion that quality was much more effective and rewarding than the pursuit of a quick buck. And it seems that customers appreciate, and reciprocate this notion.

After doing several other projects (usually seeking another buck) I realized that I ‘wanted’ to return to making games. I had done one, using UIKit. Yuck. I decided to learn Cocos2D, and published Jeremiah. It’s a very simple game, but it taught me a lot about Cocos2D, as well as In-App Purchases, and iAd, and various revenue models. This project was probably the catalyst which caused me to re-focus my efforts on quality. Jeremiah hasn’t been amazingly successful, and it only took 50 hours to produce. A weeks worth of work, and it’s earning well over what I feel a weeks pay should be.

But I don’t want to spend a week publishing something which will return mediocre revenue. I’m in the pursuit of success.

Android Vs. Apple (Review Process vs. Motivation)

Over the last 2 months I’ve been working on a project that is titled “Jeremiah”. It’s a Jumping game based on Cocos2D, which implements Game Center, iAd, and In-App Purchases. At launch it will feature 3 frogs for free, and currently 6 additional frogs as an in-app purchase, as well as 23 achievements, and 3 different leaderboards on Game Center. I submitted it to apple the first weekend that Game Center was live, and I was excited to find out that Apple was quickly approving Game Center games.

But that is where my excitement ended. I submitted on Saturday at Noon on September 11th, 2010. I was extremely excited when it went straight to ‘In Review’ status almost immediately after I submitted the binary. However, by Sunday night, my hope was low that it would get approved before the following weekend. My previous experience has always been 1-2 weeks for approval despite Steve jobs claiming that 95% of apps were approved in 7 days. My experience is quite the opposite. Of 17 apps, I’ve had 1 approved in under 7 days.

So I went to work through the week, and when I finished my efforts on Thursday night, I submitted an Apple “Application Status Inquiry”. Friday morning I received an e-mail in response. It said:

Hello,

Thank you for your email inquiring about your app status.

At this time your app is pending completion of review. We process apps in the order in which they are submitted and are working hard to process all submissions in a timely manner. Once the review process has been completed for your app, you will receive an email notification of its updated status.

We thank you in advance for your continued patience.

Regards,

From this I took away that I’m in the system. And I can’t request information about what that means. So I started an Android Project in the morning, attempting to write an app before the approval process was completed. I choose an easy project, of porting over a City of North Las Vegas “Report a Problem” style app that I had written for the iPhone. (The Original iPhone App was written in 6 hours.) So I had many of the graphics, and only needed to write the code in Java, and make sure the graphics, and process matched the Android criteria.

It’s now been 8 hours since I received my informative e-mail from apple, and my new App is now available in the Android Store. I have no expectation that Apple will approve my app before the end of the weekend, if they even decide to approve it at all. They could choose to show me some hate in regards to their new Game Center face, which is very public right now. But this type of discrimination isn’t very ethical or fair to the indie movement. My app isn’t as good as Flight Control, Real Racing, or even FarmVille, but that doesn’t mean that I haven’t adhered to every policy that they set forth within their guidelines.

So on to the motivation. I started the Jeremiah Project because my first ‘game’ on the iPhone did fairly well, and was done purely in UIKit. This approach was very n00b, and so I wanted to do a better game, and use a lot of the new options that Apple had introduced. I became familiar with the process of in-App purchases, and got everything working to be able to sell additional features within my app. I also made efforts to implement MobClix because I love what they do for free apps. I used their systems to implement iAd, as well as each of the ad networks that they support, and even did some Custom Ads to promote my In-App Purchases from within the app. I also put in Game Center support.

I wanted to use all of these technologies, because I felt that a lot of people would be looking for iOS games which support the new Game Center. At time of submittal, I was only aware of 3 free Game Center games (all time sinks). I thought that a lot of users would be very interested in seeing the system for free. In addition, I think a lot of people install free apps and give them a try, and have seen numbers of a 1% conversion rate to get people to make an in-app purchase. In addition MobClix has some excellent eCPM values that are only beaten by iAd. So overall I wanted to use all of these portions to be able to make a very fun game, somewhat profitable.

Timing was everything, and I made sure that everything was in order during the Beta phases of Game Center. Tested everything, and made sure it was functioning, and then went live after I tested, on a number of devices after the official launch. Submitting 4 days after the launch of Game Center was huge in trying to maximize the number of eyeballs that could be attracted by the system. But this is where I think Apple began it’s filibuster. Being a huge Apple fanboy, I still respect them in their decision of protecting their image of Game Center. And if they would tell me that (reject the app) I would respect their decision. They’ve certainly rejected my apps before, and honestly the only one app which I take pride in is my Engineering Calculations App.

Android on the other hand has instant visibility within the market. Writing an app was a little more intimidating when I got started because I tried to do it on a PC. I had a nightmare trying to set the system variables, and getting everything installed. But once I realized they had eclipse on Mac OS X it was over. I’ve enjoyed it less than using xCode, but being able to get things instantly out is a huge bonus to using Android. So while my game took much longer to develop (2 months) my simple Android App is already out to market. Has already been downloaded (during time of writing), and has actually generated a few cents in ad-revenue. On the Apple side, my game has returned nothing on my investment, because it is still “in review” with Apple.

So I’m really excited to see how well my game will do on the iOS devices running Game Center, but in hindsight, I wish I had waited for OpenFeint, and saved myself the trouble of managing things myself. I doubt that the Android App that I threw together will make more money than my game in the long run, but as far as instant returns go, Android has a lot quicker returns on my time investments.

City of North Las Vegas App

I’ve been toying around with the idea of publishing an app which would allow the user some interaction with the City of North Las Vegas. So today, I finally wrote it up. It’s pretty neat concept, and nothing original. City of Pittsburgh was the first that I know of to get their own App. New York, Boston, etc. now have their own, and so I thought that the City of North Town should get their own. I talked with the IT department, and discussed what they would think should be in the app. I spoke with people in the City Manager’s Office about using Artwork, and sending data, etc.

Hopefully it’s found to be a useful tool by the citizens / commuters /travelers while in the City of North Las Vegas. I know that I intend on using it a few times to send in the nasty potholes that never get fixed, or a downed traffic sign, etc.

Return top