网络游戏开发知识
peter_teng
这个作者很懒,什么都没留下…
展开
-
FSM:游戏开发中的有限状态机(理论篇)
游戏系统的本质是输入加输出。我们把游戏系统划分为多个不同状态,不同的状态在不同输入下产出不同输出。按照这种思想,我们可以把游戏中复杂的子系统,比如战斗系统,划分成多个不同状态,然后我们要做的只是,对于不同的战斗操作输入,转换相应状态,执行相应状态下的动作输出。那么什么是有限状态机? 我们要说的状态机输入和输出都是离散的、有限的;在这个基础上,我们所说的有限状态机就是描述这一类问题:在有原创 2013-06-21 17:37:36 · 8322 阅读 · 0 评论 -
全球同服--coc类游戏服务器架构
首先,游戏服务器是IO密集型服务器,它的主要瓶颈在网络IO,而不是CPU,这点要记住了。所以经常服务器问题都会出现在网络IO,带宽,数据库磁盘读写上面,而非CPU上面。其实全球同服也就是大量在线嘛,比如C1000k,甚至更多。同服,只是你看起来同服,而不是他本身就在同一个服务器上,或者同一个进程上,这是完全不现实的。一个好的服务器进程,能同时承载10k的游戏玩家(还依赖于游戏逻辑复杂度)已转载 2016-10-08 16:06:24 · 5726 阅读 · 0 评论 -
游戏常见作弊方式及应对策略
在游戏开发过程中,游戏本身是十分脆弱的,在复杂的网络环境中,犹如一叶小舟,如果没有好的防守,可能说翻就翻了。对于游戏开发者来说,与破坏者的斗争是长期的,艰苦卓绝的,也是一个斗智斗勇的过程,力量对比往往是此消彼长。所谓是道高一尺,魔高一丈,对于游戏守护者来说,要往往要做到的是魔高一尺,道高一丈。我们不可能完全避免作弊,只是在尽量增加作弊的成本。游戏作敝的一般方式主要有以下几种常见的:转载 2017-06-21 10:56:58 · 2022 阅读 · 0 评论 -
unity中的web player与webGL
unity开发网页游戏,发布的时候可以选择web player跟webGL。unity5.4版本以后发布只能选择webGL,web player能用的最高版本是5.3.8。两者比较如下: Web Player 优点成熟:在开发过程中遇到问题,在论坛或其它地方可以找到答案 稳定:bug更少,经过Unity不同版本的迭代更新,web player技术稳定 轻量...转载 2017-07-10 16:52:57 · 21525 阅读 · 1 评论 -
c++游戏服务器http与web前端交互
html页面代码如下: command: server_id: command_cls: command_content: type: account: money: order_no: platform:原创 2017-07-19 15:09:45 · 2673 阅读 · 0 评论 -
Linux定时清理游戏log及mysql定时任务删除游戏日志数据
游戏服务器运行过程中,每天都会产生大量log数据,包括数据库日志数据跟后台打印日志,需要定时清理一.linux定时清理log文件1.删除文件命令:find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;实例命令:find /opt/soft/log/ -mtime +3原创 2017-11-28 17:15:41 · 1570 阅读 · 0 评论 -
微信小游戏websocket支持https/wss
原来的游戏服用的websocket,支持ws,现在做微信小游戏,需要用wss。不需要改游戏服上的任何东西,只需添加一个nginx代理服,配置nginx支持https/wss即可,客户端跟代理服用wss通讯,代理服跟游戏服还是ws通讯。1.安装nginx(1) gcc安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install ...原创 2018-09-27 14:22:58 · 5929 阅读 · 0 评论 -
lua全局环境变量_G小结
1.以一个模块(*.lua,后同)为单位,所有的全局变量都保存在table中,这个table放在_G中,这是一个全局空间(全局环境变量),可以简单的看作一个表。2._G中只保存全局变量,不保存局部变量。3.lua中真正存储全局变量的地方不是在_G里面,而是在setfenv(i,table)的table中,所有当前的全局变量都在这里面找,只不过在程序开始时lua会默认先设置一个变量_G=这个原创 2016-10-07 21:43:08 · 5571 阅读 · 0 评论 -
lua游戏服务器热更新
Lua热更新实现用途在生产环境上,总有可能出现不可预知的Bug,而通常修改好Bug仅仅又修改几句,停机维护的成本又太高,对于游戏来说,通常每个服就是单独的进程,也做不到像分布式环境下,关掉一部分机器,先升级一部分,再升级另一部分的无缝升级。这时候如果有热更就可以迅速的把Bug修复方案通过热更新进行修复,不会对用户任何的影响。例如:业务逻辑有Bug配置的数据有误需求发生变更转载 2016-10-07 19:00:17 · 6613 阅读 · 3 评论 -
cocos2d-x快乐的做让人快乐的游戏5:一个横版ARPG过关游戏
在第一篇《如何制作一个横版格斗过关游戏》基础上,增加角色运动、碰撞、敌人、AI和音乐音效,原文《How To Make A Side-Scrolling Beat ‘Em Up Game Like Scott Pilgrim with Cocos2D – Part 2》,在这里继续以Cocos2d-x进行实现。有关源码、资源等在文章下面给出了地址。步骤如下:1.使用上一篇的工程;2转载 2014-11-03 11:55:07 · 2876 阅读 · 0 评论 -
FSM:网络游戏开发中的有限状态机(实践篇)
上一篇文章《FSM:网络游戏开发中的有限状态机(理论篇)》中,讲解了FSM的基础知识。这里,我结合图形及具体例子,讲解下FSM在实际开发中的运用。首先,图解下上篇文章中提到的各种action。1.InputAction:某状态下收到某事件,输出相应动作。这里不发生状态变更,只是对输入事件的一个响应。属于瞬时动作。2.LeaveAction:离开某一状态时的相应动作。这个原创 2013-06-22 16:45:44 · 8569 阅读 · 2 评论 -
网络编程一:OSI模型,Scoket
目的:直接或间接地通过网络协议与其他计算机进行通讯。 需要知道的几个概念:套接字:(socket),用于描述ip地址和端口,是一个通信链的句柄。应用程序通常通过“套接字”向网络发出请求或者应答网络请求。有两种不同的类型:流套接字和数据报套接字。套接字是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。可以将套接字看作不同主机间的进程进行双向通信的端点,它构成了单个主机内及转载 2013-07-12 11:32:26 · 1938 阅读 · 0 评论 -
网络游戏服务器架构
服务器组成session:负责账号管理和验证,gateway和world信息管理。dbserver:负责数据库相关事务。gateway:负责管理所有玩家的连接管理,是world和client的消息中转。world:负责游戏核心逻辑。服务器部署session:1个dbserver:若干gateway:若干world:若干服务器关系session:与外网相连,接受cli原创 2013-09-24 17:46:25 · 4187 阅读 · 0 评论 -
网络游戏服务器架构2
在《网络游戏服务器架构》这篇文章中,我描述了我们游戏中的服务器基本结构。游戏中4大服务器session, gateway, dbx, world,它们之间通过sock进行通信。四大服务器的连接过程是这样的:1.先启动dbx,dbx监听端口3000,供其他服务器连接2.接下来是session,它连接dbx(3000),同时监听2300,供gateway连接,并且监听2500,供wor原创 2013-10-18 15:20:59 · 1731 阅读 · 0 评论 -
独一无二的GUID
GUID(Global unique identifier)是一个128位长的数字,一般用16进制表示。算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成GUID。从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义上)3240年不重复。GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每个 x 是 0-原创 2014-01-21 16:55:49 · 3582 阅读 · 0 评论 -
cocos2d-x快乐的做让人快乐的游戏1:基础知识
在Cocos2d-x中开发游戏的主要逻辑和结构是:先创建场景,在场景上添加一层或多层,然后可以在指定层上添加精灵、菜单、文字等,可以为精灵、文字执行某个动作(或者移动),检测玩家触屏事件,开启任务调度执行碰撞检测和更新数据,通过导演类管理和切换场景等等。(1)导演(CCDirector)在cocos2d-x引擎中,导演类CCDirector是个单例,这里主要用来管理和显示场景的,还原创 2014-02-17 11:45:00 · 1806 阅读 · 0 评论 -
cocos2d-x快乐的做让人快乐的游戏2:坐标系大集合
cocos2d中,涉及到4种坐标系:GL坐标系Cocos2D以OpenglES为图形库,所以它使用OpenglES坐标系。GL坐标系原点在屏幕左下角,x轴向右,y轴向上。屏幕坐标系苹果的Quarze2D使用的是不同的坐标系统,原点在屏幕左上角,x轴向右,y轴向下。ios的屏幕触摸事件CCTouch传入的位置信息使用的是该坐标系。因此在cocos2d中对触摸事件做出响应前原创 2014-03-23 16:16:33 · 1644 阅读 · 0 评论 -
cocos2d-x快乐的做让人快乐的游戏3:cocos-2d 3.x中的物理世界
Cocos2d-x 3.0+ 中全新的封装的物理引擎给了开发者最大的便捷,你不用再繁琐与各种物理引擎的细节,完全的封装让开发者可以更快更好的将物理引擎的机制添加到自己的游戏中,简化的设计是从2.0到3.0+的一个质的飞跃。(如果用的2.x版本的cocos2d-x,看前一篇文章box2d)下面同样以一个小demo来展示一下物理引擎的运用,同时说一下我在运用物理引擎中遇到的一些小小原创 2014-08-08 12:05:20 · 2920 阅读 · 0 评论 -
cocos2d-x快乐的做让人快乐的游戏4:像素碰撞
转自:http://blog.csdn.net/super2099/article/details/22745371This post found its way because I couldnt find the answer to one of the questions I asked on StackOverflow (http://stackoverflow.com/quest转载 2014-11-03 11:36:26 · 1706 阅读 · 0 评论 -
微信小游戏开发知识采坑汇总
最近开发了微信小游戏,其中踩了不少坑,遂记录。1.微信开放平台,微信公众平台的区别微信开放平台(https://open.weixin.qq.com/)微信登陆,微信支付在这操作微信公众平台(https://mp.weixin.qq.com)小程序,小游戏,公众号都在这操作2.微信公众平台个人开发者,企业开发者都需要实名认证。个人开发者类型一个账号只能创建一个小游戏,企业开发者类型的...原创 2018-10-01 01:31:07 · 1640 阅读 · 0 评论