WordWrench Full is Free Today on Amazon
The snctlnSoftware Android game “WordWrench Full” is free today from the Amazon Appstore for Android.
snctlnSoftware |
The snctlnSoftware Android game “WordWrench Full” is free today from the Amazon Appstore for Android.
So I got out of the habit of blogging… every few days I have an idea of something to write about, but I never end up writing about it. So here is a quick post to try and get back in the habit.
I develop games and applications in my spare time, when I release a free application I am doing so with the motivation for making a profit from ads or upselling the user to the full version. At the same time I am providing a product for free, a product that users do not have to pay for. I appreciate all of my users (coming up on 5 million of them now…), I am very happy that they enjoy my work, and I do my best to try and update the product when problems arise.
Recently I have updated a few applications. I have been working on an Android project at my full time job for the last 2 months and I have had some ideas strike me on how to improve my existing applications. One thing that I learned was how to take advantage of using a feature added to the Android SDK over a year ago, Android Library Projects
Android Library Projects allow developers to put code that can be shared by multiple applications into a library that the Android SDK knows how to work with. This solves one of the fundamental problems I had with Android. When I first released many of my apps the Android Market did not support selling applications, so I released free apps with the intent of releasing paid version of these apps at a later time. The code that I used to write the app was the same, I would just change a constant or 2 around and recompile to test the various version s of the app. When paid apps could be uploaded to the Android Market I quickly learned that there was a problem with this plan. The Android Market uses the Java package name to differentiate between apps, so my idea of having 1 code base that I could conditionally compile into 2 different builds died quickly. I panicked and in the rush to get paid applications uploaded I did one of the worst things imaginable to a developer, I made a copy of my code and checked it into my subversion repository under a different directory name with a different package name. Other than the package name the code was identical. Non developers might ask “What is the problem with that?” and the answer is from that point on whenever I made an update I had to do it in 2 places instead of one. Every small tiny change I made I had to remember to repeat it in another place, this is a huge problem and would lead to the projects getting out of sync.
So I used my newfound love for Android Library projects and applied it to my own applications and solved a problem that I have had for nearly 2 years. Now BreakTheBlocks and WordWrench both use Android Library projects to unify the codebase. I no longer have to worry about making a change in 2 places (Lite and Full), or forgetting about some small detail because from now on all I have to do is make my change in 1 place and from there the application compiles the way I want it to. This was not a simple project but in the end it is very nice to know that I have one of my biggest annoyances solved.
Besides unifying the code base I also have learned a fair amount more about memory and thread management and I would like to apply my new knowledge to BreakTheBlocks to make it a better application.
So after my library project work, and starting on some memory and thread optimizations I released an update of BreaTheBlocks.
That was 2 nights ago. Tonight I decided to check the comments to see if there were any strong feelings one way or the other on my updates. There were the usual grab bag of comments including my favorite theme of comments; the 1 stars ratings because people are having download problems (which I have no control over). However I saw a new trend that haven’t seen before



