What a wonderful sound

Great linear downpitched whine from the electric motors throughout the breaking zone. Near-silent whoosh from the diesel at high speed. Tractor-y chug and rumble at low revs. Near-instant hiss from the turbo under acceleration. It is wonderful to hear all these technologies working together in one machine. What an amazing piece of kit.

Caine’s Arcade

Games culture meets DIY meets Internet culture. How could I not post this?

Smiles

Amelia has started smiling regularly, and giggling occasionally. It’s very exciting, and incredibly cute! :)

Eight weeks of parenting

It’s been eight weeks since Amelia arrived, and I’ve been pretty quiet online as a result. Partly due to lack of time, but also due to lack of interest. I feel more engrossed in my day-to-day life and less interested in the latest news or social gossip. I spend a lot of time reflecting on how things are going, and it all feels a bit too personal to flippantly share.

That being said, everything is occuring so quickly and I don’t want to forget what’s been happening (hence this post). I also wanted to write something for other people who may be wondering what it’s like to have a newborn. For us, it went something like this:

  • Week 1: Mostly staying in hospital, learning from the midwives.
  • Week 2: Sometimes wondering if we made the right decision to have a baby.
  • Week 3: Enjoying family time. Not wanting to go back to work just yet.
  • Week 4: Back at work. Heidi and I are stressed, and need to talk to each other a lot.
  • Week 5: Amelia is very colicky in the evenings. It’s difficult to bear.
  • Week 6: Feels like Amelia has doubled in size and is much more robust.
  • Week 7: Her colic is actually milk protein intolerance. Heidi is on dairy exclusion.
  • Week 8: Amelia is smiling and giggling and sleeping well. It’s very nice.

Staying at the hospital was fantastic. Although Heidi got pretty cabin-fevery towards the end. It was a very supporting environment, a bit like a training camp for new parents. Surprisingly (to me), most of the midwives had rather different opinions on child-rearing. I can imagine that some people would find that frustrating, but I saw it as reinforcement that how to take care of an infant is very subjective and that we should just choose what works for us.

My general parenting philosophy has been rooted in pragmatism. Some key points:

  • Feed her when she is hungry. Let her sleep when she is tired.
  • Infants don’t play mind games. If they are complaining there is a reason.
  • Infants don’t play mind games. Don’t take anything personally.
  • Togetherness is important. Sleep in the same room. Hang out a lot.
  • Parent as a team. Talk openly, make decisions together, support each other.
  • The baby’s needs trump the wants and convenience of others.
  • There’s no right way to parent. Just be conscientious and diligent.

Our early concerns about whether we made the right decision to have a baby were ostensibly due to the immediate dramatic change in lifestyle and appreciation for the amount of responsibility parenthood entails for such a long period of time. I imagine that it’s a natural response, and not something to feel guilty about.

An unexpected outcome of becoming a father is that I’m now a lot more assertive. I think it comes from the imperative to meet Amelia’s (and our) needs over someone else’s wants, expectations, or convenience. Here are some examples of things I’m now very happy to say to anyone:

  • Don’t try to play with her, she’s asleep.
  • That can wait, I’m tending to the baby.
  • Goodbye. (Followed by hanging up immediately)
  • No.

It’s been a change for us, since we’re usually rather accommodating. Overall, I think it’s very positive. Potential social unease and awkwardness tends to be mitigated as early as possible, and my business engagements have become more focused streamlined. I don’t want to waste time!

Another unexpected change has been the realisation that Heidi and I still have a lot to learn about ourselves and each other. Being a parent poses a lot of challenges and exposes personal characteristics that have never been tested or visible. I feel that we’re becoming better people, or at least a better partnership.

Perth at night as colour stripe

@tehkellys tweeted a fantastic photo of the Perth skyline at night. What struck me about it was the reflection of all the different colours of light in the Swan River.

I threw together a quick colour stripe version (click for full-size version):

Perth has an interesting night-time colour profile, which I had never noticed before. Hmmm, now I’m interested in seeing colour stripes for other cities.

Contemporary rhymes for baby playtimes

Heidi and I took Amelia to a new parents group yesterday.

As part of the proceedings, we learnt a few nursery rhymes and were challenged to come up with some of our own. Here are a couple we improvised this morning for Amelia’a playtime.

Firstly, for the body builder parent:

These are Amelia’s pectorials

These are Amelia’s guns

These are Amelia’s abbadabbadabbas

And these are Amelia’s buns!

Finally, here’s one for all new parents:

Milk in the front

Poop out the back

What’s in the middle?

Tickle attack!

Breakfast sandwich cake

I made this for a breakfast picnic on the weekend:

Here are the ingredients (I also used some milk and butter for scrambled eggs, a cherry tomato, and some apple and chilli relish):

I sliced the bread into four pieces and discarded the top crust, then arrange the ingredients into the following layers (from bottom to top):

  1. Bread
  2. Scrambled eggs
  3. Bread
  4. Vege-bacon, spinach, and relish
  5. Bread
  6. Philadelphia cheese topped with chopped vege-bacon and half a cherry tomato

It was delicious. Unfortunately, I didn’t get any photos of what a slice looks like. You’ll just have to make it yourself.

