Showing posts with label personal. Show all posts
Showing posts with label personal. Show all posts

Monday, February 4, 2013

The Swing

Mentally its taken me a little while to adjust to being my own boss, and running my own schedule.  This post is about learning to manage time and motivation when doing game dev.

From recent Indie Game Dev events I've been to in Brisbane and looking online many many Indie Game Dev's work a day job and then come home to do their development work at night and on the weekend.  For me over the past 6 months, when I was working on contract during the day and hacking fun game stuff at night that just was not working at all, so I saved up and got myself to the point where now I can work on my games wholly and solely.  Its something I always wanted to do and now can afford to do.

But to make that work I found I needed to get into the swing of things, in my own way, and that meant figuring out how to get my work done - getting my energy happening - when Game Dev was no longer just some super fun sideline from my main job.  If you have a day job, then folks are not really going to give you a hard time if whatever you're doing as a sideline doesn't work out.  But if its your main gig, then the pressure is on and its a different thing.

Yesterday I went down to the Kelvin Grove Urban Village which is our local "town center" about 4 blocks from home, and I sat on a park bench outside the coffee shop drinking a flat white, and drawing this sketch of the KGUV complex - or part of it.  Drawing in real life (not inside, from photos) is one of the things I need to do - likewise getting outside, and interacting with people: even if its just "Flat white, no sugar - thanks".

Taking time out to look up, and really see, I guess you could say.  Drawing makes you look at and understand objects in the real world, how they are lit, how they are constructed in a way that just strolling through really just can't.

I saw the movie "Indie Game" and how those guys handled the pressure of developing ones own creation.  There really wasn't much else in their lives outside of the game, although I think the creator of Super Meat Boy really had a better perspective than most of the developers depicted there.  He put energy and time into his relationship with his wife, and also into his home life - as well as focusing all his creative output into the game.  Actually watching that movie and how gritty and real it was (or at least it seemed) made me feel inclined to include the personal side of my game development experience here.  None of us are machines, and the more creative we are I think the harder it can be to force that creative energy when it doesn't want to happen.

Some of those guys in the Indie Game movie I don't think ever did any grocery shopping, and though we don't get to see inside their refrigerator I'm guessing it was tumbleweeds in there.  Except for the cases where they had someone else to pick up on the chores of actual life for them as in the case of one of the guys who was still living at home.

Having my home be a nice cheery place with food in the refrigerator, and the dust bunnies pretty much under control is something that is part of who I am.  So skimping on running the house is not a way for me to find more time in my day.

I also know from bitter personal experience that if I don't get a fair amount of physical exercise I don't deal with pressure of any kind.  In short if I don't train 2-3 times a week I quickly start going quite a bit mad.  I'm very lucky because I personally know quite a few very intelligent software developers and creative people who struggle with psychological issues and who are on medication for it.  Me, I have my own challenges - not ones I like to talk about and nothing compared to the challenges faced by my acquaintances that I just mentioned - but I have always been able to deal with that stuff by hitting the gym.  That has pretty much always worked for me.

When I was travelling for work, I'd land in whatever country it was break out my shoes or whatever and hit the hotel gym, find a track around a river somewhere, or even do laps in the hotel pool.  This was the only thing that helped me not to go stark raving mad with jet lag, and the weirdness of having 300+ people in a conference venue in Munich waiting to hear what I had to say about software engineering.  No pressure, right?

So - gym/exercise, keeping house & home together - that's two big things.

But numero uno is making time for my partner Raymond - who I've already mentioned in this blog as being a total saint when it comes to my work.  One thing that is tough, is for some reason I am super-productive and motivated to work when Raymond is around the house.  And I find during the day when he is out at work, that is when I find my focus drifting.  Sigh.  I feel like when we're home together is when I should down tools and spend time with him, but right now its not completely working out that way.

You can see why hacking in my "spare time" wasn't working.  When I had a full-time job, "spare time" really did not exist.  I could make time for my game dev only by neglecting other really important parts of my life.

Edmund, the creator of Super Meat Boy and other games, and also probably the most together of all the developers depicted on the Indie Game movie I think was as successful in life as in game development because he made his time with his partner work as a thing, alongside and in train with working on his game.  I guess this kind of thing is very individual.  And maybe the maker of the movie cut him a break here, as he was kind of depicted as a god of the Indie Game devs with all the answers.  I dunno.



