Digital Dave

Musings on projects, business and life.

Icon

Cranking The Wheels, Open Development Style

Over the past year or so I have been really inspired by blogs which are open with their development. The best example I could point to is wolfire.com. Those guys are pretty amazing and  inspire me from design all the way to marketing. I think the biggest concerns with developers not being open with their development is a) they don’t want to spoil gameplay/story and b) they don’t want somebody stealing ideas. I share the same concerns, but my main goal is to inspire the curious and, hopefully, generate some thoughts from you. Since most of you reading are developers, and not yet quite “fans,” hopefully, we will all benefit somehow.

That said, there will be spoilers… So run if you’re a fan. Let’s give this a whirl.

Here are a few highlights dug from the repository since the last blog update.

Added a Notification for Unread Mail Message

The first pass resulted in only a mail icon, with no clear indicator showing the user has something to read.

Well, the only reason why I would tap on something like that is because I’m a news junky and I would be curious to see what’s in there. Most are probably not like that, and need a little eye candy in order to see what is behind door #3. I decided to add an indicator.

Moved Game Center Achievements / Leaderboards from Custom Views to Game Centers standard GK*ViewController

Last month I roughly implemented Game Center in my own custom views. I did that for a few reasons, a) Cocos2D was not handling view rotations very well, so using the standard GK*ViewController was not something I felt like diving further into, and b) I wanted to give them their own custom look to fit in with the game.

I decided against the custom look mainly because I didn’t feel like it was going to look right with the direction I took it. Luckily, I saw that Cocos2D 0.99.5 was unleashed which handles rotation on the iPad much better. Well, a few tweaks later I had the modal view coming into the screen correctly.

Improved Capture Method and Combo System

Before I began polishing the existing method a player only had one way to capture a butterfly.  You touched the screen and created a circle.  In order for a capture to be a success you had to come within a certain distance of your original touch. While this worked perfectly fine through play-testing, I wanted to give the player another option for a little more action. Now they can snip the line wherever they want to commit a capture.

This naturally introduces a much more entertaining combo system. As long as the player doesn’t pick up their finger and they capture within a certain time frame, a combo point is earned.

Implemented Stage 2

A couple of challenges await the player. Each stage will have 20 levels. This stage is by far the trickiest for me to play. In addition to capturing butterflies, the player has to mix primary and secondary butterflies together in order to meet the objectives. Later in the level the player will have to be concerned with specific butterflies that fall into trouble and act quickly.

I have not play-tested this one so I’m curious to see how people handle it.

Flurry Analytics

How many people completed Stage 1? How about Stage 2 and 3? How far did the player get before they quit?  These are some of the questions that I’m curious about in order to improve the game in areas that are weak.

And some other interesting questions I’m curious about; How many people tapped mute? Are people tapping More Games? Are they tapping the links within More Games? Does that mail notification grab attention?

Beginning the Brand Building, Again

This deserves it’s own post, but generally speaking, I put together a small mini-site at http://colorflys.igotitgames.com and continue to speak with the gaming community again on several fronts. Yesterday I added olark to the website that will allow fans/customers to directly reach me with support questions. If a fan takes the time to visit my website, I doubt they’re looking for trouble.

Writing a Post Mortem

Moving through a project will present unforeseeable challenges. The key is learning from those challenges and passing them on to everyone involved with the development of the project. Most likely the challenges that occur in one project will rise in another project and if you can present these to a group of developers before a project is in full motion maybe you can save yourself a headache or two.

But let’s not focus soley on what went wrong. It is very easy to nitpick and critize everything we do or didn’t do. What did we do right?

Writing a post mortem is about uncovering these key challenges so we can learn from them, but also our highest acomplishments so we can teach others. Even as a independent developer I reflect on what I did wrong and what I did right when I complete a project. I write these down so later I can revisit these documents to reflect. That reflection will influence my direction and hopefully help me create a better product in the future.

So I take a couple sheets of paper and answer two deceivingly easy questions -

  1. List your top 5 items you feel went right with the project?
  2. List your top 5 items you feel went wrong with the project?

From there I look at each technology I ended up using and making a note of my biggest challenge with that particular tech. This will give me a heads up in the future in case I mysteriously forgot that ‘thing’ that took me a week to implement.

That’s the key. Once you fire up a new project look back at your post mortems so you can refresh your mind on what you have done right or wrong in the past.

Approaching Design for an iOS Project

When I developed Project Void I spent a lot of time sketching out how the game was going to look before I actually started piecing the game together. My goal wasn’t to have a concrete design that would obliterate the opportunity to be agile but rather I wanted a good blueprint for where I was going with the game.

The Prototype

After I created a few sketches on paper outlining how the user interface was going to look, and how the game was going to play, I spent a few hours putting together an extremely simple prototype. I worked on the graphics and put together 480×320 PNG images of the game. I constructed the title screen, option menu and game screens. From there I put together an application that simply shuffled these images in and out of view as I pressed on the screen. This gave me a fundamental idea of what the game was going to look like in motion.

Playtest

