Digital Dave

Musings on projects, business and life.

Icon

Colorflys – Behind the curtain #2

Early Level in Stage 2

Since I have the first two stages complete (1 remaining), I’m preparing myself for a final round of playtesting this weekend. The first round of play testing I conducted back in December went well, but I had a hard time not interfering with the players since I  had no tutorial points. My goal is to find folks in a range of ages, observe, take notes, and not interfere until the session is complete. I don’t want to say something that might dictate how the player continues to play the game. I need to see when the player gets stuck and how exactly they get out of the situation.

My 3 biggest questions for the playtest session are;

  • Did the player feel that the game was fun? How did kids, teens and adults react? This is a family oriented game, but I’m primarily targeting kids/teens. Are adults having fun?
  • Did the player find points of the game too difficult where they couldn’t figure out what to do?
  • Would the player buy the game?

As of yesterday I had 13 bugs on my list. Today I’ll knock out the remaining 4 and try to polish things up a bit.

One thing that I polished a few days ago involved the way I was handling fonts in the game. I knew I needed to visit this down the road since flat fonts would a) look generic and b) clash way too much with the painted backgrounds. If you’ve ever created bitmap fonts you know how much of a pain it can be. Thankfully, Glyph Designer released recently and saved me the headache!

I didn’t want something that completely saturated the screen, just something that signals that a combo chain is active.

I was inspired to get back to experimenting with music from a blog post by Whitaker Blackall, whom is currently working on Casey’s Contraptions. This morning I spent a little time creating this (not for Colorflys, just experimenting):

Energy by mcgraw

I’m still incredibly new with music creation, but being a hybrid with the skill to code and create audio would be very cool. Imagine taking the same emotion you put into game design into your music? That could create quite a powerful experience. For example, check out Aquaria, coded and scored by Alec Holowka, currently working on a new indie project, Marian.

And, finally, a little challenge between items on the to-do list. Planks. I can currently hold the position for 1:32.0. Don’t forget to breathe.

Until next time. Have a successful week!

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.

Colorflys for the iPad

http://colorflys.igotitgames.com

I’ve been working on something for the iPad for a few months now. Progress has been a bit slow due to everything going on, but I am back in motion.

I’m really excited about this project. I’ve had the idea for this project in my bag since before the iPad, but I couldn’t develop it because I wanted more screen space than what the iPhone/iPod provided. When the iPad released I absolutely knew what my first title would be.

At this point I would say I am about a month away from release. My initial goal was to get it released before the GDC so I would have something to show off this time around, but it looks like I will not be able to make it (to the GDC) this year.

Feel free to support the project by following it on Facebook and/or follow me @dlmcgraw and @igotitgames.

Look for some more information being pumped out relatively soon!

Transition To Independent

Over the past few months I have been getting my mind, and environment, oriented for what was to come. My prior studio ended up closing it’s doors in December after Disney made the decision earlier in the year to shut it down. As much as I love the bay area it just is not in the cards for now. My wife and I loaded everything up to move back to Kansas.

As it stands the Wichita area is not exactly a technology hub. Sure, there are technology needs, but I have little desire to work in COBAL… Kidding, of course. The type of work in this area is not interesting by any stretch. The Kansas City area is pretty solid (with Garmin and Cerner for example), but we decided that if we moved away from the bay area it would be so we could be closer to family. In addition, I would spend the time to build my own stuff.

I’ve always wanted to do my own thing and/or be part of something fresh at a startup.

So here we are. I plan to knock out some contracts while continuing to build upon iGotIt Games. At this point, all doors are open. You might even see me work on building a web-based company or even a furniture store… Who knows!

The Hunt to Find an Artist

I decided that with my future projects I would NOT play the do-it-all guy.  I needed an artist and refused to release something without one.

Well finding an artist to work with us took an extremely long time — somewhere around 2 months?

