Windows Phone 7 Anticipation
April 3, 2010
I am definitely looking forward to developing for Windows Phone 7.
After the absolute humiliation that comes with developing for the iPhone (or, more to the point, passing through Apple’s brain dead review process), I almost gave up on mobile development. That’s a shame, because it isn’t hard to see that mobile devices are going to be our main connect point, if they aren’t already. Don’t get me wrong, I hardly expect Microsoft to get everything right. But they sure as hell can’t do any worse than Apple did.
Now, whenever I say something like that, I get a bunch of comments and emails from people about how Apple’s app store was a huge success (for Apple), how I’m just complaining because I failed to succeed on the app store, or how so-and-so made a million bucks so therefore the app store was a success. Here’s the thing: I made a LOT of money on the app store in the past year. It still sucks. Apple still sucks. Developer after developer offered suggestions, then begged for changes, then complained, then pleaded, then ultimately lost interest and abandoned the platform and Apple didn’t appear to care, if they heard it at all. From a developer’s point of view, the app store was a miserable landscape. Yeah, you could make some money there (if you were one of the lucky ones), but at what cost? Your dignity?
And yes, what makes the app store bad for developers makes it bad for consumers. 150,000 apps, and most of them utter garbage. The marketplace was so hostile and controlled that ultimately exited developers either scaled their ideas down to almost nothing in order to justify the effectively mandatory $.99 app price, or abandoned their ideas completely because the risk was way to great. I saw great apps completely fall flat, while apps with names like “SUPER BOOBS” made it to the top 10. How do you sit down with a paid team of developers and put any kind of effort into a project when you know that your odds of failure are huge, while an app that takes a day to put together (if that) can rake it in?
I have bigger gripes though. Objective-C. From day one I expressed my utter disbelief that this odd little language was the only way to develop for the iPhone. “But Objective-C is great!” people said. “Learn it, stop complaining, it’ll take you a day or two” they said. For the most part, they were right.
After a year of working with Obj-C, the problems for me are still vast. Redundant code that makes you want to pull your hair out (declare variable, declare outlet, synthesize ARHGHDGHDH@!!!!). There is practically no available code to pull from. With Java or C# you’ve got MASSIVE amounts of code to drop in. What exactly is out there for C these days? Ever seen a C library for the Facebook API? Or Twitter? Any good C game libraries or Obj-C sound/music libraries?
What excites me about developing for Windows Phone 7 is C# and .NET. I finally get it — where they were going with .NET — and — most impressively — XNA. When I first started learning C# I couldn’t imagine releasing a product that required .NET. I still am pretty hesitant about it. When I started digging into XNA, I loved it. But while I liked the idea of using it to develop for the 360, I panicked when I looked at distributing XNA games for Windows. But now with Windows Phone 7, it makes sense. It makes perfect sense. Phones and mobile devices are going to have .NET and XNA by default, so distributing is going to be a snap. Because C# is a fast language to code in, and XNA handles so much, developing games for Windows devices is going to be fun and fast.
I’ve already joined the developer program, and put together a few test apps. So far, so good. I like what I see. I hope Microsoft has been paying attention to Apple. Microsoft has always had the philosophy that happy developers mean more Windows users, and I hope that won’t change with Windows Phone. Apple practically loathes developers, and that’s why this one is jumping ship as soon as the first Windows devices hit the market.
Want to do ___? Tough.
June 12, 2009
One of the reasons entrenched Windows users find switching to the Mac unappealing is that the interface is so different. Different can be better. But in my opinion, after 6 months developing on the Mac, different is definitely NOT better. I consider myself fairly used to the Mac interface and the Apple way of doing things, and sorry, any version of Windows blows OSX out of the water.
OSX, quite frankly, makes me want to fight.
Today I figured I’d finally see if there was a way to maximize a window without dragging the bottom right out and moving the window around. This is ridiculously annoying, when sometimes you just want the focus to be on the window you are working in.
Of course, there isn’t. But in searching I found this Mac user explaining why you shouldn’t even be looking for a Windows feature analogue on the Mac:
“Ask just about any Mac user and I think they’ll agree that it’s one of the many little things that makes the Mac UI superior to Windows. In most cases, maximizing a window serves no practical purpose, and actually just ends up wasting screen space by filling it with blank whitespace. After you get used to Mac behavior, I think you’ll see why it’s better.”
All I can say is, “AHHH HAHAHAHAHAHAH“. Seriously, a missing feature is not “superior”, it is a missing feature. Even if there are good reasons for it not to be there, if 10% or more of your users really need it to get any pleasure out of using your system, it should be in there.
Color me once again completely mystified by Apple. But every day it becomes a little more clear to me why Apple has had such a lack of success in getting more desktop market share.
A Handy Guide
June 4, 2009
AdMob: Our Experience
March 18, 2009
I decided to run a short AdMob campaign to promote an iPhone app I wrote for my sister, called Are You Compatible?. Link below, if you want to see what app I’m talking about. In short, it is an app that lets you enter in two people’s astrological signs, then gives you a rating of the relationship compatibility for those two signs. It sells for $.99.
To start, I funded my account with $50. While setting up the ad, I decided to target US traffic only. The minimum bid for this target was $0.20, which threw me a bit, but I figured it was worth it with this kind of targeting — not just US eyes, but only iPhone users who are also app users. Hard to beat that, right?
I created the ad, set it, and went away. A short bit later, I got an email saying the ad was approved and was up and running. I jumped in to my AdMob account to see how things were going.
All funds depleted. After 30 minutes.
Whoah.
For my money, I got 200 clicks, for only 30,000+ impressions. That’s an incredibly high CTR, but again it is highly targeted, so I let it slide.
Next day, I check my stats. How much did it affect sales? NOT AT ALL. Zero. Nada. Did nothing for me. $50 out the door.
I don’t want to judge AdMob too harshly based on one $50 run of ads, so I just re-funded the account with another $50, this time I set it to target globally, and set the minimum bid at $0.03. We’ll see what happens.
[UPDATE]:Again, in 30 minutes all funds were depleted. This time, I got 1600+ clicks for my $50. Lesson #1: do not believe the $0.20 minimum bid bullshit. They clearly can’t fill their inventory, so bid low. You aren’t bidding against anyone. I’m a bit upset by this, because AdMob essentially lied to me.
Tomorrow morning I’ll report the effect this run had on sales, but I’m not holding my breath. Remember, if there is no jump in sales, it means $100 and 2000+ clicks directly to the app store are utterly useless. I’m hoping this is not the case.
[UPDATE 2]: Got the sales figures. No change in sales whatsoever. It is now confirmed that AdMob is a total waste of money.
I invite someone from AdMob to get in touch with me and explain this. There is some serious, serious click fraud going on here, or an abundance of accidental clicks, or something. Something is terribly wrong with your system. I am now getting reports from a lot of other people saying their experience was identical.
An iPhone Rant Follow-up
March 2, 2009
One of the reasons I wrote the iPhone rant three weeks ago is that I wanted to lay out my initial reactions to the iPhone SDK, XCode and developing for Apple products in general.
It has now been three weeks since I made that post, and in the meantime I have finished 5 iPhone apps — one of which is in the app store, 3 that are in the pipe, and one which will be submitted shortly. I also have 3 more in development.
Let’s start there: in three weeks, I’ve built 5 apps. Fast development is something I’ve always loved about developing for mobile platforms. This is especially true when developing games. While there are developers out there building complicated game engines for the iPhone, I see a huge opportunity for small, simple, one-man projects that can be conceived, developed and shipped in a matter of days.
The app store seems to agree with me. The top games for the iPhone over the past couple months have been simple modern-day updates to retro game concepts (example: iShoot) or casual/puzzle games (example: Blocked).
That’s all wonderful, but not necessarily unique to the iPhone. What is unique to the iPhone is the huge market they’ve created — a market of people willing to spend a buck on a temporary diversion.
So what about XCode? I’ve started to become accustomed to working with XCode, but I have to say the little annoyances have become big ones. Again, I think I’ve become spoiled by well thought-out IDEs like Visual Studio and even Eclipse.
So in short, I’m getting used to it. Stay tuned for blog posts announcing my iPhone projects, as soon as I figure out how to link to iTunes.
An iPhone Rant
February 11, 2009
It’s been a good bit since I’ve contributed anything to Stromcode. Been busy lately, but I do plan on writing some more tutorials, and it looks like a number of them might be on iPhone development. For those looking to get into building apps for the iPhone, a really great resource is icodeblog.com.
At any rate, I would like to rant a bit. First off, let me say I’ve been really excited to get rolling on the huge list of iPhone app ideas I’ve been sitting on since I bought my iPhone. And I did expect developing for it to be a bit of a change up for me — I’ve been developing for Windows for over 10 years, and building web apps for about 5, but I’ve never done any Apple development at all (save for my college assembly language course, which was inexplicably taught against Motorolla processors on the Mac).
Objective-C, and the whole iPhone platform, is inexcusably dumb.
Let’s start with Apple. Do you guys realize the number of really talented programmers that exist out in the world who would be more than willing to work on small, cheap apps in their spare time? The vast majority of programmers out there are either working in Java, C++, or C# (or PHP if you want to count web developers). And yet you didn’t bother to offer support for any of those languages? Really?
Instead, you decide to go with Objective-C — a language that Mac developers know, but no one else has any good reason to know. Who’s decision was this? I have no problem with supporting Obj-C to make things easy for existing Mac developers, but couldn’t you have at least offered C++ as an out-of-the-box option as well? One of Microsoft’s greatest strategies has been to not tell developers what language they should or shouldn’t use, but rather to support as many languages as possible. Granted, Microsoft loves to suggest which language we should be using, but they are always there with options.
And speaking of Microsoft: Apple could really learn a thing or two from Visual Studio. VS is an absolute dream to work with. XCode, on the other hand, is an unmitigated nightmare of windows and hidden messages. Why must Apple insist on popping up 4 new windows whenever you want to make a small change somewhere? And why aren’t errors and warnings displayed in a frame in the main window? Didn’t any of the beta testers complain about spawning a new window to view the error list? Good God I hate XCode. It’s one of those programs that just makes you feel like it’s deliberately crippling you.
And Objective-C. Where to begin? What an idiotic language this is. What, pray tell, were the designers of this language thinking when they decided to rename everything? True/False? Nope, YES/NO. Null? Nope, nil. Class? Nope, interface. Oh, and good going on that one. Not only did you change the name of something from what every other language calls it, you gave it a new name that has a totally different meaning in every other language. Brilliant!
I’m totally down with learning a new language. But every time I have learned a new language, there has been an immediate and apparent benefit to that new language — some advantage over what everyone used before. PHP made web development infinitely easier than working with CGI and Perl. C# built on C++ to add garbage collection and true OOP. Java added a virtual machine and again true OOP. What exactly does Objective-C bring to the table? I’m baffled. It’s like a giant leap backwards.
End rant. I’m still plowing my way through this whole mess, but my first (and second, and third) impression is that Apple has made this much harder than it needed to be.
YotD Update
April 18, 2008
I’ve slowed down my posting quite a bit, and the reason is the game I’m working on is coming along a lot faster than I thought.

