Wednesday, August 31, 2011

Our first YouTube review!

We just had Word Crank reviewed on YouTube!
This is an excellent review which discusses how addictive the game truly is.

Check it out:  http://www.youtube.com/watch?v=ZyBu7B9qFo8

Monday, August 29, 2011

Re: Most Android Apps Aren’t Being Used — and You Can Blame Google

Interesting article about the state of Android Apps: Most Android Apps Aren’t Being Used — and You Can Blame Google.

Tips: Programming for Android and iOS

As I continue my foray into game development on the iOS and Android platforms I wanted to take a few moments to share some tips that I have found to be very useful in creating an application that can will eventually run on both platforms.

Tips


General



  1. Separate the game logic from the user interface layer.  This will make it easier to port the code over to the accompanying platform.  For example, if you put the main game loop logic in a separate Java class, then you basically can just do a line by line conversion to Objective-C when you port it to iOS.

  2. Place all Strings in one location.  Have a Constants.java where you put all of your static String objects, then when you port to iOS you just use the same thing, except now it is Constants.h.

  3. If you are going to use Texture Atlases in your game, create them using a tool such as Texture Packer and then you will have the exact location of each Sprite stored in a file that can be easily referenced for both versions of the game.


iOS


Use a framework! Working with Cocos2d made the transition relatively smooth as we converted Word Crank from its Android version to iOS.

Android


Get a good book, I read Beginning Android Games, it helped lay a good foundation for working with Android and understanding the various states of a running application and the GLSurfaceView that serves as the main background for all OpenGL drawings.

Any questions? Just leave a comment. Thanks.

Friday, August 26, 2011

Take a chance on Android

Have you created an Angry Birds, Fruit Ninja, or Cut the Rope game?  If so let me start by saying congratulations and may I borrow $20?   

For any other indie developer looking to break into the ever-growing mobile application market understand that competition is fierce, in particular on the iPhone.  With developers spending in some cases an estimated 100,000k + dollars (Angry Birds) it is very difficult to keep up with development companies when your typical indie developer is on a shoestring budget.  So what’s the antsy aggravated atypical developer to do?

Here comes the Android operating system with its open source indie roots.  Android has taken fire by critics for the “lack of quality apps” as well as the difficulty in making money with paid apps.  This leaves some developers scurrying to IOS with its safer
yet overcrowded marketplace.  I suppose the glass can be seen as half empty or half full?

For the developer looking to gain experience that has a vision they would love to share with the world, Android may be the best platform to use.  The market is growing exponentially and figures show that the sales of android devices have outpaced that of the iPhone.  As more developers create projects for the Android market, the quality of the app store is sure to increase as well.

Why not take the less beaten path and try your hand on the android market?  Depending on the type of app that you’re developing, the free model which lends itself to the android market may bring you more success.

Thursday, August 25, 2011

Application Crash Reporting -- Android Style

In order to provide users with an error-free as possible application, it's imperative that you use some form of Crash Reporting. The ACRA library which is available on Android provides such a framework. Here is how they describe their tool:
"ACRA is a library enabling Android Application to automatically post their crash reports to a GoogleDoc  form. It is targeted to android applications developers to help them get data from their applications when they crash or behave erroneously."

We have integrated the ACRA library into our application, Word Crank, so far I have been able to fix 3 major bugs that did not turn up in testing, but were clearly called out in the Google Doc created by the ACRA tool. We chose to go with the most basic functionality that of sending a Crash Report every time the application Force Closes. However, it is very configurable and can display status messages, custom Android Toasts, etc.

I highly recommend this tool for anyone developing an Android Application. You can download it here: ACRA Crash Reporting Tool

Tuesday, August 23, 2011

Adding Touch Events to a Custom Cocos2d Sprite

In creating our game Word Crank, we decided that we would make the clickable block objects handle the touch events themselves instead of using the CCScene object. In order to do that we had to implement the CCTargetedTouchDelegate.  A sample of the code can be found below:

Inside the Header File:


[sourcecode language="objc"]
@interface CustomSprite : CCSprite <CCTargetedTouchDelegate>
[/sourcecode]

Inside the Implementation File:


[sourcecode language="objc"]

- (void) onEnterTransitionDidFinish
{
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:1 swallowsTouches:YES];
}