A lot, and I mean a lot of artists do not like working on a project without earning a high $/hr and many artists completely misunderstand the independent nature of being an independent game developer.  Taking the time to spot someone with that passion is absolutely critical.  If you bring on an artist and they can’t rattle off an independent game, or even a game, that they’ve enjoyed recently they are not the right person.  The core problem I envision is someone bailing midway through the project, which would really, really suck.  It also helps having someone who understands games and how they can create an interactive experience with their artwork.

I find it very interesting to be around creative people, but for whatever reason I have yet to make a lot of contact with artists whom are interested in game development.  It’s the common dilemma surrounding coders.  I could rattle off quite a few coders I know.  Artists? Not so much.

I started this adventure to find an artist by taking advantage of my current environment.  I work with 300+ artists of varying degree at the visual effects studio I work with.  I had a surprisingly small amount of people interested in collaborating.  I say surprisingly, mainly, because I see quite a lot of independent things going around the studio.  So I know people are doing things outside of work.  We even have quite a few folks that are from the game industry.

During the time above, I listed something on a freelance website for an iPad project I will be doing after the current one.  My experience was pretty lackluster.  The artist had a great reputation/portfolio, but it has taken a long time to get anything out of them.

I then moved into some of the independent forums and craigslist.  Craigslist, by far, was where I gained a tremendous amount of traction.  You can skip paying $75 (bay area) listing fee by posting in gigs.  Within that first evening I had over 20 responses.

What is really interesting here is that I specifically tried to narrow down the responses immediately by asking a simple question within my listing.

What was a game you recently played that may have inspired you artistically?

This question was aimed to gauge if the person had any knowledge of games (bonus if they mention independent games) and also served as a way to filter submissions that were merely spam.  I was very shocked here.  Only 5 – 10% of my responses answered the question.  From there, maybe 2% actually put an effort into answering the question.

Yet, people wonder why they can’t find work?  You need to show some passion and some interest into what you’re responding to!

We’ll be posting game updates on Facebook and Twitter in the near future.  If you would prefer to keep up to date via Email, you can sign up for our Newsletter.

Testing Early: First Playtest for Colorflys

Have you ever built something and sent it out into the world for public consumption?  Did you wonder why people didn’t exactly have the response you thought they would have?  They didn’t respond the way you thought because they are not you.  People perceive what they experience differently depending on their skills, knowledge and passion.  While it is impossible to cater to every personality you can get a fairly good glimpse of this picture during your development phases.  In the end you will likely have buffed away issues that would have been common around the board.

Playtesting

So with Colorflys, unlike my prior projects, I planned to have playtesting sessions very frequently.  I will search out individuals after I complete each of my major milestones that incorporate major functionality into the game.  This way I will immediately see what people are having trouble with and what they like/dislike about the project.  If all goes well, by the time I ship the product I will have made a better game since I adjusted it from what people have already perceived of it.  It may not be enough to send you to the million download mark, but any improvement is a good one.

It’s not enough to have playtesting sessions while watching the participant.  You must take notes, ask solid questions that revolve around your goals for the session, and really listen — all with an open mind.  It will be frustrating to see people stumbling on things you could have swore were easy, or with things you thought were hard, but, again, these people are not you.  Don’t ignore reoccurring issues.

Beginning the Session

Before you begin your playtesting sessions, pin down exactly what you want out of the session.

For example, I recently completed my initial build for my pathing/movement routine and my main gameplay component.  For this playtest I had two major questions that I wanted to answer with each participant.

1. How challenging was it for the player to execute the main gameplay component?
2. If there was a noticeable problem, what did the player think would make the task easier?

You should always add a final question, ‘Did you leave the player wanting more?’ If you can talk about where you’re project is going after the session, and feel a good vibe, then I say you’re on the right path.

I select participants by how often they play games.  Some of them had very little gaming experience, while others were more hardcore.

The Outcome

