Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: multi-perspective StarCraft 2 web replays (ggreplayz.com)
86 points by rynop on July 27, 2012 | hide | past | favorite | 58 comments



This is a weekend project of mine - looking for some feedback from the HN community.

Basically you upload your .SC2Replay files and I'll convert them into web replays. My twist is I make recordings from 2 players perspectives and show em both to you on the same page (sync'd of course). I have some other options as well, but I'm really looking for feedback on what things people do not like and what things you think would be cool.

From a bootstrap/startup perspective, my goal for this was to produce something that would scale decently with almost no $ investment. Have this running on 1 ec2 micro, static pages and assets (js,css,img) being served up by github pages. Dynamic pages are being served directly from memcached via nginx module (pages are stored already gzipped). If anyone is interested in the implementation details I'd be willing to share cuz I think some of the techniques I used could help others looking to bootstrap their own webapp.

I also have a mobile version so you can watch em on your phone. http://m.ggreplayz.com


How are you generating the video files then? Surely you cannot run a game of SC2 on an EC2 micro instance?


I imagine he has a regular desktop with a video card sitting there doing the work (especially if you look at the Improve page, he's asking for another video card or someone's spare box; it also mentions a queue, etc.).


This job is done by a Chinese "agency".


haha nope. I record it real time then encode.


I love it! A few suggestions:

* Side by side might be better than one over the other. Most monitors are wider than they are tall.

* I miss the sounds. I would keep the audio from both replays, but of course turn off music.

* When creating the videos I'd give the player on the left a slight pan-left for the audio and the opposite for the player on the right.

* Show the production tab dood!


Thx! I tried side-by side but width of the videos actually take up more space on your 16:9 monitor. I have a TODO to make the replays dragable/dropable to where ever u want.

Cant do sounds cuz its from 2 diff persons perspectives. Also, I dont like the sounds :) I get better framerate w/ em off too.

will do on the production tab


If the video is configured on the left and right, then wouldn't it make (somewhat) sense to have the speaker channels of the two videos correspond to the left and right screens? As a longtime viewer of SC and SC2 games via video, double sound source doesn't bother me at all. (I remember footage from Korean TV from about 2004 that had first person view and first person sound from two players at once)


not a bad idea, will think about it


Since you have at least two videos showing, could you open the production tab on the first and the units tab on the second?


When uploading your replay, you have complete control over HUD options


It would be great if you could synthesize Day9's voice and autogenerate some commentary.


haha yea, I'll get right on that ;)


I posted this on teamliquid. People seem extremely excited. There are some suggestions going on there. I'm not sure if you know the teamliquid community. They're huge, very active and helpful. I'm sure you'll get some nice feedback there.

http://www.teamliquid.net/forum/viewmessage.php?topic_id=356...


How does the replay conversion work? o_0


hard work and lots of problem solving - and a bit of magic :)


Having using "Pengiunplug" for things like replay FPView for Broodwar, definitely concur with the "a bit of magic" assessment.

I've always been fascinated by how many clever hacks come out of the SC community for adding features/functionality like this. A lot of the SC2 observer mode features were a product of hackers making plugins and utilities that enhanced the replay experience for Broodwar, so it's fun to think about what sorts of nice things will be made by such hackers going forward for SC2 :).


Some kind of algorithm for speeding up 'boring' segments is of course top of the list of features, perhaps something that allows the users to 'edit' the video. Great work!


Why the hell have you not posted this to /r/starcraft?!?


I have actually - a while ago: http://www.reddit.com/r/starcraft2/comments/t3ya3/feedback_o...

I haven't had time to improve it much since then. My plan is to post it here (and get a perspective from a diff audience, tech saavy but not my target). Once I iron out some more things, I'll post on reddit.


Hope you don't mind but I thought this was neat enough that I posted it myself before reading that you were not ready to yet.

http://www.reddit.com/r/starcraft/comments/x9uej/automatical...


No that's cool - it probably gets more "street cred" not coming from the author :)

I'll start replying to those reddit threads, thanks for doing this.


Doesn't seem very scalable. Unless you have a way to run and record multiple games on one machine.


