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

August 24, 2010

A Quick Look at Survey Results

Since launching our first iPhone app back in March of 2009 we’ve been collecting survey responses for all of the apps we’ve published.  Although we’ve been following the survey results and using them to guide the development of the apps we haven’t gotten around to writing much about what we’re learning.  Here are some quick thoughts and reflections.

The first thing that jumps out in the results is that you can’t make everyone happy.  In the responses for Hangman GTi Free a close to equal number of respondents said that “the words are too easy” as those that said “it’s too hard!”  Based on that we think we might have hit the right balance.

The second lesson learned is that people want to play games like this with their friends and family.  One of the questions we’ve asked on both the Hangman GTi Free and Hangman GTi surveys is “Please rate the following features based on how much value they would add to your use of Hangman GTi”.  The answers tend to bunch around the features that allow for interaction with others.  Specifically, “Two Player Mode – Sharing one phone”, “Two Player Mode – Separate phones over network”, “High Score of Everyone Playing Game”, and “Create Your Own Word Lists”.

The third lesson is that most of the users of our game applications are using iPods rather than iPhones.  Around 71% of respondents said that they’re using an iPod.  This trend surprised us as we expected there would be mostly iPhone users and iPod would be secondary.

We hope to post more about survey results as there is some interesting information buried in the responses.

If there is something you would like us to dig into in the responses let us know in the comments.

March 9, 2010

New iPhone Game Released Today

Filed under: Game Development,iPhone™ Development — Tags: — bart @ 4:31 pm

GTi just launched it’s latest iPhone/iPod Touch Game today, Rotations GTi. You can view and download the game on the iTunes App Store or take a look at the game on the GTi website.

photo2

February 1, 2010

New Game has a Programming Challenge

Filed under: Game Development,iPhone™ Development — Tags: , — bart @ 4:15 pm

See bottom of post for updates…

I’m working on a new game which involves developing an algorithm that I’m struggling with a bit.  I thought it would be interesting to share the challenge and work it out with the larger community.

Here is a the challenge:

I’m trying to figure out an algorithm for determining the maximum score that can be generated for a game board with the following rules:

1) Game board is 3 tiles x 3 tiles
2) Each tile has four numbers on it that are between 1 and 9
3) Each number is on a side of the tile
4) Tiles can be rotated
5) Tile location can not be changed (you can’t pick up a tile and move it to the location of another tile and have them swap locations)
6) Game Score is determined by multiplying adjacent numbers on different tiles.  (see example calculations below)

To help illustrate the rules here is how the score is claculated for gameboard 1 below starting from top left tile:


(4 * 9) + (2 * 2) + (4 * 8) + (6 * 2) + (1 * 9) + // first row of tiles
(6 * 9) + (3 * 5) + (3 * 5) + (1 * 8) + (3 * 6) + // second row of tiles
(3 * 7) + (4 * 3)                                 // third row of tiles
= 236

gameboard 1

gameboard 1

And here is the calculation for gameboard 2 starting from top left tile:


(9 * 3) + (4 * 3) + (7 * 6) + (6 * 4) + (7 * 5) + // first row of tiles
(6 * 5) + (2 * 1) + (9 * 6) + (2 * 2) + (1 * 4) + // second row of tiles
(6 * 7) + (6 * 9)                                 // third row of tiles
= 330

gameboard 2

gameboard 2

So, given that the numbers are variable and each tile can be rotated how do I figure out what the max possible value is for a board with any give arrangement of tiles and numbers?

Please add your ideas and questions as comments.  I’m sure I’m forgetting some rules or other information and I will update this post as things come up.

I’ll also update the post with sudo code as the algorithm starts to come together.

————-
Updated

Here are some initial thoughts:
There are 24 number positions that count toward the score
There are 9 possible values for each number position
There are 4 possible arrangements for each tile
So there are 24 x 9 x 4 = 864 possible arrangements for the game board.

So, which of these 864 arrangements gives the highest score? Do we need to test them all? I sure hope not, because I need to scale this algorithm to a 4 x 4 , 5 x 5 , 6 x 6 and 7 x 7 grid as well!

If not, then there must be some rules we can apply to reduce the set we need to test…

February 2, 2009

Debugging iPhone™ Apps

Filed under: iPhone™ Development — Tags: , — bart @ 5:16 pm

Today’s task is to dive in and understand the debugging tools that are built into Xcode.  The good news is that my development it to the point where I need to start debugging things.  The bad news is that the debugging tools aren’t working quite as I expected.  I’m going to be spending quality time this afternoon/ evening with the Xcode Debugging Guide in the iPhone Reference Library.

I’ll update this post with some lessons learned about debugging apps for iPhone.  Hopefully soon!

==========

Updated

==========

It was really pretty simple.  Once I figured out how to view the console (there are lots of ways to see the console but what I did was go to Xcode Preferences -> Debugging -> In the “On Start” select box choose Show Console) the I got all of the info I needed.  I also played around enough with the debugger to figure out how to set break points, examine variable values and step through the code.

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!

Older Posts »