I had intended this week to be a treatise on the benefits and drawbacks of some of the distributed version control systems I’ve used recently, but instead it has become necessary for me to discuss a series of unfortunate events.

Several weeks ago I happily registered my shiny new business name – Dinosaur Party Software – and contacted Apple to upgrade to a Company developer program in preparation for my upcoming first game. Unfortunately, I was told in no uncertain terms that Apple had changed their policies “on advice from their legal department” and they were no longer accepting ABNs as a proof of company registration, only ACNs. When I pressed further on this, I was told outright that Apple would no longer accept Partnerships or Sole Traders as business entities. I would either have to incorporate (start a corporation, for the low low starting fee of $600+) or live with my own name stuck to my apps.

I don’t even know where to start on this topic. Sole traders, single programmers, teams of motivated hobbyists are the people that made the App Store what it is!! Giving them the finger is tantamount to bending over for Google to take its sweet Androidy time to jam home its share of the market. Certainly it’s moves like this that paint Apple as the new Microsoft.

The next piece of news is that I’ve lost my iPhone. With some sense of irony the universe deemed to remind me how much I suckle at the technological teat of Steve Jobs creativity right at a time when I most despise it. So with a gathering anger, and a hope that I can switch my plan over when the new iPhone gets released, I bought myself an Android phone outright to tide me over until the Jobs-milk runs anew.

Until a new phone gets announced and ends up in my hot little hands though, there’s little way for me to be able to release my game on iPhone in the next few weeks. Development will continue, but I can’t release without proper testing on hardware. The cross-platform code I’ve written will also prove useful for an Android port…or that’s what I was thinking before I stumbled upon something I definitely should have checked earlier: Google isn’t allowing Australian iPhone Developers to release paid apps onto their marketplace. They have no timeframe for when they expect them to be able to. Fuck. Just….just fuck.

Friendly Banter

Sat down on the bus today – 458 errors. Most of them hidden deep within system files like windef.h and excpt.h. Man, I must have reaaaaally been using something wrong. Maybe it was that _getcwd POSIX function I had hacked in to try out my font rendering code. I remembered I put a header in for that that I’d have to remove later. Nope, that doesn’t seem to be the issue. Wait, what? What?
A friend of mine had helpfully decided to show off some code to me the other night. Of course, he just typed it in the first available text box, which I later saved and closed automatically while shutting down my computer.
The source of my errors was this

#define int argh

So if you ever run into this error – it’s probably my mate messing with your head. Watch out for him – he’s ninja!

Class Act Post-mortem

As promised, here’s the breakdown of what went right and what went wrong with the game Class Act: made by myself and 3 QANTM graduates during Game Jam Sydney.
Note that the entire game was conceptualized, designed and created over a very short (48hrs) time-frame; this alone makes it one of the most impressive projects I’ve been a part of. A lot of what I mention will be specific to how we tracked and used the time given to us, and may not be applicable to projects with less strictly enforced timeframes.

What went right:

The most fun section to answer!

  1. We finished it! Not every team involved in the jam managed to achieve that.
  2. We adopted an iterative development strategy. As the project came together we made an effort to force ourselves to find points where we could stop our work, play the latest version, then go into a separate room and decide what was missing and what was needed to make it closer to/a better game. It was sort of like planning sprints in Scrum, but without any formal management framework.
  3. Art. Our artist was experienced in 3D modelling and had never worked with pixel art or sprites at all. Which makes the graphics that he produced even more incredible. They were expertly crafted, pixel perfect, and had exactly the look and feel we were going for. Our artist single-handedly gave our game an 80’s reference, which was one of the requirements.

What went wrong:

Things to learn from

  1. Bad choice of tools. We ended up using what the majority of us were used to, which was Allegro: a 2D graphics library not far off from GDI. It did blitting and basic image loading and nothing else. Because of this we wasted a lot of time getting something on screen, and an epic amount of time writing our own movement, collision and animation code. We were trapped doing 2D because we weren’t all familiar with a single 3D framework and despite our artist doing some amazing pixel art, he would have been much happier making models. Because of the time taken to work with Allegro, we never even had time to polish.
  2. No polish. Yeah. Lack of time or code design for creating gameplay variables that could be tweaked to improve the gameplay. Little things like a visible view area for the teacher, or tweaking the reaction times of teachers/students would have upped the fun level if we’d had the time or the ability to tweak them in-game and find the perfect value. Bringing along a reusable console class for providing all that functionality would have made a lot of difference in the end product
  3. Time management. For all of us this was our first game jam event, and most of us had issues with managing our sleep and our work. Each of us had different issues: for some the sleep was ineffective, for others there wasn’t enough and they were fading during the last minute cram at the end. I don’t think it’s a common thing for many developers to know the limits of their bodies, or be familiar with their sleep cycles etc.; it’s the kind of knowledge that proves useful in a weekend game challenge though.