If this gains some traction (aka $) I have ideas on how to scale it. I also have a theory for multiple on a machine, just haven't had time/resources to proof of concept it.


My suggestions:

1- Ditch youtube

2- Start transcoding both into one video instead of two like it is now, so when I seek I have both timed up correctly

3- Use your own video player (goes with #1)

4- Modify homepage to be more "imgur" like- Move the browse button off of the "get started" page to the homepage.

5- Get a video ad network in place (many to choose from- integration takes about a hour) and start profiting from embeds

I know the argument on using youtube. Its easy, its free, they have a ad program you get a cut of. Its still worth it to roll your own if you get this to take off- You want to be "the easiest way to share your replay"


Thanks for the input. Yea I went YT cuz I dont have much time/$ to invest now, unlimited vid length in YT is hard to pass up to get an idea off the ground.

I made it flexable however, that if it takes off I can switch to a diff vid streaming provider.

Good call on #4, will do.


At least, are there hooks into the YouTube player to know where the stream is at? Can we then keep the progression synced? For myself, at one point, one of the videos needed to buffer and got the two out of sync.

Seems the above can be achieved via YouTube's JS Player API: https://developers.google.com/youtube/js_api_reference


I'm curious: how do the bandwidth costs of streaming 1 video file compare with the ad revenue from said 1 video stream?


Video ads average about a half cent per view.

Display ads (google ads, for instance) average about .05 cents per view ( ie- you need 1k views to get 50 cents )

A server that comes with 100TB of bandwidth is about 200 bucks a month.

Now, is it going to be profitable? That all depends on the quality settings of the video + length + bitrate, etc..


Both video adverts and traditional banners can be a lot more expensive on that, depending on the situation. In my line of work, for example, I never see banners for less than $0.003/view, and $0.02/video advert is considered cheap.

As to whether advertising can cover streaming costs - yes it can, certainly when it comes to gaming content.


Cloudflare might be ideal for this.


Cloudflare don't cache video files, you can't use it to save bandwidth.


Just seems like a confusing mess to me, with controls on each video and sync'ed controls on the side. If you can't hide the individual video controls, I'd merge the two videos into a single video stream before embedding it. That's how bad I find the UI. Have you sat any people down in front of this thing and watched what they clicked? First thing I did was hide that huge sidebar covering the video, then I messed with the individual controls and figured out that is not good, then finally brought the sidebar back...


Thanks for the constructive criticism, while I agree it could be better, the problem isn't really that easy to solve.

First off, keep in mind im going towards a pretty small niche here - people that will actually spend time on my app are power users. Gamers who are into tech, and want options.

There are alot of video options, but given my resources this was the optimal solution IMO - and not being modest, I think its a pretty novel solution.

The "huge" sidebar was my solution to not much real estate to put quality vids, while still giving flexability to break down a replay. I could hide the controls, but it does take away a bit of flex (if u want to rewind one player for example). My target audience is people who are good with computers.

I do like the single stream idea however, I can work on that in the future.


Because the idea is so novel, I must admit that the first thing I did was just click the top video because I've been conditioned by YouTube to click that inviting big red play button.

After playing with the site a while, I noticed the sidebar and it all fits now. I think the initial problem is that nobody's done multiple POVs before, so once people get the hang of it they'll want more.

+1 to the single multiplexed stream (at least to start with).

+1 to annotations tagged to specific seek times (if needed).


Some thoughts on your user base.

1. Individuals who want to share replays with friends.

2. Professional teams who want a scalable way of taking video of their players' games and hosting them on their sites.

3. Tournaments that want to host all their games in video format (don't want to distribute replays) but have scalability problems in doing so. They may be tentative about uploading such replays to your site, so a more formal partnership might work better.

4. Individuals who want to "watch replays" on mobile platforms.

5. Individuals who want to "watch replays" on machines that can't handle sc2 (or people who don't own a copy of SC2).

The need for replay watching is somewhat diminished compared to the days of Broodwar, when there was a dearth of videos of games available (nowadays, youtube videos of games are just everywhere). Where you might find success, is with groups who are really keen on watching replays of games that are one of those one in a million kind of games that weren't broadcast for a tournament. (I remember there was one such game -- Sea vs Savior -- during Blizzcon 2008 that was only played backstage and was basically never shown to the public)


You must play SC2 :) Yea I have a few ideas on how to monetize and leverage tournaments and pro players. This is still a proof of concept phase really - if people like it, and it gets some traction you'll start seeing some of your thoughts being targeted. With that being said, I am working on things in the near term to target a few of those.


