Starterkit Price Drop, Sales Numbers

On August 16, 2010, in Announcements, Marketing, by Steffen Itterheim

The important bit first: the price of the Line-Drawing Starterkit is back at $179!

The simple reason: customers voted with their wallet, it sold zero units at the $299 price point over the last two weeks while people kept asking me for rebates and price drops. I clearly misjudged the value proposition of the Starterkit and how much potential customers would be willing to spend.

About Thinking, Learning and Knowing

I’m going to be upfront about the sales numbers because I want to be instructive and convey the lesson’s I learned. I also find these numbers posts very intriguing myself. One of the things I love about working under my own terms is that I can choose how transparent you want to be. I feel there’s more to gain from transparency, being open and upfront, and sharing what you know then there is to lose.

I’ve actually been told a few times that you can’t sell to cocos2d developers. Which I find astonishing. “I don’t think there are sufficient willing customers” was the one sentence I received in an email which I find most telling. Thinking is not knowing. Thinking is: not knowing! Trying and not succeeding is ok, but thinking and not even trying is not. The former you might regret financially but seldom will you regret having done it. The latter is just being complacent and accepting the status quo, or simply a reluctance of pursuing unconventional business ideas.

I can only say: I’ve learned a lot from running this website over the past 4 months. Certainly more valuable lessons and knowledge than from most of the books I own, and the above selection is just a fraction of my library. They are the books I hold most dear and are most relevant to my work right now, including Stephen Hawking’s Universe in a Nutshell as the perfect separator between left-brain (hard skill) and right-brain (soft skill) books. It puts everything in the proper perspective. I certainly didn’t expect to learn some of the lessons nor was it easy to deal with the very unexpected ones, but I did nevertheless. The good part about the hard lessons is that they make me think even harder to learn what I need to know to understand. I also have a bunch more unconventional ideas now. And I grok Invictus.

The Numbers

The Line-Drawing Game Starterkit has been on sale (40% off back then) from July 10th to August 1st, that’s 23 days. From July 10th until the public announcement on July 20th the sales were limited to my Newsletter subscribers, close to 670 people were given the password to access the sales page at the time.

When I formed the idea of selling a Starterkit, I punched some numbers about website traffic, pricing, conversion rates, looking at other products, thinking of what certain indicators could mean, why people are having success and why others don’t. Being a pessimist I came to about 3 sales per month if the price is around $200. That would have been nice, and would have allowed me a return of investment in less than 6 months. And when I was optimistic I thought I could be making up to 5-10 sales per month, perhaps by being featured prominently. I definitely had enough positive indicators to go ahead and try making and selling the Starterkit and being sufficiently convinced that it’ll have a positive impact, financially and otherwise.

The reality is that I sold 30 copies at $179 each within 23 days! Way, way more than my expectations. See the screenshot of the payment report to the left for the monetary details. Note that the first section with 3 sales were test sales by myself, so that amount should be deducted from the total. Also, 30 times $179 does not equal the sum on the bill because surcharge fees depending on the payment method have already been deducted. Net sales is the amount after Plimus took their share, which is close to 5% if I remember correctly.

I estimated my return of investment (break even) at about $4,000. So overall it’s not bad. Not bad at all given that I made all those sales in 23 days instead of months.

The downside to this story is that after setting the price high at $299 I did not make a single sale in the past 2 weeks! This price point seems past a certain pain threshold that developers are feeling comfortable spending. Customers voted with their wallets and I basically killed my own business by modifying just one (crucial) aspect of it. I was my own worst enemy by making a wrong judgement call.

And of course I’ll try to fix it: from this day on forward the Starterkit’s regular price will be back at $179! It has proven to sell at this price point and I’m hoping to see sales pick up again. Despite this no-sales period of over 2 weeks the Starterkit earned me $120 per day on average, or an hourly rate of $15 assuming a regular 8-hour work day.

The Future

If it turns out that continued sales from the Starterkit allow me to live off it, I’m going to run this website full-time in the near future. That means more free stuff, more intriguing blog posts and every once in a while a new commercial product that targets very specific unfulfilled needs of cocos2d game developers. You might consider the cocos2d book to be one of these commercial products, and I intend to improve it after press by listening to reader’s feedback and filling any holes with free Tutorials and FAQ entries on this website. It will be a book that continues to get written.

