A* Interview #7: Tim Ambrogi, creator of the “Jamestown” indie game

This one ran a little long, but we get into the serious programming talk at around 19:00.

Learn more about the A* interview series here.

Links from the conversation

Gertrude’s Secrets, the game that originally hooked Tim on programming.

Tim’s excellent game Jamestown.

Tim’s favorite bands Storyville and Protomen.

Tim recommends that you try out Codecademy if you want to learn to code.

And you should try Tim’s audio library.

Follow Tim on Twitter.

For more A* interviews, subscribe to my newsletter!

/* change only these */
var youtubeID = “A-j_RUtI-o4”;
var postID = “Tim Ambrogi”;
/* change only these */

// DON’T CHANGE BELOW
$(“.video”).html(“

“);
var tag = document.createElement(‘script’);
tag.src = “http://www.youtube.com/player_api”;
var firstScriptTag = document.getElementsByTagName(‘script’)[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

function onPlayerStateChange(event) {
if (event.data ==YT.PlayerState.PLAYING) {
mixpanel.track(“Video played”, {
“youtubeID”: youtubeID,
“postID”: postID

});
}
if (event.data ==YT.PlayerState.ENDED || event.data==0) {
mixpanel.track(“Video ended”, {
“youtubeID”: youtubeID,
“postID”: postID
});
}
}

var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player(‘player’,
{
videoId: youtubeID,
events: {‘onStateChange’: onPlayerStateChange}
});
}

mixpanel.track(“Post viewed”, {
“id”: postID
});

A* Interview #5: Jim Crawford, creator of Frog Fractions and Twinbeard Studios

Click here to learn about the A* interviews.

Here’s Twinbeard Studios, and their great games Desert Hike, Futilitris and of course Frog Fractions.

Here’s some info about Jim’s favorite band “Ween”.

And here’s the Hacker’s Dictionary.

You can follow Jim on Twitter and you should do as he says and support the Windforge Kickstarter project.

/* change only these */
var youtubeID = “0cdBxb64jLg”;
var postID = “Jim Crawford”;
/* change only these */

// DON’T CHANGE BELOW
$(“.video”).html(“

“);
var tag = document.createElement(‘script’);
tag.src = “http://www.youtube.com/player_api”;
var firstScriptTag = document.getElementsByTagName(‘script’)[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

function onPlayerStateChange(event) {
if (event.data ==YT.PlayerState.PLAYING) {
mixpanel.track(“Video played”, {
“youtubeID”: youtubeID,
“postID”: postID

});
}
if (event.data ==YT.PlayerState.ENDED || event.data==0) {
mixpanel.track(“Video ended”, {
“youtubeID”: youtubeID,
“postID”: postID
});
}
}

var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player(‘player’,
{
videoId: youtubeID,
events: {‘onStateChange’: onPlayerStateChange}
});
}

mixpanel.track(“Post viewed”, {
“id”: postID
});