I actually don't play SC2 at all. :P

I'm just an SCBW oldtimer.


For #1, there's youtube or just sending the replay to their friends.

For #2, I really think this would be niche profitable but would require the most polish and time because pro teams would probably want to jointly visualize responses to specific timings and save their annotations as a type of historical team-lore, but it would have to be a tight and stable.

For #3, (larger?) tournaments often have 2 game casters and it would be interesting to see different observations while still listening to a unified audio stream. What annoyed me the most when watching VODs or Twitch.tv casted replays is when the casters completely miss covering a multi-prong attack even though I can see something happening in the mini-map (e.g. all-in distraction + main/expo/expo drops).

Some casters are good and rewind to look at the action from a different POV, but it's still annoying and gets in the way of a smooth casting flow.

As a tangent, I wouldn't mind (far into the future) the ability to watch a web replay synced to a (pre-recorded) caster of my choice and play with the observer controls and POV while listening. In essence, that would require re-creating the realtime replay UI which is probably not feasible (but a former SCBW addict can dream).

For #4, killer feature. Ads ads ads, or strike 'service streaming' deals with mobile carriers so people can subscribe to your streaming channel and pay $1/mo for the privilege of watching SC2 replays on their mobiles.

For #5, there's some competition here like Twitch.tv, livestreaming, YouTube or VOD players, but ultimately you're right -- if people can watch synchronized web replays from multiple POVs and mob comment it should be enough to get decent attention. None of the other options allow for web interaction -- they're all modeled on TV audiences and distribution (i.e. faceless, delayed-alternative-channel-interactions). The closest is live-streaming where you can comment in the chat room while the player is playing the game, but: A) there's usually no record of your conversation to ROFL/analyze later; B) as the viewer, you have little say in which replay or game you want to watch next.


As I understand it, all of the "create a build order from the replay" sites/tools out there suffer inaccuracy because a replay file is just a list of input actions. There's no distinguishing between building a probe, queueing a probe, not having enough money to build a probe, and being supply blocked.

People try to model what the game does but without actually reimplementing all of SC2 perfectly, you'll still have bugs.

I think, on the other hand, if you had a video taken with the production tab open, and did some really simple image processing to determine what is being built at any given time, you could do a lot better than everyone else.

