摘要: 最近研究 JAVA 集群技术,看到 jgroups 这个框架,网上有些例子,非常简单。可以参考其官方网址:http://www.jgroups.org/manual/index.html 按捺不住,自己还是动手写了一个试试。关于 JGroups,目前我没有进行“大消息包”和“大集群量”的测试,还无法确定其性能表现。如果性能方面表现良好,JGroups 放在游戏项目中,实现跨服聊天、跨服 PK 及分布式缓存,还是相当容易的。 阅读全文
posted @ 2016-01-15 21:17 Net.AfritXia 阅读(2942) 评论(1) 推荐(2) 编辑
摘要: 使用直接赋值的方法是速度最快的!试想一下,假如在做反射的时候不是直接赋值,而是根据自定义属性,动态的生成赋值代码,编译以后临时保存起来。那么以后再进行赋值操作的时候,直接调用这个编译好的赋值代码,不就可以大大提升程序性能了么? 阅读全文
posted @ 2008-07-06 13:53 Net.AfritXia 阅读(3255) 评论(13) 推荐(0) 编辑
摘要: 我阅读过几个论坛的在线用户统计代码,发现其中有两个问题,一个是需要借助数据库,另外一个是“锁”的粒度比较强!在线用户统计并不要求十分的精确(在这篇文章里,我不会讨论如何侦测到浏览器的关闭动作,而是讨论如何提高代码性能),那么借助数据库来完成这样的功能就显得很夸张!更重要的是对数据库进行读写操作(I/O操作),是要消耗性能的,而且还要在数据表里产生一条记录。为了一个不精确的功能需求消耗如此多的资源,的确不划算!另外一个办法是直接使用DataSet和ASP.NET缓存的方式来做统计,类似这样的代码我看过几个,自己也写过一个。但这样做也存在很大问题,最严重的地方还是“锁”的问题。在更新DataSet时需要通过lock关键字来将其锁定,但如果用户数量很大时,DataSet被加锁的次数过于频繁,所造成的坏结果千奇百怪。所以我不得不寻找一种更为有效的方法……新的方法是通过命令模式更新在线用户列表 阅读全文
posted @ 2008-06-27 13:41 Net.AfritXia 阅读(2938) 评论(9) 推荐(1) 编辑
摘要: 如果把做游戏赚大钱的概率比喻成买彩票中大奖的概率,那么有谁会怀着必胜的心态去买彩票呢?我们就像是赌徒一样,将自己所有的时间、精力、财产全部下注,一次又一次!可是赢的机会似乎越来越少……慢下来,回过头去,仔细想想。游戏,揭掉浮华,更应该是一步一个脚印。只有真正的走过,才会有成长! 阅读全文
posted @ 2015-12-24 05:53 Net.AfritXia 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 本文完整代码,可以浏览:https://github.com/hjj2017/xgame-code_server/blob/master/game_server/src/com/game/gameServer/framework/mina/MsgCumulativeFilter.java我在网上查阅... 阅读全文
posted @ 2015-07-04 11:35 Net.AfritXia 阅读(1147) 评论(0) 推荐(1) 编辑
摘要: 用例上一章节中,我们已经找到了潘多拉魔盒系统的涉众,接下来,我们就看看他们能干什么吧。先让我们来看看玩家到底能干什么?通过前面的介绍,我们可以得知玩家能干的最主要的事情就是“抽奖”。抽完奖之后,就是到奖品袋里取奖品。我们总结如下:玩家用例:抽奖; 取奖品; 要抽奖,怎么着也得先看见奖品再抽奖吧。所以玩家用例中又多了一个查看奖品,也就是查看潘多拉魔盒。取奖品也是一样,总得能打开奖品袋看一眼,再取奖品吧。于是用例列表就变成了下面这个样子:玩家用例:查看潘多拉魔盒; 抽奖; 查看奖品袋; 取奖品; 开篇的介绍中提到过这么一件事儿:最终,会有一个人横空... 阅读全文
posted @ 2013-04-07 23:05 Net.AfritXia 阅读(1070) 评论(2) 推荐(2) 编辑
摘要: 涉众我见到过一些人,他们在做设计的时候,习惯从定义数据库表结构开始。他们认为,只要表结构定下来了,整个系统也就差不多设计完成了。这种情况多见于 Web 领域的开发人员。身处游戏行业的一些人,他们在做设计的时候,习惯从定义消息格式开始。这些方法都存在局限性,而且都存在较高的风险。特别是对于复杂的大系统,开发周期长的系统,开发过程中还会有需求变更的情况,这些方法都不能适应。还有一些有经验的人,是从用例(UseCase)开始进行设计的。不过,这个同样存在遗漏。在做设计之前,最最最先要考虑的是“涉众”!谁在用你的系统谁就是涉众!回到潘多拉魔盒系统,不难得知。这个系统的涉众大概有两个:玩家、GM。如图 阅读全文
posted @ 2013-04-07 23:04 Net.AfritXia 阅读(485) 评论(0) 推荐(0) 编辑
摘要: 小序《打开潘多拉的魔盒》——这是一系列文章,这些文章并不是真的要讲述潘多拉 MM 打开魔盒的故事。这些是技术文章,是要通过真实的案例来讲述软件系统的设计过程。本文中所采用的真实案例是网页游戏项目中的抽奖系统,抽奖系统比较独立,且涉及的专业术语比较少,所以易于读者理解。但是,即便这样,这篇文章还是稍微有一定难度的,光是解释游戏划方案可能就得需要很多文字。我假定作为读者的你,至少从事过一到两年的 Web Game 开发,并且对游戏服务器端的架构有一定了解,清楚消息处理层 MsgHandler、业务层 BizService、IO 层以及多线程的基本内容,并且了解 UML 。文章中不会出现太多的具体代 阅读全文
posted @ 2013-04-07 23:03 Net.AfritXia 阅读(1655) 评论(1) 推荐(3) 编辑
摘要: 本文重点讨论 PHP 三层结构代码中的中间层,由于需求不断增加造成中间层代码越来越庞大,最终导致代码难以维护。在论述过程中提出对中间层建立扩展机制,并引出 AOP——面向切面的编程概念。本文提供 PHP 源码! 阅读全文
posted @ 2010-07-03 13:39 Net.AfritXia 阅读(8347) 评论(5) 推荐(4) 编辑
摘要: 本文以一个简单的留言板功能,讲述了由PHP实现的简单三层结构代码。以支持多人开发为由,切割代码设计,简单说明了工程因素对代码的影响…… 阅读全文
posted @ 2010-06-27 10:39 Net.AfritXia 阅读(7615) 评论(2) 推荐(3) 编辑
摘要: 在对PHP代码进行断点调试时,曾经使用过XDebug。最近才知道XDebug还可以对PHP Web代码进行性能分析。本文介绍了XDebug配置方法,以及Webgrind分析工具的安装。 阅读全文
posted @ 2010-06-26 22:50 Net.AfritXia 阅读(2384) 评论(2) 推荐(0) 编辑
摘要: 在VirtualBox中安装Ubuntu 8.04 Server,配置本机网络 阅读全文
posted @ 2010-04-04 15:07 Net.AfritXia 阅读(1971) 评论(0) 推荐(1) 编辑