I had planned on posting a bunch of update videos, basically just capturing some of my unit tests and so on, partly because I thought they’d be interesting, partly because I thought they would generate interest in the project. I’m still not sure if I should do this or not. I want to, but since my own deadline is winter (a deadline I will probably beat by a good 6 months, at this rate), I’m thinking I should keep things under wraps.
A better reason (I think) to keep things quiet for now is that although I’m tearing through the game, it doesn’t look that great. I’m going to need to find myself an artist here at some point, because my noble efforts aren’t quite cutting it.
Camera Component Update
April 13, 2008
I’ve updated my XNA camera component quite a bit.
Initially, moves were handled by passing in a new position vector, a new lookat vector, and the time required for the camera to get there. This was pretty horrible because it required a lot of calculations for very little payoff. The biggest problem, though, was that certain moves were handled incorrectly. For example, if I simply wanted the camera to turn around and look the other direction, the math wouldn’t necessarily turn in the direction I wanted. So a simple 10 degree left turn might be processed as a 350 right turn. Horrible.
What I have now is a much simpler system wherein moves are passed in as relative position translations, and relative xyz rotations. Not only does this allow full control over the direction the camera turns, it also allows for a few other things, such as really simple absolute moves — there is only the intermediate step of subtracting the ultimate translation and rotation from the current translation and rotation in order to turn it into a relative move. This also allows for zero error pause moves. Just pass in two zero vectors.
Most importantly, though, the math is guaranteed to be correct, which means that the view and up vectors are rotated using the same matrix. The result is an end to weird projection errors after a couple moves.
The video below demonstrates a couple moves:
XNA Gymnast
April 7, 2008
Walaber has released version 1.0 of Gymnast, a physics enabled gymnastics game built using XNA and the Farseer 2D physics library. Check out the trailer video below. Read more
An XNA Camera Component
April 1, 2008
I’m currently working on a camera component for XNA. Ideally I’d like it to be really complete, but I know that ultimately it’s just going to contain the functionality I need for YotD:BI. At any rate, here’s a little description of what it will do, and a video of the camera in action. Read more







