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.
- 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).
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.
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.
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.