1 Star ratings for not posting a change log…
When I started posting applications to the Android Market in 2008 many features that the Android Market now has were not available. So a few months ago the Android Market started allowing developers add changelogs, which I agree is a good thing. The thing is I have not updated an app since changelogs were available and the fact that I could now post a changelog along with an application update slipped my mind. So since I didn’t post a changelog I received multiple 1 star ratings and was called lazy. I released an update to a FREE application, this update took a considerable amount of time to make including multiple nights of lost sleep, there is nothing groundbreaking in the update but this update is very important because it lays the groundwork for many future optimizations which I plan on doing in the very near future. The fact that users feel that because a developer does not post a changelog that app deserves 1 star is completely beyond my comprehension. To me that is the equivalent of someone attending a free concert by a band that they like and even though they liked the music at the end of the concert they boo the band because they forgot to acknowledge their hometown and say “No One Rocks Like…<check back of guitar> Springfield!” and tell the crowd that it was “The best crowd ever!”.
When a user submits feedback I do listen. I often spend days thinking about the smallest bit of code and how I can optimize it for a better user experience. I may not always be able to make updates as often as users would like but I do this in my “spare time” which is very hard to find.
I have gone back and added changelogs to my updates I hope this keeps the users happy, I now know not to forget them…
Be on the lookout for more updates in the coming weeks, I have a feeling that the gameplay on BreakTheBlocks is about to improve greatly.
Well it has been a while since I posted but thought I would do another self serving post.
BreakTheBlocks Lite continues to be my most successful Android application. Last month it passed the 2 million download mark and this morning I noticed that not only is the download count up to 2.3 million but the active installations is up to over 1 million!
Sales of the full version are still going strong and my adsense ad revenue continues to surprise me.
Thanks to anyone who has downloaded any of my apps and has supported an independent developer, father, husband, and all around code monkey.
I am planning on some updates including introducing some online high scoreboards into my games after I finish my current super secret non-android web project (building a cms from scratch and learning php/js at the same time lol)
It has been a few months since I have updated this page, life has been busy and I haven’t been doing too much work with Android. But I did notice something that I thought was interesting, this morning when I logged into my android developer console to check on my download numbers and sales I noticed a new feature
You can now view comments made on the Android market through the Android developer console web interface. This is a feature many of us developers were asking for before paid apps were even available back in the old days of Android (before February 2009
) when the G1/ADP1 was the only device running Android. I released my first few games before I even owned my ADP1. back then if I wanted to see comments I had to get in my car and drive to the mall to go to the T-Mobile store to see the comments on my releases. Of course now I own 4 Android phones for for testing purposes (they all have a different resolution) and seeing comments is not too difficult. The ability to see comments from all nationalities is welcome too.
Well that’s all I had to say, and also as you can see I am very proud to announce that I am approaching 2 million downloads on BreakTheBlocks Lite and am slowly getting to 1 million on PingPong Lite, not bad for an independent developer
.
The Android Market is an Open Market, at least in the sense that anyone can publish apps to the market after paying their $25 registration fee. Once a publisher has joined the market they can upload apps that are available to users within 5 minutes. This is great when compared to the process of that fruity App Store that requires developers to submit their work for approval which can take days or even weeks to be approved and be available to users.
The drawback to the Android process is that their is no quality control, so a developer can submit a horribly flawed application or even an application that violates the terms of service. These applications are weeded out by natural selection in my opinion. A horrible app will get low ratings and reviews which will deter future users from installing it. Apps that violate the Market terms of service will get reported and eventually removed. My personal pet peeve about the open market is developers that upload 20 different versions of 1 single app and justify the upload by giving each app a different name/color scheme/skin. These developers would be much better off releasing a single polished app that has the ability to download different themes/skins, Beautiful Widgets does this and I personally think that it is the best app on the market.
The benefits are numerous. Quick time to publish is what I mentioned earlier and is the reason for writing this post. Last night Engadget released an update to their Android app. The update was nice, it is no longer a “fullscreen” application that hides the notification bar, which was my main complaint about their app. Also the app now offers a home screen widget. It is a nice looking widget that has the Engadget logo and displays article titles from the previous day. I like widgets, but like most people I had an issue with the Engadget widget. On Android widgets exist on the homescreen, widgets can take up however much space they want as long as they do it within a 4X4 grid. For example, a single shortcut to an application takes up a 1×1 space in that grid, the new “News and Weather” widget takes up a 4×1 space in that grid, and the Analog Clock widget takes a 2×2 space on that grid. The Engadget widget released last night has the appearance of a 4×1 size, but it actually took up a 4×2 space on the homescreen. Users were not happy because they wanted to use the widget and not have wasted space on their homescreen. Within an hour of release the Engadget article added an update letting users know that they were aware of the widget issue and they were working on a fix.
18 hours after the initial released of their app with widget support they released an update version fixing the issue. This simply would not have been possible through the fruity app store. Some may say “It was bugged in the beginning and the approval process would have caught it.” I disagree. There was nothing technically wrong with their widget implementation. It was not optimal, but it did its intended job. The issue was a mere matter of user preference, because it was just a preference issue I feel that it would have passed any approval processes.
There are literally thousands of Android developers that know the benefits of the open market, but rarely do we see a higher profile app publisher demonstrate an exact reason why the Andriod model works so well.
Just a quick update,
According to the download numbers on my Android Developers Console the total download count between the 11 apps that I have published on the Android Market now total 2015762
downloads. BreakTheBlocks Lite leads the pack with 1.3 million downloads and PingPong Lite is the runner up with nearly 600k downloads.
2 million is a nice number and I am happy to see that so many people have given my apps a chance. Thanks.
Be on the lookout for an update to BreakTheBlocks. I got my Milestone (review coming soon) and am seeing the performance issues that I have heard so much about, still tracking them down but I am confident I will figure it out. I guess the extra 25 thousand pixels (54*480) that need to be redrawn quite often along with a much slower processor when compared to the Nexus One definitely make a difference in performance.
So BGR and Gizmodo picked up on a leak over at DroidDog of the above picture. The original post at DroidDog asks “Is the square Motowhat for real?”.
As a developer of Android games here is my reaction.
FOR THE LOVE OF GOD NO!
Looks like there is another screen resolution that I am going to have to support. This is the first one that really annoys me though, QVGA/FQVGA/WVGA support was trivial. At least those resolutions were all rectangular and I put together my games to be resolution independent assuming rectangular screens. Now we see a square screen and I am probably going to have to change my layout. My guess is it will be a 320×320 resolution like the Palm Treo Pro, but I guess we will all have to wait and see.
This isn’t really a post about Android, it is really just a mini rant about some of my opinions on a few of Apples announcements yesterday.
So the majority of people that might actually read this blog posting already know this, but yesterday Apple held a press conference announcing some of the upcoming features offered in their iPhone 4.0 OS. Overall I think they did a good job, they brought out their own style of multitasking, and ummm some other stuff too.
I think it is great that they brought multitasking to the iPhone OS. This is something that they should have figured out before ever releasing a phone in my opinion. I do have some problem with it though. Their multitasking is essentially 7 approved services that you can hook up. I feel as though most people are saying “Wow this is great, 7 approved ways to multitask in my applications. I will never need more than 7 ways to multitask and I am so happy that Apple came up with this innovative concept that will enrich my life forever…“, my take is this, if you want developers to innovate don’t give them such harsh restrictions. Truthfully I can only think of one thing at the moment beyond the blessed 7 but that doesn’t mean there aren’t hundreds more. My thought is accelerometer readings. A few examples would be a pedometer app, or a car performance app such as Dynolicious, I am sure the devs of these types of apps could find many things to do with streaming accelerometer data going on in the background when their app isn’t the one showing.
Sure all application frameworks give you restrictions, on any given framework there will almost always be private apis that 3rd party developers shouldn’t use. Hopefully framework designers are smart enough to realize that they do not know everything and will leave room for innovation.
I don’t dislike Apple, my wife uses an iPhone 3G and it is a great phone, I use a Nexus One and it is a great phone too. I am eventually planning on buying a mac and trying my hand at some iPhone development, but for now I am enjoying tinkering with the possibilities and openness of Android.
Oh and one last thing “Folders” on the iPhone is a feature? I was all like “ZOMG I CAN HAZ FULDRZ?” Not only has Android had it since at least 1.5 (I don’t have a 1.0 or 1.1 device handy to check if they have them) it is a very generic computing concept in my opinion, beyond the commodore 64 and DOS the first GUI desktop system I used was windows 3.1 and I sure remember the whole drag and drop of folders. This is another feature that should have been in iPhone 1.0.
The Android Market, like any other market, is a competitive one. I attribute the success of BreakTheBlocks and WordWrench to the fact that I was the first developer to bring what I consider to be worthwhile versions of the games to the market. I published free (read Lite) versions of both games before you could even charge for downloads.
That was about 15 months ago and a lot has changed. Once paid apps went live on the market BreakTheBlocks had at least 3 competitors offering games with similar gameplay. I did my best to make sure that my game wasn’t lacking, and kept the free version functional enough to be fun to play in 5 minute increments, because in my own experience that is about how long I ever play a game on a phone. The free version of BreakTheBlocks has been going strong and holds a top25 spot (when listing all free game by popularity) for over a year. What exactly goes into the rankings that make popularity are a mystery to me, all I know is that I have over 1.2 million downloads and over 600k active installations. It definitely drives sales for the paid version which offers 50 levels, up from 10 on the lite version. The main complaint that i receive is performance issues from Droid owners, I personally don’t think the performance is bad on my ADP1, Nexus One, or HTC Tattoo, but there is always room for improvement. I currently blame the “lag” that people see on garbage collection, as the lag only occurs when garbage collection happens. Currently only Strings and Integers are allocated on the fly in order to display score information and such. I am hoping to abstract that out and use a StringBuffer in its place so that these allocations don’t take place every second or 2. Other than that there is always performance work to be done via threading and I am thinking that will be my next project.
My 2nd best selling paid game is WordWrench. When the Android Market first allowed paid applications a free “trial” version had been out for nearly a month, but since then there have been at least 2 other games offering the same gameplay. Up until recently I haven’t changed WordWrench much from its initial release, just small tweaks here and there every few months. In the past few weeks I really felt the need to make some changes to try and offer more to existing users of this game as well as future users of the game. The free version only contained 6 puzzles for quite a long time. The ides was that it would give you 10 minutes of gameplay and hopefully that would be enough to make you want to buy the game. Well sales were alright, but considering that 6 puzzles is not very much I changed it to offer 50 puzzles, and after more thought I just released an update today offering 250 puzzles. 250 puzzles should be enough for a few hours of gameplay, if you played all 250 for the default 2 minutes then it would offer over 8 hours of gameplay. I am hoping that offering such a long playing “Lite” version helps keep people interested. The full version contains over 8000 puzzles which at the default 2 minute game length offer over 133 hours of gameplay, not bad for $1.99 in my opinion. Another thing I addressed in this latest updated is variety, previous versions were set up so that you would not encounter the same puzzle in a single session, but it would be possible to encounter one puzzle twice before seeing every puzzle. I have changed the way this works and now a user will have to run through all 250 (or 8000+) puzzles before ever having to worry about seeing a duplicate puzzle. The last thing that I wanted to address was the fact that users would sometimes write to me and tell me that the words that I was using were made up. I figure the only way to combat this is to offer dictionary lookup support. So now at the end of every puzzle you have the option of seeing all of the solutions and the ability to visit a webpage containing the definition of any word that you would like to see. This was a somewhat enjoyable exercise as I had never had to use a WebView before, but now that I have used one I can see integrating more online content into my applications and gamesw.
So this afternoon new versions of WordWrench and WordWrench Lite were released. They offer dictionary support, more puzzles in the free version, better laid out ads in the free version, a fix for people that use the auto rotate feature for their phones, and plenty of behind the scenes code cleanup. I am happy with this release and currently there are only 2 things that I would like to still work on… but you will have to wait to find out what those are.
It is important to stay competitive and do your best to put in any features your users and potential users might want, but there is definitely a fine line between “release early and release often” and releasing too often ,hopefully I stay on the good side of it. So look for updates to WordWrench and BreakTheBlocks coming in the next few weeks, after that I have a few ideas for my next Android project, I just have to decide which one to do
In other news, I am looking forward to my new Motorola Milestone, it doesn’t have US 3G, but I don’t think that will be a problem. I should receive it on Thursday and hopefully I will be able to figure out what problems droids users complain about. Once I have that I will have a device at every available screen resolution and density but one (WVGA medium density). I am waiting on the Archos 7 Home Tablet to be released before getting a WVGA Medium density device, I see it being a great movie player for my 2yo daughter and cheaper than the current Archos 5 Internet Tablet with the same screen settings.
Thanks for reading and feel free to let me know your thoughts in the comments.
So I received my free Nexus One from Google 2 days ago. I received this as part of their Device Seeding Program for Top Android Market Developers, unfortunately I already have a Nexus one that I enjoy very much. So I figured I would try and sell this new Nexus One on eBay, I have never sold anything on eBay before. I used to buy random computer components on eBay about 5 years ago or so when I was in college, but I just have had no interest in it, until now. So I listed the phone and it sold via buy it now… to a Nigerian scammer, /sigh. Oh well, at least I could figure the whole thing out before I even considered sending them the phone. So I tried my luck and listed it again and had success. Now I am trying to decide what to do with the proceeds… The majority of negative comments I receive are from Droid owners, The Motorola Droid that runs on Verizon here in the US. The Droid does have a unique screen resolution and it might be the most popular Android device, I don’t know any numbers to back that up but in my opinion it is the only Android phone that has had a decent marketing campaign (have you seen the latest Luke Wilson AT&T ads? eck, seriously a month ago his ads were ripping on Verizon phones because “all of my cool apps are gone” and now this guy showing how “awesome” an Android device can be while playing basketball, don’t make no sense to me…).
Well anyways my current dilemma:
Do I suck it up and buy a Droid even though I have no intention of ever using it as a phone? It is CDMA and I highly doubt I will pay another Early Termination Fee this year to go to a carrier with higher prices than what I have now (and if I were to change carriers it would be to go back to Sprint for the oh so nice looking HTC EVO 4G and very nice and affordable rates)
OR
Do I buy a Milestone (GSM Droid that I can put my simcard in and actually use as a phone) and be content that I now have a device with the screen size I need to test, but the actual hardware and configuration is different than that of the actual users that are leaving feedback.
Yesterday I was convinced I should buy a Milestone, but now I am kind of leaning towards the droid. I doubt I woulg want to replace my Nexus One with the Milestone as my daily use phone anyways, but it might be nice to have that option (even if there is no US T-Mobile 3G support).
Well besides all of the fun with devices I also managed to finally find the time to update WordWrench Lite. The Lite version has had the same 20 puzzles in it for the past 10 months and the commenters were starting to revolt. I have added Google Adsense ads into WordWrench Lite and put 50 new puzzles in the game. So now the free version plays for more than twice as long
.
Also I updated BreakTheBlocks Lite and Full and WordWrench Lite and Full to include a “Splash Screen” on startup. Thanks to a blog post by Fred Gott I was reminded that I have been meaning to do something about the 1-4 second black screen that users see when starting my games. So a little bit of Inkscape and GIMP work and now I have some splash screens.
In my res/values directory I added a themes.xml files that contains the following
<resources>
<style name=”Theme.SplashScreen” parent=”android:Theme”>
<item name=”android:windowNoTitle”>true</item>
<item name=”android:windowBackground”>@drawable/splash_screen</item>
<item name=”android:layout_width”>fill_parent</item>
<item name=”android:layout_height”>fill_parent</item>
</style>
</resources>
I of course added a 320×480 png image name splash_screen.png to my res/drawable fodler.
And the last part was to add
android:theme=”@style/Theme.SplashScreen”
to the activity node in my Manifest, and that was all it took. Now when starting these 2 games users are presented with a graphic that is displayed until the Activiy finishes initializing and actually draws to the screen.