游戏设计与实现
文章平均质量分 79
go-sunny
这个作者很懒,什么都没留下…
展开
-
游戏强化系统的实现
1 强化概述 在游戏中,强化模块是我们经常需要实现的模块,一般来说,强化可以提供装备的等级,属性,或者品质。强化也需要一定的条件,比如银币等。2 强化规则 初始装备的等级为1级 每强化一次,装备的等级提高一次 装备被强化的最高等级为10级 每次强化需要银币,且随着等级的不断升高,所需要的银币数量就增加原创 2013-07-16 13:07:26 · 5058 阅读 · 0 评论 -
游戏中异常处理
在我们的游戏中,经常需要处理各种错误和异常。这里我们需要搞清楚,什么是异常,什么是错误。 在PHP语言中,错误是PHP语言停止执行,当前状态不会被保存。 而异常是一种人为指定的错误,并且我们需要捕获这种错误后,返回给用户。 例如在我们游戏中,错误通常指的是语法错误,传过来的数据不合法等,还有一种错误是游戏设计上的一种人为的错误,例如“您的金块不足”,原创 2013-07-09 15:26:04 · 1492 阅读 · 0 评论 -
异常处理的实现
异常的定义异常用于处理用于指定的错误发生时改变脚本的正常流程。理解这句话需要知道两点:什么是程序指定的错误,什么是改变脚本的正常流程。指定的错误不同于语法错误,或者程序逻辑错误,它是一个特殊约束性事件。如在游戏中用户购买东西时金币不足,就是异常。这个事件虽然不是程序的语法错误,但我们需要特殊处理。使用其他程序模块处理这个异常的动作就叫做 改变脚本的正常流程。处理异常实现异常处理原创 2013-10-09 22:47:29 · 1231 阅读 · 0 评论 -
不确定因素对游戏的影响
可能大家也主要到,随着双11的到来,各大电商都忙着展示自己的优惠政策,各种福利红包满天飞,很多商家都使用了游戏的方式来发放福利,这些游戏的规则或多或少使用到了概率事件,考验了玩家的运气和耐心。(电商采用游戏化的手段,说明了游戏不仅仅只是电子玩物,它真的可以渗透于我们生活的各种环境中)。坦白来说,我个人不大喜欢游戏中这样的“不确定设计”,在我喜欢的游戏中,我比较钟爱操作性强的类型,比如实况足球。原创 2013-11-05 20:57:05 · 1715 阅读 · 0 评论 -
设计模式系列:策略模式在战斗结算中的运用
先给一个设计原则:多用组合,少用继承。这就话就是策略模式的精髓了。下面结合我们项目中的实际问题,详细说明策略模式的使用。1.1 战斗结算在游戏战斗模块中,战斗结果结算是一个很复杂的问题,在我们的项目中,对于不同的战斗类型有不同的结算方式,例如:1)玩家之间的战斗过程中,玩家的装备有几率的摔坏,如果战斗胜利,可以抢夺对方的道具,银币。如果胜利方触发了“战斗结算技能”,还有更多额外的奖励。原创 2013-10-19 15:12:23 · 1967 阅读 · 0 评论 -
更新线上项目中的CSS,JS文件的实现
更新已经上线的项目中的某些CSS,JS文件的时候,我们需要考虑到缓存问题导致的更新的文件无法立即生效。特别是某些项目使用到了CDN缓存项目,这样更新项目的文件的时候,必须保证原来CDN缓存的文件失效。如何实现这样的功能,保证每次类似于CSS,JS文件更新的时候立即生效?思路是这样的,我们修改了项目中某个CSS文件的内容,则同时修改CSS的文件名,并且,页面引用这个CSS文件的时候,改变引用原创 2013-08-09 16:53:32 · 2639 阅读 · 0 评论 -
充值系列——充值系统业务逻辑层实现(三)
x原创 2013-12-12 13:51:09 · 5875 阅读 · 2 评论 -
充值系列——充值系统的架构(二)
上一篇文章主要介绍了充值系统的基本概要说明和数据库设计。这篇文章主要讨论充值的基本流程和系统架构。简单来说,充值的基本流程就是:玩家选择一个支付平台,选择这个平台下面出售的某个商品,付款成功后玩家会得到所购买的商品。数据交互图玩家客户端指的是浏览器或者SDK。上面数据交互图中需要有几点注意:(1)玩家客户端,游戏服务器,支付平台这三者之间扮演的角色需要注意的是,游戏原创 2013-11-25 18:26:20 · 10515 阅读 · 0 评论 -
充值系列——充值系统安全问题(四)
这是充值系列的最后一篇,将讨论充值安全的问题。正如这个系列的其他文章提到的,充值系统的流程如下:注意: 4,5执行顺序不确定,步骤4是支付平台自动向服务器请求,步骤5是玩家点击“返回商家网站”时支付平台请求服务器,如果玩家不点击,这可能不会触发,所以这是一个不可靠的请求。支付的安全问题主要发生在步骤3和4中。下面是详细说明:在步骤3中,客户端需要把订单信息提交给支付平台,比如玩原创 2013-12-16 16:53:43 · 4262 阅读 · 0 评论 -
用户登陆优化网络异常的处理
用户登陆的详细过程见此文:http://blog.csdn.net/looksunli/article/details/9799395开发过程中,发现这样的一个问题:重现做法:用户双开两个页面,一个用于登陆游戏,一个用于注册游戏。首先用户注册,注册成功后,再在另一个页面登陆。结果是登陆不成功。理解这个做法,需要明白的如下几点:1)登陆使用ajax请求。 // 登陆按钮原创 2013-09-29 17:09:53 · 1399 阅读 · 0 评论 -
加密算法中的加盐值
在应用中,出于到安全的考虑和数据的保密,需要使用到加密算法,有时候为了让加密的的结果更加扑朔迷离神鬼莫测一些,常常会给被加密的数据加点“盐”。说白了,盐就是一串数字,完全是自己定义的,不多说,上实例。 /** * 获取当前用户盐 * * @param string $extraKey 额外密钥 * @return string */原创 2013-09-12 18:15:44 · 9410 阅读 · 2 评论 -
formHash的实现
问题重现在我们的项目中,有一个商店购买的页面,流程是这样的: 选择道具 -----> 点击购买 -------> 获得道具 ------> 扣除银币如果玩家在一秒钟并发的请求这个URL, 如果他有100个银币,只可以买10个道具,由于并发的问题,他还可以买100个道具,到时候,他的银币的数量可能扣除为负数。这样,对游戏来说,是非常严重的问题。并发的原理是这样的:原创 2013-07-04 16:22:03 · 2366 阅读 · 0 评论 -
游戏中排行榜的设计
在游戏的设计中,我们需要设计一个贸易利润和综合实力排行榜。在排行榜中,我们有这样的需求:A: 排行榜4天更新一次,也就是,需要统计玩家4天内贸易利润和综合实力B: 上榜的玩家有奖励发送。C: 综合实力是统计全服玩家,如果玩家分库存储,需要遍历所有的玩家库D:4天后,删除旧数据,更新原来的数据。E:排行榜是全服共享的F:上榜的玩家的信息是动态的,如,玩原创 2013-07-04 16:25:25 · 4912 阅读 · 0 评论 -
游戏中用户升级的设计
在游戏中,有多个模块都会涉及到升级的问题,例如,玩家升级,装备升级,英雄升级等升级问题。用户升级 数据库设计 需要一个经验值静态表 id : 等级的idexp_line : 本级达标经验值exp_offset : 区间偏移量,即离下一级还需要多少经验值friend_max : 当前等级下最大拥有多少个朋友he原创 2013-07-04 16:20:17 · 1886 阅读 · 0 评论 -
装饰模式:英雄装配装备
如题原创 2013-07-19 00:24:23 · 1526 阅读 · 0 评论 -
同步数据库
游戏,有的中文,英文两个语言版本,所以,游戏有2哥静态资源配置库,分别是中文配置库和英文配置库。有这样的一个需求,如果数值策划修改中文静态资源配置库,例如,他修改了某一条数据,那么,此时应该把修改的内容同步多英文静态资源配置库中。同步的时候,需要注意这样的问题:如果修改中文数据库里面的某一条记录,同步到英文静态库的时候,使用update函数,需要注意的时候,类似于name, d原创 2013-07-23 19:38:44 · 1104 阅读 · 0 评论 -
游戏成就系统的实现
在游戏系统中,我们需要给玩家设计出一个成就系统,给玩家设定目标,同时满足玩家的荣誉感。获得成就需要一定的条件,也就是,玩家需要完成某种指定的动作后,才可以获得需要的成就。原创 2013-08-01 21:52:19 · 7769 阅读 · 1 评论 -
卡牌游戏战斗系统的设计和实现(三)
上一篇文章,我主要是从全局的一个角度,架构了战斗系统,这里我将详细分析具体的实现细节。这场战斗中,我们需要关注的点:战斗前期准备,单次战斗结算, 技能释放,战斗结算。战斗前期在航海类游戏中,参战的首要条件是,你必须是出海状态,然后检测你的参战资格,例如你的生命值不能低于25HP,然后初始化玩家对象,玩家的舰队,玩家的船长等。具体的流程图如下:这里需要注意的的有如下几点:原创 2013-08-17 19:11:52 · 3955 阅读 · 5 评论 -
卡牌游戏战斗系统的设计和实现(二)
在一篇文章中,我更多的是从游戏理论的角度,讨论了战斗的系统的设计。这篇文章中,我将从程序的角度,以一款航海类游戏为例,实现战斗系统。在航海类游戏中,战斗角色是出海的船只,一次出海的船只的数量有限定,船只可以装配火炮,护甲,船帆等装备,船只还可以通过装配船长来获取技能。技能的发动是有概率的。战斗规则是,在20个回合内,如果把对方所有的船只击沉,即赢得战斗胜利,否则未平局。战斗流程大致是这样:原创 2013-08-17 16:46:56 · 4531 阅读 · 0 评论 -
使用cookie做用户登录的过程详解
不管是游戏,还是网站,最基本的功能,就是用户注册登录。 或许,我们做过多次用户的登陆注册的功能,但我们是否想过,为什么要实现用户的登录。用户怎样做才算登录成功。对用户而言,登录后,就有了他的一片“天地”,例如,登录CSDN后,就可以管理自己的博客,否则,你没有权利管理。关于是否登录成功的问题,在用户看来,如果用户名和密码输入成功,就算登入成功,否则,登录不成功。但这一切,在程序中是怎样原创 2013-08-07 20:05:42 · 44155 阅读 · 5 评论