Saturday, 29 October 2011 0 comments

Professional Advice: Matt Rix


Following in my series of seeking advice from those in the industry who have achieved success, Matt Rix of Trainyard fame has taken some time out to answer some questions.

Trainyard is an innovative and challenging puzzle mechanic with a smooth difficulty curve. There are a 100 main puzzles and 50 hard bonus puzzles with hundreds of ways to solve each puzzle.

The game has been engineered for low battery usage, developed with a color-blind mode. Includes full retina support and high-res graphics on iPad.

There are parallels with my project in that it took a year to make and was independently developed by Matt himself.

MyGamingProject: What do you foresee being my single biggest challenge?

Matt Rix: "Your biggest challenge is going to be sticking to it and staying motivated. It's easy to be motivated at the start of a project when everything is new and exciting, but later on, when you're dealing with painful bugs and doing marketing and all that, it'll be much harder."

MyGamingProject: What would you have done differently knowing what you know today?

Matt Rix: "I don't really have too many regrets. One thing I would say is "don't promise anything". It's fine for you to have goals and stick to them, but don't promise something to the world at large, or else there will be an even larger cost for switching plans."

MyGamingProject: What game development tools would you recommend?

Matt Rix: "It really depends on what your experience is, and what you want to do. If you're developing iOS games, Cocos2D is fantastic, and so is Unity. When it comes to art, I make most of my assets in Flash, but everyone has their own preferences for that. . A lot of people get caught up in using the "right" tools or methods, but at the end of the day, there are lots of different ways of doing everything, and they will all work. The hard part, as I said earlier, is actually sticking to it. If you do a few hours of work every day, no matter which tools you're using, you will finish your project."

MyGamingProject: How would you recommend marketing a game, techniques, channels, proposed budget etc?

Matt Rix: "This is a tough one. It's worth looking around to get a sense for other people's experiences with marketing, but really, the same thing rarely works twice. The key is to create a compelling marketing story. You need a reason for people to write about your game. It's also really important that your game has "moments of delight". These are the elements that make them say "wow", and these are the elements that make them share your game with their friends."

MyGamingProject: Any additional advice you feel would be of benefit
Matt Rix: "I honestly think that if you actually put this many hours into this, you will end up being successful. As cheesy as it sounds, if you don't give up, you can't fail."

Get Trainyard from iTunes for $0.99/£0.69.
Monday, 24 October 2011 0 comments

Professional Advice: Zeptolab


I thought it beneficial to get some advice from those in the know. I have contacted a number of well known gaming companies to provide some tips as to what I should consider on my project.

The first to help in this series is Zeptolab.

For those of you who don't know Zeptolab created the highly successful Cut the rope and Cut the rope experiments.

They very kindly spared me some time after I explained my project and what it was I was trying to achieve.

Their first suggestion was to focus on quality. If you haven't read my entry on my chosen game environment this is why I want to focus on the game design and development rather than focusing on learning a programming language.

The second tip was not one that I had considered and that was to launch my title with an experienced and well-known publisher. I will certainly be investigating further to understand the benefits to following this route.

I'll bring you more in this series just as soon as I get more response but thanks again to Zeptolab for taking the time.
2 comments

The tools: a decision

Having given it much thought I have come to a decision about the gaming environment I am to start with. To summarise I will list my findings to date and then let you know which one I am to write my first game with.


GameSalad
This was the first for me and I enjoyed using it. it was pretty straightforward to use and would fit well with those coming into gaming that maybe come from a design background or used to using products such as Adobe Flash.
Key Facts
Programming Language: Not applicable
Supported Platforms: iOS (Mac, iPhone, iPad, Web)
Notable Games: Angry Anna, Bumps
Cost: $499 pe year


Cocos2D
While a steep learning curve at first it was very rewarding when getting things working. A knowledge of objective-c, XCode and Box2D is advantageous the excellent community and books available make almost any question, answerable.
Key Facts
Programming Language: Objective-c, C++
Supported Platforms: iOS (Mac, iPhone, iPad)
Notable Games: Feed me Oil, Tap Pet Hotel, Tap Zoo, Air Penguin, Zombie Farm, Trainyard
Cost: Free