More Lessons to learn

If you want to learn some business & marketing lessons in general I recommend reading The Long Tail to understand how niche markets work and Influence: The Psychology of Persuasion for a lesson in marketing which I find important to understand both from the seller’s and the customer’s point of view. The Long Tail was instrumental for me to actually become comfortable with the thought of selling a product to a niche audience and why that idea might just work. But also instrumental because I just keep shaking my head when I read the naive comments of some people. That’s also where how to deal with critics comes in handy.

cocos2d Book, Chapter 8: Shoot ’em Up

On August 14, 2010, in book, cocos2d, by Steffen Itterheim

Chapter 8 - Shoot ’em Up

This chapter will finish the shoot ’em up game. There will be enemies and powerups. It raises the issue of good code design when certain things like shooting and moving are common to all objects while other things such as what to shoot and where from and to depend on who is shooting. And then to determine who is hit by whose bullets.

Of course no shoot ’em up game is complete with a boss monster that takes a couple hits to kill. So it’ll need a healthbar. At the end of the chapter this shoot’ em up should be a fully playable game, with Chapter 9 complementing it with visual effects by using the cocos2d particle system. But I’m getting ahead of myself here.

Summary of working on Chapter 7 - Scrolling With Joy

Once again I renamed the chapter a bit since it’s divided into two parts: a parallax, infinitely scrolling background and input via SneakyInput, featuring a fire button and an analog thumbstick respectively at the end changed to a 8-way digital pad.

The parallax scrolling background consists of several bands or stripes which were created on different layers each in Seashore and then saved as individual 480×320 images. They were then added to the Texture Atlas by Zwoptex. The cool thing about this is that Zwoptex preserves the original image’s size while stripping away all transparent parts. So the images take up little space in the Texture Atlas but in game you don’t have to position them individually, you’ll simply place them at the center of the screen.

To achieve the endless scrolling effect two of each image where added side-by-side to each other, with one flipped on the X axis so the images align neatly. Whenever one image has scrolled outside the screen it is moved back to the right side of the screen. At the end I also fixed the vertical flicker lines which can appear due to round-off errors when moving the sprites. And of course they all are drawn with a CCSpriteBatchNode.

The SneakyInput fire button allows continuous shooting and faster shooting when you just tap it, while the thumb stick controls the ship’s movement in both analog and digital (8-way) variants. The Ship class’ setPosition method is overridden to keep the player’s ship within screen boundaries at all times. Finally an extension class gives SneakyInput the same autorelease initializers used by cocos2d, and adds another good example of just how useful Objective-C categories can be.

cocos2d Book, Chapter 7: Side-Scrolling Shooter

On August 6, 2010, in Announcements, book, cocos2d, by Steffen Itterheim

Chapter 7 - Side-Scrolling Shooter

The shooter game will be controlled with a virtual joystick using SneakyInput. The background parallax scrolling will be implemented not with the CCParallaxLayer, as it does not support endless scrolling (as far as I know, please correct me if I’m wrong). The rest will be gameplay code, mostly spawning enemies, moving them and collision tests.

The chapter will be submitted on Friday, August 13th. Yup, Friday the 13th. Scary.

Summary of working on Chapter 6 - Sprites In-Depth

I decided to rename this chapter to Sprites In-Depth as it deals mostly with Sprites, Sprite Batching (formerly known as Sprite Sheets), Texture Atlases and Zwoptex as well as general texture memory management. All the while laying the foundation for the game to be made in Chapter 7.

While working on this chapter I noticed that it’s awfully complex to create a CCAnimation class, especially if you’re not using a Texture Atlas. So I decided to illustrate how to add helper methods by adding them via a Objective-C Category to the CCAnimation class. Now you can create a CCAnimation with just one line of code, instead of around ten.

Once more I created some of my now famous doodle artworks. If anything this should show that even a programmer can do art. Or, well, at least something that vaguely resembles art.

