Gottschalk Technologies, Inc.
Life is Work - Work is Play - Play is Life
  • Email: info@gottschalktechnologies.com
  • Phone: 206-618-5682
  • Location: Seattle Washington

January 29, 2009

iPhone™ Develpment – First Impressions

Filed under: iPhone™ Development — Tags: , — bart @ 1:10 pm

I’ve mostly been writing about the business process and decisions I’ve made that have gotten me to this point.  I haven’t written much about the technology learning curve but I think it would be good to start touching on this part of the process.

Here are some initial thoughts on my experience of diving into the iPhone SDK over the last few weeks:

  • It’s humbling to step back and start from scratch with a new platform.  All of the tutorials and videos have to assume some level of familiarity with Apple development tools and technologies.  Prior to a couple of weeks ago I didn’t have any familiarity at all.  This has meant I’ve been doing a lot of reading and re-reading, watching and re-watching.  Slow and painful at times.
  • My Java OO programming days are turning out to be a huge help.  I did a fair amount of Java OO dev 9-5 years ago.  That experience has been invaluable as I’ve been diving into the details of Objective-C.
  • I’m having a blast.  I haven’t had this much fun with technology in a long time.
  • Progress has been in baby steps.  But what seemed like black magic last week is starting to make sense.  Little things make a HUGE difference at these early stages.
  • I’m finding my way around the dev tools and figuring out how to find basic info in the iPhone Reference Library.  Seems silly to say this but even knowing where to go to look up reference info about a class or concept is something I’ve had to learn.
  • Each day something new falls into place.  See baby steps above.  The challenge I’m having is that I need to keep at this and not get too high on success or too low on a feeling of being stuck.  I burned myself out the first week and I’m trying to stay more balanced going forward.
  • The most valuable resource I found so far is a video from the 2008 WWDC called “Fundamentals of Cocoa”.  This video helped to put a lot of what I had read and seen in other places into context.  I would strongly recommend that you watch this session AFTER you have struggled with some of the other tutorials and work through the examples that are provided.  Although, it’s focused on Mac desktop app development it fits right in with iPhone dev as well.

That is all I can think of for now.  More to come…

January 15, 2009

Hangman Requirements

Filed under: Game Development — Tags: — bart @ 8:00 pm
This is the simplest set of requirements I could come up with for Hangman.  Please let me know if you see something that is missing or incorrect. 
———————————-
Welcome Screen:
  1. Display “Play” button
  2. If user selects “Play” button go to Game Play Screen
  3. Display “Info” icon
  4. If user selects “Info” icon flip to show info page

Info Screen:

  1. Display credits
  2. Display link to GTi website
  3. Solicit feedback
  4. Display “Done” button

Game Play Screen

  • To start a new game the system selects a text string (word or phrase) from the string library and displays blanks for each letter. Spaces are shown
  • Display the alphabet as selectable letters
  • If the user selects a letter the system checks to see if that letter is in the text string.
    1. If the letter is in the text string show it in the proper location(s) in the string
    2. If the letter is not in the text string draw the next portion of the hangman
    3. Show that the letter has been guessed and don’t allow user to select that letter again during the game
  • Before proceeding
    1. check to see if the whole text string has been revealed. If yes, tell user “You Won!” and show “Play again?” button.
      1. If user presses “Play again?” button start from beginning.
    2. check to see if the whole hangman has been drawn. If yes, tell user “Too bad.” and show “Play again?” button.
      1. If user presses “Play again?” button start from beginning.
  • If game has not ended then continue by prompting user to select the next letter.

January 14, 2009

First Game – Hangman

Filed under: Game Development — Tags: — bart @ 6:35 pm

Yep, that old favorite – Hangman.  I think I’ve already laid out my criteria for making this decision in previous posts.  But here is how I see Hangman fits:

  • Simple game.  Rules are well known and defined but can be modified easily if needed.
  • This is a word game and if I build it in a slightly intelligent way I’ll be able to modify and create new games in the future.
  • I like word games.
  • Hangman caters well to the iPhone interface.   In fact there are at least two other version of this game already available on the iPhone App Store.  But I don’t care since I’m not trying to make any $ on this.
  • The graphics required for Hangman are pretty simple.  Being new to the platform it’s good to have a simple place to start.
  • People will play the game.  Maybe not a lot.  But I’ll be able to get some feedback.
  • I don’t like the name – Hangman – but, whatever…it doesn’t matter at this point.  (Any other suggestions?)

Next steps are to find out if there are any patents or copyrights on Hangman that I need to consider and to get my iPhone Development environment set up.

Moving from Hourly Consulting to Product Development – First Step: Batting Practice

Filed under: Business Strategy — Tags: — bart @ 6:35 pm

