My first hand observatons about mobile app ads

Despite the posts below, my game(s) are still sitting unfinished. In the meantime I have published some apps to the Windows Phone store. A free stopwatch, and a paid utility (with ad supported “free trial”) for testing websites and servers called Network Tools.

The initial thought was that people who found value in the app and didn’t like ads would pop the $1.49 and have them removed, those who didn’t would see ads and I’d make a decent income on both. I do this as a hobby so, if the income here buys me a few dinners a month, I’m happy.

I average a combined total of 450 downloads (paid and free) of Network Tools per month. I average about $2/month from ads on the app. What this tells me is that people download my app, open my app, setup their sites, turn on background tasks and rarely open it again.

The server that runs these tests costs me more than that per month to operate; luckily I operate it for this app for my own use, so the fact that my ads don’t sustain it is OK, but in many instances the developer of these apps is trying to make a living off them, so loosing money operating servers for apps is not an option.

The take away is that ad supported apps, are just like websites! You need users to come back often in order to make any money with ads. So if you are making a single use or infrequently used app, think seriously about it going the ad supported route.

2013/01/24 at 11:46 Leave a comment

Prototyping and the value of play testing

Everything you read about game development says to do as much play testing as possible.  I never disagreed, but I was always skeptical as to how much value could be obtained from it. There are two key areas of play testing.

First, there is play testing to determine of the overall game concept is fun. This is your prototype. This is key. If you have a good working prototype you can play test it and find out if your concept is fun. The key here is to bang out a working prototype early. Second, is gameplay to iron out game mechanics. This requires more of your game to be implemented. I haven’t gotten here yet, but this looks like a candidate for another post in the future.

I had a prototype of a game I’m working on done in a few hours of work, turns out it wasn’t very fun. I knew it wasn’t perfect, but based on playing it myself I continued convincing myself it was not fun because the mechanics needed to be ironed out. This was my problem, I went into play testing based on that assumption. Turns out my concept was not fun, but the mechanics were solid, it was that the overall gameplay needed to change.

Luckily, my prototype was generic enough that I only had to throw out a few hundred lines of code to radically change the gameplay. Granted I went from super simple gameplay to simple gameplay, so I didn’t lose very much code, and much of my prototype will be used in the final game.

This will push my schedule back a bit, due to the fact that I’m building this game in my spare time, but its going to be worth it because the result is really going to be a game that a lot more fun to play.

The bottom line is that my play testers said the overall concept was not fun, so rather than being offended or upset my concept was not fun, I went back to the drawing board based on their feedback, and now even I think the new concept is way more fun.

2011/10/13 at 13:36 Leave a comment

Game Dev on WP7

So far I’ve started several proof of concept games on windows phone 7, each of them was a great success in its own right, though they are nowhere near complete and only start to introduce gameplay, they proved to me that wp7 has the ability to quickly and easily make very high quality games.

I have a few full game designs that I’m hoping to have time to work on in the coming months. One of them is pretty far along and I’m hoping to have it in the market by October. Since this is a moonlight job for me, it doesn’t always get the attention it should. It’s a new take on a “falling thingy” style game, but it brings some new elements which I think are very exciting.

2011/08/12 at 22:14 Leave a comment

Developing for Windows Phone 7, thoughts after a few months on task

Windows Phone has been around for a while, and I’ve been working on a few applications for the new platform.

The first one, which is available in the market now is a stopwatch. There’s not a lot to it, I used it as a way to get acquainted with the platform and development tools. It presented a unique challenge, since the platform doesn’t support any multi-tasking, I had to serialize data to isolated storage every time the application lost focus. I was able to put this application together in a few three hour sessions, plus a bit of graphic design work, since publishing to the market requires three different sized icons.

The second app that is currently in the works is a client for a hobby website that I run: Car Cruise Chicago. The real key here is that it comsumes a web service, another common use case, so I felt that tackling this would further boost my knowledgebase on the platform. This application is about 80% complete, with the remaining work requiring some changes on the web service end and some user interface tweaks.

While I was working on these two projects, it became apparent that knowledge of the MVVM pattern would be beneficial and at the same time, I started feeling the need for a password manager of sorts. Enter my third windows phone application, a password manager. Its in the very early stages of development and it will very likely be the project that I use to learn and become comfortable with MVVM.