I was a bit surprised by one thing though, and that is how little the use of the CCSpriteBatchNode contributed to the framerate in this particular case. I added all the bullets to a CCSpriteBatchNode and found only a 15% increase in performance, it went up from 45 fps to a little over 50 with all those bullets flying. I sort of expected a bigger impact from previous experiences.

I’m happy to announce that the cocos2d book I’m writing is now available for early access as an Alpha Book! If you click on the previous link or the image you can view the book’s description. Look for the “Buy Alpha Book” button on the left side of the book’s website, inside the “Book Details” frame.

Access to the Alpha Book costs $27,99 - the same as the eBook version. You get to read the unedited, unfinished pre-release chapters of the book. The full book isn’t available yet, but when it becomes available, you will be able to download the full eBook.

At the moment 5 chapters are available with new chapters being written on a weekly schedule.

Your feedback will be very valuable to make this book the best it can be! Please send your feedback to Apress, not to me directly. Apress will evaluate your feedback and send it to me with duplicate and already planned or implemented feedback sorted out, so that I can focus on writing.

Tagged with:  

cocos2d Book, Chapter 6: Spritesheets & Zwoptex

On July 30, 2010, in Announcements, book, cocos2d, by Steffen Itterheim

Chapter 6 - Spritesheets and Zwoptex

In this chapter the focus will be on Spritesheets (Texture Atlas), what they are and when, where and why to use them. Of course a chapter about Spritesheets wouldn’t be complete without introducing the Zwoptex tool. The graphics added in this chapter will then be used for the game created in the following chapter.

The chapter will be submitted on Friday, August 6th.

Anything about Spritesheets you always wanted to know?

Just let me know. I’ll be researching what kind of issues people were and are having regarding Spritesheets. I want to make sure that they are all covered in the book.

Please leave a comment or write me an email.

Summary of working on Chapter 5 - Game Building Blocks

I finally found a better title for the chapter. A big part is about working with Scenes and Layers. A LoadingScene class is implemented to avoid the memory overlap when transitioning between two scenes. Layers are used to modify the game objects seperately from the static UI. I explain how to use targeted touch handlers to handle touch input for each individual layer, either swallowing touches or not.

The issue of whether to subclass CCSprite or not is discussed and an example is given how to create game objects using composition and without subclassing from CCNode and how that changes touch input and scheduling.

At the end the remaining specialized CCNode classes such as CCProgressTimer, CCParallaxNode and the CCRibbon class with the CCMotionStreak are given a treatment.

As you can see from the pictures, I’m also making good progress at becoming a great pixel artist. Only I have a looooooong way ahead of me still. But I admit, the little I know about art and how much less I’ve practiced it, I’m pretty happy about the results and having fun with it. The cool aspect of it is that this should be instructive art. It doesn’t have to be good. So I just go ahead and do it and tend to be positively surprised by the results. I’ll probably touch this subject in the next chapter about Spritesheets: doing your own art. It’s better than nothing, it’s still creative work even if it may be ugly to others, and it’s a lot more satisfying to do everything yourself, even if it takes a bit longer and doesn’t look as good. At least it’s all yours, you’re having fun, and learn something along the way. And you can always find an artist sometime later who will just draw over your existing images or who replaces your fart sound effects with something more appropriate.

Btw, if you’re looking for a decent and free image editing program for the Mac, I’ve been using Seashore for about a year now and I’m pretty happy with it.

I just stumbled across this …

On July 29, 2010, in cocos2d, by Steffen Itterheim

Google Sponsored Link: Cocos2D Explained

The iPhone Game Kit:

Currently 50% off at $49.

It says: What You Get:

  • an iPhone Game Dev Book
  • complete game source code
  • cocos2d
  • lots of game art
  • publishing guide
  • free upgrades for life

Site is hosted on two different domains: iphonerpgkit.com and iphonegamekit.com

My thoughts

I tried the game and it seems to be a ISO Map RPG style hack and slash game. It’s probably ok for a starting project if you plan to do a RPG hack & slash. Most of its content seems to be prebuilt tilemaps. From a technical perspective the combat system and D-Pad controls could be interesting.

