Remix.run Logo
apt-apt-apt-apt 4 hours ago

Really interested in hearing more about the architecture. Especially (1) why you chose Elixir, Phoenix over TS (2) how you dealt with real-time multiplayer.

Aside: The links to the web game in the post don't lead to being able to play.

frail_figure 2 hours ago | parent | next [-]

Not OP, but TS (as in TypeScript, right?) is not even in the same universe as Elixir with Phoenix when it comes to building backend services.

It's a very productive and readable programming language with excellent documentation and conventions, and the most ergonomic way of handling concurrent operations (thanks BEAM) I've encountered.

The VM it runs on was originally designed for telephone switches, which, it turns out, cleanly translates to the internet/http era.

It makes it trivial to do soft-realtime because it's just actors (GenServers) passing messages.

I invite you (and others) to try it out and do a small weekend project. It'll make you reconsider reaching for TS on the backend :)

apt-apt-apt-apt an hour ago | parent [-]

Thanks, interestingly Elixir handles concurrency in what seems like a natural way, actors passing messages to each other. It's cool that this way is used in production, though it seems to be used mainly in niche distributed scaling.

nesarkvechnep an hour ago | parent [-]

Not at all. It’s used to build standard web applications too.

mcintyre1994 an hour ago | parent | prev | next [-]

I’d guess that 2 is a huge part of the answer to 1 here - Elixir makes real-time multiplayer easy.

colechristensen 3 hours ago | parent | prev [-]

Phoenix is delightfully fast and not having to deal with two entirely different application stacks where your application is split down the middle (or the javascript ecosystem) is a breath of fresh air.