I see people wait until they are 3/4th of the way complete before doing any playtesting or, worse, they completely ignore doing it. First, don’t ignore it. Your game is going to be an absolute blast to you but it could easily turn 5 of your 7 friends completely off for reasons you could have avoided. You can’t playtest early enough. I took this prototype and gave it to a few people to play around with. All of a sudden I was getting some good questions and thoughts about things that I didn’t think about.

Eye Candy

I feel that it is extremely important to create some eye candy EARLY — especially as an independent developer. This will put your vision right in your perspective and will make you hungry to implement it. This doesn’t have to be limited to solely artwork if you have the luxury of having a musician at your disposal. Music can be pretty powerful and is a very big focal point in my projects.

But it can even be code as well. For example, creating special effects or implementing the animation routines for your menu system.

Approaching the iPad

I currently have 2 projects being built for the iPad. Considering that it is just me doing development it will be interesting to see how I will end up managing these two projects. Luckily, I have two great artists working with me this time so I can finally get away from my programmer art!

So far from my design I will be taking advantage of the screen for the user interface. I’m not completely swapping views to display options, achievements, or even the leaderboard — all of this info will be accessed from the main menu with tighter views overlaying the menu.

The biggest change from the way I worked on Project Void is that I am spending time during the design to work on the model (MVC). If a project falls flat on it’s face after the first prototype at least I may have learned something. Also, since it’s the model, I can store it away for that game I develop down the road.

Conclusion

So the three points I would note is

  1. Design a simple prototype as early as possible
  2. Create some eye candy (or ear!)
  3. Playtest routinely through the development

WWDC Sessions Worth Saving

If you’re in the developer program.

From the many I’ve watched, I downloaded and tucked away these that I thought were worth keeping.  There are some outstanding sessions.  I think I have about 13 more sessions I plan on watching.

Coding

Session 113 – Working Effectively with Objective-C on iPhone OS
Good refresher on a few topics from a veteran at Apple, Blaine Garst
Blocks, @properties, categories, selectors, delegates, @optional

Session 114 – Advanced Objective-C and Garbage Collection Techniques
Class extension, synthesize (and optional to synthesize), weak linking, blocks (talks about stack/heap), leaked/abandoned memory

Session 123 – Building Animation Driven User Interfaces
Adding animation is one sure-fire way to give your application a feel of polish and detail.

Adopting Multitasking Sessions (105/109): If you don’t like reading, watch part I, otherwise, read the documentation which is really well written.  Part 2 shows some great examples of doing things in the background (audio, location, etc).

Session 120 – Simplifying Touch Event Handling with Gesture Recognizers
Goes over UIGestureRecognizer. Documentation is here.  I was actually unaware of this… We’re talking about dropping 220 LOC to about 40 LOC, optimal, and simple to implement. Very sweet stuff.

Design

Session 103 – iPad and iPhone User Interface Design
Considering that we all can’t hire excellent designers, we need to take it on ourselves to hear how designers think so we can produce something with simplicity and elegance.  There are some great points given in this talk. At least skim through it to see their major points of interest.

Tools

Session 310 – Advanced Memory Analysis with Instruments
Memory is absolutely critical on these devices. The included instruments are insanely useful. Take advantage of them.

Application-identifier format error when submitting iOS4 application

“The application-identifier entitlement is not formatted correctly; …”

Are you seeing this error even when your bundle identifier is listed correctly on your provision profile and your info.plist?

Delete your Entitlements.plist file and re-create it.

Status update on Project Void

I’ve planned to officially name my next iPhone game, ‘Project Void.’  Depending on how much time I get to spend on the game, I hope to begin posting pictures soon.  I’m really excited about this game.  It’s something I’ve wanted to develop for the PC a long time ago, but never got around to it.  The iPhone is the perfect platform for this kind of puzzle game.

I don’t have a lot of time invested into the project, and I’m over halfway finished with it.  I spent a fair amount of time while Spin & Shoot was wrapping up designing and prototyping Project Void.  So as of now, I’m just piecing together the puzzle I’ve sketched out on several sheets of paper.  So if I could recommend anything, it’s to flesh out a design and don’t skimp.  It can get pretty boring fast sketching out screen layouts, but it’s worth it.

That’s not to say you can’t design along the way.  During my trip down to L.A. this last weekend, Megan and I came up with two new features that I will be implementing, and it’s worth noting that these are not small features — they’re game changing. But I’m adding it because it sounds fun, it adds a new dynamic to the gameplay, and it isn’t going to hinder anything.

Game development should be an iterative process.  Try new things.  Play around with it.  If people really like it, keep it! If they don’t, pitch it. Luckily, I’m in no position where I’m required to release something at date x.  I’m just having fun doing something I really enjoy.

Happy first-day-of-fall!  I wonder how many readers I’ve lost during the lull? I’ve been pretty darn busy getting situated out here in California.  And for some reason, now that school is over, I don’t have a lot to blog about anymore.  I need to change that somehow, because I like to write! ;)

David McGraw

Founder of iGotIt Games. Trader. Runner. Warrior. Motivator.