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)源码文件分析清单的更多相关文章

  1. JUC同步器框架AbstractQueuedSynchronizer源码图文分析

    JUC同步器框架AbstractQueuedSynchronizer源码图文分析 前提 Doug Lea大神在编写JUC(java.util.concurrent)包的时候引入了java.util.c ...

  2. TFS二次开发-基线文件管理器(5)-源码文件的读取

      在上一节中,我们在保存标签之前,已经将勾选的文件路径保存到了Listbox中,这里只需要将保存的数据输出去为txt文档就可以做版本控制了.   版本文件比较复杂的是如何读取,也就是如何通过文件路径 ...

  3. golang---命令源码文件与命令行参数

    命令源码文件是程序的运行入口,是每个可独立运行的程序必须拥有的. import "flag"  flag包实现了命令行参数的解析.每个参数认为一条记录,根据实际进行定义,到一个se ...

  4. 《UNIX网络编程(第3版)》unp.h等源码文件的编译安装

    操作系统:Mac OS X 10.11.5 1.下载书中的源代码:点击下载 2.切换到解压后的目录 unpv13e,先查看下 README,依次执行: ./configure cd lib make ...

  5. [C/C++] 各种C/C++编译器对UTF-8源码文件的兼容性测试(VC、GCC、BCB)

    在不同平台上开发C/C++程序时,为了避免源码文件乱码,得采用UTF-8编码来存储源码文件.但是很多编译器对UTF-8源码文件兼容性不佳,于是我做了一些测试,分析了最佳保存方案. 一.测试程序 为了测 ...

  6. C++ 多源码文件简单组织

    C++ 多源码文件简单组织 基本上和C的是一样的,只不过C++的方法要在类中声明.看一个简单实例.ainimal.h  类里面对外公开的信息. 点击(此处)折叠或打开 #ifndef _ANIMAL_ ...

  7. Python源码文件中带有中文时,输出乱码

    Python源码文件中带有中文时,文件头应加注释: #!/usr/bin/env python # -*- coding: utf-8 -*- 第一行注释是为了告诉Linux/OS X系统,这是一个P ...

  8. 对threading模块源码文件的解读(不全)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #对threading模块源码文件的解读(不全) import threading #类 #Thread() ...

  9. go语言的源码文件的分类及含义

    Go源码文件:名称以.go为后缀,内容以Go语言代码组织的文件 多个Go源码文件是需要用代码包组织起来的 源码文件分为三类:命令源码文件.库源码文件(go语言程序) 测试源码文件(辅助源码文件) 命令 ...

随机推荐

  1. java设计模式--行为型模式--模板方法

    什么是模板方法,这个有待考虑,看下面: 模板方法 概述 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中. TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步 ...

  2. C# 知识点收集

    1. 数组复制 byte[] source; byte[] dest; int srcOffset = 0; int dstOffset = 0; int count = 10; System.Buf ...

  3. windows phone中三种解析XML的方法

    需求如下, 项目需要将一段xml字符串中的信息提取出来 <?xml version=""1.0"" encoding=""UTF-8& ...

  4. 3Sum Closest 解答

    Question Given an array S of n integers, find three integers in S such that the sum is closest to a ...

  5. 【POJ1003】Hangover(二分搜索)

    直接用库函数二分即可. #include <iostream> #include <cstring> #include <cstdlib> #include < ...

  6. js网页返回页面顶部的小方法

    咳咳,在网页出现滚动条的时候,许多网站会在右下角出现一个图标,点击可以回到页面顶部 本文就记录下js实现代码: 1.在html页面body添加dom元素 <img src="toTop ...

  7. Linux硬盘分区和格式化

    分区与格式化   先用fdisk分区,分区完成后再用mkfs格式化并创建文件系统,挂载,磁盘就能使用啦.   分区的原理:        MBR:主引导扇区 主分区表:64bytes,最多只能分四个主 ...

  8. Chosen 基本使用

    点击下载Chosen 引入文件 chosen.css jquery-1.7.1.min.js chosen.jquery.js 绑定数据: for (var i = 0; i < data.le ...

  9. ARC 工作原理

    自动引用计数(Automatic Reference Counting),是一个编译期间工作的能够帮你管理内存的技术. ARC在编译期间为每个Objective-C指针变量添加合适的retain, r ...

  10. java多态的理解----部分非原创

    所谓多态,其实就是对于同一件事情,不同的对象要采取不同的行为,或者同一个对象在不同的情况下需要采取不同的行为方式. 不同的对象要采取不同的行为: 这有两种实现方式:接口实现和子类重新父类方法.这两种实 ...