Corona
Found this framework to be a half way house between GameSalad and Cocos2D. The new programming language took a little getting used to but the speed you could get things going as well as a decent community support meant I was up and running in no time. In built Box2D capabilities allowed me to achieve decent physic effects with a few lines of code.
Key Facts
Programming Language: Lua
Supported Platforms: iOS (Mac, iPhone, iPad), Android
Notable Games: Bubble Ball. Blast Monkeys, Globs, Float, Forgotten Places Lost Circus HD, Critter Quitters, Turtle and Rabbit Hare, ESP Guitar Experience
Cost: iOS: $199/year, Android $199/year, Both: $349/year


Unity 3D
I haven't really touched the surface of this and the power of the product is very clear. However, I was very mindful again of the words of Steffen Itterheim in Learn iPhone and iPad cocos2d Game Development, reiterating the need to focus on some achievable. With that in mind I have shelved this to at least year two when I have a game or two under my belt.
Key Facts
Programming Language: Javascript, C# and Boo
Supported Platforms: iOS (Mac, iPhone, iPad), Android, Web
Notable Games: Battleheart, Zombieville USA, Battle Bears
Cost: iOS: $400/$1500, Android $400/$1500


SIO2
This promised much from having read the website and gone through the forums. After downloading and registering I fired up the sample projects. Here started my problems!! Under the trial license you need to communicate with SIO2's licensing server but my license key wasn't recognised from their developer portal. A common problem from what I have read on forums and across google. I tried to then contact technical support but was told this wasn't available unless I upgraded. I also tried using iChat to get some assistance but was refused connection.
Key Facts
Programming Language: Lua
Supported Platforms: iOS (Mac, iPhone, iPad), Android, Web
Notable Games: Manic Marbles, Bowmaster
Cost: iOS: $399, Android $399


iTorque 2D
To be honest I didn't evaluate this one. But they describe themselves as follows:
"Making games for the iPhone, iPhone4, iPod touch, and iPad is now a fast, fun, and straightforward process using Torque's tools for game development. The unparalleled 2D editor has been extended to bring more iOS control and features to your fingertips with less coding required.

Students, designers, and indies can jump start their development with easy and powerful technology used by thousands of developers. Advanced developers can accelerate their development with this feature rich development environment.
Your iTorque 2D license provides the following features specific to the iPhone, iPhone 4, iPod touch, and iPad"
Key Facts
Programming Language: TorqueScript
Supported Platforms: iOS (Mac, iPhone, iPad)
Notable Games: Mass Effect Galaxy, Marble Blast Mobile
Cost: iOS: $149


Gideros Studio
Deniz Asli Soykurum Cetin, co-founder of Gideros, very kindly pointed out their game development framework. I have decided at this time not evaluate but that is not slight on their product but more a focus on those that have gone before them. They say:
"With Gideros Studio, now it’s possible to build a proof of concept demo of your application in a couple of hours. You can test your application idea in your desired platform by simply clicking play button, thanks to AS3-like functions in Gideros Studio. Even if you are an experienced mobile designer, fast testing your application concept on the real device will give you a important feedback about the user experience. You can use the accelerometer of iPhone for example, to see if your idea is fun enough."
Key Facts
Programming Language: Lua
Supported Platforms: iOS (Mac, iPhone, iPad), Android
Notable Games: Tim the Timber
Cost: Free/$139/$449


marmalade
Thank you to @_danyal for telling me about this product. Again, I have not tested as this seems pretty advanced for a newbie but offers good testimonials as well apps that have been created with it. In short, Marmalade is described as "the world’s most powerful SDK for the creation of richer apps and games on iOS, Android and other platforms. Marmalade’s unique technical architecture offers maximum performance through true native code."
Key Facts
Programming Language: C/C++
Supported Platforms: iOS, Android, Symbian, bada, webOS
Notable Games: Need for Speed Shift, Pro Evolution Soccer (PES) 2011, Backbreaker Football
Cost: Free/$149/$499/$3499