My impression: impressive marketing effort. Effective sales pitch. Typical single-product sales pitch website (no relevant free content) which makes me cautious though. Including free cocos2d and free game art in “what you get” bullet-point list is technically correct but misleading. Info about the guy behind this is unimpressive (made a game in 1995?). But there’s a forum and questions get answered.

UPDATE:

I bought it, skimmed over the code. Clearly structured, consistent coding style. The PDFs are aimed at beginners and they are well written, overall 144 pages. Over 4,000 lines of code and plenty of assets used by the game. It’s not a bluff package and a serious amount of work has been put into this.

UPDATE 2:

The key point to take away is this: he is marketing it directly for beginning cocos2d developers: “You get to Learn Cocos2D”. But the iPhone GameKit is from my point of view most interesting to those who want to create a hack & slash RPG for iOS devices in general and learn how to use CCTMXTileMap specifically.

Tagged with:  

[Solved] weird scene changing bug…

On July 27, 2010, in cocos2d, by Steffen Itterheim

I need help. I’ve run into strange problems with a very simple cocos2d v0.99.4 project created from the cocos2d project template. It’s two scenes with a layer each, much like the regular HelloWorldScene layer. Each scene is simply supposed to replace itself with the other scene, on touch. What happens is that the first scene started with runWithScene is never deallocated after the first scene change. So it stays in memory and keeps receiving the touches, which means a touch is always behaving as if switching from the first to the second scene.

What’s more, if I add the onEnter and onEnterTransitionDidFinish methods to the first scene, without adding any code to them, the first scene/layer doesn’t receive any touch events at all. The second scene doesn’t show this behavior and works fine with these methods implemented.

Maybe I’m just overlooking the very obvious, if you could take a look and let me know if there’s anything I’m doing wrong with this code please let me know! Thank you.

Download the code here: ScenesAndLayers02

Tagged with:  

Learn-cocos2d.com Website Statistics

On July 27, 2010, in Announcements, Marketing, by Steffen Itterheim

Over 9,000 visits in the past month with 40% new visits. 40% of that traffic is driven by google, close to 30% is direct traffic (which I believe includes Twitter) while cocos2d-iphone.org sends less than 10% of the total traffic. My own and recently neglected blog (last post May 23rd) gaminghorror.net still sending about 5%.

I am having a hard time making anything out of it actually, I have been running only one other notable website before and the focus and traffic stats were wildly different. If anyone would like to share and compare numbers I’d be happy to do so. Especially I’m interested if the ratio google vs direct traffic vs cocos2d-iphone.org is comparable to your numbers, or possibly totally different. I also don’t know what numbers can be considered good, ok or bad numbers, especially in context of cocos2d related websites.

The short little peak on July 10th was when I sent out the Newsletter announcing the closed sales period of the Starterkit, the plateau on July 19th was coming from the public announcement of the Starterkit. It’s notable that both resulted in the same number of visits but the Newsletter spike was very short-lived since most people are reading their emails within 24 hours. A funny self-made statistic: I’m able to convert approximately 0,0034% of website visitors to Starterkit customers. How is that for a conversion rate?

I did notice two things, which both surprised myself. One is how cocos2d-iphone.org accounts for less than 10% of the total traffic. The only time I saw a real spike in traffic from cocos2d-iphone.org was with the blog post announcing the Learn cocos2d website. That’s when the website was all fresh and new, and everyone went there at once to check it out. Interestingly, that wasn’t a spike followed by a severe drop-off by several hundred %, instead it created just over twice as many visits as the website gets on average anyway. The other thing I’m stunned to see is how the total number of visits curve over the whole time is astoundingly flat, especially for a website which is less than 3 months old:

Double-Rainbow all the way! But what does it mean?

I have no idea, mostly because I have nothing to compare it to. Maybe you have some thoughts or website statistics you’d like to share?

Here are the full learn-cocos2d Google Analytics results from the last 30 days as PDF:

Analytics_www.learn-cocos2d.com_20100625-20100725_(DashboardReport)

I hope you’ll find that interesting. I know, it’s data alright … boooooring. 😀

Tagged with:  
Page 34 of 37« First...1020...3233343536...Last »