I've always done my best work nights and evenings.  The darker and the more rain and cold there is, the better I work.  Unfortunately its the evenings when Mr Smith is home and I am trying to make time to slot him into my busy schedule somewhere.  Same again on the weekends - I again seem to be very productive during the weekends when he's around.

One good sign is that last weekend worked well where we made time to do some active stuff together: headed out on our bikes for a few hours up to Mt Mee and back on Saturday, and went for a walk around Southbank's new cafe district on Sunday.  Actually making some active things to do together I think is better than just "time", which can wind up meaning just blobbing.  And between those activities  I also got quite a few hours of hacking done on the weekend, in between times.

Productivity:  here are some sinks - TV and the Internet.  I've kind of cut back on doing stuff on the internet, like Google plus was becoming a habit.  There are people wrong on the Internet!!

But I'm going to have to cut back on TV.  We don't get broadcast TV but we have a bunch of SciFi and other shows cued up on iTunes and on DVD's - its all too easy to watch a show over dinner, and then press the button to watch the next one instead of heading downstairs to get a few more hours work done.

Still its starting to shake down into some sort of plan - I kind of goof off a little bit in the mornings, go walk and draw, get a coffee or go to the gym: then its in the evenings I get most of my work done.  I still have a long way to go before I get a really good productive routine going, but we'll see.

I'd be interested to know:  what do you skimp on to fit game coding in?  How do you schedule your time?

Friday, December 28, 2012

Do game creators get holidays?


My hubby Raymond, a black fine line art drawing done with Manga Studio
Raymond - who is a Saint
Well, I sort of had some.

I tried to spend some quality time with my long-suffering hubby Raymond, and caught up with my in-laws for a big turkey lunch.

My last day at my current paying gig is not for a couple of weeks yet, but I said "Happy holidays" to my colleagues on Friday last week, and since then I have had a full week on my own recognisance.

In that time I've made a fair bit of progress on getting to grips with Cocoa, and with actually getting useful functionality into the GameCreator tool.

It has 4 screens: Rooms, Atoms, Aspects and Identifiers.  I've done 3 now, with the Atoms screen now pretty much working.  There's a couple of bugs with the Undo but I can add new Atoms to a room, delete them and so on.

I figured having done the Rooms one the Atoms would be easy: not so much.  When I select a room I want the Atoms screen to show only the Atoms for that room, and that turned out to be a real pain.

Cocoa bindings would not play ball at all and I had to refactor quite a bit to get what I needed working. The problem was that each screen is a seperate xib file, and its loaded by its own controller - I switch between controllers using a top-level screen.  Trying to communicate from one screen controller to the next turned out to be nasty.

I go back to work on Wednesday next week and have sort of two half-weeks before I'm full time on my own stuff.  Maybe I should take some of that time between now and when I go back to actually rest.


 *** Terminating due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[GameDeveloper rest]: target does not implement selector'
:-)

Wednesday, December 19, 2012

Primal Scream

Right now I'm bogged down trying to get some infrastructure stuff done for my game and its very frustrating.

Later in January my time will be mine to schedule as it suits, but right now I'm still working days and coding on my game at nights.  It means I'm tired and not as on top of my game as I should be.

Things that seem conceptually simple and had looked like being fun to do, turned out to be a real pain in the neck.

And literally, as my home work setup is not ergonomically great.  Now I'm walking round like Quasimodo.

Its discouraging.  Why with all these amazing productivity tools can the simplest things be so painful to achieve?

I have a bunch of stuff hard-coded in the game and I'm trying to make it data driven.  The theory is I change a few values in a file, and hey presto the game springs to life with a whole new scene.  Minimal coding, just drop in the artwork and away we go.

Nuh.  Not so much.

To sum it up I've crossed a watershed in Objective-C where I know enough to start coding up things beyond the bounds of the tutorials and example code - and I absolutely have to do that because none of the things I want to do fit neatly into those examples.  So I can see what I need to do, but don't know it well enough to quickly write and debug the code to achieve it.

Things that ought to be simple - wiring up a few data structures to some UI elements - are painful beyond belief.  CoreData's magic binding stuff is not doing what I want, and even where I thought I had it nailed its not working how I thought.

There are a few API's and languages I know really well - those I am used to being able to express myself in quickly.  I can get stuff done fast.

And I will get to that point sometime with Objective-C but right now.... I want to throw the whole thing at the wall!  Grrrr!!!

Oh well.  Hopefully by the next blog things will be better!