kobold2d
Steffen Itterheim who wrote the aforementioned Learn iPhone and iPad Cocos2D Game Development has also been busy extending the Cocos2D framework. Extending what is already an excellent language is obviously one to watch. Steffan writes: "Kobold2D is an extended and improved version of the popular Cocos2D game engine. Kobold2D is easier to get started with, more convenient to use, more powerful and flexible than Cocos2D. Use Kobold2D to develop iPhone, iPod touch, iPad and Mac OS X games for the Apple App Stores. Kobold2D is free and open source with additional premium content to support its development."
Key Facts
Programming Language: Objective-C
Supported Platforms: iOS (Mac, iPhone, iPad)
Notable Games: N/A
Cost: Free


Conclusion
So who have I gone for? Well I have really debated this but Steffan's words keep ringing in my head as well as a new member of my conscience, Jay Jennings. Jay Jennings for those of you who may or may not know wrote the excellent Corona Project Manager. He said something that has stuck in my head for days and that was: "I got into game development because I want to DEVELOP GAMES, not program". This was a really valid point that I had lost focus on. Given that the first two years of this project is to deliver quality successful games I have to be realistic and put my time into game design, polish and marketing to achieve results.

It is because of this I have decided to go with Corona. While the Lua language is at present a complete mystery to me I was able to get my prototype up and running very quickly and with the ability to relatively inexpensively distribute to both iOS and Android devices this had the final advantage over Cocos2D.

Wish me luck!
Saturday, 22 October 2011 2 comments

The comments start ...

Thank you for the first comments on my blog from Steffen Itterheim and Deniz A. Soykurum Çetin. This was exactly why I started on this journey with this project. I don't profess to know the answers so building a community to help achieve my goal is appreciated and a real motivator.

Steffen mentioned considering Kobold2D (http://www.kobold2d.com) while Deniz suggested Gideros Studio (http://www.giderosmobile.com).

Both certainly worth a consideration so thank you for the input. Has anyone used these and how have you found them to work with?
0 comments

Commercial cogs start turning

Taken a slight break from the game prototyping to look at a commercial opportunity that has thrown up a few challenges. These include attachments to email that aren't just images as well as a CSV file generation.

To start with the attachment piece of emails is pretty easy. First add whatever file you want into your resource folder of you iphone/ipod/ipad app within Xcode. Then to reference the file just use the following code but making sure you have the correct mime type.

if ([MFMailComposeViewController canSendMail]) {
        
        MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];
        mailViewController.mailComposeDelegate = self;
        NSArray *toRecipients = [NSArray arrayWithObject:@"anemailaddress@domain.com"];
        [mailViewController setToRecipients:toRecipients];
        [mailViewController setSubject:@"Test Attachment"];
        [mailViewController setMessageBody:@"This is a test message." isHTML:NO];
        
   
        NSString *filePath = [[NSBundle mainBundle] pathForResource: @"MyPDF" ofType: @"pdf"];
        NSData *pdfData = [NSData dataWithContentsOfFile: filePath];
        [mailViewController addAttachmentData: pdfData mimeType:@"application/pdf" fileName:@"MyPDF.pdf"];
      
        [self presentModalViewController:mailViewController animated:YES];
        [mailViewController release];
        
    }

Good job done.

I then looked to extend this further by being able to take inherent data within the device and then output this into the email.

Not wanting to make work for myself I looked around the internet for a decent CSV parser and everyone pointed me to the CHCSVParser by Dave Delong. This proved to be reasonably self explanatory and was able to export an NSArray and attach to an email with the following example:

NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                                             NSUserDomainMask, YES); 
        NSString* documentsDirectory = [paths objectAtIndex:0];     
        NSString* leafname = [@"Sample" stringByAppendingFormat: @".csv" ]; 
        NSString* filenameStr = [documentsDirectory
                                 stringByAppendingPathComponent:leafname];

        CHCSVWriter *csvWriter = [[CHCSVWriter alloc] initWithCSVFile:filenameStr atomic:NO];
        
        NSArray * expectedFields = [self expectedFields];
        
        NSUInteger expectedCount = [expectedFields count];
        
        for (int i = 0; i < expectedCount; ++i) {
            NSArray * currentLine = [expectedFields objectAtIndex:i];
            NSUInteger fieldCount = [currentLine count];
            
            NSString * value;
            for (int x = 0; x < fieldCount; ++x) {
                value = [currentLine objectAtIndex:x];
                [csvWriter writeField:value];
            }
            [csvWriter writeLine];
        }
        
        [csvWriter closeFile];
        [csvWriter release];

        
        NSFileManager *man = [[NSFileManager alloc] init];
        NSDictionary *attrs = [man attributesOfItemAtPath: filenameStr error: NULL];
        int result = [attrs fileSize];
        NSLog(@"File size: %i", result);        
        
        NSData * csvData = [NSData dataWithContentsOfFile: filenameStr];
        [mailViewController addAttachmentData: csvData mimeType:@"text/csv" fileName:@"Sample.csv"];
This works really well for me and will be looking to extend after I have completed the excellent Core Data tutorials over at Ray Wenderlich site. Really worth checking out for iPhone tutorials. The big gotcha that took me ages to figure out was the first four lines of code:
NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, 
                                                             NSUserDomainMask, YES); 
        NSString* documentsDirectory = [paths objectAtIndex:0];     
        NSString* leafname = [@"Sample" stringByAppendingFormat: @".csv" ]; 
        NSString* filenameStr = [documentsDirectory
                                 stringByAppendingPathComponent:leafname];
I was previously trying to create a file via NSBundle and gave me misleading errors where the file would appear on the email composition but would not turn up in the inbox. It now works.

Hope this is useful to somebody
0 comments

SIO2 Prototype results

This is going to be short!

SIO2 was always an outside runner but wanted to include them mainly for their Blender support.

After downloading and registering I fired up the sample projects. Here started my problems!!

Under the trial license you need to communicate with SIO2's licensing server but my license key wasn't recognised from their developer portal. A common problem from what I have read on forums and across google.

I tried to then contact technical support but was told this wasn't available unless I upgraded. I also tried using iChat to get some assistance but was refused connection.

Not good SIO2 not good at all. I won't be taking this one any further.
Monday, 17 October 2011 2 comments

Cocos2D Prototype results

Wow, that was a step up in complexity! The exercise has proven that GameSalad and Corona seriously wrap up the physic engine. This proved to be an uphill struggle at first as there were three key areas I / you will need to know to get this example working:
  1. A decent understanding of Xcode
  2. Using the community support for Cocos2D a lot.  Thankfully its very good
  3. Working out how on earth Box2D worked with some next to useless documentation.
I had to use a completely different technique to collision detection in Cocos2D than I had in the previous two which meant having to construct the red bars separately and then attach the physic's bodies to it.  The challenge I had for a long time was that the collision was never happening this became very frustrating until I got my head round the debug drawing.

To initialise the debug draw put the following in the init method:
// Debug Draw functions
        m_debugDraw = new GLESDebugDraw( PTM_RATIO);
        world->SetDebugDraw(m_debugDraw);
        
        uint32 flags = 0;
        flags += b2DebugDraw::e_shapeBit;
        m_debugDraw->SetFlags(flags);

Then all you need is to create your draw method:
-(void) draw
{
 [super draw];
    glDisable(GL_TEXTURE_2D);
 glDisableClientState(GL_COLOR_ARRAY);
 glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    
 world->DrawDebugData();
    
 glEnable(GL_TEXTURE_2D);
 glEnableClientState(GL_COLOR_ARRAY);
 glEnableClientState(GL_TEXTURE_COORD_ARRAY); 
}

