Erlang/Elixir #erlang# 请关注 OpenPoker 开源项目

hpyhacking · 2012年12月03日 · 最后由 hpyhacking 回复于 2013年07月12日 · 6022 次阅读

国内学 Erlang 的大多看过一篇介绍 OpenPoker 项目的文章,然后就跟打了鸡血似的开始搞了起来。 ⇧⇧⇧ Me too

OpenPoker 项目的原作者已经不公开维护代码了,去年 6 月份我开始关注这个项目,整整一年半过去了,经过几个回合的重构,项目被我重写了大部分,然后把项目重命名为 Genesis(创世纪),今天我把项目的名字又改回来了,还是 OpenPoker。

项目完全遵照 OTP 框架,使用 rebar 编译、部署、测试,重写了很多单元测试,并添加了集成测试。重构以后比原来的代码更像 Erlang 代码。

通信上目前只使用了我写的 WebSocket 库(webtekcos),可以与浏览器使用 WebSocket 协议进行通信,支持 hixie76 与 rfc6455 两个协议版本(Safari 和 Chrome 新老版本君通过测试)。隔离了协议处理部分,方便引入其他通信协议,例如 TCP。

如果有对 Erlang 感兴趣的同学或者想了解架设一个 OpenPoker 服务的同学请关注我的 Github。

https://github.com/hpyhacking/openpoker https://github.com/hpyhacking/webtekcos

@hpyhacking 用 erlang 做这个相比其他语言有什么优势?

#1 楼 @jasl

Erlang 从语法层面上直接提供了对进程的支持,进程直接在 Erlang 虚拟机中实现与维护,使用进程在 Erlang 中相当廉价,这样可以非常容易的将对现实世界的模拟映射到程序的设计当中。 另外 Erlang/OTP 提供了非常好的分布式与容错机制。

主流编程语言需要在语言基础之上构建一套进程系统,还需要处理协调,通信等机制。使用操作系统进程又会异常耗费资源,对进程的管理与监督也不好实现。

很好的项目,果断 fo

没看代码,不知道现在能不能支持多种游戏类型?

#5 楼 @bhuztez 根据游戏类型自己编写相应的模块即可

#6 楼 @hpyhacking 最好有个文档吧。

有空我自己看下好了,打算看看能不能直接用 GGZ 那个协议,再移植几个简单的游戏上去

http://www.ggzgamingzone.org/

openpoker/include/openpoker_common.hrl:5: redefining macro ''SLEEP'' windows 下 rebar compile 惨了

#8 楼 @linus 我在 Mac 下或 Linux 下搞的

需要 登录 后方可回复, 如果你还没有账号请 注册新账号