TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

How Figma's Multiplayer Technology Works

268 点作者 Aqua_Geek超过 5 年前

17 条评论

roldie超过 5 年前
I appreciate the technical achievement of &quot;multiplayer,&quot; and it does work impressively well.<p>However, no one one my design team likes it. I certainly don&#x27;t. It&#x27;s akin to having someone breathing over your shoulder as you&#x27;re trying to work. And with design, especially, I tend to create a bunch of nonsense and &quot;bad&quot; designs before getting anywhere near a level worthy of sharing or even a team critique. Even if I don&#x27;t care what others think of me or my skills, it&#x27;s very disruptive to the creative process to know that someone is watching you.<p>In my experience, at least, there do not seem to be very many use cases for &quot;multiplayer.&quot; I mean, even using Google Docs at the same time as someone else is jarring and disruptive in most cases.<p>Perhaps the only use case where we&#x27;ve actually liked having it is for a critique (especially when a teammate is remote) or a demo.<p>Personal preference aside, I think Figma is great. I still miss some things from Sketch, but overall Figma is a great tool. My team recently transitioned&#x2F;is still transitioning from Sketch to Figma, and I can imagine that many other design teams will be making the same move too.
评论 #21382997 未加载
评论 #21384299 未加载
评论 #21382973 未加载
评论 #21384954 未加载
评论 #21384315 未加载
评论 #21384109 未加载
评论 #21383413 未加载
评论 #21384756 未加载
ggambetta超过 5 年前
Sounds weird to use &quot;multiplayer&quot; when there are no players involved, but users. On the other hand, I guess &quot;multiuser&quot; doesn&#x27;t convey the real-time-ness they want to convey.<p>FWIW, here&#x27;s how it&#x27;s done for actual multiplayer games, especially the ones where latency is critical: <a href="https:&#x2F;&#x2F;gabrielgambetta.com&#x2F;client-server-game-architecture.html" rel="nofollow">https:&#x2F;&#x2F;gabrielgambetta.com&#x2F;client-server-game-architecture....</a> Arguably, their software is more similar to a turn-based game, and formal correctness of the results is more desirable than &quot;a smooth experience&quot;, as is the case for multiplayer games.
评论 #21380317 未加载
评论 #21380406 未加载
评论 #21382665 未加载
评论 #21380831 未加载
评论 #21382910 未加载
gatherhunterer超过 5 年前
I think “real-time collaboration” or “multi-user” would have been better choices than “multiplayer”. I was hesitant to criticize the term at first because it is so ill-fitting that I was unsure I understood what feature they were talking about.<p>It’s interesting to see this on HN at the same time as the GNU article about “Service as as Software Substitute”. I would have much more piece of mind that my personal or proprietary information is secure if I didn’t have to trust Figma. A peer-to-peer collaboration platform that I can run locally would be innovative and exciting.
tibbon超过 5 年前
I was trying recently to prototype a multiplayer experience, and got pretty stalled when it came around to the networking side. My goal wasn&#x27;t to make it fast&#x2F;scalable, but rather just to be able to have 4 people sit at my kitchen table and answer &quot;is this game idea interesting&#x2F;fun&quot;. But the resolution of movements, timing things, client&#x2F;server stuff was actually a pretty steep cliff for someone who had never done it before. There&#x27;s also a lot of interesting decisions to make upfront then about rendering, real-timeness, how you&#x27;ll split up movement collisions, etc.<p>Regardless of if this is for a &quot;Game&quot; or not, I find reading more about these things quite interesting.
评论 #21381468 未加载
评论 #21383312 未加载
bhouston超过 5 年前
Great write-up! Thanks for taking the time to do this.<p>This is incredibly similar to the way we did multi-user simultaneous editing in <a href="https:&#x2F;&#x2F;Clara.io" rel="nofollow">https:&#x2F;&#x2F;Clara.io</a> back in 2013&#x2F;2014. It was also a tree-based OT-like system, but there was a few differences.<p>I also wonder if you guys studied how we did it...
评论 #21379930 未加载
评论 #21381134 未加载
cryptica超过 5 年前
I think the approach of mutating each property independently is an excellent approach and I&#x27;m glad to see it working at scale. It&#x27;s just like regular CRUD except that instead of mutating the whole resource, you just mutate one property at a time - And if two users edit the same atomic property at the exact same time, it doesn&#x27;t really matter who&#x27;s edit arrives last because there is no absolute right answer so long as both users can observe the same outcome.<p>I also did some work in that area several years ago which I refined over time into a sample app and a set of libraries: <a href="https:&#x2F;&#x2F;github.com&#x2F;SocketCluster&#x2F;ag-crud-sample#ag-crud-sample" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;SocketCluster&#x2F;ag-crud-sample#ag-crud-samp...</a>
preommr超过 5 年前
&gt; When we first started building multiplayer functionality in Figma four years ago, we decided to develop our own solution. No other design tool offered this feature,<p>I could&#x27;ve sworn I&#x27;ve seen people on HN say there were tools that did real-time collaborative design before figma.
评论 #21382133 未加载
littlestymaar超过 5 年前
&gt; As a startup we value the ability to ship features quickly, and OTs were unnecessarily complex for our problem space. So we built a custom multiplayer system that&#x27;s simpler and easier to implement.<p>That sounds like a bad reason to implement you own mechanism. There are many valid reasons to design your own system (your requirements being different is the most common one), but “the state of the art is too complex” sounds like a good way to reinvent all the solutions to the technical problems the state of the art faced and end up with an equally complex solution in the end.<p>This isn&#x27;t to dismiss the work exposed here, and the really pleasant write-up, though.
miki123211超过 5 年前
Unrelated, but repl.it wants to do the same thing for code. It&#x27;s an on line IDE, something like Cloud9, that lets you click, write a program in almost any language and run it on their servers. You can collaborate with others, where you all see the same terminal etc. This seems amazing for learning and small remote groups who want to code together. Repl.it is already becoming a place where bright kids learn to code and produce some pretty impressive things.
评论 #21385663 未加载
timwaagh超过 5 年前
I do not know how usable Multiplayer is. I sometimes had that if i had one browser window open and opened another that i had two sessions in Figma, which was slightly annoying. But for me the dealbreaker with Figma as a tool is it sometimes has issues with exporting content to png. Meaning I had to import it in GIMP before re-exporting it. The idea is really neat, but it needs some work before I can really recommend it over more traditional tools.
Bombthecat超过 5 年前
My wife just started learning ui&#x2F;ux. I think the realtime aspect could help with tutoring.
thallavajhula超过 5 年前
Is there anything currently being researched around Multiplayer tech with better efficiency than CRDTs or OT? It seems like almost all of such implementations currently just implement CRDTs or OT.
评论 #21382189 未加载
评论 #21381591 未加载
评论 #21384360 未加载
miguelmota超过 5 年前
Anyone know what program was used to create the animated diagrams?
评论 #21382217 未加载
baxtr超过 5 年前
Figma is the one web app that always forces my safari down to its knees... even though I have a strong processor and lots of memory.
评论 #21387703 未加载
marknadal超过 5 年前
CRDTs are absolutely critical, if you don&#x27;t know about them, read this article &amp; then research them!<p>If you&#x27;re wanting to use CRDT tools, I recommend two:<p>- <a href="https:&#x2F;&#x2F;github.com&#x2F;automerge&#x2F;automerge" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;automerge&#x2F;automerge</a> (immutable)<p>- <a href="https:&#x2F;&#x2F;github.com&#x2F;amark&#x2F;gun" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;amark&#x2F;gun</a> (mutable)
评论 #21380794 未加载
bravoetch超过 5 年前
The article starts without introducing what figma is. I read for a while before discovering this is something like Google docs... Multiplayer work-sim maybe?
tw1010超过 5 年前
Figma feels like the height of over-engineered backends with corresponding low-innovation frontends.
评论 #21384578 未加载