Using this really allowed me to resolve the collision issues very quickly and proved invaluable as I found that I was making my bodies dynamic instead of static which meant they were falling off the bottom of the screen.

So, as always, what did I think based on my test criteria. My findings were as follows:
  • The ability to add scenes by creating new classes is simple enough and easy to adopt if you are used to Xcode.
  • The integration of Box2D into Cocos2D requires a steep learning curve to achieve the same results that can be done in minutes within GameSalad or Corona. 
  • If you are used to any Apple device development then the fact its in objective-c makes picking this up very easy
  • Knowledge of C++ or its syntax would be advantageous to get under the bonnet of Box2D.
  • The templates provided by Cocos2D framework through Xcode provide a good starting point as well as leveraging the normal tools of the Xcode development environment.

As far as price points go this is going to take some beating, its free! The downside though is that there is no Android support so this will have to be a consideration before adopting this for the rest of the project.

While this was tough I felt I learnt a lot from the experience and being a developer by trade in control. Which for me is important. At this time Cocos2D is narrowly leading if I decide not to include Android development at this time.

Saturday, 15 October 2011 0 comments

Cocos2D Tutorials

Had a day off yesterday as it was my birthday!!

As Cocos2D is a little more involved than the previous two, and while offering wrapper classes, a lot of the complexity and power is available to the developer. Therefore there is a little more to learn and get wrong!

I am going through the tutorials for Cocos2D and Box2D on the excellent Ray Wenderlich site which can be found at http://www.raywenderlich.com/tutorials.
Thursday, 13 October 2011 0 comments

Corona SDK protyping results

I thought I might be more at home with Corona SDK than GameSalad. This was purely on the hunch that it was aimed at a developer rather than designer. Having installed the SDK I went to the support pages to get a general feel. Having worked with a large number of commercial programming languages before I wasn't keen working in another, this one called Lua, and the fact it wasn't object-oriented. Also the lack of an IDE having to work in notepad was a move back to the nineties for me when working in HTML for the first time.

This, however, is where the negativity ends. I was very impressed with how little code you needed to write to achieve a lot of very clever effects. Coupled with the director class by Ricardo Rauber meant I could organise the project in a more logical sequence; i.e. a new script for each scene.

As an example please see a code excerpt for the results / restart page:

module(..., package.seeall)

--====================================================================--
-- SCENE: SCREEN 1
--====================================================================--

--[[

 - Version: 1.3
 - Made by Ricardo Rauber Pereira @ 2010
 - Blog: http://rauberlabs.blogspot.com/
 - Mail: ricardorauber@gmail.com

******************
 - INFORMATION
******************

  - Sample scene.

--]]

new = function ( params )
 
 ------------------
 -- Imports
 ------------------
 
 local ui = require ( "ui" )
 
 ------------------
 -- Groups
 ------------------
 
 local localGroup = display.newGroup()
  
 color = display.newRect(0,0,display.contentWidth,display.contentHeight)
 color:setFillColor(255, 255, 255)
 
 myMessage = display.newText( "Congratulations you", 40, 60, native.systemFont, 24 )
 myMessage:setTextColor(0,0,0 ) 
 myMessage2 = display.newText( "finished in a time of", 40, 90, native.systemFont, 24 )
 myMessage2:setTextColor(0,0,0 ) 
 timeText = display.newText(_G.minsText.. " mins and " .._G.secsText .. " secs", 40, 120, native.systemFont, 24)
 timeText:setTextColor(0,0,0)

    
 local bt01t = function ( event )
  if event.phase == "release" then
   _G.secsText = 00
   _G.minsText = 00
  
   director:changeScene( "screen2")
  end
 end
 
 local bt01 = ui.newButton{
     default = "restart.png",
     over = "restart.png",
     onEvent = bt01t,
     id = "bt01"
 }
 
 bt01.x = display.contentWidth / 2
 bt01.y = (display.contentHeight / 2) + 50 
  
 localGroup:insert( color )
 localGroup:insert( myMessage )
 localGroup:insert( myMessage2 )
 localGroup:insert( bt01 )
 
 return localGroup
 