There was lots that went right, and lots of stuff to learn from, and I look forward to putting it all to good use as soon as the next Game Jam is announced!

For those interested in having a play, the files for Class Act can be downloaded from the Global Game Jam website here

Japan travels: Day 4

The third and final instalment in my diaries from my visit to Japan in April 2009. After this entry, I found myself drinking and socialising every night, and sleeping on the train on the way to the next part of the country, so I never really got the chance to write any more entries. Still, it was totally worth it :) Enjoy.

I wasted a lot of time in the morning trying to see some sights with Marina. She only had an hour, but instead of leaving her at the station and going off on my own I tried to see some temples with her. They ended up being too far to walk and it was a disappointing morning. Plus she missed her train. Oh well, in future I know when to say goodbye 😉

Then I visited Osaka castle. The castle grounds were truly massive, it took me quite some time to reach the castle itself after walking through parks and forests and over moats to the top of the hill. It was a spectacular wander, and the castle itself was quite impressive. I climbed to the top (16 flights of steps!) and then spiralled my way down the floors to the bottom looking at scrolls and artifacts from various eras in Japanese history. They even had lenticular pictures, and holographic movies playing. Very cool. It was a perfect example to me of how the Japanese blend their old traditions and cutting-edge technology almost seamlessly. Also, there was a monkey that did a back-flip :)

Then it was on to the Shinkansen and sayonara Osaka! The speed of the trains is quite impressive, and I found my ears popping a lot as the train rounded long corners and went in and out of tunnels. When there was a chance I jumped to a window seat to check out the scenery. I was expecting a lot of the rice fields to be around, and though there were a few I found that there mainly seemed to be city everywhere. A lot of buildings and concrete and roads surrounded the train most of the time, and each city sort of merged into the other after a while.

Caine was waiting for me when I got through the gates, and it was over-whelmingly good to see a familiar face. I was giddy with happiness at being around someone I knew, and carried that energy with me when we went out that night.

Darts and Pizza was on the menu, and they were both delicious! I accidentally ordered the curry pizza (Doh!), and it wasn’t spicy at all (woohoo!). The dough they make the pizza with here is lighter and more fluffy, and it makes almost any topping oiishii.

Then Caine and I grabbed a couple beers from the local 7/11 and talked shit for hours. It was so good to have someone around, and the poor Japanese must have thought we were crazy :) We eventually called it a night around 2 am, and vowed to be up and ready to leave around 8am.

It really was one hell of a trip, and I can’t believe I waited so long to get out of the country and experience a new world.

Normal blogging returns next week!

Japan travels: Day 3

No Diary from Day 2, as I spent the whole day lugging my baggage to the wrong hotel, then not making it to the aquarium before it closed and then missing the swing dancing. So instead, enjoy Day 3 of the diaries from my trip to Japan in April:

Mmmm, beer.

Well, i”m counting day 2 as a write-off. Nothing much happened besides me getting lost and being disappointed with the gambling. More on that later.

Day 3 was much better. I headed to the aquarium and was surprised at how different it was from the zoo. All the fish, otters & dolphins looked very happy in their enclosures and were playing around and acting up. Also, there was a giant Ferris wheel nearby. I seem to gravitate to those :)

After the aquarium I visited the Floating Garden Observatory, the giant twin towers visible when coming in to Osaka station. The glass lift up was awe-inspiring, and the way down would have been too if I didn’t have to rush it the first time to put my contacts in & dash back up. Doh!

The view was spectacular. I got a birds-eye perspective on all the wrong turns I took the day before, which was quite an eye-opener. But more than anything else, I was blown away by how quiet it was. I don’t know what I was expecting – a constant whooshing and small children being blown away by gusts of wind I suppose – but it wasn’t anything like I imagined. It was dead calm, and the only noise when I walked around was made by me, jingling my keys in my pocket accidentally (don’t ask).

Being that it was that I was visiting all the touristy sights, I saw more Caucasians on this day than in my other days plus Malaysia combined. I struck up a conversation in the Sky Garden lifts with a lovely couple (David and Ruth Higgins) that turned out to be from Mosman – barely 40 minutes from my home in Australia.

Touristy stuff was definitely the flavour of the day, with a spicy tinge of homesickness. Okay, maybe the chef used a lot of spice. just writing the phrase “my home” made me emotional. I’m not sure if chatting with my friends & brother tonight made me more or less homesick. But I figured the best solution was to get really shiitake-faced.

So I headed off to a local jazz bar to pen this drivel and drink the local beer. Which was delicious but bloody expensive at about $11 a schooner!! Still, drunkenness worked it’s charm, and I ended the night chatting with a lovely Swiss-residing Italian girl called Marina. And drinking far, far, far too much sake.

Part 4 next week!

Japan travels: Day 1

I haven’t had time to put together a blog post this week, so instead enjoy some of my notes from my visit to Japan in April 2009…

