游戏开发论坛

 找回密码
 立即注册
搜索
查看: 12923|回复: 5

游戏新手引导前后端代码设计2个要点

[复制链接]

8360

主题

9283

帖子

2万

积分

论坛元老

Rank: 8Rank: 8

积分
29945
发表于 2015-4-29 16:57:47 | 显示全部楼层 |阅读模式
1427080612594.png

GameRes游资网发布,文 / 01

  新手引导很多游戏都有。但是有的做的却不是那么如意。有时候引导卡死,却找不到问题。其实很多时候和设计的机制有关。本文假设引导是一种强制性的引导。一个引导由很多步骤(比如要玩家点哪里,点哪里,这些都是一个个步骤)组成。

  1、引导的发起

  后端关注的是引导,因此,后端只要各种事件触发一个引导,把这个引导ID发给客户端,就完成了引导的发起。

  客户端收到服务端发的引导ID,就会获取这个ID对应的步骤列表。然后播放这些步骤,等待玩家交互完成。

  2、引导的结束

  当前端执行完引导步骤时,把引导ID通过一个引导完成的协议发送给客户端,这样好吗?我觉得这种做法是不安全的。

  如果是通过客户端来通知服务端引导完成,会出现2种情况:

  以强化装备为例子

  情况1:先请求强化装备,再请求引导完成。

  可能在你请求强化装备的时候,这个请求发出去了。但是突然断线了,引导的请求没发出。这时候。下次上线,他还是会让你引导。但是,你可能已经没了强化材料。玩家卡死。

  情况2:先请求引导完成,再请求强化装备。

  请求引导完成发出,断线,请求强化没发出。然后玩家下次上线,不会再经历引导。

  或许聪明的你会想到可以把引导ID带在强化装备的包里面,一次请求完成。这样是可以解决上面两种情况。

  但是,这样,相当于,就把强化装备和引导耦合了。而且,以后可能有升级技能的引导,那么你升级技能的协议也要带上引导ID。这样设计无疑不是最好滴。

  因此,通过客户端来通知服务端引导完成是不靠谱的。应该由服务端自己的内部事件来触发。

  比如一个强化装备的引导,客户端最后肯定会请求服务端要强化装备。

  这时候服务器就可以判断当前是否有强化装备的引导。有的话判断是否满足完成条件。满足就完成引导。

0

主题

4

帖子

42

积分

新手上路

Rank: 1

积分
42
发表于 2015-4-30 14:33:17 | 显示全部楼层
领教了~ 以前做的所有引导都是客户端触发,服务端只记录一个引导步骤的id 。简单但是确实容易出问题

0

主题

3

帖子

397

积分

中级会员

Rank: 3Rank: 3

积分
397
发表于 2015-6-9 17:09:47 | 显示全部楼层
受教!手游客户端更是如此,手游网络环境实在太不稳定,各种不确定的因素都要考虑在内,往往一个引导就要写出非常多的可能性,费时费力还可能卡死

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2015-6-16 00:13:58 | 显示全部楼层
楼收徒弟不

0

主题

2

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2015-6-16 00:14:55 | 显示全部楼层
楼主 收徒弟不

3

主题

141

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
发表于 2015-6-17 13:22:57 | 显示全部楼层
只要有请求服务器资源的情况,一定要在服务端完成检验。这是常识,怎么能不遵守呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-25 17:22

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表