end


So based on my test criteria my findings were as follows:
  • The ability to add in new scenes and transition between them was relatively straight forward when using the aforementioned director class class
  • The generation of boxes on clicks was an adaption of a support example but was implemented with just a few lines of code.
  • Scripting and the Lua language meant full control over conditional and game logic
  • The wrapper around Box2D physics engine gave some excellent and realistic results
The lack of IDE is of course a disadvantage and having written to the founders they took the time to respond to state they were looking in to it. Impressive.

Price point is also pretty good coming in about 25% cheaper than GameSalad.

My next investigation will be Cocos2D as it has a lot of similarities in particular the physics engine: Box2D.

Check out the video below for the corona sdk version in action.

Tuesday, 11 October 2011 0 comments

GameSalad prototyping results

The first product I looked to prototype was GameSalad. I have to be honest I entered into this with negativity as the little I knew of it it was aimed at those who weren't developers and as such felt it could be restrictive.

On downloading and then looking to make a quick start my initial thoughts were that the interface was very alien to me. I was crying out for a script editor but instead everything was drag and drop with parameters, property or attribute configuration.

I didn't find it that intuitive at first but after referred to the excellent GameSalad support site I was up and running in about an hour with the basic premiss of the test.

Based on my test criteria my findings were as follows:
  • The ability to add in new scenes and transition between them was relatively straight forward to setup
  • The dynamic creation of a box (or actor in GameSalad speak) was relatively challenging at first but then reading forums and working with the rules and attributes proved to be quite powerful
  • Basic conditional testing was straight forward enough but the lack of direct scripting and limited data types meant that transitioning and retaining time information was very cumbersome and probably accounted for half the time I took on the prototype
  • Logic to determine that boxes that fell outside the red box wouldn't be counted. Simple enough based ont the overlap or collision ruling of actors
  • Each instance of a box and the resultant collision detection was well managed and wrapped up. Being a physics novice this allowed me to achieve some relatively realistic results in a matter of minutes
  • Again, game logic test was straight forward enough and sure with a little further investigation I could have come up with a neater solution

In summary, GameSalad achieved what I wanted it to do for the prototyping task n a relatively short space of time (no more than 6 hours from downloading to blogging). However, I certainly felt that its aimed at designers rather than coders in the similar way to when Adobe Flash first came on the market.

There is no discounting its capabilities and on my journey through this project I think I could achieve results very quickly, I do however questions its scope and complexity.

In terms of commercials while I could produce an app for free the cost of $499 per year for the more commercial / pro aspects of the product seem a little steep. The lack of In app purchase capabilities in the version I tested is a revenue barrier although I do understand that is on their roadmap.

Also the fact it is restricted to Apple devices and the web (no Android) restricts me which isn't necessarily a bad thing but something to consider.

Take a look at the youTube link below to see my efforts:



The next is Corona SDK ...
Monday, 10 October 2011 0 comments

The test for prototyping

In order for me to devise a fair test of the development tools proposed in the earlier post I need to ensure I am creating something comparable. As a result I have come up with a physics test.

The following functionality will provide the test:

- User presented with menu screen to start game. Game logic test
- User clicks on screen to drop a box vertically which has to land in red box to count.  This provides a physics test
- The clock ticks until there are 10 boxes within the red boxes.  This provides a conditional test
- Boxes that fall outside the box won't be counted.  Logic test
- Any box should have its own physics to interact with its other in a manner expected in the real world.  Collision detection test
- At point 10 boxes being reached, the timer is stopped and presented back to user.  The user has the option to retry.  Game logic test

Now I don't profess to know what I am doing, at the moment, in regards to game design but I need to start somewhere and this to mean seems a sensible approach.

