Erlang游戏开发经验分享:从选择到挑战

需积分: 3 47 下载量 178 浏览量 更新于2024-08-16 收藏 3.19MB PPT 举报
"我懂Erlang - Erlang游戏开发" 在游戏开发领域,Erlang是一种独特的选择,因其强大的并发性和容错性而备受青睐。本文档介绍了使用Erlang开发一款socialgame的过程,涵盖了从游戏功能设计到技术选型的各个方面。 游戏介绍包括了多种功能,如开垦、建造、收租、投资、偷窃和捡取,这些都是构建社交互动的核心元素。收费点设计有收费道具,如卡片、特效、场景和自动值守,这些通常用于增强用户体验或提供增值服务。 开发过程中,作者选择了Erlang作为主要开发语言,因为对这种语言有深入的理解。Erlang以其天生的并发机制和分布式计算能力,非常适合处理大规模的并发连接和实时性较低的游戏通信需求。 开发时间大约耗时90天,代码总量达到6139行,其中包括1500行测试代码。开发团队经历了272次提交,逐步完善了项目。尽管代码实现成功,但由于缺乏适当的运维推广、用户数据分析以及更多收费点的开发,导致产品最终未能取得预期的成功。这强调了一个好产品的背后需要一个完整的团队,包括产品经理、设计师、Flash开发者和服务器端开发者。 在通信协议的选择上,由于socialgame的实时性要求相对较低,团队选择了HTTP,并且利用JSON作为数据交换格式,因为它简单、成熟且易于调试。他们还使用了mochiweb,这是一个轻量级且高效的HTTP服务器,它很好地体现了Erlang的并发思想,但需要自定义URL映射来适应应用需求。 在数据存储方面,考虑过mysql、mnesia和redis等选项。mysql虽然适合结构化数据,但其访问效率不高,对于频繁变化的游戏数据来说并不理想。mnesia作为Erlang内置的分布式数据库,能与Erlang系统紧密集成,提供良好的并发性能和分布式特性,但存在数据文件大小的限制。因此,选择合适的数据库系统对于socialgame的数据管理至关重要。 Erlang在开发社交游戏时展现出其优势,特别是在并发处理和分布式系统方面。然而,成功的游戏不仅依赖于技术选型,还需要合理的运营策略、数据分析以及多方面的团队协作。