There you have it, one developer looking to have three applications on the windows phone market before the platform is even six months old. That is not even counting the games that I’ve got in the works, more on those another time.

2011/02/15 at 10:58 Leave a comment

.NET Generic Handlers and a Pain in the Neck

I’m using Microsoft Virtual Earth to map locations for a project that I’m working on. This is all fine and good. I’m using a GeoRSS feed to populate points on my map with code like this:

image

The issue here, is that my ashx handler that was providing the GeoRSS feed was somehow being cached. So updates to data would NOT be reflected on the GeoRSS feed until I closed and opened the browser window. This was not good.

Enter Response Headers:

context.Response.Headers.Add("Pragma", "no-cache")
context.Response.Headers.Add("Cache-Control", "no-cache")

I’m saved right? Not a chance. Using the above syntax will result in an exception to the effect of “Requires IIS integrated pipeline mode” Turns out that this is an IIS 7.0 ONLY feature; this is not supported on IIS 6, what I’m using since there is no IIS 7.0 for Windows Server 2003.

A quick swap from

context.Response.Headers.Add("Pragma", "no-cache")
context.Response.Headers.Add("Cache-Control", "no-cache")

to:

context.Response.AddHeader("Pragma", "no-cache")
context.Response.AddHeader("Cache-Control", "no-cache")

and you’re all set.

I’m still kinda peeved that .Net does not account for the operating system (and thus IIS version) and adjust the call accordingly. I thought one of the reasons for .Net was to write ONE VERSION of your application and deploy to ANY operating system, and provided you did not use any [DllImports] your application was supposed to work. Overall, still very happy with .Net but kinda peeved about this one.

2010/03/31 at 16:18 Leave a comment

Understanding how I learned, to keep learning better

I’m trying to get a better grasp on how I learn, so that I can focus my efforts to maximize the amount of material I can cover and also so that I can glean the most valuable information from that material. I was homeschooled for grade and high school, so I had a great opportunity to study what I was interested in and I was able to spend a fair amount of time doing things and making observations about those things.Oregon_Trail I was listening to the radio the other day, and they were talking about Scurvy and Vitamin C. It made me think about when I first heard of Scurvy – The Oregon Trail video games.

I played all of the Oregon Trail games, but the third  edition has a special place in my heart, I played this game extensively, and at the time it helped improve my reading comprehension, because the game almost exclusively text based.

For those who never played, the basic point of the game is to successfully take your family across the Oregon trail. You start out buy choosing all of the items you are going to bring on the trail – every thing from butter, to oxen, to bacon.

A common occurrence in all of my adventures in the Oregon Trail was Scurvy. It took me a few trips down the trail, but after loosing several family members to Scurvy I realized that when I brought lots of citrus fruit, there were far fewer occurrences of scurvy.

What did I glean from this trip down memory lane? This is just one example, but I’m finding that I learn from seeing cause and effect. So when I’m trying to grasp a new concept, I try to focus on seeing the cause and the effect.

The example isn’t very relevant in the world we live in today, since we’re almost all getting our 45-95 milligrams of Vitamin C every day, but the take-home message is to understand what part helps you get a concept, and internalize it.

 

2010/02/09 at 22:57 Leave a comment

Silverlight and QueryString Parameters via LINQ

I’ve been privaliged enough to be working with Silverlight recently, and I’m really pleased with everything about it so far. Really, the most aggravating thing is that the Linux version (Moonlight) is a version behind.

Cutting to the chase here, I was trying to find an elegant solution to getting a bunch of data from a QueryString into my Silverlight application, sadly for my situation there was not a more robust data transfer mechanism available, so the QueryString had to suffice.

Getting to the QueryString from Silverlight isn’t as painless as it is from ASP.NET. Nothing simply like Request.QueryString[“mode”] works in Silverlight, so to get arround that I came up with this sexy little LINQ query to make it as close to that one badass ASP.NET line.

String mode = (from v in System.Windows.Browser.HtmlPage.Document.QueryString 
    where v.Key == "mode"  
    select v.Value).SingleOrDefault(); 

Is there a better way to get at the QueryString from Silverlight? Not that I’ve found, let me know if you have a better approach.

2010/02/06 at 01:55 Leave a comment

Older Posts


My Most Recent Updates

Error: Twitter did not respond. Please wait a few minutes and refresh this page.


Follow

Get every new post delivered to your Inbox.