Erlang开发社交游戏:挑战与选择

需积分: 11 11 下载量 97 浏览量 更新于2024-08-16 收藏 3.19MB PPT 举报
"Erlang 游戏开发, 社交游戏, 开发历程, 技术选型, 数据存储" 在游戏开发的世界里,Erlang作为一种独特的编程语言,因其并发性和高可靠性,被选用来开发一款社交游戏。游戏包含多种功能,如开垦、建造、收租、投资、偷窃、捡取以及设置收费点,这些功能旨在提供丰富的互动体验。收费点涉及道具,包括卡片、特效、场景和自动值守,以促进玩家间的互动和付费。 开发过程中,开发者选择了Erlang作为主要编程语言,因为它在处理并发任务和构建分布式系统时表现出色。游戏的开发时间相对较长,大约历经90个夜晚,总计编写了6139行代码,其中包含了约1500行的测试代码。尽管代码实现成功,但由于缺乏有效的运维推广、用户数据分析和更多收费点的开发,游戏最终未能在市场上取得预期的成功。一个完整的游戏团队通常需要由产品经理、美工、Flash动画师和服务器端开发者共同组成,以确保产品的全方位质量。 在技术选型上,考虑到社交游戏对实时性的需求相对较低,开发者选择了HTTP协议并采用JSON作为数据交换格式,这主要是因为HTTP的成熟性和易于调试。他们使用了开源的Mochiweb库来构建HTTP服务器,Mochiweb以其简洁、轻量和高效的特点,能够很好地适应Erlang的并发模型。 对于数据存储,游戏中的数据被视为核心,因此选择合适的数据库至关重要。开发者最初尝试了MySQL,但由于使用ODBC访问效率低,以及第三方驱动程序的不成熟,他们遇到了挑战。MySQL虽然适合结构化数据,但可能不适合频繁变化的游戏数据。接着,他们考虑了Erlang自带的分布式数据库Mnesia,它与Erlang的集成非常紧密,提供了许多特性,如分布式存储和存储任意Erlang Term。然而,Mnesia的数据文件大小限制和与其他语言交互的困难也成为了其缺点。 Erlang游戏开发涉及了多方面的技术决策和挑战,包括游戏功能设计、开发周期管理、技术栈的选择以及数据存储策略。尽管最终产品未达到商业上的成功,但这个过程展示了Erlang在游戏开发中的潜力和遇到的实际问题,为后续的项目提供了宝贵的经验教训。