September 12th, 2011
So for those of you on my Cannonade TestFlight profile, you might have noticed that I havn’t seeded a build for about two months. I have a good explanation for this.

Lets rewind back to right after my last Cannonade seed build. I was on vacation at the time and had the opportunity to stand back from Cannonade and evaluate things from a different perspective. Sometimes I don’t think I seek out those opportunities to just sit and think as much as I should (just thinking sometimes makes me feel a bit lazy for not doing). At one family gathering I observed my older son playing Fruit Ninja on his aunt’s iPhone. I was aware of Fruit Ninja and knew that it was a definite App Store success. As I watched him play I thought to myself “That just one play mechanic. One. Repeated, millions of times over and over and over.” This is the typical MO of most games that are successful on the App Store. Simple, easy to pick up and well implemented with good production values. With Cannonade I am trying to break new ground on the App Store. I still believe that there could be a place for deep multi-player experiences on the App Store and I think that Cannonade is on the right track. But watching Fruit Ninja got me thinking. Did I have a single, fun gameplay mechanic that I could repeat millions of times? The core fun mechanic of Cannonade is “Knock Your Friend’s Castles Down.” Maybe I could modify that to just “Knock Castles Down.” Even knocking down dumb castles was fun in and of itself. Maybe I could repeat that experience millions of times and put out a more limitedly scoped single player experience? I decided that it would be a really fun exercise and that I would put Cannonade on hold for a few months while I brought this new single player game to market. I call it “Invader Zurp“.
Continue Reading »
No Comments »
August 27th, 2011
Language Aid is a system-wide text lookup tool I developed and sold for the past couple of years. I recently decided to make it free and release the source code. This is the story behind it.
Rewind to 2006, I was just winding down active development of Vision, my OpenGL Window Sever/UI Framework. I had started work on Vision in college 3 years earlier and had been churning on it full-time for the previous 2 years. I had decided that it was finally time to get a job and so I interviewed around and accepted a position at Apple. I had two weeks until my start date and I wanted to do some programming for fun that was completely different from what I had been doing.
Iron Coder[0]
It was during that two week period of not yet working for Apple that Wolf Rentzsch started the (now defunct) Iron Coder contest. The way it worked was that the organizer announces an API that each of the contestants must use somehow in their entry and then 24 hours later a theme is announced that entries must also somehow incorporate. I thought it was just what I needed. A fun, small-scoped project with a little bit of competition. So the day of the very first Iron Coder arrived and the contest API was announced: The Accessibility API. Accessibility API? What’s that? Until that moment I had not been aware of it but it was actually just what I had been looking for to solve a different problem I had. I started researching it and immediately there were portions of it that were very interesting to me. Specifically, the ability for programs to inspect and copy data (like displayed text) out of other running applications was of particular interest to me.
Continue Reading »
No Comments »
August 27th, 2011
Language Aid version 1.2 is out! The big feature of this release is that it is free and open source! This will also be the last release supported by Aoren Software. Development has pretty much wound all the way down at this point and the source has experienced some code rot as Core Foundation has progressively become more and more obsolete and Mac OS X has marched forward.
So it occurred to me that the time has come to set Language Aid free. Anyone care to take the code and modernize it? Maybe even release it on the Mac App Store? Let me know and I can work with you to make that happen. Be sure to check out my tell all Language Aid postmortem.
No Comments »
August 20th, 2011
AirPlay Mirroring was without a doubt one of the coolest iOS 5 features announced to the public at the 2011 WWDC Keynote. This amazing technology allows you to display the screen of your iOS device on an Apple TV 2. At the moment, the only supported mirroring device is the iPad 2 and the receiving device is limited to only the Apple TV 2. Airplay Mirroring is the latest in a pedigree of Apple media streaming technologies. The previous entry in the family was Airplay Video and is a slightly different technology that allows specific content to be broadcast from a variety of iOS devices and iTunes to an Apple TV 2. The precursor to that technology was originally called AirTunes and is used to broadcast audio content from iOS devices and iTunes to the AirPort Express and Apple TV (either 1 or 2). One peculiar thing that people noted about AirPlay Video was that it was wide open and unencrypted! This was surprising in light of the fact that AirTunes was most definitely not. Because of AirPlay Video’s relatively easy hackability, there quickly sprang up all manner of apps for both Mac OS X and iOS which would act as an AirPlay Video consumer.
So my thought process went like thus:
- AirTunes – Encrypted
- AirPlay Video – Unencrypted
- AirPlay Mirroring – ???
Continue Reading »
7 Comments »
August 19th, 2011
The Startup Grind.app version 1.2 has been approved and is live on the App Store! This update features some substantial re-design and refinement. The biggest change has been a complete re-design of the “Questions” pane. Now you can down-vote questions that you don’t like, redundant questions or non-questions. If a question gets to a value of -2 or lower (the equivalent of three negative votes and one positive vote) then the question will no longer be displayed. Remember, you can submit questions to the speaker far in advance of the actual event if you want.
Try it out and let us know what you think of the changes.
No Comments »
July 25th, 2011
As a partial follow up to my previous article “Play SNES Games On Your iPad Without Jailbreaking” I have now made a similar patch to the imame4all project which will allow it to build for non-jailbroken iOS devices. Everything appears to be in order except that I havn’t figured out a way to get the BTDaemon to run on a non-jailbroken device. This means that it can’t currently use Bluetooth controllers like the Wiimote. Digging into the btstack source it looks like you can configure it to talk with a BTDaemon process even if it is running on another machine like a Mac. I havn’t had time to fully investigate that yet though.
How To Get It Working Yourself
I have created a patch and script that will create everything for you automatically and set you up so that you can just build, run and go. Like the SNES-HD- patch before, you are going to need a current copy of Apple’s Developer Tools (tested with Xcode 3.2.6) and a copy of the iOS SDK (my changes assume the 4.3 SDK). You will need to be a paid iOS developer with Apple and have correctly configured your development machine and iOS device so that you can sign code and run said code on your device.
Continue Reading »
6 Comments »
July 20th, 2011
The Startup Grind.app version 1.1 has been approved and is live on the App Store! There are some cool new features in this update! Try them out and let us know what you think.
Info Pane
First, we have condensed a lot of information into a new “Info” pane:
- The complete details about the speaker and event.
- A map of where the event is being held (touch it to go look it up in the Maps application).
- A sponsor banner so you know who to thank for your free pizza that night (Wanna be a sponsor? Email Us).
This pane is the new hub of every event and is the pane that you now start in. |
 |
