文章摘要
Mariano Gappa在15年软件工程师生涯后,决定开发并发布一款游戏。他选择了阿根廷常见的纸牌游戏Truco,使用Go语言开发后端,并自学React构建UI。为了节省服务器成本,他将服务器编译为WASM,并通过GitHub Pages托管静态文件。整个过程耗时3个月,未使用LLM技术,最终完成了项目,但未计划推广或盈利。
文章总结
Mariano Gappa的博客:用Go语言开发两款纸牌游戏
在担任软件工程师15年后,Mariano Gappa意识到自己从未真正开发并发布过一款游戏。由于他成长于阿根廷,童年时常与朋友玩纸牌游戏,因此决定选择一款纸牌游戏进行开发。他首先选择了阿根廷流行的“Truco”游戏,并在2024年6月18日开始利用业余时间进行开发。
Truco:3个月的无LLM开发
作为一位长期使用Go语言的后端开发者,后端开发对Mariano来说并不困难,但UI设计和长期托管成为了挑战。他通过以下方式解决了这些问题:
- UI:他学习了React的基础知识,用于构建用户界面。
- 无服务器:使用TinyGo将服务器代码编译为WebAssembly(WASM)。
- 托管:利用GitHub Pages托管静态文件。
由于当时LLM(大型语言模型)尚未普及,Mariano需要手动处理每一个细节,经过3个月的反复试验,最终完成了游戏。尽管他从未计划推广或商业化这款游戏,但一年后,仍然有玩家在享受这款游戏。
Escoba:3天的LLM辅助开发
一年后,Mariano回到阿根廷探亲时,教侄子玩阿根廷第二流行的纸牌游戏“Escoba”。此时,LLM已经普及,他决定测试LLM是否能加速游戏开发。他克隆了Truco的后端代码,并使用Claude进行代码重构,结果几乎完美地实现了Escoba的规则。唯一的bug是Claude在某个地方错误地使用了append函数。前端开发则花费了几天时间,主要挑战在于Mariano的React技能和WASM管理游戏状态的复杂设置。
如何自己开发游戏
Mariano还分享了一个简单的教程,帮助读者使用相同的技术栈开发自己的游戏。他提供了一个基于Tic-Tac-Toe的示例代码库,供读者参考和修改。教程涵盖了后端和前端的基本步骤,以及如何将后端代码编译为WASM并与前端交互。
总结
Mariano在开发这两款游戏的过程中获得了极大的乐趣,并希望读者也能从中获得启发,尝试开发自己的游戏。他鼓励读者在遇到问题时随时联系他。
评论总结
评论主要围绕游戏开发中的技术瓶颈、AI的作用以及游戏质量展开,观点多样且具有争议性。
AI在游戏开发中的潜力与局限
- 评论1认为,开发者借助LLMs(大语言模型)可以在短时间内发布更专业的游戏,但提出了“软件费米悖论”:为什么没有看到大量游戏涌现?
引用:
"A developer who can build a game by hand in 24 hours could probably build and publish something very polished and professional on Steam within 3 days using LLMs."
“一个能在24小时内手工制作游戏的开发者,借助LLMs可能在3天内发布一款非常精致和专业的游戏。” - 评论3指出,AI降低了代码编写的门槛,但游戏开发的核心挑战(如平衡性、美术、用户体验等)依然存在,AI尚未能解决这些问题。
引用:
"The tech has lowered one wall, but the taller walls remain."
“技术降低了一堵墙,但更高的墙仍然存在。”
- 评论1认为,开发者借助LLMs(大语言模型)可以在短时间内发布更专业的游戏,但提出了“软件费米悖论”:为什么没有看到大量游戏涌现?
游戏开发的真正瓶颈
- 评论3和评论7都强调,代码编写并非游戏开发的主要瓶颈,真正的挑战在于团队沟通、游戏设计和细节打磨。
引用:
"The coding part of game development was never really the bottleneck."
“游戏开发中的编码部分从来都不是真正的瓶颈。”
引用:
"I strongly believe it’s the communication among team members."
“我坚信真正的瓶颈在于团队成员之间的沟通。”
- 评论3和评论7都强调,代码编写并非游戏开发的主要瓶颈,真正的挑战在于团队沟通、游戏设计和细节打磨。
游戏质量与展示的争议
- 评论6批评了展示未完成、粗糙的游戏作品,认为这与儿童用Scratch制作的游戏无异,缺乏专业水准。
引用:
"I don’t see the point of exposing something that looks so unfinished, unpolished, with bad looking graphics."
“我不明白展示如此未完成、粗糙、图形糟糕的作品有什么意义。” - 评论7则通过游戏开发的历史经验反驳,指出即使在过去技术有限的情况下,仍有许多优秀的游戏诞生,强调游戏的核心在于创意和团队协作。
引用:
"Still, we saw plenty of enjoyable games each year."
“尽管如此,我们每年仍能看到许多有趣的游戏。”
- 评论6批评了展示未完成、粗糙的游戏作品,认为这与儿童用Scratch制作的游戏无异,缺乏专业水准。
总结:评论普遍认为AI在游戏开发中提升了效率,但并未解决核心问题,如游戏设计、平衡性和团队沟通。同时,对于展示未完成作品的态度存在分歧,一方认为缺乏专业性,另一方则强调创意和协作的重要性。