Rizer

KBO

9 October 2011

I’m terrible at poker. The trouble I have with poker is that I’m just too optimistic. When playing Texas Hold ‘em, if I’m dealt a 2 and a 4, I’ll keep betting, hoping for a straight, rather than sensibly folding given the crappy cards in front of me. Optimism is no bad thing, but you’ve got to learn how to harness it.

As an entrepreneur, optimistic risk taking is part of my character, but I’m aware that I need to watch out for the ‘grass is greener’ mentality, which will ultimately cripple my ability to produce anything. The culture of today certainly feeds this dangerous way of thinking. We tell ourselves that newer is always better, and fill in the unknown with the best possible scenarios.

It’s like when a teenager meets a cute member of the opposite sex for the first time, and it’s “love at first sight”. Before they’ve leant anything meaningful about the other person, they’ve filled in the blanks with their dream guy or girl, and it’s the dream they’re falling in love with. Or take the recent expectations set for the new iPhone’s announcement. There had been so much speculation, filling in the unknown with the unrealistic, that people were disappointed when they saw the 4S. In reality, though, the iPhone 4S is a great improvement – the press just over hyped it, knowing nothing of what it was really like. I’ve done this myself many times, too. I remember seeing the trailer for Jumper and thinking it looked awesome – what a massive letdown it was when I actually went to see it at the cinema!

As indie developers, we can easily fall into this trap too. When we get to the stage in a project where the honeymoon period is over, and the hard slog lies ahead, every other idea for a new project seems way more appealing. We imagine all the highs of starting again with something fresh, of releasing something awesome and raking in the sales, and forget about the endless debugging, the hard slog and the negative reviews. We’re so quick to convince ourselves that the new is better, and so we jump ship. But then the same thing happens on the next project, and the next, and we end up never releasing anything! I’m not saying not to be optimistic – quite the opposite. I believe wholeheartedly that the best is yet to come, but you can be optimistic about what you’re working on now. The danger is in the endless cycle of jumping from project to project, because you believe it will make everything better.

So how can you avoid this happening to you? Well, in the first instance, you need to pick your projects carefully. Make sure that it’s small, manageable and something that you’re so passionate about that you’re happy for it to become a part of who you are. Make a note of all the reasons why you think this project will be awesome, and tell yourself on a regular basis how great it will be when this thing ships. Then tell everyone else. Tell your friends what you’re working on and get them excited. Blog about it and tweet it. Do whatever you can to make not finishing painful and embarrassing. Then when the urge comes to abandon the project – and it will come sooner or later – fight it with all you’ve got. Remind yourself why you started it in the first place. And count the cost of starting something from scratch.

Of course, there are some times when it’s the right thing to do to abandon a project. If something that made it a great idea when you started no longer holds true, then maybe you should call it a day. But the majority of the time – and I’m talking to myself as much as anyone – you should keep going. Don’t give up easily – the grass really isn’t any greener atop the fields of new ideas. The best thing you can do is ship a product. Who knows what you could be missing out on, and what you’re denying the world of, by giving up on something that had the potential to be great, just because things got hard.

Apparently Winston Churchill used to end nearly every phone call with the phrase KBO; it stands for “Keep Buggering On”. Wise words!

Create Value, Don’t Chase Money

24 September 2011

I listened to a podcast this week that really got me thinking. The podcast was an episode of Founders Talk with Drew Wilson. There was a ton of great content in there, but one thing in particular that stood out was Drew’s approach to entrepreneurialism, which was not at all about chasing after money, but about making something he really needed, then selling it to others.

I think this reflects really well with what I’m doing with my pixel art app. What I’ve found is that I keep thinking about how much I really want to use the app right now, but it doesn’t exist yet, so instead that drives me on in creating it. I was pleasantly surprised when I discovered that I’ve only been working in it for a month so far, as progress has been pretty decent given my full time job and other commitments. I think a lot of the reason for that has to do with the motivation of getting the app done so I can use it. Here’s a look at the latest mock-up.

Pixel app mock-up

Obviously the hope and expectation that the app might make some money is motivating me too, but it’s very secondary. I have a theory — which I have no way of proving — that in the long run, the financial rewards from of creating what you need the most and are most passionate about will be greater than if you are constantly trying to chase after money making ideas. It’s about creating value, not chasing cash. When you create something of value, that fills a need you have, you’ll be creating value for other people too.

Maybe my theory about the financial rewards being greater isn’t accurate; but even if that is the case, the rewards will still be greater. If you create something valuable to you, the worst case scenario is that you end up with that tool at the end. Even if no-one else buys what you’ve made, the project was not a total waste of time, and you’ll be proud of what you’ve made, because you will have done the best job you could possibly do. I find that this constant reminder that I’m going to be using my app a lot, means that I’m even more of a perfectionist than usual. But if you make something you don’t care about, hoping to make money from it, and the idea flops, then you’ve done nothing but waste your time, effort and money.

