Chapter    17

Out of the Ordinary

This final chapter contains no source code. I’m not even going to talk much about the cocos2d engine. Instead, I’d like to focus on where you can look after finishing this book, if you want to ask questions and learn more. Without a doubt, the number one place to go after reading this book is www.learn-cocos2d.com. Every other week I publish an in-depth article about example code, guidance, references, the state of affairs, and the occasional opinion piece. You’ll also find links to the Cocos2D Podcast and my LearnCocosTV channel.

You should also investigate which technologies may be useful to implement in your game, such as advertising, analytics, one of the many social networking libraries, and even server technology used in persistent world games.

Everything you ever wanted to know is probably somewhere on the Internet. It may simply be hiding. If you want to know where to find art, audio, and freelancers, you’re in luck—I provide good starting points in this chapter.

I also give you a glimpse into marketing and public relations in this final chapter. Those are topics I’m often asked about, and they’re full of mystery and misunderstandings. I discuss working with a publisher and how you can benefit from such a relationship and also how to market your game and yourself.

For an independent developer, it’s very important to be recognized by the community as a creative, enthusiastic game developer and to connect with the community. All your social networking efforts will then help you promote your game simply by being able to reach out to more like-minded people. If you can build a network of followers, the success of your game will follow. A lot of people get that mixed up and think it’s the other way around. It’s not.

You’ll also learn about the reference games and apps made available with cocos2d. They’ll give you a good impression of what’s possible with the cocos2d game engine and also what you can achieve as an independent developer. One of the most exciting learning tools is other people’s source code, so I’ve included a list of commercial cocos2d source code projects that are on sale for exactly this reason.

Most of all, “out of the ordinary” should be the guiding principle for whatever you do. Create something that’s different, and don’t be afraid to be different.

Additional Resources for Learning and Working

The purpose of this section is to help you find answers to your questions, get support for a particular problem, obtain more source code to learn from and base your own games on, and of course introduce you to all the cocos2d tools and some of the best cocos2d reference games.

It is also the purpose of my blog at www.learn-cocos2d.com/blog. You’ll find the latest updates and cocos2d game development tips and tricks on my blog, where I post a new in-depth article every other Thursday.

Where to Find Help

Whether you’re facing a technical problem that you can’t solve on your own or need more people to work on your game, you can get help. In addition, if you’re looking for art, audio, or tools, I know just where you can find what you’re looking for, or at least where you can begin your search.

Tip  If you get stuck and don’t know what else to try, just writing down what the problem is, what you’re trying to achieve, and what you’ve done so far can help. Most of the time it frees your mind to think of things you haven’t tried yet, and more often than not it leads to a solution. If not, at least you now have a summary you can post to a forum or Q&A site, which will help you get a good answer more quickly. The art of asking questions is all about making it easy for others to answer them.

Cocos2d Home Page

This may seem obvious, but if you have a question related to cocos2d, you should stop by and join the cocos2d community in the forum: http://cocos2d-iphone.org/forum.

In the cocos2d forum, you can ask about anything related to cocos2d. It has subforums for hot topics like audio programming, physics engines, social networks, cocos3d, and ads, as well as a general forum for Objective-C and iPhone SDK–related questions. For the most part, the cocos2d community is friendly and very helpful, and a lot of great example code and development stories have been shared on the forum.

Before asking questions, be sure to search both the forum and the official cocos2d documentation wiki: http://cocos2d-iphone.org/wiki/doku.php.

In addition, you can announce your newly released game in the cocos2d games forum. Don’t forget to also add it to the list of games made with cocos2d. You can do this on the cocos2d Games page: www.cocos2d-iphone.org/games.

Cocos2D Central

I launched a community hub called Cocos2D Central for everything related to cocos2d. Most importantly, there are forum sections for cocos2d, the book, Kobold2D, and my game kits. Cocos2D Central also hosts the official forum of cocos2d-javascript, the web browser port of cocos2d.

In the Resources section, there are several small tutorials available, and the Downloads section hosts all files I currently offer for download, including the cocos2d installer and the source code for this book.

Stack Exchange Network

Forums are a great way for communities to interact with each other. But as such, they tend to get a little chatty, and searching for a specific answer can be cumbersome because the forum’s content isn’t strictly limited to solving problems.

That’s exactly where Q&A web sites like Stack Exchange shine. You go in, ask a particular question, and get answers. Because the focus is on Q&A, it’s easier to find existing answers. And if you really like a question or answer, you can vote it up so it will be listed higher on search results.

I’m regularly amazed by the show of expertise from contributors on the Stack Exchange network. This is in part thanks to the built-in badge and points system, making it very rewarding to both ask interesting questions and write thoughtful, in-depth answers. The Stack Exchange network is comprised of several free Q&A web sites, the most popular and my personal favorite being http://stackoverflow.com, which is about programming questions in general.

You won’t find as many questions about cocos2d on Stack Overflow as you will on the official cocos2d forum, but the questions on Stack Overflow are good ones, and almost all of them get good answers. There’s a bit of confusion about the use of search tags on the site, with both cocos2d and cocos2d-iphone used to tag questions regarding the iPhone version of cocos2d. This can be attributed to the success of cocos2d for iPhone, in that it has become synonymous with the name cocos2d itself. Use these two links to find all the cocos2d for iPhone–related questions on Stack Overflow:

Stack Exchange is expanding as a Q&A web sites network. One of the latest additions is the Game Development Q&A web site. On this site you can ask general game programming questions and about anything game development–related in general, including design, marketing, and sales. Check out the Game Development Stack Exchange site at http://gamedev.stackexchange.com.

Tutorials and FAQs

