2020年8月27日
摘要: 数据落地 增量更新 全量更新 阅读全文
posted @ 2020-08-27 12:12 無心道(失足程序员) 阅读(1236) 评论(0) 推荐(3) 编辑
  2017年4月12日
摘要: 前言 无论我们做什么系统,95%的系统都离不开注册,登录; 而游戏更加关键,频繁登录,并发登录,导量登录;如果登录承载不起来,那么游戏做的再好,都是徒然,进不去啊; 序言 登录所需要的承载,包含程序和数据存储瓶颈,统一都可以看成io瓶颈; 我的登录服务器,操作只是做登录注册和返回服务器列表功能(只要 阅读全文
posted @ 2017-04-12 16:28 無心道(失足程序员) 阅读(4702) 评论(14) 推荐(17) 编辑
  2021年7月20日
摘要: 序言 这段时间有很多人问我关于数据量大了,数据库如何去满足写入和查询速度; 有没有做过分库分表结构算法; 其实在之前的文章也写过类似的文章《net.sz.framework 框架 ORM 消消乐超过亿条数据排行榜分析 天王盖地虎》 当时开心消消乐非常盛兴所以写了一个简单的分析,其实不一定符合规范,或 阅读全文
posted @ 2021-07-20 14:07 無心道(失足程序员) 阅读(1007) 评论(6) 推荐(1) 编辑
  2021年7月14日
摘要: 引言 最近在刷leetcode算法题的时候,51题很有意思; 题目是这样的: n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案 阅读全文
posted @ 2021-07-14 16:44 無心道(失足程序员) 阅读(280) 评论(5) 推荐(0) 编辑
  2021年4月6日
摘要: 序言 什么高TPS?QPS,其实很多人都知道,还有人说大数据,大流量这些关键词夜以继日的出现在我们眼前; 针对高TPS,QPS这些词汇还有一个次可能比较陌生那就是CCU,tps,qps接受满天飞,CCU在游戏服务端出现比较多, 一个运营(SP)如果问研发(CP)你们游戏承载是多少?通常他们想知道,你 阅读全文
posted @ 2021-04-06 12:34 無心道(失足程序员) 阅读(498) 评论(1) 推荐(0) 编辑
  2020年11月24日
摘要: 序言 五子连珠,顾名思义就是当有五个相同的球在一条直线上,横,竖,斜,总共四个方向呈《米》型的消除规则,达到5个或者5个以上 但是我们的五子连珠不是达到五个就结束,只是连续相同的5个或者5个以上的棋子会被消除同时增加对应的积分; 我们的设计是棋盘上 是 8 * 8 坐标格子, 总共有6总颜色的球,五 阅读全文
posted @ 2020-11-24 10:00 無心道(失足程序员) 阅读(1239) 评论(4) 推荐(0) 编辑
  2020年8月27日
摘要: 数据落地 增量更新 全量更新 阅读全文
posted @ 2020-08-27 12:12 無心道(失足程序员) 阅读(1236) 评论(0) 推荐(3) 编辑
  2018年4月2日
摘要: 序言 知道大家都懒,都挺忙的,于是提出给大家提供一个属性计算器功能, 在游戏中每一个场景对象都有着自己的属性,例如移动速度,攻击力,防御力,幸运值,三维等一系列属性值 属性牵涉的最多的几个问题,属性的常规值,也就是裸属性,装备的属性值,buff属性值,技能属性值等; 那也就牵涉了常规运算,赋值,相加 阅读全文
posted @ 2018-04-02 10:58 無心道(失足程序员) 阅读(2256) 评论(3) 推荐(3) 编辑
  2017年7月25日
摘要: 序言 天王盖地虎, 老婆马上生孩子了,在家待产,老婆喜欢玩消消乐类似的休闲游戏,闲置状态,无聊的分析一下消消乐游戏的一些技术问题; 由于我主要是服务器研发,客户端属于半吊子,所以就分析一下消消乐排行榜问题; 第一章 消消乐排行榜大致分为好友排行榜和全国排行榜; 好友排行榜和全国排行榜的其实是重合的只 阅读全文
posted @ 2017-07-25 14:48 無心道(失足程序员) 阅读(4041) 评论(30) 推荐(17) 编辑
  2017年4月18日
摘要: 前言 目前市面上的加密算法,有很多,什么AES,什么MD5,等, 有的能反解密,有的不能反解密; 加密的目的是为了增加盗取数据的难度。比如密码; 增加截包数据分析难度;不在是明文发送; 思路 为了前端(u3D,C#代码)和后端java代码,统一版本保持高一致性;保证不出错,加密过程便于自己控制; 我 阅读全文
posted @ 2017-04-18 15:50 無心道(失足程序员) 阅读(2012) 评论(7) 推荐(3) 编辑
  2017年4月12日
摘要: 前言 无论我们做什么系统,95%的系统都离不开注册,登录; 而游戏更加关键,频繁登录,并发登录,导量登录;如果登录承载不起来,那么游戏做的再好,都是徒然,进不去啊; 序言 登录所需要的承载,包含程序和数据存储瓶颈,统一都可以看成io瓶颈; 我的登录服务器,操作只是做登录注册和返回服务器列表功能(只要 阅读全文
posted @ 2017-04-12 16:28 無心道(失足程序员) 阅读(4702) 评论(14) 推荐(17) 编辑
  2017年4月10日
摘要: 前言 前文讲述了net.sz.framework 框架的基础实现功能,本文主讲 net.sz.framework.db 和 net.sz.framework.szthread; net.sz.framework.db 是 net.sz.framework 底层框架下的orm框架,仿照翻译了hiber 阅读全文
posted @ 2017-04-10 09:01 無心道(失足程序员) 阅读(4084) 评论(7) 推荐(11) 编辑
  2017年4月1日
摘要: 前言 在之前的文章中,讲解过 threadmodel,socket tcp ,socket http,log,astart ,scripts; 都是分片讲解,从今天开始,将带大家,一窥 net.sz.framework 框架; net.sz.framework 框架分为java版本和C#.net 版 阅读全文
posted @ 2017-04-01 14:16 無心道(失足程序员) 阅读(3575) 评论(17) 推荐(24) 编辑
  2017年3月29日
摘要: 前言 微服务,顾名思义就是微小的单一的服务程序,单一流程,单一发布,开发和部署都可独立; 这是我的理解; 但基于web的服务,不管是webservice还是webapi等类似的服务都需要基于iis或者tomcat, 本文介绍重点绕过iis或tomc部署基于http服务明文程序; 所谓明文程序就是源码 阅读全文
posted @ 2017-03-29 12:38 無心道(失足程序员) 阅读(11661) 评论(39) 推荐(49) 编辑
  2017年3月23日
摘要: 前言 目前本人从事 JAVA开发 之前讲过《你的日志组件记录够清晰嘛?--自己开发日志组件 Logger》 日志文件,当你是羡慕java下面的log4j,打印日志够清晰,可以很清晰定位打印日志所在文件,行号等; 于是尝试了重写了日志组件来模拟清晰打印; 序言 最近和群里大佬们研究游戏服务器架构的时候 阅读全文
posted @ 2017-03-23 17:36 無心道(失足程序员) 阅读(9642) 评论(37) 推荐(22) 编辑
  2017年2月17日
摘要: 回顾前瞻 在上一篇文章《游戏中战斗伤害范围攻击计算完整全版》我们计算了扇形,多边形,圆形,等伤害范围获取。 但是前天的多边形规整计算中,我发现一个问题,就是在获取多边形判断的时候,总有验证不足的情况,也就是未包含出现! 最后百度几何原理,得到一个算法 更简单便捷的方式,支持浮点数计算: 再次验证测试 阅读全文
posted @ 2017-02-17 13:26 無心道(失足程序员) 阅读(2351) 评论(0) 推荐(8) 编辑
  2017年2月16日
摘要: 2017-03-24修正 在以前版本中有一个错误之处需求修正,当坐标朝向是4,5,6的时候算出来的角度是错误的;导致这个时候攻击怪物的时候矩形,扇形都无法攻击; 现在附录最新修正值 算出来的360°角度是错误的; 正确的算法应该是这样的, s 前瞻回顾 上一篇文章中《游戏里12方向,任意方向计算正前 阅读全文
posted @ 2017-02-16 07:27 無心道(失足程序员) 阅读(3189) 评论(11) 推荐(7) 编辑
  2017年1月20日
摘要: 线程模型 我相信这段代码,70%左右的java开发人员,在线程队列执行的线程,线程模型都是这样设计的 我也是,而且这样的代码持续了很多年; 线程执行 Runnable 接口实现,内部封装了任务列表, 线程执行的时候取出队列里面第一个,执行, 之所以加上开始执行时间就是为了检查当前线程对象执行任务的时 阅读全文
posted @ 2017-01-20 17:25 無心道(失足程序员) 阅读(2320) 评论(1) 推荐(0) 编辑
  2016年11月4日
摘要: 1,业务描述前序? 需求来源于,公司的运营部门。本人所在公司(私营,游戏行业公司),从初创业,我就进入公司,一直致力于服务器核心研发。 公司成立块3年了,前后出产了4款游戏,一直在重复的制造公司游戏对应的游戏后台管理工具(web版本); 今年年初公司成立里运营部门,不仅开始运营公司自己产品也代理了其 阅读全文
posted @ 2016-11-04 16:08 無心道(失足程序员) 阅读(1032) 评论(2) 推荐(4) 编辑
  2016年10月19日
摘要: 此文章意在记录我是如何处理游戏里面特殊技能需求处理方案, 这两个函数可以计算出两个点位的12方向计算法则, 由于真实环境是360°,然后在实际计算是12方向,所以修正值,正移偏移12°包含值是正方向; 把我难住了,难点在哪里呢?? 难点是在于玩家是是以12方位做基础运算对象,那么他在坐标系里面就有可 阅读全文
posted @ 2016-10-19 16:09 無心道(失足程序员) 阅读(1892) 评论(7) 推荐(2) 编辑
  2016年9月23日
摘要: 前言 现在游戏市场分为,pc端,移动端,浏览器端,而已移动端和浏览器端最为接近。都是短平快的特殊模式,不断的开服,合服,换皮。如此滚雪球! 那么在游戏服务器架构的设计方面肯定是以简单,快捷,节约成本来设计的。 来我们看一张图: 这个呢是我了解到,并且在使用的方式,而PC端的游戏服务器而言,往往是大量 阅读全文
posted @ 2016-09-23 17:07 無心道(失足程序员) 阅读(4755) 评论(11) 推荐(6) 编辑
  2016年8月26日
摘要: 我们大部分it人事可能都玩过游戏,且不止一款游戏,都知道游戏有属性; 在游戏中,包含哪些属性,时候数值策划而定; 属性牵涉三个大问题, 1,属性不管是前期还是后期变更可能会非常大; 2,存在不同的属性系统,比如人物基础属性,坐骑属性,宠物属性等; 3,属性计算;属性最终计算; 第一条和第二条,是非常 阅读全文
posted @ 2016-08-26 16:46 無心道(失足程序员) 阅读(877) 评论(7) 推荐(0) 编辑
  2016年8月25日
摘要: 看过我之前文章的园友可能知道我是做游戏开发,我的很多思路和出发点是按照游戏思路来处理的,所以和web的话可能会有冲突,不相符合。 来说说为啥我要自定义线程模型呢? 按照我做的mmorpg或者mmoarpg游戏划分,线程被划分为,主线程,全局同步线程,聊天线程,组队线程,地图线程,以及地图消息分发派送 阅读全文
posted @ 2016-08-25 18:27 無心道(失足程序员) 阅读(866) 评论(6) 推荐(4) 编辑
摘要: 我(面试官):你先自我介绍一下。 面试者:我叫xxx。xxxx经验。。xxx上线项目经验。xxxxxxxxxxxxxxxxxxxxxxx目前在职状态,但是公司游戏研发服务器主程。 我:那你讲一下,你们线程模型,线程控制,数据流向如何处理的。 面试者:他不知道怎么讲。 我:如果让你设计一个组队系统,你 阅读全文
posted @ 2016-08-25 10:31 無心道(失足程序员) 阅读(3848) 评论(34) 推荐(8) 编辑
  2016年7月6日
摘要: 问题的由来 前段时间改游戏buff功能,干了一件愚蠢的事情,那就是把枚举和运算集合在一起,然后运行一段时间后buff就出现各种问题,我当时懵逼了! 事情是这样的,做过游戏的都知道,buff,需要分类型,且包含是否需要切换场景删除,下线删除,死亡删除等信息,好吧我就把这个做到一起了用一个字段标识! 问 阅读全文
posted @ 2016-07-06 15:37 無心道(失足程序员) 阅读(1120) 评论(0) 推荐(3) 编辑
  2016年3月30日
摘要: Net.Sz.CFramework 是我自己的底层库,是经过验证的底层库。 包含: 接下来一一介绍 这里是华丽丽的分割线 辅助类功能块 位运算辅助函数 使用方式和详解请看 状态机 接下来介绍日志组建 大约信息如下 线程模型. 输出 Socket Tcp组建 tcp监听需要实现IIOSessionHa 阅读全文
posted @ 2016-03-30 15:58 無心道(失足程序员) 阅读(3704) 评论(5) 推荐(9) 编辑
  2016年1月22日
摘要: 缘由本人从事游戏开发很多年一直都是游戏服务器端开发。因为个人原因吧,一直在小型公司,或者叫创业型团队工作吧。这样的环境下不得不逼迫我需要什么都会,什么做。但是自我感觉好像什么都不精通。。。。。好了好像偏题了!回归正题现在公司是做手游开发,java服务器 + U3D做客户端的mmo手游,仿魔兽世界!做... 阅读全文
posted @ 2016-01-22 16:47 無心道(失足程序员) 阅读(3067) 评论(24) 推荐(11) 编辑
摘要: 生成随机id最近公司的项目游戏生成的随机不重复id,重复概率有点大,代码如下: 1 private static int id = 0; 2 public static int serverID = 0; 3 private static final Object obj =... 阅读全文
posted @ 2016-01-22 11:20 無心道(失足程序员) 阅读(717) 评论(0) 推荐(0) 编辑
  2015年10月14日
摘要: 由来话说这个功能想法由来与java的Hibernate功能,我需要一个类和数据库映射,很简单的写一个实体类简单配置一下就ok了,很是方便, 1 package com.game.po.log; 2 3 import com.game.engine.utils.Config; 4 impor... 阅读全文
posted @ 2015-10-14 18:39 無心道(失足程序员) 阅读(1609) 评论(7) 推荐(4) 编辑
  2015年9月9日
摘要: 目前大多数使用的寻路算法有哪些?目前市面上大部分游戏的寻路算法是A*,或者B*。A*通常所说的是最优算法也就是寻找最短路径。B*碰撞式算法也就是,也就是不断的去碰撞能走就走,不管是不是绕路。当然以上都是我的理解。我这里只描述一下A*算法的一部分。通常A*算法分为四方向和八方向计算。现目前的游戏方式来... 阅读全文
posted @ 2015-09-09 09:47 無心道(失足程序员) 阅读(3096) 评论(9) 推荐(4) 编辑
  2015年9月8日
摘要: 时隔这么久 才再一次的回归正题继续讲解游戏服务器开发。开始讲解前有一个问题需要修正。之前讲的线程和定时器线程的时候是分开的。但是真正地图线程与之前的线程模型是有区别的。为什么会有区别呢?一个地图肯定有执行线程,但是每一个地图都有不同的时间任务。比如检测玩家身上的buffer,检测玩家的状态值。这种情... 阅读全文
posted @ 2015-09-08 14:09 無心道(失足程序员) 阅读(1818) 评论(7) 推荐(4) 编辑
  2015年8月13日
摘要: 之前的文章讲述了socket通信的一些基本知识,已经本人自定义的C#版本的socket、和java netty 库的二次封装,但是没有真正的发表测试用例。本文只是为了讲解利用protobuf 进行C# 和 java的通信。以及完整的实例代码java 代码 svn 地址,本人开发工具是NetBeans... 阅读全文
posted @ 2015-08-13 23:30 無心道(失足程序员) 阅读(3310) 评论(13) 推荐(10) 编辑
  2015年8月3日
摘要: 这几天在博客园上看到好几个写Java和C#的socket通信的帖子。但是都为指出其中关键点。C# socket通信组件有很多,在vs 使用nuget搜索socket组件有很多类似的。本人使用的是自己开发的一套组件。Java socket通信的组件也有很多,常用的大多数都是用的mina或者netty。... 阅读全文
posted @ 2015-08-03 14:35 無心道(失足程序员) 阅读(7991) 评论(72) 推荐(9) 编辑
  2015年7月31日
摘要: 现在现成的日志组件实在是太多太多,为什么我还需要自己实现呢?????需求来源于java的log4j,[07-31 16:40:00:557:WARN : com.game.engine.thread.ServerThread:117] -> 全局排行榜同步执行器-->ServerThread[全局排... 阅读全文
posted @ 2015-07-31 17:29 無心道(失足程序员) 阅读(2457) 评论(10) 推荐(4) 编辑
  2015年7月22日
摘要: 你的程序支持复杂的时间调度嘛?这篇文章介绍了时间适配器的c#版本,是给客户端用的,服务器自然也要有一套对应的做法,java版本的[年][月][日][星期][时间][*][*][*][*][*]这样利于分割,配置,清晰。然后就是验证,时间在不在配置的时间开发内?当然想到的*肯定是默认支持所有的[201... 阅读全文
posted @ 2015-07-22 17:07 無心道(失足程序员) 阅读(538) 评论(5) 推荐(1) 编辑
  2015年7月20日
摘要: 时隔两个月了,这段时间,游戏筹备正式上线,根据游戏平台数据反馈,反响还不错。但是牵涉出新问题,就是活动。活动功能本身很简单。问题就在于,时间配置上,什么时间段开发活动。配置多种多样。比如,没做星期2,4,6活动。每周的周六,周日,活动。指定月份和日期的活动。配置简直是天花乱坠了。。。这尼玛怎么搞??... 阅读全文
posted @ 2015-07-20 15:35 無心道(失足程序员) 阅读(776) 评论(3) 推荐(4) 编辑
  2015年5月27日
摘要: 游戏快正式上线了,今天发现一个bug,让人哭笑不得。数据计算溢出了;玩家充值的元宝变为了0;这个可是一件大事,毕竟谁都担不起这个责任啊;来说说原因吧。开发语言是 java 工具是 netbeans ide 8.0.2玩家对象有一个属性是 gold 是int类型的;玩家充值的时候计算方式如下. ... 阅读全文
posted @ 2015-05-27 11:32 無心道(失足程序员) 阅读(3777) 评论(62) 推荐(9) 编辑
  2015年5月25日
摘要: 看到这里你可能会问,asp.net程序本身就是动态网站,还要如何动?我这里所谓的动起来,是指动态加载,动态更新。好吧可能你又要问了动态网站本来就是动态加载,动态更新的。asp.net的程序依附于IIS(当然不是唯一)运行的,有代码的更新,只需要拷贝到对应的目录下面。刷新界面就加载最新程序了。无需重启... 阅读全文
posted @ 2015-05-25 22:48 無心道(失足程序员) 阅读(1454) 评论(4) 推荐(2) 编辑
  2015年5月20日
摘要: 别嘲笑这个标题。我想了很久。有点“投机取巧”的功效吧!程序当然不能做饭。之前的我们的系列文章,介绍, 多线程执行,任务派发。定时器执行。脚本加载。程序状态机。这些都是零零散散,或者说都是模块化介绍,以及模块测试用例。那么今天我们就来模拟正常程序流程。使用上述的功能性代码完成流程。当然今天的测试用例程... 阅读全文
posted @ 2015-05-20 12:20 無心道(失足程序员) 阅读(3098) 评论(25) 推荐(7) 编辑
  2015年5月18日
摘要: 我相信大多数博友都会玩游戏。玩游戏,牵涉到状态包含 登陆,正常,死亡,复活,下线,在上面状态的基础上。同时包含 站立,走动,跑动,不可移动施法状态, 战斗状态,通常这是三个不同的分组。也就说可以同时存在的状态和不可同时存在的状态。通常情况下也许你会这么定义,//分组1pub... 阅读全文
posted @ 2015-05-18 23:47 無心道(失足程序员) 阅读(1888) 评论(5) 推荐(3) 编辑
  2015年5月14日
摘要: 上一篇文章我介绍了如果动态加载dll文件来更新程序一步一步开发Game服务器(三)加载脚本和服务器热更新可是在使用过程中,也许有很多会发现,动态加载dll其实不方便,应为需要预先编译代码为dll文件。便利性不是很高。那么有么有办法能做到动态实时更新呢????官方提供了这两个对象,动态编译源文件。提供... 阅读全文
posted @ 2015-05-14 17:33 無心道(失足程序员) 阅读(1804) 评论(1) 推荐(2) 编辑
  2015年5月13日
摘要: 最近有一个需求是这样的,根据键值对存储类型数据,也算是数据缓存块模块功能设计。一个键对应多个值。每一个键的值类型相同,但是每个不同的键之间类型不一定相同。Java 设计如下HashMap>java把数据添加到集合中TestIterator tIterator = new TestIterator()... 阅读全文
posted @ 2015-05-13 15:24 無心道(失足程序员) 阅读(906) 评论(0) 推荐(2) 编辑