Digital Dave

Musings on projects, business and life.

Icon

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.

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

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.

iAds for Project Void and Spin & Shoot

I’ve decided to release free versions of Project Void and Spin & Shoot which will be ad supported.  I’ll be keeping the pay versions up for those that really don’t like ads flying around their screen.

The free version of Spin & Shoot has already been submitted.

I’ve implemented iAds into Project Void, but it will need some additional iOS 4.0 work.  Once I clean up how it handles being thrown to the background, I will submit it.  It shouldn’t take too long to fix up.  After this version is released I will be replacing the Cocos2D scoring system with the new Game Center (depending on my next project).

I started designing a new project for the iPad. I’m pretty excited about this. While I still don’t have an iPad I am hopeful that I can snag one from a friend when it comes time to doing hardware testing…  Or I may just end up buying a basic one since there are some good stuff being developed for it already.

I recently bought Carcassonne for my iPhone.  The developers have done an excellent job on this.  The user experience is really slick.  $5 is hard to swallow, but it is worth it if you are a big Carcassonne fan.

Project Void picked up another review from the guys at TheAPPera: http://bit.ly/cdUyGW

Conclusion

Project Void is your reverse approach on Tetris. In many ways it is the anti-Tetris and compliments the gameplay of it perfectly. Sometimes a game is just not logical, and this one isn’t, but that doesn’t make it any less awesome. Kudos.

Edit: Finished updating Project Void to handle the multitasking bit.

All moved in, married and happy. Life is good.

I have been incredibly busy within the last few weeks that I haven’t had time to write.

So let’s go back to July 20th.  I ended up getting rotation implemented in Project Void and now i’m trying to generate a procedural algorithm to throw together levels on the fly.  One of the big selling points for this game will be that you will not play it the exact same way twice. Plus, this will give me much more freedom to incorporate new content.

Fast forward to July 25th, Megan and I finally got married!!! After 9+ years, we’ve tied the knot! It’s been an incredible journey and I am excited to continue it as a bonafied married couple! :)

From the 26th to the 30th we spent time in Vegas.  We saw Mystere, Ka, and Blue Man Group.  All were awesome.

Coming back from our honeymoon, we packed up a moving truck, and spent 33 hours on the road heading toward California.

Then when we got here I couldn’t get in touch with anybody who said they might be available to help so we spent 7 hours moving all of our stuff up 3 flights of stairs! :|

To now… We’re still unpacking boxes, trying to organize things, and buying new stuff for our awesome apt.

I hope to get back on Void soon.  I’m really enjoying it and, so far, the people who have touched it are as well.

New project in the work. Tentatively named Void.

About a month ago, when I was nearly complete with Spin & Shoot, I began sketching ideas on paper of what my next project might be.  During that time, I came up with two ideas, one a little ambitious (mainly due to the artwork required), and another that was a bit less art heavy — a puzzle game.  I decided to pursue the puzzle.

A week had passed from that initial sketch.  I came back to it, added a few more screen ideas, and left it be.  Last weekend, two weeks later, saw the first prototype of this idea.  It was simple and took me about an hour to put together.  The whole point was to see it in action on the phone to see what other people thought of it, and for me to see how things fit together.  I spent the week showing the prototype to a few people and the reaction was pretty positive.  So this weekend began the implementation.

I completed the artwork required early morning on Saturday and jumped into xcode to begin putting the pieces together.  By Sunday evening I had the interface put together – animations, graphics, and overall flow for many of the views.  I implemented the first level / stage loop.  You can select pieces, drop them into place, and put them back.

So the next few days I hope to get rotation ironed out, and actually complete the level designs/prep them for action.

I found somebody to help with music and sound effects, so that is one less thing that I have to do.  I’m also tempted to host a contest on 99designs.com to get an artwork revamp, though for the 5 people i’ve shown it too, it might not be warrented.

Spin & Shoot

For the past few months I’ve been working on an idea that Megan and I had brainstormed back in January.  Since then, I’ve moved to LA to find a job, relocated to the bay area to begin work, and now just hit my 3 month mark with my new job.  While development has been pretty spotty, I’ve come to the point where I’ll be releasing the application soon.

You can think of the application being likened to a familiar wheel you may have come across in a bar. Such as this one:

example wheel

We wanted to morph that into an application, providing a fair amount of shots, allow you to enter shots we didn’t think of, provide a way to keep track of your bar hopping buddies, and overall add some spice into the drinking life.  Personally, I am all about trying new things, and most of all of my college/marine corps buddies were the same way when it came to drinking.

I’ll be posting more about Spin & Shoot in the following days.

Just 77 Days

I’m pretty excited about this event that is going on in 77 days.  If you’re not aware, I asked Megan to marry me December of 2007, and time has finally come up on us to get the party started.  Most of everything is set and planned, side from just a couple of things.  It felt like yesterday that I said we had 100 days.  Time is flying.

So what have I been up to? Work. Which is probably reason #1 as to why my week goes by so damn quick.

And an independent iPhone project. I’m at the point where I need to get it into some peoples hands so I can come down to a final decision on if I’ll post it on iTunes for free, or sell it for, likely, $0.99.  It’s a drinking game that is designed to be played at a bar with friends.  You can consider it a catalog of drinks like the cocktails application, but with a slight variation to it – namely, the game/competition factor. And no, I don’t worry about the history of the drinks…

In other news.

The campaign to promote the movie is going to get on the road, err, tracks soon.  Read the buzz here: Train

Wedding Website Built

The other day I registered two domains for Megan.  We decided that we could use one of them for our wedding website.  So, on Wednesday I sat down and created a prototype of a website and showed it to her.  She loved it and so did I all of her girlfriends.  Yesterday, I went ahead and actually made the site from scratch.  I’m happy with it.

Wedding Website

http://www.meganmcgraw.com/

David McGraw

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