Erlang千万级用户游戏框架(Openpoker)源码文件分析清单
openpoker源码 erlang写的网游服务器源码,OpenPoker是一个大型多人扑克网游,内建支持了容错能力,负载平衡和无限制的规模大小。本文是openpoker源码文件功能的一个清单式说明:
| 模块名称 | 模块功能说明 | 备注 |
| ante.erl | 仅仅是开始下注的处理,具体的逻辑在betting中 | |
| barrier.erl | barrier本意屏障 | |
| bb.erl | Bot launcher | |
| betting.erl | Poker betting logic 下注逻辑处理 | |
| bits.erl | 位处理相关操作 | |
| blinds.erl | 处理小盲注,大盲注 | |
| bot.erl | AI,gen_server,用来测试,将来应该能够陪真人玩家来玩 | |
| bot.hrl | ||
| common.hrl | ||
| counter.erl | 用于把各种计数器(自增、唯一ID)存入mnesia. 目前有3种: 玩家,游客,Game | |
| db.erl | 数据库操作 | |
| deal_cards.erl | 发牌,其中的private与shared,代表公共牌还是私有牌。这已经是与具体玩法有关的了,而与框架无关。 | |
| deck.erl | 台面,在其上洗牌 | |
| delay.erl | 每一局游戏开始前的倒计时 | |
| delayed_exit.erl | 游戏倒计时到正式开始前偷溜走的相关情况处理 | |
| dmb.erl | 其中mb=multi bots,机器人。dmb指的是distributed multi bots 分布式 | |
| dumbo.erl | 哑巴机器人 | |
| exch.erl | 自定义behavior,也是一个gen_server,A stack of game modules:玩家&游客 | |
| fixed_limit.erl | 自定义behavior,也是一个gen_server,A stack of game modules:玩家&游客 | |
| g.erl | ||
| game.erl | 每一局游戏,本质上是exch.erl。实现了开始,停止,自动计数,Watch the game without joining | |
| game.hrl | 游戏 | |
| game_start.erl | 游戏直接开始 | |
| game_wait_players.erl | 游戏等待其他玩家到齐后开始 | |
| gateway.erl | 网关-负载均衡 | |
| hand.erl | 用来计算牌型,例如:full housr 就是3带2. | |
| id.erl | 固定哈希函数的封装,用来产生进程ID与Key的唯一映射关系。目前没有被引用到。 | |
| ircdb.dat.gz | 模拟玩家数据 | |
| ircdb.erl | 模拟玩家数据 | |
| ircdb.hrl | ||
| lang.erl | 多语言处理入口,需要完善,目前只有英语 | |
| limit.erl | 各种限制接口,各种limit限制判断主要在game.erl中调用 | |
| login.erl | 登录 | |
| mb.erl | 机器人,用于测试 | |
| mbu.erl | 机器人,用于测试 | |
| no_limit.erl | 一局游戏人数上下限 | |
| observer.erl | 可以给机器人附加一个观察者职责,用来监视游戏活动状况的 | |
| pickle.erl | 序列化 | |
| player.erl | 玩家 | |
| pot.erl | 貌似是奖池,也就是所有已下的赌注的集合。 | |
| pot_limit.erl | 奖池中的加注、盲注限制 | |
| pp.erl | 报文编码/解码 | |
| pp.hrl | ||
| restart.erl | NO USE | |
| schema.erl | 初始化调度 | |
| server.erl | 主服务进程 | |
| showdown.erl | 摊牌 | |
| stats.erl | 数据统计 | |
| t.erl | debug | |
| tcp_server.erl | 通用的tcp服务器程序,主要被gateway和server使用,另外也作为客户端连接用 | |
| test.erl | 测试入口函数 | |
| test.hrl | ||
| texas.hrl | 游客相关处理机制,下同,可以暂时忽略 | |
| tourney.erl | ||
| tourney.hrl | ||
| tourney_game_start.erl | ||
| tourney_wait_players.erl | ||
| tourney_wait_timer.erl | ||
| util.erl | 提供3个公用函数: 1.判断进程死活;2.初始化“从”数据库;3. 返回一个随机的进程组成员进程。 | |
| visitor.erl | 游客 |
以上文件时对基于Erlang开发的分布式可扩展游戏框架openpoker源码文件清单的说明。主要是对文件和文件功能进行了说明,正在整理模块调度关系,持续更新中...