Gottschalk Technologies, Inc. is on the cusp of a transition.  I started GTi by focusing on generating revenue through hourly freelance software development and programming.  This was because I needed to raise some $ to pay for the start up costs and moving to a new city and develop a reliable base of income even if it’s modest.  However, from the outset my goal was never to build the business for the long term around that revenue source.  I’ve worked in that model in the past and found that it can be fun at times but can also be a real grind.  As a consultant I was always wondering where the next $ is going to come from and when when I’m on vacation there is no revenue at all.  None, nothing, nada.  So…

My intention has always been to use hourly consulting to provide a basis of cash flow while in parallel work on generating passive income sources.  Easier said than done.

This is something I’ve been thinking about and dabbling in for the last decade and I’ve found that it’s a surprisingly difficult transition to make.  I’ve learned that there are basically two ways to build passive income.

  1. First is to make a big splash.  Invest a ton of time and money in a big idea, get angel and VC investors interested.  Cross your fingers and hope that your idea and ability to execute are solid enough and go for it.  This is the “all in” approach and has turned out many fantastic, world name brands and businesses.  But far more start-ups flame out this way.
  2. The seocnd option is to bootstrap a business from the beginning.  Make it pay for itsself from day 1 (OK, maybe Day 2).  Find the simplest way to turn $1 into $1.0000001 and begin.  It doesn’t need to be any better than that.  Then figure out the next step to turn $1 into $1.0000002.  And repeat.  Bootstrapping a business can be gruling, slow and frustrating but you don’t have the same risk as with option 1.  I would guess that we don’t hear quite as much about these businesses in the popular press but they are the true engine of the economy.

I’m taking path number 2.  I don’t have the stomach for path 1.  I rebel against the external pressure that comes with option 1 and it’s not a pretty picture.  Even if it was all my own money that was on the line I’d still probably rebel from option 1.  It’s just not my thing.  Option 2 however, is just my speed.  I enjoy the long slow process.  For fun I sign up for endurance athletic events that can take up to a year to prepare for and then can feel like a grind on race day – but to me the process of planning, training, and executing is a total blast!  I enjoy the balancing act of figuring these long and slow thing out and seeing success on the other side.

I’ve been talking about this transition with a number of people but I don’t believe I’ve written about it yet.  So, here goes using baseball as an analogy to describe my entry into product development.

Step One – “Batting Practice”

Before I can expect to hit a curve ball, knuckle ball, or even a fast ball I need to spend some time taking batting practice.  In terms of product development this means that I need to go through the complete Product Development Cycle (PDC) from conceiving of a product, designing it, building it, launching it and following up to see how the process went – all for practice and expecting to make no money in the process (remember this is batting practice – you don’t get paid for that).  Fortunately, since this is batting practice some of the rules are a bit different.  Primarily I want to find ways to cut down on the time it takes to go through the PDC and focus on the steps that need the most practice.

Before moving on I need to define the following phases for PDC:

  1. Setting Objectives – what am I trying to accomplish?
  2. Defining Requirements – what am I trying to build?
  3. Designing the product – what will it look like? how will it be built?
  4. Implementation – build it.
  5. Testing and Bug Fixing – does it work as intended?
  6. Launch – get it out in the wild.
  7. Review – how do people like it?  did I accomplish the goals?  what did I learn about steps 1-6?

There are a ton of ways to move through these 7 phases or break them into different phases. I don’t want to engage in a discussion of the best way to define the phases of the PDC or a detailed discussion of project management methodologies.  That would be a waste of time during Batting Practice.  But I think we can agree that one way or another these 7 things need to happen to a greater or lesser extent to make it through the PDC.

So, what I can cut down on in the list above, what should I focus on, and what should my goal and objectives be?

Objectives for Batting Practice:

  • Launch a real product.
  • Learn about legal, financial and administrative hurdles that must be crossed to take a concept to market.
  • Learn how to develop using the iPhone API.
  • Gather real world feedback from users.

I think that is a manageable set of goals for this round and if was to accomplish those I would call Batting Practice a success and would feel ready to move on to trying to scratch out a bloop single in a real game.  But if I fail to accomplish any of these objectives I might need to do another round of Batting Practice with a shift in focus.  I hope to avoid that.

Implications for Requirements

  • Keep it as simple as possible – then simplify some more.
  • Make sure I’m not infringing on any copyrights or patents.
  • Engage users and potential customers early and often.

Implications for Design

  • Keep it as simple as possible – then simplify some more.
  • Don’t reinvent the wheel.  Use a game that already exists and everyone knows.
  • Experiment with a wide variety of the iPhone User Interface capabilities.  But don’t obsess over them.
  • Build feedback mechanisms into the game itself.

Implications for Testing

  • Testing and ironing out all bugs.  The resulting product doesn’t need to be perfect.  But it should lock up a users iPhone and it shouldn’t be a pile of s**t.

Implications for Launch

  • Get to market as soon as possible.
  • Remove anything delay possible.
  • Simplify, Simplify, Simplify

Implications for Review

  • Be generous with time and attention during this phase.  This is where the learning happens.