Obviously inspired by this ordinary Swedish meal:

Trouble with HTML5 video

I’ve been playing with the HTML 5 video tag. I’m trying to get an accurate reading of the frame that the movie is on when it is paused. I’d also like to play the movie until it reaches a certain frame, then pause it.

It seems like both of these tasks are hard using HTML 5 video. You can only ever get the “currentTime” of the movie, which gives you progress in seconds, not frames. With about an hour of experimentation, it proved difficult to translate the time into a frame number in a robust and repeatable fashion.

Also, there is a event fired by the video object called “ontimeupdate”, which I thought I could use to measure if the video had progressed past a certain point, and if so pause the video. It turns out the event is only fired every 0.250 – 0.350 seconds on my testing machine (i7 iMac). This is too infrequent to be very helpful for stopping at a specified frame. I guess you need about 1/(2*frame_rate) seconds between events to be frame-accurate.

For all the things that the web does well, I think audio and video are still fairly new tech. New audio and video APIs are required.

Has anyone got any experience with precisely controlling web video? Can you suggest another approach?

Laura Marling

I discovered Laura Marling via her “Blues Run The Game” cover on Grooveshark. Then found and loved her introduction and live performance (above) on YouTube. Finally, Googled and found that she’s playing this weekend in Perth!

Crazy stuff. I love the Internet.

Global Game Jam 2012

Last weekend was Global Game Jam. Let’s Make Games organised the local party, held at ECU Mt. Lawley. GGJ is a 48-hour event where the aim is to build a game from scratch using a theme as inspiration. This year’s theme was an image of the Ouroboros.

Brave jammers attempt to spend as much of the 48 hours awake and working as possible, I was limited to 8pm-4am on Friday, 12noon-1:30am Sat and 11am-6pm Sun, about 28.5 hours. I joined up with Liza, Minh, Ben and Brock to make a game called “The Crooked Spiral“.

Liza and I had a fairly quick brainstorming session where we came up with the initial idea: The player would decend a spiral dungeon where the end looped back to the beginning. Player would be stuck in the loop until they learned the “trick” to jump out of it.

Here are a few thoughts about my first game jam. I apologise that it is a little programmer-centric.

Good bits:

  • Two artists in the group meant that the programming was the slowest bit of the team.
  • Final Cut Pro was used to create intro movie. This saved us heaps of time, we could play a movie rather than code timings for swapping between static images.
  • We used HTML/Javascript for everything, including “video” tags for the videos. I much prefer to work from scratch than to use a game engine or libraries, but it occurs to be that this may be selfish programmer behaviour, since the end product will be far more limited.
  • We used JQuery .fadeIn() and .fadeOut() to show and hide bits of game (intro movie, control screen, hud, game canvas). We did very little management of the “mode” the game was in, we just showed/hid different “div”s and bound different key handlers as required. This ad-hoc code caused zero problems, rather surprisingly, though it is irksome to look at.
  • We used two different animation methods. One method used canvas 2d drawImage() to draw the correct sprite from a sprite sheet. The other method used css webkit/moz extensions to animate the image. Ideally we would have used one method for this, but by using two methods, each programmer could use the method with which they were most familiar, allowing faster progress.
  • We kept task cards using Trello, it was great for tracking the TODO list.
  • Cool group dynamic. Lots of re-imagining and re-designing. Great camaraderie. Group members were patient with my slow coding!
  • Our game has a splash screen, intro movie, controls screen, gameplay, 4 endings, GUI, Music and SFX. It is broadly complete, even though the gameplay is SUPER simple.
  • I think this is the first game I’ve written with an event loop since ZyberFlux. Not that I wrote the event loop for that either.
  • Friday night everything was in one file (main.js). On Saturday morning I spent a little while breaking it up into many files. It wasn’t a task on the board, but was a good thing.

Less good bits:

  • Rendering was done two different ways. One way maintained a game-state model using data structures and drew images to a canvas 2d. The other half used the DOM to maintain game state in “div” and “img” positions, moved “div”s around using jQuery.
  • My initial choice for the way to store coin positions made collision detection with the player (seem) difficult. I started trying to do collision detection properly on Sat afternoon, but kept running in to troubles that my tired brain decided to avoid. It took a day of adding other simpler features, two discussions with Minh and an A4 sheet of failed trigonometry to figure out the maths.
  • Ate crummy food for 48 hours but didn’t feel too bad afterwards. Thanks to the organisers (Minh) for supplying fruit and water.
  • We were super-conscious of how we’d have to cut back the idea. Two members of the group were the Chief Organiser and a Videographer, so the end product is very simple.
  • The release .zip file is huge (90mb). All we did was zip up the whole game directory that contains Final Cut projects, Illustrator files etc. At some stage I’ll remove all the unnecesary files and produce a smaller release file.
  • I remember being pretty grumpy at several points. Luckily my team mates were understanding rather than confrontational :)
  • We didn’t use version control, just a shared Dropbox directory. Good stuff: very quick startup, easy for artists. Bad stuff: One person editing any file at a time, manual coordination. No backups. Dropbox got flakey for 10-20 mins Saturday night.

At times it was challenging, at times I wondered what was so fun about it. But all-up, it was a great experience.