
Show HN: Twitch Plays Doom - dddanmar
This is the inevitable post after jeff_harris released restful-doom <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14919534" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14919534</a><p>twitch-plays-doom is a Python Twitch IRC-&gt;restful-doom proxy to control doomguy with a staggering 8 second delay.<p>The project was Saturday night&#x27;s &#x27;I wonder if I can make this work&#x27; session. Since it&#x27;s been live there has been a team of four successfully make it to half way through E01M01.<p>I&#x27;ve since added godmode to the chat (you can guess the command).<p>This was fun, hope others get some enjoyment out of it.<p>Twitch Stream&#x2F;Chat <a href="https:&#x2F;&#x2F;www.twitch.tv&#x2F;dddanmar&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.twitch.tv&#x2F;dddanmar&#x2F;</a><p>twitch-plays-doom <a href="https:&#x2F;&#x2F;github.com&#x2F;dddanmar&#x2F;twitch-plays-doom&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;dddanmar&#x2F;twitch-plays-doom&#x2F;</a><p>restful-doom <a href="https:&#x2F;&#x2F;github.com&#x2F;jeff-1amstudios&#x2F;restful-doom&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jeff-1amstudios&#x2F;restful-doom&#x2F;</a><p>chocolate-doom <a href="https:&#x2F;&#x2F;github.com&#x2F;chocolate-doom&#x2F;chocolate-doom&#x2F;" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;chocolate-doom&#x2F;chocolate-doom&#x2F;</a>
======
_Marak_
Type `iddqd` to toggle god mode

Edit: I'm getting downvotes for this? It's in the posted source code:
[https://github.com/dddanmar/twitch-plays-
doom/blob/master/tw...](https://github.com/dddanmar/twitch-plays-
doom/blob/master/twitch-doom.py#L55)

~~~
_Marak_
It looks like there are two factions forming over the control of `iddqd`
command.

It's a battle of trying to keep the marine alive versus killing him. Every-
time someone types iddqd, god mode is toggled.

God mode makes the character invincible, without god mode on the marine dies
in a few seconds.

~~~
dddanmar
This has been my favourite part of the entire stream, didn't expect factions
forming at all!

~~~
wernercd
You don't expect factions? Religious wars have been raged over tabs vs
spaces... tab is 2, 3 or 4 spaces... bracket on this line vs the next...

Factions are normal and I would expect them to coalesce, polarize and get more
extreme over time.

~~~
sergiotapia
I don't get that war - configure your editor to convert your tabs to spaces.
Precision.

~~~
zaphar
Ah, but then you commit and someone else pulls the source code down and their
carefully crafted N space per tab setting is now worthless since you decided
how long tabs should be for them.

Then they post an angry rant on some mailing list about how forcing tabs to
spaces forces people with various reading disabilities into a tabstop setting
that makes it hard to read.

And before too long it's devolved into the same old Tabs vs Spaces debate.

~~~
sergiotapia
But... your team just enforces a style. No debate. Two spaces for Ruby I've
seen almost everywhere. Two for Elixir, same. Go has go fmt. This hypothetical
of different spaces is killed before it happens.

~~~
zaphar
Having a style ends the debate yes. Configuring your editor to automatically
replace tabs with spaces does not end the debate. It starts it.

------
exikyut
Okay, I've been watching this for a few minutes, and... the 8 second delay is
FAR too long.

Doom is simply too interactive. You need to be able to control it in realtime.

I recommend three things:

\- Slow the delay right down, and possibly make it adjustable via chat
commands. A 500ms-1s delay is honestly going to be the best possible thing
here. Yes, some players will lag too much and won't be able to play at those
latencies - which is why you make it adjustable.

\- Show, inside the video stream, the command that is currently executing, and
the username executing from. This will create a unique tuple that will allow
players to figure out the sync for themselves.

\- A consensus system that tallies up the next key to press, TpP-style, might
be a good idea. Right now everyone's fighting to cooperate because it's
concatenating everyone's actions together.

~~~
unkown-unknowns
I think the delay is due to Twitch itself.

~~~
dddanmar
100% - the delay is as low as I can get it.

Twitch uses RTMPE for the most part, it's always going to be a little delayed.
It's a decent box, compression is on, connected to fibre internet.

If anyone has any ideas of reducing latency I'd love to hear it!

~~~
MichaelGG
Why not time dilate? Could make it a variable setting that users can control.
At some setting, it'd be fast enough to send commands and win fights without
god mode.

Or you could execute the command for a second, then pause the game execution.
Make it closer to turn-based Doom.

~~~
sli
Allowing a reasonable number of consecutive actions might help, too. Like if I
want to go forward two steps and turn 90 degrees to the right, I could send
"wwddd." Not as necessary in Twitch Plays Pokemon, but could do wonders here.

But as mentioned, it would have to be capped to some number to prevent abuse.

------
tenryuu
I once played an interactive doom on Mixer (Then Beam)

Worked well for showing off the platform, since there was really a low
latency. Since it uses it's own interactive input, and not relying on IRC for
interaction, so it's UX is considerably more user friendly... if you want to
sign up for a Microsoft Xbox live account to use it

------
tokenizerrr
You should probably remove the toggle godmode command and force it to on. It's
trivial to ruin progress with a strategic iddqd.

~~~
dddanmar
Done. God mode stuck on now.

------
Rampoina
I played it for a while, it was fun but a bit frustrating having to fight the
people trying to turn god mode off.

~~~
dddanmar
God mode is now turned on without an option to turn it off.

------
cordite
The game seems paused and I mostly just hear some soft creepy music

~~~
dddanmar
It crashed ;-(. Made a few small changes and it's back up.

------
jeff_harris
thanks dddanmar, very cool!

~~~
dddanmar
You've done all the hard work here, really appreciate your release that gave
me a fun Saturday night!

My part took all of four hours to write, setup, deploy and post.

At this point I'm going to pull the stream down, been going 5 days now with a
few crashes in Doom that are getting a little frustrating to debug.

Thanks again! This was great fun!!

------
dingo_bat
> Your message was not sent because it is identical to the previous one you
> sent, less than 30 seconds ago.

:O I can't fire fast enough!

~~~
dddanmar
I saw someone with an idea to escape the Twitch message rules:

f \- f \- f \- f

------
wcummings
Hard to play a real-time game with a 7 second delay...