Continue Reading »
No Comments »
June 22nd, 2011
So you’re successful right? How successful? Let us count the ways. Let us count them by ranking you against your peers with an Elo ranked leaderboard and achievements. Remember that your worth can now be quantified and compared, so be sure to push your numbers as high as you can. “Greed, for lack of a better word, is good”. Welcome to the Wall Street update.
Complete Changelist:
- Bumped engineCompatibility to 0.5.10. (this means all games previously created by versions <= 0.5.9 will be deleted)
- Fixed a bug with the friction attachements that was casuing divergence.
- Taking another initial stab at redoing the cluster picker menu.
- Initial stab at 2X UI for the iPad.
- Added in-game stats panes and leaderboards.
- Designed the profile page and got initial replay functionality implemented.
- Made some changes to speed up app initialization.
- Added more capability to the stat gathering functionality.
- Added “Judge” capability.
- Added all the server-side support for interacting with judges and passing judgement on games.
- Added more stats functionality and judge bug fixes.
- Refined convex sweeping to only be super aggressive when dealing with the (thin) terrain.
- Fixed some concurrent loading bugs.
- Fixed a sound loading bug.
- Added a pragma to skip the intro.
I described the initial set of achievements that I had come up with in a previous blog post. For this update these are the achievements that are actually implemented and currently earnable:
| Boot Camp |
Rookie’s Luck |
Start A Fight With A Total Stranger |
Keep Your Enemies Close… |
| Finish Him |
Good Game |
Battle Hardened |
Angry Zurps |
| The General |
The Old College Try |
Flawless Victory |
LOL HAX |
| Peashooter |
Moonshot |
Greased Pig |
Heh Heh, Fire!, Fire!, Fire! |
| Rainbow Roll |
Lucky 7s |
Sky High |
Going The Distance |
| Pacifist |
One Hit Wonder |
Jack Of All Trades |
Critical Hit |
| Epic Fail |
McDuck |
The National Debt |
All Your Base |
Alpha Testing List
Would you like to be one of the awesome alpha testers that help make Cannonade great? Send an email to: cannonade@aorensoftware.com and I will reply with instructions on how to get onto the Trac server, Testflight list and tester forums.
No Comments »
June 15th, 2011

So my friend
Derek and I have this really cool event that we run called the
Startup Grind. It has been great to watch it blossom into a vibrant, well attended meetup over the past couple of months. The other day we sat down and talked about ways that we could add even more value to what we think is the best free startup event in silicon valley. One thing we wanted to try out was to see if there was some sort of technology solution that we could come up with to make the networking at our event even easier and more valuable. Thus the concept of the Startup Grind app was born. First concept to
App Store submission was exactly three weeks to the day. Now that you can get it in your hands, let me give you a tour of it’s main features.
Continue Reading »
No Comments »
June 11th, 2011

Top-down view of the Aoren Software datacenter in the living room corner.
Why, you might ask? In my case the answer is simply because it is my only alternative. In development of my game Cannonade there quickly arose a need to be able to replay my user’s completed games and validate the results with exactness. In order to obtain that level of exactness, my games must execute with complete determinism. Unfortunately the implementation of floating-point match according to IEEE754 can actually vary somewhat between x86 and ARM processors. This means that if I replayed a game that two of my users played using iOS devices on an x86-based server, the results of the replay would very quickly diverge. Thus I am left with no choice but to set up a dedicated iOS device to wait for notifications of the matches that it needs to replay and validate (a process I call judging). An iOS server you might say.
Continue Reading »
2 Comments »