Jump to content
Double Fine Action Forums
Sign in to follow this  
BikerM16

Game Club Past Sessions Player

Recommended Posts

Hello there, fellow dwellers of the Double Fine Action Forums!

I come bearing gifts, and these gifts are software.

Rest assured, this isn't a spam post, nor is it advertising. Read on to find out what it is I'm babbling about.

tl;dr

- Working tool: https://github.com/bikerm16/DFGameClubPlayer.

- Proof of concept #1: Indiana Jones and the Fate of Atlantis, 1st game session (2nd November 2013, 09:00PM UTC).

- Proof of concept #2: Gone Home, 2nd game session (30th November 2013, 09:00PM UTC).

- Proof of concept #3: Loom (27th April 2013, 9:00pm UTC).

The Problem

I was very excited the first time I heard about the Game Club. Nice people gathering around, playing games and then discussing them. What could be better? Well, because of timezone-related stuff it so happens that I cannot participate in the sessions.

But hey, the streams are recorded and chat transcripts are saved (thanks for that :-) ), so I can watch it all later. Right? Not exactly. You see, it seems to me that it's not very comfortable to watch the recording and read the log separately. After all, the discussion happened in real time and in relation to the events on-screen. Even if you opened the recording and the log side-by-side, it wouldn't be very comfortable to keep your attention on both of them and to keep track of what message should "appear" next and so forth.

The Solution

What if we could recreate the original chat? Each message would appear at the right time, in sync with the stream recording... Wouldn't that be great? How would we go about doing that?

The first thing that springs to mind is subtitles. We can use the timestamps in the IRC log to make them appear in the right order and with the right timing. Then we just have to figure out when exactly the stream started in relation to the chat flow and synchronize. However, there are several problems with this approach:

1. At any given moment during a chat several people are talking at the same time, their messages intermixing.

To keep track of it all one must be able to see not just the latest message, but also the ones that came before. Sadly, only one subtitle can be seen on-screen at a time.

2. It often happens that several messages arrive simultaneously. As stated above, in a chat you are able to see several messages back.

On-screen, however, such messages will be quickly displayed one after the other (because only one subtitle can be displayed at a time), proving more of a distraction.

Another option is to create a simulation of the chat. That is, messages would appear in a separate window, and the stream would start at the right time.

And that's exactly what I did. Taking as a basis the Game Club homepage, I replaced the live player with the recorded stream and the chat pane with a "chat simulator". To see it in action, go over to one of the links above and click where it says "Click to play/pause". Do not, under any circumstances, use the Twitch player controls. Don't skip to another part of the video, don't pause, don't play. Don't even think about it. Use only the "Click to play/pause" link.

It's that easy! Go ahead and try it. Everything you should know about using the tool and configuring it can be found in the README on GitHub. If you want to know how everything works under the hood, you're welcome to look through the code (ask me if anything's unclear).

Things to Do

Right now the tool is in working condition, but there is always room for improvement. Suggestions, comments and feedback will be greatly appreciated.

Want to see a particular session in the list? Have a crack at it! What's the worst that could happen?

Have some ideas on how to improve the code? Let me know or, better yet, send a pull request.

Also, it will be a lot more easier to process future sessions if: a) their logs will have the same format as the previous ones (so that there will be no need to write new rules to parse them); b) at the time the stream starts several people will post a message saying that the stream has, in fact, started.

These are all suggestions. Feel free to ignore them.

Final Remarks

1. Apologies to everyone involved in the creation of the Double Fine Game Club homepage for vandalizing their JavaScript, HTML and CSS :P . On that note, if you are one of the involved, please take a look at the code. If you feel that credit and licensing information are not presented as they should be, let me know.

2. You might notice that the second demo (Gone Home, 2nd game session) is "slow". That's because the timestamps in the chat log specify hours and minutes, but not seconds. Because of that, new messages will arrive in the simulator only once a minute. Unless there is a better log somewhere (that is, with timestamps that have seconds), there's not much that can be done about it.

3. Apologies, Permafry_42, for not responding to your hi on Saturday.

Thank you for your attention.

Share this post


Link to post
Share on other sites

Oh man, this is great. I had toyed with the idea of doing something similar down the track, but it was still a long way off from being on my todo list.

This highlights a few things that I've also wanted to address/deal with (which are not necessarily all directly related to a log replayer - they're just highlighted by it).

Highest on my list was to look at migrating to the HTML5 Twitch widget (this would remove Flash dependency and make interacting with the widget much easier, which would allow us to use the widget play/pause/jump to controls), but after a quick hunt around, it doesn't look like there's enough desktop browser support for HLS yet to make that possible.

Chat logs contain hostnames and IP addresses in some cases. It would be nice to look at stripping these out. We also don't currently notify people that session logs are made available.

Chat logs are currently grabbed ad-hoc. Most of them are mine, copied and pasted from my pidgin logs. I wasn't able to attend the Gone Home event, though, which is why it's different.

I've been wanting to look towards having an IRC bot gather and publish logs and generate a list of sessions based on channel topic changes, but I don't have time or resources to set something like that up.

So far as direct comments on your implementation go, it seems OK on the surface to me. I'm not a big fan of JQuery, but that's not important :D

In regards to credit and licencing stuff, I wrote the original JS code on the page, which was rewritten by lietu. I've made a bunch of changes to timer.js since, but never bothered to update the header >_<

If you hadn't spotted it, the Game Club page is on GitHub as well.

Share this post


Link to post
Share on other sites
Oh man, this is great.

Thanks!

Chat logs are currently grabbed ad-hoc. Most of them are mine, copied and pasted from my pidgin logs.

Pidgin logs are great! They're HTML, which makes it much easier to parse them.

It would help a lot if you could publish them as-is somewhere after a session.

It would also allow for easy stripping of IPs and hostnames and such.

Share this post


Link to post
Share on other sites
Chat logs are currently grabbed ad-hoc. Most of them are mine, copied and pasted from my pidgin logs.

Pidgin logs are great! They're HTML, which makes it much easier to parse them.

It would help a lot if you could publish them as-is somewhere after a session.

It would also allow for easy stripping of IPs and hostnames and such.

I had a quick chat with lietu, and apparently he's had automated chat logs happening for a while. I think the best course of action would be to work off that.

Share this post


Link to post
Share on other sites

This is some really cool stuff! Also no prob for the whole not responding thing.

Since I can just barely make a basic webpage on dreamweaver, let alone code in html or css, there's very little I could do to help out with this. But I'll make sure from now on to do a count down when I stream to make it easier for you to sync the chat log with the archive.

Share this post


Link to post
Share on other sites

Just been looking at the Twitch.tv API and it seems like it wouldn't be too hard to get a list of available archived videos.

If we did this, and were using automated chat logging (with consistent time zone information) we could conceivably automate the meshing of chat logs with stream archives without a lot of trouble.

I wouldn't fuss too much about accurate stream/chat synchronisation - it seems like buffering issues can lead some people to lag behind others, and there's usually at least 5 - 10 seconds (sometimes nearly a minute) lag between the streamer's local machine and Twitch broadcasting the streamed video.

Share this post


Link to post
Share on other sites

Permafry_42: Thanks!

Cheeseness: With consistent timezone information this is indeed going to be simpler. You said lietu has some automated logging in place, so I guess that's where we should look.

Share this post


Link to post
Share on other sites

Folks, for at least the next three weeks (probably more) I will not be able to contribute anything here (because of some stuff coming up for me).

If anyone's interested, I'm willing to grant access to the GitHub repository. Let me know before Monday so I can set it up.

Share this post


Link to post
Share on other sites

I suspect most people are likely to be busy over that period (I know I'm totally swamped at the moment) ^_^

I was toying with suggesting that we migrate this to the Game Club GitHub org if you're open to the idea.

Share this post


Link to post
Share on other sites

Sure! [del]I'll get on it.[/del]

Oops. Looks like only an admin of the org can do the transfer. What do you suggest?

Share this post


Link to post
Share on other sites
Sure! [del]I'll get on it.[/del]

Oops. Looks like only an admin of the org can do the transfer. What do you suggest?

I'd meant to do this a couple of days ago, but got swamped!

I created a new repo and a github org team to manage it. You should have perms to push and pull to it :)

Share this post


Link to post
Share on other sites
All right, moved it. Have fun :-)

Sweet. Lietu also set up automatically published chat logs a week or so ago that I haven't gotten around to checking out yet. I'll post a link to that in a bit.

Share this post


Link to post
Share on other sites
Sign in to follow this  

×
×
  • Create New...