Okay, so….day 1. I arrived in Osaka at 6:06 in the morning, about 8 minutes after sunrise. It would have been beautiful if I’d gotten some sleep on the plane. I kept waking up everytime the drinks cart went by so I could order another Bourbon and Cola. Gotta get my money’s worth on the flight, you know!

Anyway, after a little wandering around trying to find an ATM, I hopped on my first Japanese train. It’s true, they’re clean and fast and run on time. I think there’s two systems of trains: the government-assisted JR trains (the ones I can travel on for free), and then each region has one or more ‘private rail systems’, that are wholly owned and run by private companies. Sometimes the systems share stations, sometimes they split them down the middle. Seems complex, but it’s actually surprising how simple it ends up being once I’m down on the platform. And a bit of healthy market competition never hurt anyone, did it?

My first night is at the Osaka International Youth Hostel, which is actually about 20 minutes out of Osaka by train. It’s surrounded by this amazing park, which literally has forests of cherry blossoms and some kind of fir or conifer trees I think. Overall, it’s overwhelmingly more pretty than any garden I’ve ever been to in Australia. This park ALSO has tennis courts, batting cages, swimming pools and waterlides!! And it’s topped off with three of the most amazing children’s playgrounds I have EVER EVER witnessed in my history of being an on and off traceur. I can’t wait to come back here when I’m training again. Seriously. I jizzed in my pants – NO! Not in front of the children!

Well, my next stop was Tennoji. My aim was to visit Spa World and have my first public bath (and to shower and change out of yesterday’s clothes), but I forgot about that when I found out Tennoji zoo was in front of me :). I spent most of the day wandering around the zoo getting sunburnt (despite the help of a lovely old lady who came over to let me know I still had ‘shiro’ on my face when I thought I’d rubbed the sunscreen in completely). And seing all the Japanese children and their milfs at the zoo made me realise I find Japanese kids ridiculously cute! I want one!! Stealing is an option I suppose, but I’m sure there’s a more fun way of going about it :)

After aimlessly wandering around Osaka station looking for the WiFi promised in my guide book (the cafe was closed and there was no wifi network), I had my first attempt at ordering something in Japanese – a coffee. The counter girl found it very amusing, because I tried to order ‘kohi shiro’ (coffee white). Turns out it’s much more obvious than that: ‘mirakuu kohi’ (milk coffee). Oops :)

Then, after travelling back to the Youth Hostel, I had my first bath (solo, and didn’t last long because I got bored of sitting in the water staring at the wall), FINALLY changed my clothes, and then missed supper :). Providence then had me staring at a voucher vending machine, trying to decide on a dish based purely on how hot the 2cm thumbnail picture looked. I took a lucky guess, and had the best soup I’ve ever tasted as a result!

On a side note, there seems to be a huge number of Japanese that wear medical facial masks out in public (especially on the trains). To each there own, they still seem eager enough to smile and strike up a conversation, but I admit it does kinda weird me out a little. But then I think they had the same reaction to me when I was walking through the park barefoot :)

That’s day 1, and I sign off with a feeling that it’s going to be a full and interesting holiday

New iPhones and the Hero

So this Thursday I finally went into the Apple store to get the intermittent issue with my iPhone looked at. Ever since I first got it, the handset speaker has been popping and cracking in my ear whenever I tried to call someone, making them very hard to hear most of the time. In fact, I think a major contribution to my seething hatred of the iPhone was my inability to actually use mine as a phone! That aside, I never wanted to go back to keypad text-messaging, so I put off the inevitable tech support visit for as long as I could. But my warranty is soon due to expire, so I made my appointment and trundled down to the local Apple store on Thursday.

Intermittent issues are annoying little buggers, and always seem to know when you’re getting someone else looking for them and hide away until you get back home. And lo and behold, as I sat on the annoyingly hip couch in the annoyingly hip Apple store surrounded by computers with single mouse buttons that just screamed “Look at me I’m so f**king annoyingly hip!!” and awaited my turn with the ‘Genius’ aka annoyingly named tech-support geek: my intermittent problem disappeared. :(

Not to worry the Genius, he took one look at the bottom of my case, noticed a crack I didn’t even realise was there, and replaced the whole phone with a brand new refurbished one! Go banana! So after re-restoring, re-jail-breaking, and (annoyingly) losing all my Apps, I gots me a whole new iPhone!

Later it was pointed out to me that Apple get so many tech support issues they do this with everyone they can. That way they can keep their annoyingly hip designs away from anyone who might offer cheaper tech-support out-of-warranty, and in fact is Apple’s way of actively screwing their own suppliers. I guess screwing their customers out of a decent media/sync app wasn’t quite enough for them. :(

So despite my brand new Apple-pod, I still eagerly await the arrival of my HTC Hero, my own personal Jesus Christ. Okay, okay, I’m sure it’s not all that and it’ll probably be either really disappointing or only offered by Optus in Australia (I’m actively begging otherwise from Virgin right now). But it’ll certainly be a huge step up from my annoyingly hip iPhone :)