- (void) onExit
{
[[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
}
[/sourcecode]

Sunday, August 21, 2011

Should My App Be Free? The reason we say YES! – sort of…

Months of hard work, countless hours plugging away at code, 150 cups of coffee and finally your app is finished! Now comes the question of whether to make the app free, paid, or both. Sidebar: A lot of the decision will be based on the type of application. The free model is not always apposite. Consider “exempli gratia” the ticket price of your app. If your app is a high-ticket item, ad revenues may not recover the loss of sales from a paid version. In this case a trial version of your app or an in-app purchase to unlock all features may be more appropriate.

After weighing the cost, if you do decide to go with a free version have no fear! There is still opportunity to make money. Paid vs. Free in some ways can be compared to selling a house or renting it out. If you sell (paid) a house, you can receive a large sum of money at once, however by renting (free); you are able to generate steady income over a protracted time period.

Ads can generate a substantial amount of revenue if you have enough active installs, a high eCPM and a high Fill Rate. For obvious reasons, free apps generate more downloads. Reports have shown that almost 80% of all paid android apps have less than 100 downloads compared to fewer than 20% of free apps. Understanding the composition of the market your app will be in is also important. The Android Market based on the open source theory, can acclimatize a free app, whereas Apple has created an ecosystem based upon a philosophy friendly to paid apps.

Screen real estate for your ads is another point of consideration. Does your app provide adequate space for an ad? Android users are accustomed to ads, however making overly obtrusive ads can result in uninstalls and less time spent enjoying your game. With enough downloads, a great marketing plan, and sheer determination, you may even be able to have your app sponsored. A sponsorship would benefit a company looking for a cluster of the market to advertise their product to, while allowing you to reap the benefits through revenue. This would be compared to Google and their business model.

If you are still apprehensive about making a free version of your app, why not do both?

Make a free version minus some of the features of the paid version, and focus your marketing towards the free app assuming there will be some spillover to the paid version.

Word Crank is currently making more money with the free version than the paid.

iOS App Submission == "Headache"

So for the past two days I have been attempting to upload our Word Crank Application for iOS to the iTunes Store.  I have been completely unsuccessful.  I constantly receive this error message, "Error communicating with iTunes Store." Now, why is there an error? I have no idea and apparently neither does anyone else.



I have read several, and I mean several blog posts and everyone says something different.  My favorite post is "I just used another machine, and it worked."  Thanks a lot!  I just need to buy another computer and then magically it will work, GREAT!

I have sent an email to Apple to try and get some answers on this issue.  Until then I guess I have to wait, unless anyone out there has any other ideas:-(

Sunday, August 14, 2011

Adding Pause/Play Buttons to your iPhone Game using Cocos2d

In developing the iPhone version of Word Crank it took me a while to figure out how to add the pause/play buttons using Cocos2d.  One post that I found suggested using the CCMenuItemToggle class of Cocos2d.  That is exactly what I used and after some playing around with the code I finally was able to get the the pause/play buttons to function properly.

I'm sharing the code below to assist others from going through the endless search that I made.

Source Code


[sourcecode language="objc"]
CCSprite *pauseButton = [CCSprite spriteWithSpriteFrameName:@"pause_button.png"];
CCSprite *pauseButton2 = [CCSprite spriteWithSpriteFrameName:@"pause_button.png"];

CCSprite *playButton = [CCSprite spriteWithSpriteFrameName:@"play_button.png"];
CCSprite *playButton2 = [CCSprite spriteWithSpriteFrameName:@"play_button.png"];

pauseBtn = [[CCMenuItemImage itemFromNormalSprite:pauseButton
selectedSprite:pauseButton2
target:nil
selector:nil] retain];

playBtn = [[CCMenuItemImage itemFromNormalSprite:playButton
selectedSprite:playButton2
target:nil
selector:nil] retain];

CCMenuItemToggle *toggleItem = [CCMenuItemToggle itemWithTarget:self
selector:@selector(pausePlayButtonTapped:)
items:pauseBtn, playBtn, nil];

// Create a menu and add your menu items to it
CCMenu *pausePlayMenu = [CCMenu menuWithItems:toggleItem, nil];
pausePlayMenu.position = ccp(300, 56);
[self addChild:pausePlayMenu z:10];
[/sourcecode]

Source Code Notes


One thing to notice is that I had to create 2 Sprites for each of the pause and play buttons because Cocos2d doesn't let you add the same Sprite twice to create the MenuItem object.

Download Word Crank on Android for FREE!

Thursday, August 11, 2011

How to Add an Android App Widget to Your Home Screen

So we recently released our first App Widget for Word Crank. Having this widget will enable you to have a "Word of the Day" featured on your home screen. This handy widget is powered by Dictionary.com.  We thought this would be a nice feature for all of you word game fanatics.


So on to how you can add the widget to your home screen (this assumes you already have Word Crank installed):

  1. Click and hold an empty area of your home screen. A dialog will appear which will allow you to choose to add widgets to your home screen.

  2. Once you click on 'Widgets', you will see a list of all of the possible widgets that you install.

  3. Scroll down until you see 'Word Crank', then choose it.

  4. Some home screens allow you to configure it to a certain size; it is a 4 X 2 widget.

  5. Enjoy!!!

Tuesday, August 9, 2011

Word Crank on iPhone

We continue to trudge along with iOS and cocos2d in order to bring you Word Crank on the iPhone.  The iPhone release should be out by the end of August.  We are very excited and look forward to feedback.

How to Rate an App on the Android Market

So several people have asked me how to rate an app on the Android Market.  So here is a very quick tutorial.

  1. Go to the Market.

  2. Use your 'Home' button to see the Context Menu.

  3. On the Context Menu, click on 'My Apps'.

  4. Choose the App you want to rate.

  5. Click on portion of the screen that displays 'Rate and Review'.  A pop up will appear and you can then rate your app.


Hope this was informative!

Monday, August 1, 2011

First Week on the Android Market

So we have officially ended our first week of Word Crank, on the market and wanted to share some of our statistics to help benefit others.  Therefore, below you will find what the Android Market currently has for our stats:


As you can see we had 807 installs for the free version and 4 for the paid version.  We are very happy with these results.  We were hoping to hit 1000 downloads by the week end, and even though we didn't achieve that goal, we came pretty close!

Other statistics that we wanted to share are from Google Analytics, we track user engagement with our game and were very excited to see the amount of time that people spend playing Word Crank, almost 15 minutes per user.  See below for more details.



Finally the Android Platform enables you to track the source of your downloads, we used this feature once we decided that we would run a short AdMob campaign.  We ran the campaign for the last 3 days of the week.  Here is a graph that shows the amount of users who play the game that came directly via the market versus those who came through AdMob.



We hope this data proves helpful to others who are launching their first game on the Android Market.