This is a summary of the process of developing the game Kondrian.
You can see more on Kondrian here, or on iTunes here
Intro the indie
Half the world’s developers seem to be indie game developers, but I think there is a difference between developers who are already game developers who move to developing games on iOS, and those developers who are already developing on iOS and move into game development.
Based on the current number of games appearing in the store daily (148apps as many as 140 per day), there is a lot of game development going on.
Many of these seem to have been created by indie game developers, obviously indie game developers don’t need an introduction.
I however am coming from a different angle than most developers, a seasoned non game developer with a lot of experience on iOS, shipping my first ‘real’ iOS game (I’m not counting a kid’s game I wrote for a client because that was primarily UIKit and CoreAnimation, and much simpler).
This post has been sitting in the wings for at least 4 months. I delayed the posting until the Kondrian release.
One More Thing
Mid 2012, I attended the One More Thing conference.
One of the nice things that came out of this conference was some nuggets of wisdom from Kepa Auwae, he also had a very dry sense of humour.
Kepa is one of the founders of RocketCat Games.
Kepa’s stressed that his business strategy is always in flux, that RocketCat Games are always experimenting. They try to improve their business, by trying different things. One of his most interesting comments, was the description of a simple business model for game developers, which is actually known to us all.
Kondrian is on the App Store!
Here is the iTunes link Kondrian on the App store
And the website link: Kondrian website
Press kit: Presskit
Home grown Press release:
(with the help of GLKit)
There are many ways to do this, its often used in paint programs.
Philip Rideout’s iPhone 3D Programming has a way to do it in C++, but its hard to abstract the method from the code.
There is a nice article written here which gives the method I used.
In my case the lines are temporary exhaust lines – so I don’t need to bake the lines into a texture as the above solution does.
The method just draws line segments from point to point as rectangles. Each line segment is a sprite which is rendered which ever way you render your OpenGL sprites.
Here is a picture of a ship emitting an exhaust – that uses the code below – the ship is moving very fast – so the sharp angles don’t matter so much.
And below is the code I wrote to do the lines:
The development of my game Kondrian is coming to an end.
Here is a miscellany of what I think we’re useful lessons, each too small to warrant a blog post:
- Each of the levels in Kondrian can be 100 x 100 tiles wide. It’s simple enough to only draw the tiles when they are on screen, but I also created a scheme a bit like UITableviewCells in a UITableview in order to conserve memory. There are in fact only about 200 tiles (depending on whether its an iPhone or iPad) created, and they are reused when they go off screen. Reusing usually involves giving the tiles the appropriate texture for a tile potentially appearing onscreen in the direction that the player is moving.
All sprites (and the vertices, indices, VBOs VAs) are created at startup.
When a sprite is needed it is de-queued and enabled, only enabled sprites are updated and drawn. No on the fly malloc-ing or creation of gl buffers.
Might be described as
App which has great potential needs a touch up
and has accompanying comments:
“Its only missing one or two features!”
“I had a falling out with those overseas developers”
“I don’t know anyone who has used overseas developers who have actually made a good app – but I thought that with me it would somehow be different!”
Its called project rescue, and it will cost you either three times the cost of the project so far, or will be billed on a times and material at double normal rates.
Wanted a junior developer (preferably just out of University with 5 years real world commercial experience) who has experience in iOS, Android, Windows Mobile , Blackberry, HTML5, Photoshop, Rails, ASP and who can prove has developed apps that have been top 20 on the app store.” 60-62k k based on experience. Will favourably look upon people with 10 years iOS experience.
I once talked to an agent who claimed he had fielded someone who was an expert in iOS, Android, Windows Mobile and Blackberry.
And I said (it was 9 months ago) “but wait .. how does one get good at all those things, and why does one get good at Windows Mobile when no one is buying it?”
“And for that matter can you tell me a well respected app – written by one developer – who wrote it for both iOS and Android? I mean anyone who is good at a these things often has a passion, a focus. Good at one and passing at another I could believe, but good at all of them? Why wouldn’t they be making millions elsewhere instead of peanuts with your company?”
“Ah too be honest (sotto voce), the role actually doesn’t want anything like those developers – you would be patching up fairly crummy apps” (Real slightly paraphrased response).
That is unfortunately, a too common refrain one hears when one quotes for iOS jobs.
I’m assuming the that the race to the bottom in the iTunes app store (likely caused by popularity ranking – rather than a quality review ranking), where people pay 1 dollar or nothing for an app, somehow creates this metal context where the potential client thinks “hey if this app would sell for $1 then for sure it will only cost a few dollars to develop”
I keep hearing people say something like:
Before you start building your app, you have to check out your competition and make sure that you design your app to suit.
This is not referring to apps made for a client, where commonly because of the constraints of the client, the app is highly specified up front.
Its referring to developers who are putting their own apps on the Appstore.
Enter the challengers:
In the blue corner is the “lean startup” and in the red corner is the “competition analysis”.