At this point of the game I don’t want this to be hard for any player.  Overall, the results showed that it was not challenging to execute the main gameplay component, which was exactly what I wanted.  But, there was one participant that has played a game similar to this.  This is a case of old habits die hard.  They were used to committing this action a certain way and expected it to be exactly the same.  My takeaway is that I will incorporate a way of handling users that fit into this category because, in the end, it was not an unreasonable expectation.

The Next Session

My next playtest session will be conducted with a new batch of faces (5 – 10 people) after the level/progression system is incorporated.  My goal is to get a feel for how challenging the actual game will be for players.

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.

Effectively Managing a Hobby Game Project

This question was asked on the new Game Development stack exchange website that is in beta. My answer takes a bit from my previous post and adds a few more tactics I use for development.

To-do Application
I use Things for Mac and ToDoList if I am working on a project on Windows. Alternatively, you can jump onto sourceforge.net or codeproject.com to grab a to-do application. You will have a lot of sketches, ideas, design information that really needs to be aggregated into one spot. Having an application like this with your feature list will help you stay focused.

Small Tasks
“Implement Leaderboard View” is not a sufficient task. What does that involve? Break it down -

  • Create background artwork for leaderboard view
  • Create class methods that fetch score data
  • Create class methods that post score data
  • Create a view controller which will display a back button, reload button, and a table view
  • Implement the table view to load in the data from the model

Seeing the picture in finer detail will reduce your chances of missing a key element of your implementation and will provide you motivation as you tick off each task.

Keep the Scope Small
Don’t try to build Starcraft III if it is just you, scruffy, and purrdoodle. It’s just not feasible. Lower your expectations and find something you would still enjoy building.

Eye-candy
Get something on the screen — you may be surprised on how big of a jolt to your motivation it will be. I tend to focus on getting artwork early. In addition I also am able to work with a musician who starts showing me stuff relatively early as well.

Have fun
If you’re slaving over your save state system all of this week be sure to follow it up next week with something that is fun. One of my fun moments was redesigning the animation system for my user interface.

Collaborate
You don’t technically need to start adding people to your team, but talk to other people about what you are doing. Jump over to tigsource.com or gamedev.net and start networking.

Playtest
Start getting early feedback on your game. I’m talking about right after you finish your initial prototype. Let some of your friends mess around with what you have, get feedback, take notes, and revise your plan if needed. Be sure to test outside of your realm of comfort and cast a net that includes other game developers. Sometimes friends and loved ones are just not critical people.

Start a Blog
Talking about what you’re doing allows you to build a brand for yourself. This is priceless when it comes time to shipping your product. Just look at what Wolfire is doing. They are absolutely pure win at building a brand for themselves.

Take a Break
If your mind isn’t into the project at a specific time don’t try and force it. Get up and go for a walk or take a quick nap. That is the luxury of being an independent. In the end you’ll create a better product for doing so.

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

Open Source Project GPS-Updater

A buddy asked if I could create a simple application which would allow him to post GPS data from his device to a custom website that he was using. Easy enough. So I whipped it up and sent it his way.

Then I got to thinking that I don’t have any good sample objective-c code from my previous projects on my portfolio and in addition to that, I have never contributed anything to the open source community before. I jumped onto github and started to bring in this application. The original application didn’t have much of a UI so I spent a little time putting one together.

This app works by taking custom website and script given by the user. I default this to http://www.david-mcgraw.com/gpsinfo.php which simply returns the post values that is fed into it. Imagine the full URL being built like http://www.david-mcgraw.com/gpsinfo.php?long=34.48&lat=39.33&alt=38.43&userid=1. The user can then post that data whenever needed.

Right now you can change the settings and post. I thought it would be handy to add a map that shows you your previous posting locations in addition to a log view. I don’t have the time to implement those right now, but I hope this gives an idea of how I work in this environment. Hard to say if anyone will actually grab the code to work on it, but I doubt it.

http://github.com/mcgraw/GPS-Updater

David McGraw

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