It's also important to note that I will only be focusing on a 2 dimensional test at this point for brevity as I don't intend to make this my life's work.  While going through the prototype I hope to ascertain a few things about each development tool:
  • Ease of use
  • Potential customisaton and scope
  • Potential cost of development
If I am finding that an environment is taking too long to achieve this then I will remove them from the test for now and relook at the product further into this project.
4 comments

The tools for success

The primary focus of my initial year's development will be around mobile applications. While I am a .NET developer with over 10 years experience for me at this time the windows mobile market won't optimise exposure and revenue potential.

The choices therefore are obviously the Apple devices using iOS and Android.

I have dabbled a little with iOS but not with a game. Also I have no knowledge of gaming theory or development of it my skills are far more in web development and enterprise solutions.

So in order to give myself the right tools I need to ensure I have the right development environment.

I don't know if you are like me but I tend to have a thousand ideas, jumping from one to the other without ever finishing one. This was spelt out to me in the excellent book by Steffen Itterheim Learn iPhone and iPad cocos2d Game Development which while a good technical reference also reemphasised its better to get a smaller project finished then something complex that you will never get done.

Being a developer I want control but also want the help as I don't have a 100 man/women team behind me to fulfill this plan. Therefore I intend to short list a few game libraries, IDE's etc to make my decision over the coming weeks and months. My initial short list is:
They have their merits but I am looking for the following characteristics:
  • Ease of use
  • Physics engine
  • C based language
  • Costs
  • Multiple platform
My preferences are in that order but as I stated before retaining control which is why at this point of writing I think Game Salad will make the cutting room floor!

From previous observations I am leaning towards Cocos2D and Corona SDK.  If I were to go full time now (which I'm not) then Unity 3D would be my chosen route for its versatility.  

Over the next few weeks I will trial these with a simple example before diving head first.
Sunday, 9 October 2011 4 comments

The project

Talent has little to do with success according to research conducted by Dr. K. Anders Ericsson a theory I first came across through reading Outlier by Malcolm Gladwell. The theory being that elite performers engage in ‘deliberate practice’–an focused activity designed to improve target performance. This principal is behind the 10,000 hour theory.
I furthered my investigation into this by looking into other practitioners of this theory and came across thedanplan, amongst others, who also wanted to prove from novice golfer to PGA tour professional.
That got me thinking what could I apply? My strengths are that I am a problem solver, a software developer and have a passion for video games. I therefore formulated this project to give myself a five year goal to achieve my dream of owning my own gaming studio, paying off my mortgage and funding private education for my children.
The coming hours, weeks, months and years will be documented as a means of diarising my activity and seeing if the 10,000 hour theory can be applied to such a concept.
So what is the timeline to this plan?  It is to achieve the result of my plan within 5 years i.e. by my 40th birthday.
The plan is loose at the moment but it is as follows:
  • Work to a six day plan
  • Year's 1 and 2 to work 3 hours a day, 6 days a week
  • Year's 3 to 5 to work 8.5 hours a week over 6 days
This will provide me with the framework to achieve the 10,000 hours by my 40th birthday. So what metrics will denote success?
  • Year 1: To have a number one category application (iphone, ipad) in an established market
  • Year 2: To have a number one app in an established market and by the end of the two years to be able to give up job and go full-time
  • Year 3: Establish and maintain full-time position.  Have another number one app in an established market
  • Year 4: Financially rewarded by paying off mortgage
  • Year 5: Financially rewarded by affording to privately educate my children
Ambitious, I know, but the principals that I have read into the 10,000 hour theory are examples of people dedicating their time to one goal whether it be to play golf on the PGA tour, the become a chess master or play an instrument but ultimately to do things they always wanted to do. In this instance I go back to why I went into programming in the first place and that was to get into game development while the proverbial carrot of financial reward is there.

The journey will be interesting for me and hopefully I can build up a community that not only supports and offers advice for me but in turn provides motivation to do the same.
 
;