Next Post: I’ve picked a game!

What Platform – Web, iPhone™, Other?

Filed under: Game Development — Tags: — bart @ 12:36 pm

Next question: What platform should I target for the games I build?

I think the answer to this needs to be driven by two things -

  1. The price point I’m targeting
  2. What I’m familiar with as a user.

In my previous post I address the price point question.  http://gottschalktechnologies.com/blog/2009/01/14/pricing-and-disposable-games/ I need a platform that supports this low pricepoint.

The last video game box I owned was the Nintendo Entertainment System (http://en.wikipedia.org/wiki/Nintendo_Entertainment_System).  So I’m not familiar enough with the Wii or Xbox to target modern dedicated platforms, at least not right now.

But, I do have an iPhone, and I use it a lot.  And I play a lot of games on it.  And it supports the pricepoint.

So, that is my answer for now.  iPhone here I come!

Pricing and Disposable Games

Filed under: Game Development — Tags: — bart @ 9:41 am

One of the questions I need to answer is how I’m going to price any game I create.  Seems there are two ways to approach this.  Try to make a ton of $ on each sale – $60-80.  Or sell for really cheap – $0.99.  The expensive games are an investment for the buyer and they expect a lot.  The $0.99 games are what I’m calling disposable games.  These are things that people might be willing to purchase on a whim and if they don’t like them then no harm done.  If the $0.99 game gives them even 30 minutes of fun then it was worth it.

I’m going for the $0.99 disposable games.

Normally, the term “disposable” is something I try to avoid.  But in this case it’s just some bits of data and disposing of them when done with a game has a negligible impact on the environment.  So, no harm there.

If my games can provide someone 30 minutes of fun while they’re stuck on a bus or at the airport then my mission has been accomplished!

January 13, 2009

Build a Classic Game or Build New

Filed under: Game Development — Tags: — bart @ 12:56 pm

Here is the dilemma I’m struggling with today as I plan for building the first GTi game:

Should I build a classic game (tic-tac-toe, hangman, etc) or invent my own game.  Here are the pros and cons:

Build Classic:

  • Pros
  1. Don’t have to spend time thinking about rules
  2. Don’t have to teach people how to play
  3. Get experience with the development technology and Platform (iPhone)
  4. I can modify the game rules if I want in whatever way I please
  • Cons
  1. Kind of boring – I might get halfway through and decide to bail on this since it’s not creative
  2. I don’t have to explore what makes a game compelling for people in quite the same way.

Invent My Own New Game:

  • Pros
  1. More creative process which I think will be fun
  2. Get experience with the development technology and Platform (iPhone)
  3. Can modify game rules as I want if I want
  4. I have to explore what makes a game compelling for people and hope to get a lot of valuable feedback
  • Cons
  1. Have to spend time thinking about rules – might get bogged down in this
  2. Have to teach people how to play

I’m sure this is an incomplete list but after writing out even this much the decision is pretty clear to me.  Go with a classic game but feel free to modify the rules and add twists to the game as I like.  Doing this allows me to minimize the Cons in inventing my own while gaining the benefits of inventing my own.

January 9, 2009

IE CSS Issues

Filed under: GTi Website — Tags: — bart @ 7:43 pm

Just discovered the site www.gottschalktechnologies.com looks horrible in IE.  I’ve got some work to do this weekend!

What Makes Games Addictive

Filed under: Game Development — Tags: — bart @ 7:35 pm

Fascinating little article in Wired Nov 2008 about what makes games addictive:

http://www.wired.com/gaming/gamingreviews/magazine/16-11/pl_games

Here are my takeaways and twists on the article’s conclusions.

    • Randomness that doesn’t seem random is compelling.  We think we’re controlling the outcome and just when we start to think we’re “good at this” randomness kicks in a knocks us down a bit.  We like this.
    • People like to create order.  Someone that is very close to me gets so much satisfaction from creating order that at the grocery store checkout line the checkout clerk has remarked on how well packed her basket is! She still smiles at the memory :)
    • People like to have to hunt for something that provides a reward.  Hunting without a reward is just a pain in the ass.
    • People like to get better at a simple skill they can pick up quickly but can never quite master.  Do something simple, do it again a bit faster/ prettier / larger-scale.  Keep increasing the level of speed/ beauty/ scale until you crack.
    • People like to see patterns in seemingly random jumble.  I think Pointilism is one form of this.  This also ties into points 2, 3 and 4 above.

      What do you think makes games addictive?  What game(s) are you addicted to?

      Games

      Filed under: Game Development — Tags: — bart @ 6:59 pm

      As I mentioned in the previous post I updated the GTi games page today.

      Since GTi is still in the process of developing it’s first game I decided to focus on philosophy and humor.  The two quotes that I posted there are things I clipped a couple of years ago and still drive how I feel about games.  They are going to guide the process of game development at GTi.

      I’ll be posting more about this process as I go.

      Older Posts »