负载均衡网关节点工作原理示意图
Erlang千万级用户游戏框架(Openpoker)源码文件分析清单的更多相关文章
- JUC同步器框架AbstractQueuedSynchronizer源码图文分析
JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC(java.util.concurrent)包的时候引入了java.util.c ...
- TFS二次开发-基线文件管理器(5)-源码文件的读取
在上一节中,我们在保存标签之前,已经将勾选的文件路径保存到了Listbox中,这里只需要将保存的数据输出去为txt文档就可以做版本控制了. 版本文件比较复杂的是如何读取,也就是如何通过文件路径 ...
- golang---命令源码文件与命令行参数
命令源码文件是程序的运行入口,是每个可独立运行的程序必须拥有的. import "flag" flag包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个se ...
- 《UNIX网络编程(第3版)》unp.h等源码文件的编译安装
操作系统:Mac OS X 10.11.5 1.下载书中的源代码:点击下载 2.切换到解压后的目录 unpv13e,先查看下 README,依次执行: ./configure cd lib make ...
- [C/C++] 各种C/C++编译器对UTF-8源码文件的兼容性测试(VC、GCC、BCB)
在不同平台上开发C/C++程序时,为了避免源码文件乱码,得采用UTF-8编码来存储源码文件.但是很多编译器对UTF-8源码文件兼容性不佳,于是我做了一些测试,分析了最佳保存方案. 一.测试程序 为了测 ...
- C++ 多源码文件简单组织
C++ 多源码文件简单组织 基本上和C的是一样的,只不过C++的方法要在类中声明.看一个简单实例.ainimal.h 类里面对外公开的信息. 点击(此处)折叠或打开 #ifndef _ANIMAL_ ...
- Python源码文件中带有中文时,输出乱码
Python源码文件中带有中文时,文件头应加注释: #!/usr/bin/env python # -*- coding: utf-8 -*- 第一行注释是为了告诉Linux/OS X系统,这是一个P ...
- 对threading模块源码文件的解读(不全)
# -*- coding: utf-8 -*- #python 27 #xiaodeng #对threading模块源码文件的解读(不全) import threading #类 #Thread() ...
- go语言的源码文件的分类及含义
Go源码文件:名称以.go为后缀,内容以Go语言代码组织的文件 多个Go源码文件是需要用代码包组织起来的 源码文件分为三类:命令源码文件.库源码文件(go语言程序) 测试源码文件(辅助源码文件) 命令 ...
随机推荐
- Roman to Integer && Integer to Roman 解答
Roman Numeral Chart V:5 X:10 L:50 C:100 D:500 M:1000 规则: 1. 重复次数表示该数的倍数2. 右加左减:较大的罗马数字右边记上较小的罗马数字,表示 ...
- csdn博客被一个无名网站套用,不知大家是否也是这样?
今天闲来无事,用google搜索了一下自己csdn的博客名,查看了一下搜索结果,发现自己在csdn上的博客被其他一下网站转载了,转载后注明作者的网站这里我也就不去说了,问题是我发现了一个名叫“开心问答 ...
- Android --- 字符串\n的换行问题
我的一段文字"测试文本\n测试文本\n测试文本\n测试文本\n测试文本\n测试文本\n". 该段文字放在一个txt文本内. 我用流读取后,显示在一个TextView里. 我期望的显 ...
- hdu 3232 Crossing Rivers(期望 + 数学推导 + 分类讨论,水题不水)
Problem Description You live in a village but work in another village. You decided to follow the s ...
- Java连接Oracle数据库的示例代码
最基本的Oracle数据库连接代码(只针对Oracle11g): 1.右键项目->构建路径 ->配置构建路径,选择第三项“库”,然后点击“添加外部Jar”,选择 “D:\Oracle\ap ...
- phpStudy + JspStudy 2014.10.02 下载
phpStudy + JspStudy 2014.10.02 下载 目标:让天下没有难配的php环境. phpStudy Linux版&Win版同步上线 支持Apache/Nginx/Teng ...
- 初始——第一款个人开发上线app store
最初学习iOS开发时就听人建议,程序员应该有自己的博客,来记录每天的收获,于人于己都是一件很有意义的事.但当初作为菜鸟一枚,自认为对一些知识的认识尚浅,写博客这种高大上的事和自己八竿子打不着. 现如今 ...
- CSS---------------之文本类型
通过font来改变文本,主要从以下几个方面 字体加粗,字体的风格:斜体和字体变形:小型大写字母 字体的大小 行高 字体 示例如下 p{font:italic 75%/125% "Comic ...
- javascript 切换动画
function startMove(obj, json, fn) { clearInterval(obj.timer); obj.timer = setInterval(function() { v ...
- C#中DataGridView控件使用大全
DataGridView 动态添加新行: DataGridView控件在实际应用中非常实用,特别需要表格显示数据时.可以静态绑定数据源,这样就自动为DataGridView控件添加相应的行.假如需要动 ...