棋牌游戏前后端技术介绍
1前端技术介绍
- Cocos2d
Cocos2d-x+lua 版本稳定,技术相对成熟,可以ios adroid pc三端打包,支持热更新,相关技术人员多,相对比较好招人。
Cocos Creator + js 现在触控官方主推的引擎,官方工具支持最完善,上手比较简单,目前版本在不断迭代,同时新版本对老版本兼容性差,可以ios android pc web(h5) 四端打包,支持热更新,相关技术人员相对Cocos2d-x+lua少。
- Unity3d
2 后端技术介绍
2.1 服务器系统选择
windows 和 linux,windows系统本身比较大, 同样的硬件配置相对linux系统性能会底一些、 安全性上说linux 比 windows高、 集群维护linux工具比windows多,可维护性强等
所以选择linux,linux系统比较常见的就是ubuntu和redhat体系,ubuntu系统版本生命周期长(3-4年),如果过了生命周期,就没有安全补丁,服务器就有安全风险。 centos是redhat企业级源码中遵循开源标准编译释放出来,成本低同时也享受RHEL服务支持,现在比较稳定的最新版本是centos 7.xx
2.2 数据库
稳定、高性能、可持久化、尽量满足多的数据结构、方便运营维护
- Nosql
Redis: 内存数据库,支持string、 set、 list、 sortset、 hash数据结构, 单进程单线程,单个操作具有原子性(注意某一个操作响应过慢会影响整个redis的响应),可持久化(相对简单),支持集群,使用起来比较简单。
Mongo:内存数据库,可以支持复杂数据结构以及类似sql的操作语句,单进程多线程,单个操作不具有原子性,有一套复杂完备的持久化机制,支持集群,使用起来相对复杂。
Memcache:内存数据库, 支持简单的数据结构,不具有持久化机制。
.......................................................................................................................................................
- 关系型
Mariadb(mysql):开源,稳定,使用广,大家熟悉等
2.3 服务器引擎和语言
- 服务器引擎
自己研发:
如果有一套成熟稳定的自研框架,可以作为备选。
开源引擎:
开源框架基本都具有稳定、成熟、易用的特点,同时针对大部分业务功能都有成熟的解决方案。
Skynet: 底层c实现,提供完整的lua接口,业务层可以完全用lua开发。
Pomelo: 底层Node.js实现, 可以用js完成业务开发。
Kbengine: 底层c++实现,可以用python完成业务开发。
- 语言
比较重的c/c++ java等,开发效率底、容错底、对开发人员水平要求相对高。
比较轻的js、lua、python等,开发效率高、容错性高、对开发人员水平要求低。
- 框架技术选择
是否符合我们业务需求(承载能力、高稳定性、可维护性高、开发时间短等)?
是否符合我们现有技术的技术栈(学习成本低, 开发上手快)?
是否能够统一前后端技术?
是否使用群体广,还在维护期?
是否框架完成度高,周边功能完善?
........................................
2.4 协议
棋牌这类交互及时性要求高,同步简单的游戏基本都选择 tcp 长连接作为网络连接。在连接之上就是我们的协议:
Websocket (tcp建立后需要有一次http请求握手)
传统二进制数据流(包的前4个字节表示包体长度)
websocket协议相对传统数据流安全性要高很多,它可以利用掩码对消息体加密,在接入一些第三方doss和cc防护平台时使用websocket的成本会比传统socket协议低很多。
对于msghead消息体和具体协议消息体,目前比较广泛使用protobuf,首先protobuf提供的语言版本多,稳定、效率高,编解码以后协议包体小。另外,协议的向前向后兼容性好。
2.4 框架设计
基本思想:
- 简单
- 水平扩展
- 逻辑处理串行,无阻塞,异步
- Lock free
3 现有框架设计
- Centos 7
- Skynet+lua
- Redis+mariadb(mysql)做为游戏数据存储,mongo做为流水日子存储
- 客户端和服务器tcp长连接,protobuf作为协议编解码工具,websocket和传统二进制数据流都支持
3.1 架构设计图
- 框架核心业务图
- 框架总图
棋牌游戏前后端技术介绍相关推荐
- 一张图来看看.NETCore和前后端技术的演进之路
一张图 2019年3月10日,在长沙.NET 技术社区组织的技术沙龙<.NET Core和前后端分离那些事儿>上,我们曾经试图通过一系列抽丝剥茧的过程来引导大家在这条基于.NET Core ...
- 从一张图开始,谈一谈.NET Core和前后端技术的演进之路
从一张图开始,谈一谈.NET Core和前后端技术的演进之路 邹溪源,李文强,来自长沙.NET技术社区 一张图 2019年3月10日,在长沙.NET 技术社区组织的技术沙龙<.NET Core和 ...
- DMS前后端技术揭秘及最佳实践
不同于一般的存储和计算产品,云上DMS上属于操作类产品,目的是为用户提供更高更强的数据库访问能力,减少成本以提高效率.本文中,来自阿里巴巴数据库事业部的钟隐分享<DMS前后端技术揭秘及最佳实践& ...
- 【初学者技术修炼】毕业生初学者学习前后端技术路线图
[初学者技术修炼]毕业生初学者学习前后端技术路线图 1 序 2 路线图 2.1 搭建可交互的前端WEB界面路线图 2.1.1 静态页面构造 2.1.2 JavaScript学习 2.1.3 低代码平台 ...
- java前后端技术栈
计划:先学习前后端基本概念,通过一个小项目熟悉流程,再阅读麻雀源码,参考修改. 文章目录 预期目标 麻雀研究 html概览 js解析 麻雀魔改 html CSS web MySql js AJAX V ...
- 【 Ecology9 】- 2 前后端联调介绍
1 前端页面 以 Demo06完整增删改 为例: 配置路由地址: /main/cs/app/cc3645868cbd4397940e4784319c2701_baseTable 浏览器访问地址: /w ...
- 电脑端京东的我的订单html+css页面_互联网系统架构前后端分离技术体系
点击「京东数科技术说」可快速关注 「摘要」随着互联网技术的发展以及终端设备的不断增多,前后端分离技术已成为移动互联网领域不可或缺的技术.前后端分离技术的不断完善,让前后端的分工与系统边界划分越来越清晰 ...
- b站 前端构架_技术干货:哔哩哔哩(B站)功能框架图 ——以B站为例分析面对秋招必须要掌握的前后端...
本次夏令营知了堂项目经理以B站为原型,带着大家熟悉了软件的开发流程及还原了部分功能模块.现在就将B站功能架构图及前后端技术栈给大家.同时从以B站技术为例给大家分析作为应届毕业生,面对秋季校招时必须要掌 ...
- 棋牌游戏服务端开发和设计-苏劲-专题视频课程
棋牌游戏服务端开发和设计-279人已学习 课程介绍 本门课程讲解棋牌游戏服务端的架构.数据库的设计.数据库异步存储.帐号管理.房间管理等棋牌游戏服务端的核心技术,有意向从事棋牌研发的同 ...
最新文章
- python课程多少钱一节课-日照少儿python编程一节课多少钱
- ie6/IE8/IE9/谷歌以及火狐等浏览器下li 高度一致解决办法
- echart 实例显示位置_技术分享:如何在Unity中使用实例化渲染?
- 系统安装操作优化:chapter4 多系统的安装与管理
- [codevs 1904] 最小路径覆盖问题
- coloros基于java_基于Android 11 ColorOS 11海外版亮点一图抢先看:9月24日国内发布
- 自己动手用C扩展PHP(三)
- Active Record 数据库迁移总结
- 2学习率调整_学习率衰减
- 0623TP框架联系
- 程序设计与算法----分治之归并排序
- Yii2 upload
- DL-based 多模态医学图像配准
- python的类,复现assert和eval成功失败原因
- 用雅虎邮箱再次注册微信个人订阅号
- mac 下 jkl 按键失灵
- AcWing 2041. 干草堆(一维差分)
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GR
- 用latex写毕业论文--设置附录、参考文献、致谢环境
- 基于leaflet-velocity的二维动态风场展示