我(至今)在使用 Elixir 和 Swift 构建在线小游戏中学到的东西
摘要
一位开发者反思了使用 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)
相似文章
@jskalc: Elixir、Phoenix Live View 和 Ash Framework 是一个杀手级组合。两个月前,作为一个独立开发者,我启动了一个新项目。F…
一位独立开发者分享了使用 Elixir、Phoenix Live View 和 Ash Framework 在两个月内构建一个复杂的 ERP 系统的成功经验,超越了一个多年来苦苦挣扎的更大团队。
Elixir 应用优化之旅
一位开发者分享了优化 Elixir 应用的经验与教训,重点介绍了针对 Postgres 连接池工具 Ultravisor 的性能改进。文章涵盖了使用火焰图、调用追踪等性能分析技术,以及 eFlambè 和 tprof 等工具。
@googledevs:跟随 @ammaar 一起看看,用 Gemini 3.7 Flash 从单条提示词到完整可玩… 的速度有多快。
Google Developers 演示了如何使用 Gemini 3.7 Flash 通过单条提示词构建一个可玩的 90 年代风格精灵图游戏,突显了它在创意编程和工具调用方面的多功能性。该模型正在 Antigravity、Google AI Studio 和 Gemini API 中推出。
使用AI智能体构建了一个世界杯小游戏,不仅仅是提示到代码
一位开发者使用AI智能体构建了一个世界杯小游戏,展示了一种超越简单提示到代码的方法。
仅用AI制作RPG游戏——我的目前进展
作者分享了仅使用AI工具制作RPG游戏的进展,强调了AI驱动游戏开发的能力与挑战。