Plenty of tutorials for cocos2d are on the Web, but one tutorial writer clearly stands out from the crowd: Ray Wenderlich. He’s written more than a dozen cocos2d tutorials and published them on his web site: www.raywenderlich.com/tag/cocos2d. Besides cocos2d tutorials, on this site you’ll also find other highly interesting iPhone SDK–related tips and tricks. In at least one particular case, this is also helpful for cocos2d developers, where Ray explains how to save and load your app’s data. This can be applied to saving and loading games as well (see www.raywenderlich.com/1914/how-to-save-your-app-data-with-nscoding-and-nsfilemanager).

The iDevBlogADay articles on my Learn & Master cocos2d web site (www.learn-cocos2d.com/ category/idevblogaday) are mainly tutorials and guides. You learn how to enable ARC in cocos2d projects, gain insights in the iOS Sales Statistics, how to write a Webcam Viewer with cocos2d, and how to upgrade an existing cocos2d project to a newer version—and a lot more.

You should definitely join the Twitterverse and create a list or saved search for cocos2d and kobold2d. There are so many really good tutorials, but they’re spread far and wide. Another great way to keep track of great articles about iOS development in general is to visit the Cocoa Literature web site (http://cocoalit.com) every now and then. Cocoa Literature aggregates only the best and most helpful articles.

Source Code Projects to Benefit From

Personally, I learn best by browsing through other people’s code. One of the first things I did when I got cocos2d and found the documentation lacking was to invest in the Sapus Tongue source code project to see how cocos2d is actually being used in a game. It was very helpful for getting started quickly.

Note  Since Zynga acquired certain assets of Sapus Media, the Sapus Tongue Source Code and Level SVG products are no longer available. However, the source code products I’m introducing in the following sections are excellent replacements.

The advantage of commercially sold source code compared to the open source projects is that you rarely get support for the latter, and they’re almost never updated, to the point that most of the open source projects you’ll find are using versions of cocos2d prior to v1.0—with one exception, the official cocos2d-iphone-extensions project: www.cocos2d-iphone.org/forum/topic/17546.

The following source code projects are all commercial offerings. I refrain from listing prices because they’re subject to change. You can also browse these products on my Affiliate Products page, where you can also find newer products not listed in the book: www.learn-cocos2d.com/store/affiliate-products.

Quexlor Action-RPG Engine Code and Tutorial

The Action-RPG Engine was formerly known as the iPhone Game Kit. It’s one of the first source code game kits for cocos2d and was created by Nathanael M. Weiss. The game Quexlor: Lands of Fate (see Figure 17-1) is a role-playing hack-and-slash game following in the footsteps of Diablo, featuring a large tilemap world with multiple levels, various monsters, and plenty of items. The game kit comes with a huge amount of royalty-free graphics created by Reiner Prokein, a comprehensive Make Your Own iPhone Game e-book, and a publishing guide that explains in detail how to submit your game to the App Store. Obviously, you also get the game’s excellently crafted source code, but that almost seems secondary.

9781430244165_Fig17-01.jpg

Figure 17-1 .  Quexlor: Lands of Fate (iPad) is a game made with the iPhone Game Kit

You can find the link to the Quexlor game on the App Store, an iPhone Game Creation for Beginner’s Kit, and a whole lot more information about the RPG Engine on its web site, so I suggest taking a look: www.iphonegamekit.com.

Line-Drawing Game Starterkit

My Line-Drawing Game Starterkit is modeled after successful games like Flight Control and Harbor Master. If you like to create line-drawing games, this starter kit gets you going with drawing lines, moving objects along the paths, collision detection, and a clearly structured code base, including both iPhone and iPad versions.

Each purchase grants you a site license, which means your whole team is allowed to use the game’s source code and assets. Because it’s a starter kit, you’re naturally allowed to make clones of the game. I also offer a 60-day money-back guarantee, and I’ll be happy to help you learn the starter kit’s source code and give directions on how to extend it.

Tip  If you start to follow @gaminghorror (me) on Twitter, you’ll receive a direct message from me within a day. I will include a secret coupon code with which you can buy the Line-Drawing Game Starterkit at 30% off! Should you already be following me, tell a friend to follow me to get the coupon code.

The Line-Drawing Game Starterkit’s product page contains the starter kit’s feature list, links to the demo apps (see Figure 17-2), a code sample, and the complete documentation: www.learn-cocos2d.com/store/line-drawing-game-starterkit.

9781430244165_Fig17-02.jpg

Figure 17-2 .  The Line-Drawing Game Starterkit example game (iPad)

The Space Game Starterkit

The Space Game Starterkit evolved from Ray Wenderlich’s Space Game Tutorial (www.raywenderlich.com/3611/how-to-make-a-space-shooter-iphone-game) into a commercial starter kit for making a side-scrolling shoot-’em-up game.

As with the iPhone RPG Game Kit, there’s added value in the form of four epic tutorials included in the purchase. The tutorials explain a lot of the details that go into making this particular game and games in general. Coming from Ray Wenderlich, you can expect high-quality code and tutorials.

Ray’s wife, Vicki, provided the artwork for the Starterkit. You can reuse and modify the artwork as you like as long as you credit Vicki Wenderlich. She runs an iPhone art blog at www.vickiwenderlich.com.

Learn more about the Space Game Starterkit, pictured in Figure 17-3, in Ray Wenderlich’s store: www.raywenderlich.com/store/space-game-starter-kit.

9781430244165_Fig17-03.jpg

Figure 17-3 .  Ray and Vicki Wenderlich’s Space Game Starterkit

iUridium Source Code

If you had a Commodore 64 home computer in the 1980s or early 1990s, chances are that you’ve played or at least heard of Uridium. Uridium was a fast-paced space game shooter with a unique feature: you could change the flight direction of your spaceship with a smoothly animated Immelmann turn, to fly over the enemy spacecraft from end to end to complete various objectives. If you will, it was one of the early free-roaming world type of games.

Nenad Alajbegovic has paid homage to Uridium by porting it to the iPhone; the iOS version is appropriately named iUridium. You get the entire source code for the game, which uses just about everything the cocos2d game engine has to offer, and then some. For example, Nenad implemented caching (pooling) of bullets and enemies to create a smooth game play. He also has UIKit views, Game Center leaderboards, and Facebook and Twitter integrated. The levels are created entirely as tilemaps and dynamically loaded from XML into the game’s scene and layer nodes.

The license is fair, only asking you not to make a clone of iUridium but expressly allowing you to make your own side-scrolling shooter game. But you do have to replace all the artwork, music, and sound effects with your own.

You can find all the information about iUridium, pictured in Figure 17-4, on this web site: www.iuridium.com/?page_id=2.

9781430244165_Fig17-04.jpg

Figure 17-4 .  The iUridium’s game source code is available for sale

BATAK Duel Source Code

Dan Nelson is the developer of BATAK Duel for iPhone. He created this game in five months with no prior iPhone game-development knowledge. He managed to integrate OpenFeint into the game, a menu system, and of course savegames. The app is rich in visuals, both by utilizing cocos2d’s particle system as well as additional effects such as lighting, smoothly scrolling credits, and a transparent pop-up keyboard.

The license is fair, only asking you not to use any of the BATAK Duel artwork, music, and sound effects. You can find more information about the BATAK Duel source code, pictured in Figure 17-5, on this web site: www.batakduel.com/blog/78.

9781430244165_Fig17-05.jpg

Figure 17-5 .  The source code of BATAK Duel for iPhone is for sale

Cocos2D Podcast

Mohammad Azam and I are recording the Cocos2D Podcast to report on recent events; to talk about hot topics; to interview game developers, tool authors, and bloggers; and to give listeners insider information and insights into game development with cocos2d.

The Cocos2D Podcast is available on cocos2dpodcast.wordpress.com, and new episodes are announced on www.learn-cocos2d.com/blog. Each episode runs between 30 to 60 minutes. Here’s a selection of episode topics we’ve covered so far:

  • Earning additional revenue using iAds, IAP, selling source code, and so on
  • Michael Daley explains Particle Designer and Glyph Designer
  • Ray Wenderlich talks about Cocos2d, his book, workshops, and more
  • Andreas Löw explains TexturePacker and PhysicsEditor
  • Vladu Bogdan expounds on LevelHelper and SpriteHelper
  • Zynga acquires Cocos2d contributors
  • Tools in Cocos2d iPhone game development
  • Game engines and frameworks as alternatives to Cocos2d

Tools, Tools, Tools

In this book I’ve introduced you to what I think are the best tools for each purpose. However, there are usually alternatives. If you also read the first edition of this book, you know that I used different tools in that first edition than here in the second. In less than a year, some tools put on wings, and others essentially stopped progressing and fell behind.

Because that almost natural process is not going to change in the future, and it’s hard to predict which tools are here to stay and which aren’t over the coming years, I wanted to share an alphabetically sorted list of currently existing tools that you can use for cocos2d without going into describing them and regardless of their current state, except of course that they need to be usable and functional at the very least.

You can use the following tools for development with cocos2d. I highlighted my personal favorites in bold:

Cocos2d Reference Apps

The following is a list of games and apps made with cocos2d. They should serve as shining examples of what you can do with cocos2d as well as the creativity of cocos2d developers.

Instead of providing an iTunes link to each app in the book, I decided to create a post on my blog where I host all the links to the games mentioned here, and I’ll update this list to include noteworthy games released after the book has been published. You can find the list of links to these apps, including other links of interest, on the Great Apps Made With cocos2d page: www.learn-cocos2d.com/2010/10/great-apps-made-with-cocos2d.

  • The Elements (iPad) is a graphical representation of the periodic table of elements. The outstanding features are the plenjpgul photographs and smooth 360 animations that invite you to explore the elements that make up you, me, and the rest of the universe (excluding empty space, of which there’s a lot I’ve been told). It’s priced high but worth every cent, and if you need an app that will let you brag about your new iPad, this is it!
  • Bloomies is a colorful gardening game, full of bees (see Figure 17-6). If that doesn’t sway you, maybe the idea of fostering and nurturing your own garden does. The flowers need your constant attention, and the game play is addictive, just like any Tamagotchi-style game. Oh, and it happens to be made by two former colleagues of mine. It’s just a beaujpgul game, and so is their follow-up game, Super Blast.

9781430244165_Fig17-06.jpg

Figure 17-6 .  Bloomies from Phantoom Entertainment

  • StickWars is a game where you defend your castle from incoming stick figures by flicking them in the air or literally shaking them to the ground. The developer, John Hartzog, had never before worked with Objective-C or on mobile devices, but he pulled it off. StickWars remains to this date within the top 100 games and continues to be updated even a year after the initial release.
  • ZombieSmash is also a castle defense game, except that this time hordes of zombies are attacking, and you get explosives, 16-ton weights, shotguns, and other cool items that make a bloody mess to fend them off (see Figure 17-7). Your castle is your barn, and if you can defend it, you’ll be rewarded with a slow-motion animation of the final zombie losing its, err, unlife. The outstanding feature of this game is certainly the rag-doll animation system that allows zombies to walk, crawl, or otherwise try to move even if they’ve lost some of their limbs.

9781430244165_Fig17-07.jpg

Figure 17-7 .  Zombie Smash by GameDoctors

  • Super Turbo Action Pig revives the simple game play concept of a scrolling level where your character always falls down, except when you touch the screen to boost his jetpack. The extraordinary part here is that the game’s graphics are extremely well made and the overall presentation of the game, the trailer, the web site, and the humor set a great example.
  • Then there’s Farmville—do I even have to explain what it’s about? It’s an incredibly successful Facebook game that has millions of players worldwide building their farms in an isometric landscape. It just goes to show how powerful cocos2d is if a company like Zynga uses it to port its most successful game to the iPhone. It’s notable that Zombie Farm came out on the iPhone before Farmville, and it was also created with cocos2d.
  • Melvin Says There’s Monsters (iPad) is a beaujpgully animated cartoon kid story with professional-quality voiceovers. The story is cleverly constructed and has an insightful turning point. It’s a pleasure to watch even for an adult, and it also uses cocos2d’s page-flip animations very effectively. If you have an iPad and kids, it’s a must have!
  • Trainyard is an innovative puzzle game that was clearly engineered with the user in mind. It features a mode for the color-blind, is optimized to use little battery power, saves and loads the game just as the user left it, and even allows users to share puzzle solutions on the Web, using a duplicate of the game engine written in Flash. All this, besides being a really innovative puzzle game where you lay tracks and combine trains to match them with colored train yards.
  • Abstract War 2.0 is a dual-stick shooter featuring colorful and vibrant geometric visuals (see Figure 17-8). It’s obviously inspired by Geometry Wars on Xbox Live Arcade. It’s an intense space-shooter with plenty of game modes. You can even play it in multiplayer mode via a Bluetooth connection, and it allows you to use your own iPod music.

9781430244165_Fig17-08.jpg

Figure 17-8 .  Abstract War 2.0 by Forzefield Studios SL

  • Fuji Leaves is an interesting music game, where dropping balls hit leaves, and depending on the speed and location of impact, a sound is played. With several balls on the screen bouncing around, you can dynamically create musical scores. It’s intensely fascinating to play this game, trying to come up with interesting scores and just the right placement of leaves. Before you know it, an hour has passed.

The Business of Making Games

This section covers social gaming, ads, and In-App Purchase—basically, the business of making games. In this section, the focus isn’t on technology; I talk about my experience as a professional and independent game developer and what it takes to make successful games.

At least the tips provided in this section will improve your odds to make a more successful game with the right people, and you’ll learn how to market the game to your target audience.

Working with Publishers

In the early days of computer programming, developers single-handedly copied their game code onto floppy disks and shrink-wrapped it to sell it in local software and hardware stores. Those days are long gone, and with the increasing complexity of games, publishers have taken on the task of distributing and marketing games. This model has been the default for the past 20 years or so, but with the advent of the indie game scene in recent years, mostly driven by new technologies such as downloadable games, the Xbox Live Indie Games channel, and Apple’s App Store, more and more game developers are turning to self-publishing again. So, why would you want to work with a publisher these days?

The first reason is technical support and testing. Publishers want to make sure that every game they release does not reflect badly on their reputations, so one of their goals is to release games with as few bugs as possible and with polished game play. If you’re not used to this process, which includes the scrutiny of a quality assurance team, you’ll be in for a surprise, and it may not always be a pleasant one—such as the game’s release being held back due to yet another obscure and hard to-find bug. So, that’s a bad thing? To the contrary, it forces you to work with an attention to detail that’s all too often neglected and dismissed by hobbyist developers. And in the end, you’ll be rewarded with a better game. In most cases, this also translates to more favorable reviews by press and players alike and thus more sales.

Working with an established publisher also reflects positively on you, simply because of the respected games already released by said publisher. I don’t mean that in an ego-trip kind of way. You’re not special because you’re working with big-name publisher X—but you sure will learn a lot, and that’s going to make you stand out from the crowd. It also improves your street cred and the chances of landing a better job or contract sometime down the road.

The experiences working with a publisher don’t just involve game programming and the things you’ll pick up from technical support and the quality assurance process. You’ll also sign a contract and get a glimpse at all the legalese and paperwork involved (it’s really not that bad).

Signing a standard contract with a publisher is more like opening a bank account. Everything is ready-made, and you just have to fill in a few blanks. Expect the publisher to take anywhere between 30 to 70 percent of the revenue. It depends a lot on what they do, in which phase of development they come on board, and whether they support you financially.

If you allow yourself to learn from working with a publisher, it can be very insightful to get an impression of the details that need to be specified to get everything in order from a financial and legal point of view. If the publisher has a good track record with other developers, you can feel assured that they’re not going to screw you over. But you definitely need to understand the terms you’re signing, because if you’re used to posting your sales numbers, for example, those may now be covered by a nondisclosure agreement you signed with the publisher.

You do give up a certain amount of freedom, and you need to be able to live with it and trust the publisher to do the best job they can for those parts you’re giving up. For example, if a publisher is asking you for a change in direction for certain aspects of your game, you should seriously consider it. At least most of them know what they’re talking about, and they also know what’s working and what isn’t (this certainly isn’t the case for all of them, though). However, because games is a very subjective field, publishers do have the tendency to favor proven sets of features over other risky but innovative ones—but less so on iOS, where publishers are more willing and able to give their developers creative freedom, if not total control over the design of the game.

In return for giving up some freedoms, they’ll reward you with marketing your game. They know the channels, and they have a direct feed to the review web sites and the press. And that’s possibly another area of expertise you’ll learn a lot from. The press has a certain way they like to receive and consume the information they need to write a review about your game. Your publisher knows all about it will request a few things from you that you wouldn’t have considered on your own, such as high-resolution artwork or a one-line catchphrase that really gets players interested in your game.

If you get the chance to cooperate with a publisher, my advice is to go for it at least once, no matter how much you value your creative freedom. Afterward, you’ll understand much better what you’re giving up and what you’re receiving in return, at least in that particular case. Whatever your experience may be, the experience alone and what you’ll learn should make it worthwhile (and maybe it will be rewarding enough to do it again—but if not, you’ll know why).

There are several game publishers you may want to consider contacting. Your best shot would be those who market specifically for iOS or mobile devices, and in that area two names stand out from the crowd. One is ngmoco, which published Goldfinger, We Rule, We Farm, Epic Pet Wars, and Rolando. Visit ngmoco’s web site at www.ngmoco.com. The other is Chillingo, who has released games like Minigore, the Quest, Knight’s Rush, and of course Angry Birds. Chillingo’s web site is www.chillingo.com.

Finding Freelancers

If you believe in your game and you’re ready to invest money into it, you may want to get help from professional freelancers worldwide. Besides asking for jobs in the cocos2d forum itself, you can also post a job offer on one of the more popular outsourcing web sites. Likewise, you can also offer your expertise as a freelancer to employers on these sites. Plenty of web sites offer such services; you’ll even find some that can hook you up with someone close to where you live.

I’ll refer you to the ones that I know work best and have a good reputation: they’re eLance (www.elance.com) and Guru (www.guru.com).

They both work on the same principle. You post a job offer, which could be a small task or an entire project. Then you receive proposals from candidates, from which you can pick one or more to do the job. Once you've received, reviewed, and approved the work, you pay the freelancer. Abuse can be reported and basically locks the offender out of the platform, so although you need to be able to trust people you’ve never worked with, the risks are minimal for both parties. I recommend choosing smaller tasks to start with. Just as if you were to get into the stock market, by starting small you can get a good feel for how this works and what can happen.

Finding Free Art and Audio

The alternative to hiring someone to do the work for you is to find the work available on the Internet (preferably for free). However, be careful about anything that’s “free.” I’m not saying that it might have a catch; I’m warning about the common misconception that free means “can be used freely.” It may not cost you anything to get an image or audio file that’s free, but that doesn’t tell you anything about what you’re legally allowed to do with it. That’s typically where a license should come into play but often doesn’t. A lot of people publish their own source code, artwork, audio, and writings for free on the Internet but forget to add a proper license file to it if the work is intended to be used by others. The problem is that by default, the author has the copyright and retains all rights to how the work can be used. If there’s no explicit waiver, preferably in the form of a license, then you should not use this work (especially not in commercial products, and that includes $0.99 apps sold via the iTunes App Store).

For reference, I’d like to point you to Funplosion Labs, which has an article listing web sites where you can get free game graphics and audio. Funplosion also disclaims this with a warning about the copyright and a link to the license agreement for each web site (see http://funplosion.com/free-assets.html).

And don’t forget the wonderful OpenGameArt website (http://opengameart.org) where you’ll find not just art but also sound and music for free.

Caution  Be wary of the General Public License (GPL), especially if used by a source code library that you want to use or integrate into a commercial app. Using GPL-licensed code in your own project requires you to open source your own project’s source code. Not just that, but anyone else is subsequently given the right to use your source code and to copy, modify, and redistribute it. Note that the Lesser General Public License (LGPL) license is not as stringent. Similarly there are two Creative Commons licenses. The CC-BY 3.0 is non-restrictive, whereas the Share-Alike version CC-BY-SA 3.0 requires you to share your project with that same license. Refer to this link for a comparison of common source code licenses: http://developer.kde.org/documentation/licensing/licenses_summary.html.

Finding the Tools of the Trade

Sometimes you may wish you had a tool that just does that, whatever that might be. There are times as a game developer where you need to process data, modify images, or build whole worlds—things that are tedious and error-prone to do in code or simply too time-consuming to do on your own because you’d rather focus on writing your game.

My tip is to use the Indie Game Tools web site, which collects, categorizes, and allows others to rate game design tools for independent game developers. The focus here isn’t on expensive software used by professional studios but on low-cost and free solutions for about anything, from game engines to converters, from scripting languages to server technologies, and from asset packages to game editors. Maintained by Robert “Robc” Charney, it’s the place I go to see if there’s a tool available that fits my bill. Visit the site here: http://indiegametools.com.

Just a minor caveat: don’t put too much weight on the ratings of individual tools. The number of ratings is very small, so there can be huge differences between similar tools, and the ratings may be biased by both unhappy users and proactive communities. You should leave your mark and add some of your own ratings so that over time the ratings become more accurate. In addition, some tools simply can’t be compared by rating; they may have totally different uses, making it unfair to compare them based on their rankings on the Indie Game Tools web site.

Marketing

So, you made a game and submitted it to the App Store. Now what? How do people find your game in the first place?

The story starts at the beginning. The moment you begin working on your game should also be the starting point for your marketing efforts. Get a web site up and running and post your development experiences and maybe some work-in-progress screenshots. That should be your first step to connect with other game developers.

In terms of the marketing and business aspects, I’d like to save you some time. The following link is to the Big List of Indie Marketing and Business Tips, and I have to say that’s an understatement. You’ll find most of the meaningful and intelligent articles ever written on the subject on just this one page, so be sure to look at it even if you’re only mildly interested in the marketing and business aspects of indie game development. Check it out at www.pixelprospector.com/indev/2010/08/the-big-list-of-indie-marketingand-business-tips.

Still interested in marketing? Good, check out the free e-book Videogame Marketing and PR, written by Scott Steinberg. You can get it on the book’s web site: www.sellmorevideogames.com.

Marketing Your Game and Yourself

If you’re really not sure whether your game is going to be a success based on how much fun it’s going to be, one rather effective way to increase your chances is to make a game that’s very presentable and colorful and just looks like great fun in screenshots. With the low barrier to entry on mobile devices because of the low price points, a great-looking game with little in terms of play depth more often than not will outperform and outsell a complex game with multiple game modes and many hours of potential game play. It may pain some developers because it goes against everything they believe in, but it’s an unavoidable fact of life. Of course, if you can combine the two and create an innovative, fun game that just looks great, the opportunities are endless.

If you browse reviews, there’s one thing you should give a lot of attention to. The most prominently featured screenshots are always action scenes from the game, usually with a lot of things going on at the same time. This has almost become an art form; professional developers will even develop specialized tools to stage scenes where they can take the best possible action screenshots, without having to play the game and rely on luck to get it just right. Maybe you should consider that, too. So, the best artwork you can create or pay for should definitely be a priority for you, and so should making a convincing trailer for your game. Outstanding presentation is a very important buy-in to get to talk with a publisher as well.

This advice goes for your blog as well. You do have a blog, don’t you? If not, start one right now! You can get a free blog on http://wordpress.com, and you’ll learn how to work with the most popular blogging software along the way. As your blog matures, you may want to consider hosting your blog on your own server; you can do that with WordPress as well, but with a lot more options for customization through plug-ins and themes.

Your blog is an important way of marketing yourself. The most important aspect here is that self-marketing will indirectly benefit anything you do from now on. Blogging gets you in touch with other like-minded people, who sooner or later will be willing to help you, sometimes for free. If you’re really making a name for yourself in your development community, that’s good news because it can get you attention from publishers who follow the same channels you’re working in. Note that this is in contrast to most of the players of your game, to whom you’ll have to reach out on a different level.

And because your blog should be your public face, it should be you who’s talking. Don’t put on a mask and try to sound like a big corporation—for example, by saying things like what you’re doing is going to revolutionize the way we play games. I call that … a term I won’t put in this book, but I’m sure you know what I mean.

Make sure you don’t come across as cocky on your blog, but likewise don’t belittle yourself. You may be a beginner, but you’re learning, so focus on what you’ve learned. The things you do learn will seem like things that millions of other developers already know, so you might wonder whether you should really blog about them. I’m familiar with these thoughts, and frankly speaking, you’ll always have doubts about whether what you write is going to be of interest to others. It is, trust me. And if it isn’t, no big deal. The truth is, even though there are millions of developers who may already know about what you post, there are millions more who don’t and who will be able to learn from you.

And remember to put your best skills up front and avoid blogging about your weaknesses. You may not know it all, but you can learn it. If you really want to know how multiplayer game programming can be enhanced by predicting client movements, learn about it. The Web is a great resource—collect what you find and blog about what you found and learned. Others will respect you for it. Blogging takes years of practice, so it’s best to start now because it will pay off in the end—possibly in ways you can’t even imagine right now.

Another important way of marketing yourself is Twitter. Once you have something to tell the world, you’ll be happy to be able to reach out to dozens, hundreds, if not thousands of your followers at once. Twitter is a very effective marketing tool. How to use it effectively is a matter of following simple steps. First, don’t protect your tweets—it seriously limits the number of people who are going to follow you. (I certainly won’t.) Then provide an interesting bio, which should include your interests, what you do, and anything else that makes you seem like an interesting person to follow. Simply using a joke, poem, or quote as your bio is a no-no. And don’t forget to link to your blog! The most important things are to tweet regularly and tweet about things others might find interesting. Tweeting only about yourself and your products (or just retweeting other’s posts) isn’t going to convince many people to follow you.

Public Relations and Press Releases

If you work alone and you don’t want to cooperate with a publisher, hiring a public relations (PR) firm or agent to give yourself and your game a better chance in the market may be a wise decision. But it could also be downright stupid and pointless. In the latter case, it’s usually not the fault of whoever is doing the PR; it’s a matter of understanding the benefits of PR—what it takes to make it work effectively—and assessing whether it’s worth spending thousands of dollars on.

As an independent developer, you’re likely to have a very limited budget. Even entry-level prices for PR agents are going to make your jaw drop to the floor. If that’s the case, walk away and get back to working on your game. Your gut reaction is correct.

Now, if you already have a game out there and it’s presentable, and you’ve earned not just money but also some influence with the people around you, things may be a little different. Perhaps you have some money to spare, you’ve learned a lot from your first game, your second one is even better, and you already have players waiting for it to come out. Can you give it a boost with the help of professional PR? In this case it’s more likely.

If you take on the help of a PR agent, you should definitely try to find one who has a track record of working for the game industry—preferably with independent game developers and the mobile games niche. They’re not easy to find, so ask around. Using a PR agent who isn’t into game development is a waste of time and money—you need to have PR with the ability to reach out to your game’s target audience. But most of all, the deciding factor should really be your game.

If you know you have something special, testers tell you so, and the game just looks gorgeous, then investing a few thousand dollars in PR might be a good choice. The PR agent will want game reviewers to write about your game and game development sites to take notice of your special abilities. If these aren’t clearly visible, professional PR won’t be able to make a big difference. PR works best if you can provide gorgeous screenshots and an intriguing, funny, and captivating trailer movie.

How do you know if your game is something special? By asking the people who wouldn’t hesitate to tell you what they don’t like. Family and friends are typically too kind to provide the sometimes harsh criticism needed to improve a game. You should ask on forums for private beta testers and provide them with an appetizer, which could be a screenshot or a description of your game’s special features, so that they’ll be more interested to try your game. How you deal with criticism and feature requests, and generally how you interact with your testers, is also a matter of PR. Dealing with user feedback, and specifically criticism, is a vital skill you should hone as early as possible.

But who’s to say you can’t try for yourself first? There are press release services specifically for independent developers that cost a fraction of what a professional PR agent would charge you. And writing a press release isn’t that hard if you follow the rules. The following press release services tap into exactly the right channels for game players and developers. The hottest candidates are the Indie Press Release Service, at www.gamerelease.net, and the Game Press Release Submission Service at Mitorah Games, at www.mitorahgames.com/Submit-Game-Press-Release.html.

Unsurprisingly, both services are run by independent developers themselves. Specifically, Juuso Hietalahti created the Indie Press Release Service and also runs the very insightful www.gameproducer.net blog. This blog is especially interesting if you want to learn more about production and marketing aspects.

You should also consider the Games Press web site, which is frequented by game journalists worldwide (see www.gamespress.com/about_howtosubmit.asp).

Engaging Players for More Revenue

Every platform has a number of peripheral technologies that are helpful if not essential, at least in some cases and for some developers. On the iOS platform, this includes the ever-growing list of social networking platforms to choose from, besides Apple’s Game Center. Then there’s server development kits that you might need for developing persistent games that ought to connect to your own server, be it to find and run matches of more than four players or simply to save characters, progress, settings, and worlds online.

And, although sometimes seen as dubious, providing ads in games can create an additional revenue stream, especially for free games and lite versions. Often in conjunction with ads, you can also investigate whether it would help your game to add analytics and metrics in order to find out where players fail most often, what buttons they click the most, and how frequently they play individual game modes. This can help you tweak your game to be more fun for more players.

Engaging Your Players

The big buzzword in the game industry is clearly social. Whether buzz or bubble, whether it has investors, reviewers, and players pay attention or yawn, the social gaming component is growing stronger and has become expected. Social gaming entails anything from passively pushing updates to networks like Twitter and Facebook to directing player interaction in multiplayer games.

In addition, push nojpgications are a powerful tool for you to remind your users about important events happening in your app. Be it an update, new content, or just the next game you released, it gives you an additional channel to keep your users engaged with your apps and your brand.

Social Networks

Besides Apple’s Game Center technology, there are a number of different social networking platforms. All are more or less similar in that they allow players to connect, post high scores, earn achievements, and do many other things, including posting game events to Twitter and Facebook—and all of them are free for both players and developers!

Because their feature sets are constantly evolving, and the market for social networks is booming, the final decision is up to you. I list the big players here and mention some of their outstanding features.

Note  Most of the social networking SDKs as well as ShareKit (http://getsharekit.com) already include support for connecting your users with Twitter and Facebook, so you don’t need to learn and implement the separately available Facebook and Twitter APIs. If all you need is access to Twitter, you should have a look at the excellent MGTwitterEngine API from Matt Gemmell, at http://mattgemmell.com/2008/ 02/22/mgtwitterengine-twitter-from-cocoa. And if you need to integrate Facebook into your app, the official Facebook iOS SDK is located on GitHub: http://github.com/facebook/facebook-ios-sdk.

  • OpenFeint is the perceived leader of iOS social networking SDKs. It boasts Game Center compatibility and turn-based multiplayer features to stand out from the crowd. But first and foremost it’s very popular, with an audience of players numbering in the millions. Have a look at OpenFeint’s developer portal: www.openfeint.com/developers.
  • Scoreloop sets itself apart from the competition by offering additional revenue streams via downloadable content, sharing virtual goods and in-game currencies. It also includes analytics to determine what your players are doing. Take a feature tour on the Scoreloop home page: www.scoreloop.com.
  • Plus + is the social networking platform created by ngmoco, a big publisher of iOS games. It’s currently available only to ngmoco’s development partners. Ngmoco is looking for select developers to partner with; if you think you have what it takes, then you might want to apply on its developer web site: http://plusplus.com/developers.
  • Chillingo’s Crystal is the other big iOS publisher’s social networking platform. And as with Plus+, access is limited to developers working with Chillingo and Electronic Arts, the new owners of Chillingo. You can get information on the Crystal SDK on http://devsupport.crystalsdk.com.

If you’re missing Agon-Online in this list, you probably haven’t heard the news that it shut down on June 30, 2011. As for Geocade, it is still available at www.geocade.com but simply does not play a role among its competitors.

Socket Server Technology for Multiplayer Games

If you’re looking to build a multiplayer game that requires more sophisticated server-side game logic and storage than the social networking platforms are able to offer, you’ll have to write your own socket server. Luckily, the hard part of writing a server/client architecture with socket connection and other networking voodoo has already been done for you.

Hosting your online games on a socket server has several advantages. For some games, it’s very important that players can’t cheat, so running the most critical game logic isolated on the server while being able to verify the data coming from clients can prevent a lot of common cheating mechanisms. A server-based approach is also the only way to write a game that supports a lot of players at once. With peer-to-peer technology, you quickly run into scalability issues, because each device’s bandwidth is rather limited, and every player in a peer-to-peer match adds computational overhead to every device connected to that match. Apple’s Game Kit restricts peer-to-peer connections between devices to a maximum of four players for that reason. The server hardware is ultimately more powerful and has a higher bandwidth than any device connected to it, which lets you host more players in the same match. In addition, the server hosts the database and usually runs verifications that ensure that players haven’t tampered with their app or the stream of data coming in to defeat cheats and exploits.

  • Electrotanks’s Electroserver is a feature-rich server technology used by professionals worldwide. It’s priced accordingly, but it does have a free version that allows for up to 25 concurrent users to be connected with the game server. If that’s sufficient for you, give it a try: www.electrotank.com.
  • SmartFoxServer by gotoAndPlay() follows in the tracks of Electroserver. It’s not as feature rich, but it’s very popular among independent game developers, mostly because it has a completely free Lite version, while the Basic and Pro versions still allow up to 20 users for free. In general, the prices are more affordable for independent developers. Compare the SmartFoxServer editions on the products page: www.smartfoxserver.com/products.
  • Exit Games follows a two-pronged approach by offering a networking component called Photon and a managed service for developing persistent online games called Neutron. Neutron natively supports the development of turn-based multiplayer games, and it can suspend and resume game sessions. Photon has a free version that supports up to 50 concurrent users per app or server, and Neutron has a free trial version. Compare features and prices on the Exit Games web site: www.exitgames.com.

Push Nojpgication Providers

Push nojpgications are those little alert messages popping up on your iPhone’s screen, whether you’re using it or not. Some apps use them to inform users about the stock market, about a live sporting event, or simply to let you know that there’s a new comic strip available. The uses are endless. The greatest power of push nojpgications is that it gives your users an incentive to keep using your app; they won’t forget it as easily if they let the app remind them about news and events.

You may have heard of Apple’s push nojpgication service, but if not, you can learn more about it in Apple’s Push Nojpgication Programming Guide: http://developer.apple.com/ library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNojpgicationsPG/Introduction/Introduction.html.

Push nojpgications allow apps to broadcast messages to individual devices. If you implement one of the social networking platforms, you’ll get this feature for free, and you don’t need to care about the complexities of push nojpgication programming. However, in some cases you may need to implement your own solution, and for that you need a push nojpgication provider. That’s a server that can communicate with Apple’s servers and the iOS devices. You can write your own server with the free and open source apns-sharp library (see http://code.google.com/p/apns-sharp) or you can sign up for the Mono Push service (www.monopush.com) or Urban Airship (http://urbanairship.com).

iCloud

With iOS 5 Apple introduced iCloud, its cloud-based storage solution for storing documents and simple key-value data on the cloud. What cloud? Well, obviously not that white, fluffy stuff floating way above your head. Cloud storage simply means storing data on a remote server, and the cloud part refers to the fact that you don’t know exactly which server your data is stored on, or how. You just send data to the cloud, and the cloud server stores it. The next time you want your data back, the cloud server finds it for you and delivers it back to you.

Cloud storage allows game developers to store savegames in the cloud so that the game’s progress isn’t locked into a particular device and app. If your app is available for both iOS and Mac OS, you could store savegames in the cloud, and the user can continue where he left off on both versions and on any of his devices and computers.

Or you could save the persistent world of your Mac OS massively multiplayer game to the cloud, and the iPhone app could allow the user to change the player’s inventory, sell items on the auction house, and do all the other chores while he’s on the road.

You can learn more about iCloud here: http://developer.apple.com/icloud.

Earning More Revenue

Don’t we all want to make more money? With apps, you can do so by displaying ads or by selling in-game content via In-App Purchase. Both are powerful tools—in particular for free apps, because apps that cost nothing get on average about ten times more downloads than apps that cost $.99.

Ads and Analytics

Advertisements provide a way to generate additional revenue from apps and games. It can be very lucrative if the app is very popular, but frankly speaking, it’s also easy to put off users by displaying ads, and it’s much more likely to make little to no money. It’s still worth experimenting with advertisements—for example, if you use them as a motivator in free versions of your app by letting your users know that the full version removes the ads—besides offering all the other cool features the players want, of course.

Regardless of whether you dislike ads, there’s another reason to evaluate the ad space. That’s because most advertising SDKs can also provide you with insightful metrics and analytics. This not only includes statistical data such as which iOS version your users have installed and which device they’re using but also includes custom metrics, such as which game mode is played most often and where players tend to fail more frequently. This allows you to tweak the difficulty and the user interface layout according to how the users are actually using your app. It also helps you plan upgrades and marketing strategy.

  • iAd by Apple is the first contender when it comes to advertising on iOS devices. You can get an overview of the iAd Network on Apple’s advertising web site: http://advertising.apple.com.
  • AdMob for App Developers is also a very popular ad platform among game developers. You can learn more about the iOS version of AdMob at www.admob.com/appdevs, whereas the Mobile Analytics product is hosted here: http://analytics.admob.com. AdMob also offers AdWhirl (www.adwhirl.com), which allows you to display ads from a variety of ad providers.
  • Flurry Analytics is the only product that focuses solely on metrics and analytics. Note that Flurry bought Pinch Media, and its products have merged into Flurry Analytics, in case you’re wondering why I’m not mentioning the very popular Pinch Analytics. Begin your research into Flurry Analytics here: www.flurry.com/product/analytics/index.html.

In-App Purchase

Even if you sell your app, you could publish a free (lite) version of it that uses In-App Purchase to unlock the full version while the user is running the app. For you it can be as little as setting a BOOL variable to YES after the purchase is made, but for the user it’s so much more convenient not having to go back to the App Store to make the purchase. I have no data on this, but you can expect that a significant percentage of users won’t make the purchase simply because it means quitting your app, waiting for the App Store to load, entering their password, and then waiting for the download to finish.

To get acquainted with In-App Purchase, you can (and should) read Apple’s extensive and detailed In-App Purchase Programming Guide: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/Introduction/Introduction.html.

But then again, you may want to get started as quickly as possible and learn as you go. With a technology as complex and involving as In-App Purchase, getting started can be quite frustrating, but Ray Wenderlich’s tutorial will help you get up on your feet: www.raywenderlich.com/2797/introduction-to-in-app-purchases.

Because Apple is constantly improving its technologies, some of the information in the tutorial may no longer apply. In such a case, it’s very helpful to study the Technical Note TN2259: Adding In-App Purchase to your iOS and Mac Applications: http://developer.apple.com/library/ios/#technotes/tn2259/_index.html. This is a relatively short guide that helps you overcome the typical hurdles of implementing

In-App Purchase, including links to set up your contracts, tax and banking information, and a FAQ.

Summary

I hope you enjoyed learning about some of the surrounding technologies and resources that may be useful for creating your game and becoming a successful game developer, including where to get help and where to find royalty-free game art and audio.

As mentioned in this chapter, marketing and public relations will definitely need to be on your table if you want to actually earn a living from making games. I’ve only scratched the surface of those here, but it should be enough to help you get started.

Finally, remember to buy and use other cocos2d games in order to learn from them. As a game developer, you need to be constantly playing new games to feed your creativity with new ideas, and you also need to learn what players are saying about other developers’ games. Improving your knowledge of how games are made is just as important—purchasing one or several commercial cocos2d source code projects is certainly going to be a wise investment.

This book ends here, but your journey has just begun. I’m sure you’ll still have lots of questions, and for that reason I’ve launched the community web site Cocos2D Central on http://cocos2d-central.com. Feel free to stop by and ask me anything about cocos2d, the book, my game kits, marketing, publishers, Xcode, Objective-C, or anything else related to game development. I will continue to blog about cocos2d on the book’s www.learn-cocos2d.com web site. I’m looking forward to hearing from you.

I hope you have enjoyed reading this book as much as I did writing it. Thank you for reading it!

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.22.181.154