keturn
New Member
@Skaldarnar rounded up a few of us this weekend to do some mob programming on #3958, fixing world configuration. You can check the #world-generation channel for some notes on how that went; I thought I'd make some other notes here about the remote-mob-development tooling itself.
None of us had done this recently, so we didn't have a known-working set of tools ready to go, and did the traditional videoconference thing of spending the first half on "can you read my screen?" type stuff. Things we learned from that:
Discord does do screen sharing now.
Convenient, given most of the other project communication is there.
VS Code has had great success with their Live Share feature. instead sharing a video of your screen, the sharing is built in to the IDE. You can all look at the same files and each participant has their own cursor they can use to highlight things or edit.
But none of us use VS Code, at least not for Terasology.
Collaborative Editing has been the most-requested feature in IntelliJ for a while now, and they've announced they're working on it this year, but we haven't seen a release of it yet. There are some other implementations we could check out:
None of us had done this recently, so we didn't have a known-working set of tools ready to go, and did the traditional videoconference thing of spending the first half on "can you read my screen?" type stuff. Things we learned from that:
Discord does do screen sharing now.
Convenient, given most of the other project communication is there.
- The maximum streaming resolution for discord's free tier is 720p, and the readability was pretty bad when streaming from a higher-resolution monitor with thin programmer fonts. At the "Nitro Classic" tier (which is less expensive than "Nitro"), I can stream at 1080p. So either:
- have a Nitro Classic or Nitro account, or
- have the workspace you're streaming set to 720p resolution so it doesn't have to downsample, or
- know how to make the fonts bigger in your development environment. We had a few false starts with this because of all the different font settings. It's this one: Editor Font; others change the menus and stuff but not the code, or change the code only for that file which is terrible for switching between files.
- You can't share your screen from using Discord's web interface, you need the desktop client.
- the only one I had tried before was the snap distribution. It spams the heck out of your log files, so that one is no good.
- I used the flatpak distribution this weekend, that seemed to work well.
- (and no logspam. Is the lack of logspam because flatpak doesn't prevent it from reading my process list like snapd does? maybe. probably. it's watching.)
VS Code has had great success with their Live Share feature. instead sharing a video of your screen, the sharing is built in to the IDE. You can all look at the same files and each participant has their own cursor they can use to highlight things or edit.
But none of us use VS Code, at least not for Terasology.
Collaborative Editing has been the most-requested feature in IntelliJ for a while now, and they've announced they're working on it this year, but we haven't seen a release of it yet. There are some other implementations we could check out:
- Floobits has been around for a while now but somehow didn't catch on in the way that VS Code's Live Share did. I haven't tried it recently, could be worth another look.
- CodeTogether usually only allows 1-on-1 sessions with free accounts, but has all features free during the pandemic.
- Saros does this sort of thing using XMPP as a transport layer?
- Maybe CodeStream isn't quite a live pair-programming thing. More like code reviews? Could be handy. Free for open source.
- It's not a share tool in itself, but when I am screen sharing, I like Presentation Assistant. It shows which IDE actions you're using, useful for people thinking "how did you make it do that?"
- I just found this page while looking through this stuff: https://www.remotemobprogramming.org/