(I've been kicking this idea around for a while but never got past playing around with a single .PNG, and it looks like you have all the hard .sc2replay -> video stuff worked out already!)


I like this idea, but I'd probably opt for reading the stats out of memory instead of OCRing them. You'd get more data (since you don't need to have only one specific tab open), it'd be more accurate, and it might even be easier.

If anyone is unfamiliar with reading process memory in Windows and wants to do this, I have a fairly simple example reading from SC2 at https://github.com/gibybo/S2GS-Extractor


Either I completely missed something, or that's not what this site is about. It just takes the replay and splits it into one video per player and lets you play all those videos at once. It does not try to scrape the build order from the replay.


You didn't miss anything. I just think it would be a kick-ass feature.


Not quite sure I get what your looking for, but if you are looking for statistics, you can see those in the hover menu on the right. If your looking for a more textual representation of the replay, give me some specifics and I'll see what I can do.


I'm thinking of the build order - a list of things built, and the supply at which they were built - like the one in the comment at http://www.youtube.com/watch?v=WQe6UqvCOT4

Something like http://code.google.com/p/phpsc2replay/ will get the actions out of the replay, but I'm not sure how far along that particular library is when it comes to turning the actions into the list of stuff that was actually built (while discarding pointless spamming of hotkeys)


Gotcha - got an idea and a todo: https://github.com/rynop/ggreplayz/issues/7


The list of <supply count> <thing to build> is pretty standard and a lot of people find it easier to follow when playing, than a fancier layout. But there are also those who hate the format :) Might be best to poll the target audience before investing time in a particular layout.


What audience are you targeting?

Not to be a negative Nancy but I think that pro teams won't find it useful in analyzing games simple because a video deprives you of control. You can't switch tabs, can't go to an arbitrary place on the map and can't increase the game speed. All you can do is watch the game from multiple perspectives, something you can almost do inside the game (press 1, watch for 5 seconds, press 2 and you get the picture).

Amateur players might find it useful when sharing their replays with friends, but how can that be monetized? A lot of gamers are reluctant to pay for premium content like GSL/MLG, I doubt they would want to pay for sharing video-replays with their friends.

Anyway, it's always cool to see things like this, things with a bit of magic :) Good job!


This isn't a replacement for the replay tool. Its like the NFL: teams have access to every camera angle possible - but I'll tell you they couldn't live without the overhead cam once they had it :)

I think my idea appeals to: * moderate to very active player. People who want to a) analyze their gameplay (like nfl/nhl/nba/* teams watching film) b) show others something cool/bad that happened * tournaments and tourney players. There are tons of avenues here and potential. Not gonna go into it here. * pros. I think to really appeal to them I need some more features. I have some good ones in mind that I think would be useful. Hopefully I get some traction on this POC so I can implement em.

I personally fell into the 1st cat - I wanted a way to watch replays w/o having game installed. I wanted to watch it from anywhere AND see exactly what the opp. was doing at the same time as me. I don't like doing the player-to-player comparison w/in the SC2 replay tool.

I think this also opens the game to a user base who may not otherwise be exposed to the game (the real game, not just trailer or clips). AKA people who kinda know what SC2 is, and are gamers. This 0 barrier to entry exposes potential new customers of the game.


For me (bottom-Diamond who generally only plays to boost friends), the feature I'm looking for here is to be to critique or annotate games - my killer interface would be a cross between GNU screen and an American football play highlighter thing (I'm afraid I don't know the technical term). Pretty much anything that's not social I can get better from the official client, so my feedback to you would be to focus on the things that I can share with my friends.


I believe the highlighter device is called a "telestrator" [1].

That functionality certainly would be useful, if only to see tourney broadcasters pick up on it and start using it.

[1] http://en.wikipedia.org/wiki/Telestrator


Hmmm i like where ur going here. What if i added annotations where u could tag points in time. U could share these notes w friends and teammates. It be cool if i had a img of the full map that u could also place these tags on and draw on it. That kinda ur vision? I think that b sweet


Are you aware of the SC2 interface/render hooking system[1] by Matthew Fisher? I've not actually had time to play with it, but I believe it uses a software-emulated display buffer, and then parses the raw directx drawing primitive stream to determine what is happening.

I'm not sure if it supports replays, or how much effort that would be to add, but if it can, you could extract huge amounts of metadata like build timings/orderings and whatnot.

[Edit: and of course, if you can render to a virtual screen, maybe there could be some way to run headless or multi-instance on a single box]

If you can get the suitable video player controls, it'd be fun to integrate it with an interactive timeline something like SMILE[2] to show significant events throughout the game (first discovery, first unit death, 'interesting' (say, involving more than X units or Y diversity of units)

[1] http://graphics.stanford.edu/~mdfisher/GameAIs.html

[2] http://www.simile-widgets.org/timeline/


thanks for the info. I actually have all the build order data at my disposal, just not sure how to expose it in a useful way. Anyone got some ideas?

That SMILE is effing sick. I'm def gonna work on integrating that...WOW


Doesn't maintain sync. YouTube is wonky sometimes and while trying it out one video started but the other was still queueing. Finally they both started playing but at different time markers. Hitting pause and then play also did not sync the games together.


Thx for the input. I've had quite a bit of input asking for syncing (and I'd like it myself as an SC2 player). Currently I do some tricks to make the vids start in HD, which is probably causing some issues. I'll work on making this better.


Maybe worth tweaking the site to fit on the iPad


how does this work on a technical level? are you running a copy of sc2 and basically just replaying the replay?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: