开发一款网络棋牌游戏(一)
来源:互联网 发布:unity3d布料系统 编辑:程序博客网 时间:2024/04/28 16:13
简介
使用Unity开发客户端,使用MySQL存储用户数据,使用Go语言开发游戏服务器,实现类似QQ斗地主的棋牌游戏。本系列文章将分享自己的学习、开发过程,作为本系列的第一篇文章,本文将进行功能分析,设计大体框架,并分析技术选择的原因。
功能分析
斗地主是大家喜闻乐见的棋牌游戏,都知晓其游戏规则,本文不再论述游戏规则。鉴于斗地主的游戏特性,很容易验证网络游戏服务器的功能。这也是本人决定实现网络斗地主的原因,来学习网络平台游戏的设计。
网络斗地主的核心功能之一便是支持多人在线竞技,三人一组形成一个游戏房间。在网络端的游戏服务程序便相当于游戏大厅,开放门户等待客户端的链接。一个服务端线程管理三个客户端,即一个服务端线程便相当于一个房间。游戏的核心逻辑计算放在服务端进行,客户端仅仅接受玩家的输入,并展示当前的游戏状态。游戏的核心逻辑计算以及游戏状态的核心数据结构均放在服务端,由服务端向客户端同步当前游戏状态,这样可以在一定程度上防止玩家作弊。
既然开发一个游戏平台,游戏玩家的注册账号是登录游戏并进行游戏的凭证,所以服务器程序还少不了玩家账户的管理。用户首先需要注册,使用数据库来保存用户的注册信息。登录游戏之后,玩家可以查看自己的游戏战绩,玩家之间可以添加好友即简单的社交功能,这些信息均需要保存在数据库中。
开发游戏的最大动力肯定是为了盈利,所以玩家进行游戏需要消耗游戏币。游戏平台还应该支持充值功能,玩家每进行一局游戏就要消耗一定数量的游戏币。除了充值玩家,游戏平台还应该支持给不充值玩家娱乐的机会,所以游戏还应该每天给玩家发放一定数量的游戏币,这也是很多游戏中的签到功能。在本平台的设计中将区分两种游戏币,去分两种玩家:充值用户和不充值用户,充值用户与充值用户竞技,不充值用户之间进行竞技。在本平台中将允许玩家之间赠送游戏币,玩家只能赠送购买的游戏币,而不能赠送系统发放以及靠系统发放赢来的游戏币。这也是区分两种玩家的原因。
技术选择
使用Unity开发游戏客户端:Landlords。Unity作为一款成熟的游戏引擎,可以极大提高游戏开发效率,但是在本游戏中,将主要使用其2D功能,在后续的文章中将重点介绍Untiy客户端游戏与服务端的通信功能,而不对Unity做过多介绍。
使用Go语言实现游戏服务器程序:Sargeras。Go拥有强大的并发程序升级功能,上文中提到的一个游戏房间(为三个客户端提供服务)线程,完全可以使用Go中的协程概念。协程是轻量级线程,一个线程内可以创建成千上万(甚至更多)的协程,Go语言内部完全实现了轻量级线程的管理。使用协程特别适合开发棋牌类的网络游戏服务器程序,这也是选择使用Go来开发游戏服务端的原因。
使用MySQL建立数据库:abyss,存储用户数据、游戏数据。
备注:上述段落中出现了三个英语单词:Landlords是客户端的名称,就是斗地主;Sargeras(萨格拉斯)是服务端程序的名称;abyss(深渊之意,意指扭曲虚空)是在MySQL中建立的数据库的名字。关于服务器和数据库名称的来源,在魔兽世界中,萨格拉斯是扭曲虚空(abyss)的主宰者,扭曲虚空是天灾军团的发源地,驻扎着大量恶魔。如此解释相信读者理解我取名称的意义了吧。
结尾
本系列文章记录的是自己学习、思考的过程,Unity、Go、MySQL对于我来说都比较陌生,选择这三种技术工具来实现这个程序也算是一个挑战。下一篇文章将介绍数据库的设计。
- 开发一款网络棋牌游戏(一)
- 网络棋牌游戏开发方案整理
- 网络棋牌游戏
- android开发之网络棋牌类在线游戏开发心得(服务器端、Java)
- 开发式棋牌游戏
- 厦门棋牌游戏开发
- 棋牌游戏开发
- 精通棋牌游戏开发
- 棋牌游戏开发
- 小团队如何运营一款棋牌游戏
- 慧明网络棋牌(一)
- 棋牌游戏开发--如何选择棋牌开发商
- 基于HTML5+WebSocket+JAVA的棋牌游戏开发,从入门到放弃(一)
- 模拟QQ网络棋牌游戏
- 网络棋牌游戏用户群体
- 我经历过的失败产品和项目(二):一款无疾而终的棋牌类游戏
- 选择手机游戏棋牌开发
- 棋牌游戏服务器开发心得
- 如何使用requirejs加载html
- jquery学习篇--基础部分
- SSH连接GitHub遇到的问题
- 检查maven工程版本冲突
- ambari2.1离线安装HDP2.1实践教程
- 开发一款网络棋牌游戏(一)
- Java设计模式—策略模式
- 激活工具?两句代码获取正版windows系统
- uml时序图(序列图)基本知识和制作
- vmware安装Ubuntu
- Linux进程间通信——使用共享内存
- js数组的操作
- Servlet中Response对象应用2(输出随机验证码图片)
- Sqlserver 链接服务器和同义词