我(至今)在使用 Elixir 和 Swift 构建在线小游戏中学到的东西

Hacker News Top 新闻

摘要

一位开发者反思了使用 Elixir 与 Phoenix 以及 Swift 与 SpriteKit 构建在线小游戏应用 Migo Games 的经历,强调了 AI 编码辅助的作用以及 Elixir 进程模型的可扩展性优势。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/05/27 03:59

# 用 Elixir 和 Swift 构建在线小游戏:我到目前为止学到的东西 来源:https://calvinflegal.com/2026/05/24/what-ive-learned-so-far-building-online-mini-games-with-elixir-and-swift.html ## Calvin Flegal (https://calvinflegal.com/)### 关于 (https://calvinflegal.com/) | 最新文章 (https://calvinflegal.com/2026/05/24/what-ive-learned-so-far-building-online-mini-games-with-elixir-and-swift.html) | 音乐 (https://open.spotify.com/artist/16MSVHbEEVtCo1G9QjyQAs?si=WCtmXwbJRoqkOqljBYe7dQ) | Twitter (https://twitter.com/calflegal) --- 2026年5月24日我的最近一个业余项目是一个名为 Migo Games 的小型社交街机。你可以在 Mac 和 iOS 的 App Store (https://apps.apple.com/us/app/migo-games/id6758592333) 上查看它。你也可以在 migo.games (https://migo.games/) 的网页上玩其中一个游戏。 不用说,在 AI 编程的时代已经发生了很多变化。我真的不能说*任何*代码是我写的。也请注意这篇文章的发布日期。我关于 AI 说的任何话很可能在几周或几个月内就过时了。 我确实读代码,嗯,大部分吧。我当然理解它的设计。我认为这在 AI 时代仍然非常重要。 Migo Games 的技术栈是 Phoenix 上的 Elixir 以及 Swift 和 SpriteKit。仅此而已。后端运行在 Fly.io 上。它有一个由 Crunchy Bridge 管理的 Postgres 数据库。我特别自豪的一点是应用的二进制体积很小。写作本文时只有几兆字节。我大概只添加了一个 Swift 依赖,那是一个 Phoenix socket 客户端库。我年纪大到还记得 Nintendo 64。Mario 64 大概 8 MB,而且我觉得大部分是音乐。天哪,那真是不可思议的软件。总之,我认为如果用心的话,AI 可以减少很多臃肿,我觉得这非常棒。 Elixir 一直非常棒。核心游戏单元“房间”与后端进程模型完美匹配,这太巧妙了。真是扩展软件的好方法。我记得读过一篇 Cloudflare 关于 Durable Objects 的文章,提到了类似的想法。我找不到链接了。总之,我确信因为这些匹配,游戏可以很容易地扩展。然后是 Elixir 的其他好处,比如这个模型的容错性。一个房间出问题不会导致整个系统崩溃。我没有资格谈论 Elixir 所有酷炫的部分,但我可以说我对尝试它的决定非常满意。如果我需要添加管理功能、后台任务或其他任何东西,BEAM 和 Phoenix 的所有功能都在那里等着我。我很高兴我没有像我这个以 TypeScript 为最佳语言的家伙默认会做的那样,选择 Node 或 Bun。 我可能也应该多谈谈架构,但我会留到别的文章再说。 另外,我鼓励其他人除了 iOS 之外也针对 Mac,原因你可能想不到:构建时间。模拟器和 Xcode 实在太慢了。如果目标是 Mac,一切都会快很多。 在 AI 出现之前,我可能主要会针对 Web。但说实话,尤其是 iPhone,Web 在性能上让我非常失望,与原生相比差远了。原生总是胜出。你甚至可以用 Migo 自己试试!在 Web 上玩 Arrow (https://migo.games/arrow) 然后去原生 iPhone 版本上试一下。可爱的触觉反馈、全屏、动画,真的没法比。 如果没有 AI,这些都不可能实现,所以我真的很感激能在这个时代构建软件。我也怀念 AI 之前的某些事情。指导 AI 生成代码不像自己写语法那样容易进入心流。不过如此。 这并不是说 AI 解决了一切。制作成功软件最难的部分仍然存在。其中之一当然是找到用户/分发渠道。AI 生成代码无法从我的仓库中把软件匹配给用户。真遗憾。事实上,现在写的软件太多了,这个问题反而更难了!我看到一张图表显示了 AI 导致应用商店中应用数量的爆炸性增长。太疯狂了。 我想今天就这些了。试试这些游戏吧。如果愿意的话在 App Store 留个好评。快乐构建。如果你想,可以在 HN 上讨论 (https://news.ycombinator.com/item?id=48256053)。 ## 所有文章 - 用 Elixir 和 Swift 构建在线小游戏:我到目前为止学到的东西 (https://calvinflegal.com/2026/05/24/what-ive-learned-so-far-building-online-mini-games-with-elixir-and-swift.html) - 比较在线音乐母带处理服务 (e-mastering) (https://calvinflegal.com/2022/04/02/comparing-online-mastering-services.html) - 使用 NestJS、Jovo 和 React 构建 Paper Audio (https://calvinflegal.com/2021/11/01/building-paper-audio-with-nestjs-jovo-react.html) - 你只做一次的事情几乎不重要,但这是一件好事 (https://calvinflegal.com/2017/02/25/the-things-you-do-once-barely-matter.html) - 我从构建第一个 iOS 应用中学到的东西 (https://calvinflegal.com/ios/2015/06/02/What-I-learned-from-my-first-iOS-app.html) - Ember.js (Ember CLI) 和 Jekyll 在 GitHub Pages 上 (https://calvinflegal.com/jekyll/ember/2014/12/16/ember-js-jekyll-github-pages.html)

相似文章

Elixir 应用优化之旅

Lobsters Hottest

一位开发者分享了优化 Elixir 应用的经验与教训,重点介绍了针对 Postgres 连接池工具 Ultravisor 的性能改进。文章涵盖了使用火焰图、调用追踪等性能分析技术,以及 eFlambè 和 tprof 等工具。