转--轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统

自从众多“主流开发者”第一次听说以来,直到现在,Erlang 仍然是一门“有点怪异的小众语言”。可它也有一个充满活力的小社区。在 Maillist 中我们常能“围观”到一些有趣事件的发生,最近,我们就能亲眼目击到《一个开源游戏的诞生》这出大戏。

Erlang 在游戏业素有盛名,国内和国外有一些游戏或多或少的采用了 Erlang 系的技术方案。这是有原因的,一方面,这个行业在整个计算机领域中处于并发与分布问题的最前线,他们是最有动力去尝试用其他的语言来解决手头碰到难题的一群人。另一方面 Erlang 本身消息驱动的要素,与游戏这一特定的开发领域在抽象模型上又有着高度的重合。

五年前,DevMaster 上 Joel Raymont 的那篇《Writing Low-Pain Massively Scalable Multiplayer Servers》(中文版《轻松实现可伸缩性,容错性,和负载平衡的大规模多人在线系统》),在整个技术领域引起了非常大的反响,某种程度上,起到了大大推广 Erlang 语言的效果。但是,由此而诞生的 OpenPoker 项目,从纯粹的开源软件视角上看,却不幸成为了一个“犹抱琵琶半遮面”的半吊子项目——没有社区、没有交流、没有文档,源码没有完全公开——作者本人还要靠着这个项目的咨询费来养家糊口,一个纯粹的单人开源项目。这实在是一件非常可惜的事。作为一条事后的章鱼预言家,我敢说,如果一开始就打定主意去做一个开源的软件,比如说,就象 CouchDB 的 Damien Katz 和 MochiMedia 的 Bob Ippolito 一样,把全副身家都押宝在 OpenSource 的商业模式上, OpenPoker 完全可能走得更远。

开源软件搞了这么多年,从一开始的 SourceForge 到现在的 GitHub 和 BitBucket 我们终于有了“开源并不只是把源码放出去就可以了”的共识。开源软件其实是一套软件价值观——以软件本身的质量为核心价值。同时也是一套开发组织管理的哲学——当最初的项目创始人耗尽了他的热情,软件可以轻松的移交到新的开发者手上,通过这种热情的接力,软件能够日渐完善和历久常青。它是围绕着软件本身,以程序员的诉求为重点的开发方式,有着一套完整的依托于互联网的方法和设施。开源最终会导向可进化的,更高质量的软件产品。在开源软件这团热气腾腾的五彩祥云之中,热情是其原动力,灵活的团队是其灵魂,充分而高效的交流和协作则是这种开发方式的固有特色,至于社区、文档、特性管理乃至源码本身,这些我们所能见到的“特色”都只是交流协作的某种“外在形式”而已。

对于 Erlang + OpenSource + Game 而言,五年以前的 OpenPoker 错失了一次绝好的机会,如果上天再给一个重来一次的机会呢?现在看起来,这个机会已经来了,那就是 PEMMOX (Project Erlang Massively Multiplayer Online eXperience)项目。

各位童鞋请自备梯子墙头围观

http://www.trapexit.org/forum/viewtopic.php?p=57004
http://groups.google.com/group/pemmox/topics

众位游戏界的 Erlangor ,请把你们带有中国风的 ID 加到 Authors List 中去吧。

posted @ 2010-12-29 14:43  fxcl  阅读(416)  评论(0编辑  收藏  举报