I also think it means I’ll actually finish this project. I’ve tried the projects where I’m just chasing after money, trying to get rich quick, and I’ve never actually finished one of those projects because they’re just so draining, and never fun. Chasing money is no way to build a business either, as far as I can see. If you build something of value, sure it might take longer to get off the ground, but it’s then that you’re building to last.

My final thought on this subject is that I want to love what I do, and do what I love. The dream right now is to go full time with Rizer (ok, the dream’s way bigger, but you’d think I’m crazy!), and when I reach that point, I want to be able to leap out of bed in the mornings, pumped about what I get to create in the day ahead. But if I’ve reached this point by making apps just because I think they might make a quick buck, with no passion invested and no desire fulfilled, then what’s the point? I may as well still be working for “the man”, because money will have become my boss. Screw that!

Make the app you want to use. Make the game you’d love to play. Create value, don’t chase money.

iOSDev UK Conference, and Building to Last

11 September 2011

Update — iOSDevUK Conference

This week I went to Aberystwyth, a small seaside town on the coast of Wales. Why on earth would I do that? Well, for iOSDevUK of course! I was there speaking on developing for other platforms, which got some really positive feedback from. I was also making the most of being there, attending and meeting a huge range of cool and inspiring people. Thanks to everyone who helped make that a great event.

I’ve made some fairly decent progress on the pixel art app, including switching layer visibility and a range of design improvements. Not a lot to show yet, but I’m happy with progress so far. Hopefully by the time I do my next post, I should have something vaguely usable.

Tech Tip — Hard Pixel Scaling

I was asked in my last blog post how I do the pixel art in my new game. Well, firstly, just to be clear, I am working at the perceived resolution, not device resolution. So all of my assets work at 240×160 resolution, and I scale things appropriately. In cocos2d, you can simply put:

[self setScale:2.0]; 

on your layer, but that will leave you with blurred edges as it is by default antialiased. To counter act this, for each texture I load in, I’m calling

[[sprite texture] setAliasTexParameters]; 

To simplify this process, I’ve simply subclassed CCSprite and added this behaviour. I’ve done this in such away that means it’s still possible to add new layers at full resolution, which I’m planning on doing at some point.

Quote

“Build a business, not a startup”

On my way to Aberystwyth, I listened to ReWork by the guys at 37signals. It’s a great book, and a great antidote to the startup mentally so prevalent in our industry. There’s a lot I could have pulled out from it, and I really recommend that you get hold of a copy. Talking about building a business, not a startup, they talked about how we should be in it for the long haul, building something profitable and sustainable, rather than looking for the out before we’ve even started. This got me thinking not just about Rizer as a whole, but about the various projects I work on and release. I want what I’m building to last many years into the future, which means I want to build products that I’m really passionate about, and will be happy to support and update for many years to come. And as a company, I want Rizer to be an entity that outlives me, that I can pass on to future generations.

Weekly Update And Two Finger Scrolling In UIScrollViews

27 August 2011

Hurrah for iDevBlogADay! Thanks again to Miguel for the crazy amount of work he’s put into getting this new generation back up and running. I’ve decided to bring a new format and structure to these weekly blog posts, with a useful tech tip, followed by an update on what I’ve been doing, and ending with an inspirational or challenging quote.

Tech Tip: Two Finger Scrolling In UIScrollViews

Tech tip first for those stumbling in from El Goog. I recently needed to make a UIScrollView that didn’t pan when a single finger is dragged over it, but instead passed this action onto it’s child view. Not as simple as you might think! You can’t intercept touchesBegan, because it never gets called if the pan gesture is detected. There are some solutions out there that subclass UIWindow and do some crazy stuff – I think this solution is much nicer. The approach is to subclass UIScrollView, and modify the pan gesture recogniser that the scroll view already has to require a minimum of two touches:

- (id)initWithFrame:(CGRect)frame 
{
    if(self = [super initWithFrame:frame])
    {
        for (UIGestureRecognizer *gestureRecognizer in [self gestureRecognizers])
        {
            if([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) 
            {
                [(UIPanGestureRecognizer*)gestureRecognizer setMinimumNumberOfTouches:2]; 
            }
        }
    }
    return [super initWithFrame:frame];
} 

I should point out that I haven’t submitted any apps with this code in to the App Store, and we’re cutting pretty close to some private APIs, However, as we’re not explicitly calling any of them, I’m pretty sure that it’ll be fine.

Update: A Job, a Game and an App

In my last post, I talked about how I was looking for full-time work. Since then, I’ve started working for a company that specialises in NFC developing BlackBerry apps. Having been there a few months, I still think it was a good move, and things have worked out pretty much how I anticipated (although BlackBerry development is slower and more painful than I could possibly have imagined). Working on my own projects in the evenings took some getting used to, but now I’ve got into the flow of things, I’m finding that actually I can get quite a bit done. Of course it’s still frustrating that I can’t work on Rizer projects all the time, but frustration can be a great driving force.

I’ve found that being motivated to work in the evenings requires that I need to be exceptionally passionate about what I’m creating. At the point of going full time, I was working on a phoenix game, and didn’t really know where it was going, so it wasn’t long before I came up with something new. What I’m now working on is a multiplayer, turn-based murder mystery game. As the idea stands, one player will be the murderer, trying to hide clues in the mansion, while the others search for clues trying to find out who the murderer is. There are a lot of unknowns in how all that’s going to work, but that’s part of the fun of game development!

I chose to make the new game in pixel art, and I’m so glad I did. I’d always avoiding using it in the past as it’s so heavily used by indies, but I’ve really enjoyed making the assets so far. Having to carefully consider each and every pixel, and what shade it will be to give the right suggestion of what it’s representing is a real challenge, but I know it’s making me a better game developer. The amount of pixel art I’m going to need is pretty daunting, and now that I’ve got a shiny new iPad, and given that the iPad is so great for drawing, I went looking for a pixel art iPad app. There are a couple that look ok, but I fancy creating my own, so that’s what I’m doing. I forgot how quick, easy and fun UIKIt is to develop with. After a couple of evenings of work, I have some simple editing functionality, with the ability to select a colour from the image, paint in that colour, erase, and zoom in and out keeping everything nice and pixelly.

Quote

I’ve been watching Kevin Rose’s Foundation videos, where he interviews a range of entrepreneurs asking them how they got started. One of the things that really stood out for me was in his interview with Second Life Founder, Philip Rosedale, giving advice on being transparent.

“To the level of where it hurts, tell everybody.”

Moving Forward to a Full Time Job

7 April 2011

A couple of weeks ago, I made the decision that I was going to take a look and see what was around in terms of full time jobs. Freelancing has been a bit slow lately, and things like my previous post and the response I got made me think about this as an option. Since then I’ve been applying for jobs and am now considering options and offers, and it looks like I’ll soon be “working for the man” again. Initially this felt like a bit of backwards step, but I’ve come to weigh up the benefits and am starting to get really excited about this new season ahead. I wanted to share some of my thinking behind my decision – hopefully it might help some people who are in similar situations. The advantages as far as I see it are:

Stability

I’m at a stage of life where I have very few outgoings and no dependants, but not knowing when the next project is going to come in, or when the client will pay the invoice, or how long the bank transfer will take is not much fun. I never started out with a financial buffer, which I think has compounded issues when things have come in late. The thought of getting paid every month on the same day without fail makes financial planning so much easier. And with that stability I know I can plan things for the future, rather than stare into the great unknown.

Structure

I always found that having a big freelance project on the go meant that everything else would go out of the window. I’d think to myself that if I just blitzed through this, then I could have loads of time to work on my own project after it was all signed off. Of course, things always took longer than planned, by which time the next project would be in. Or, as recently, things would be unexpectedly quiet and catch me off guard without a plan for what to develop next. While I’ll always be at work during the daytime, I’ll always have evenings and weekends. Knowing this will give me a predictable pattern to work on my own stuff, which will make planning and making deadlines a whole lot easier.

Money

Life is about a lot more than money, but having more money is no bad thing! I’ve done the calculations and the wages I’m looking at are more than I’d be making if I had a constant influx of freelance projects. iOS developers are well sought after and well paid.

People

I thrive in a team, bouncing ideas and problems of other people. It’s been just me on my own all day for long enough.

Experience

One day I want to run my own company. So far in my career, I’ve worked for one company for five months and that’s it. I’m looking forward to seeing how a small, innovative company works and learning all I can from them, which I’m sure will be invaluable later on in life.

Inspiration

There are so many people in the indie dev world that work full time. Making games for them is not just a hobby, but a passion. They stay up late, plot out ideas on their commute to work and come up with some awesome stuff. Many of them have output more games than I have in the last 15 months, and some have even been met with great success allowing them to leave their jobs and make games full time. Every one of them is incredible in their own way, and if they can do it, then so can I.

I have no doubt that this next season is going to be a challenging one, but so was the one I’m in now. Both freelancing and working for someone else full time have their good sides and bad sides: they’re just different. One thing I want to make absolutely clear is that I’m not giving up, slowing down or backing off with Rizer. I’m still going to be making games, and more and better games than have come before. Flying Cats Game: Metro — a brand new free version — will be out soon, along with a major new update to the main game. Then, after that, I think it’s time to really push on with the next game and make something really special.

“I have learned, that if one advances confidently in the direction of his dreams, and endeavours to live the life he has imagined, he will meet with a success unexpected in common hours.” — Henry David Thoreau