当前位置:首页 > 其它 >
《游戏化实战》电子书封面

游戏化实战

  • 发布时间:2019年03月22日 09:29:49
  • 作者:Yu-kai Chou
  • 大小:47.8 MB
  • 类别:游戏化初学者电子书
  • 格式:PDF
  • 版本:高质量版
  • 评分:8.2

    游戏化实战 PDF 高质量版

      给大家带来的一篇关于游戏化初学者相关的电子书资源,介绍了关于游戏化实战方面的内容,本书是由华中科技大学出版社出版,格式为PDF,资源大小47.8 MB,Yu-kai Chou编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:8.2分

      Tags:游戏化实战 

      内容介绍

      游戏化实战(人类行为学×游戏机制,打造产品吸引力)

      游戏化实战(人类行为学×游戏机制,打造产品吸引力)电子书

      读者评价

      很系统,可以用在营销和运营上,被低估了这本书。 核心驱动力1:史诗意义与使命感 核心驱动力2:进步与成就感 核心驱动力3:创意授权与反馈 核心驱动力4:所有权与拥有感 核心驱动力5:社交影响与关联性 核心驱动力6:稀缺性与渴望 核心驱动力7:未知性与好奇心 核心驱动力8:亏损与逃避心

      神书气质扑面而来 确实不失为一本有系统性 有参考价值的书

      无论从个人成长角度,还是时间分配角度来说,玩游戏都不是划算的事。但很多人却愿意为了玩游戏不吃饭不睡觉。既然人那么爱玩游戏,那是不是可以巧妙利用到其它领域呢?有本书叫《游戏化实战》,作者就讲了很多利用人类游戏天性的案例,既有趣,又有用。 首先,就是利用人们爱玩游戏的好奇心。 比如说,我们都遇到过这种情况:地下通道里,楼梯空荡荡没人走,但是电梯那一侧却挤得水泄不通,怎么破?在澳大利亚悉尼,就有人利用了大家的好奇心,巧妙地解决了这个问题。首先,他把楼梯做成了钢琴键的样子,然后,还给地面装了声音传感器。你踩上去的时候,真的像弹钢琴一样,会响起不同的音符。这样,每个人都想当一次作曲家,体验一下用脚踩音符的感觉,于是走楼梯就变成了一件特别有趣的事,坐电梯的人就少了。 再举个例子。汽车限速是件让人非常头疼的事,很多司机都会抱着侥幸心理,逞一时之快。而美国有个游戏设计师,成功把一个城市的平均车速降低了22%。他是怎么做到的呢?很简单,把测速变成一场彩票游戏。司机开车的时候,路边能看到一个显示速度的LED屏,如果超速,显示屏上会有大拇指朝下,如果速度正常,大拇指朝上。更妙的是,如果有人超速了,他们交的罚款会随机奖励给那些不超速的司机。所有司机都好奇心大开:不超速也许我也能中奖呢。你看,人家能想出这个妙招,我也是给跪了。 还有一个好玩的例子。韩国有家超市,每天中午12点到1点销售量特别低。老板想了个办法,在门口放了个雕塑。这个雕塑平时看上去就是一块凹凸不平的石板,但是一到中午12点,阳光直射到板面上,凸起的部分就会形成阴影,组成一个完整的二维码。行人路过的时候发现,咦,雕塑上怎么多了个二维码呢?拿出手机一扫,发现是一张这个店的购物优惠券,还只在中午12点到1点之间有效。大多数人这个时候都会哈哈一乐,进去买点东西再走。 除了利用好奇心,你还可以利用客户玩游戏过程中的成就感。 比如,通用磨坊推出了一款蛋糕混合粉,只要加上水和糖,放到烤箱里,就可以做出松软的蛋糕,操作非常简单,可销量一点也不好。后来,通用磨坊听了商业心理学家的建议,去掉了蛋糕粉里的一种成分——鸡蛋,也就是说,烤蛋糕的过程中,妈妈们需要自己加鸡蛋进去。神奇的是,这样一做,蛋糕粉的销量果然提高了,因为而加鸡蛋这个步骤,让妈妈们真正感觉到是在给家人做蛋糕,而不是加工一件成品,成就感有了,自然就有更多人愿意尝试。 再举个例子。巴西有一家餐厅,在妇女节那天制定了一个促销计划,所有进店消费的女顾客,只要对着店里的镜子,说句“我很漂亮”,当天的午餐就可以免单。虽然很多人不好意思说,但是为了免单,也会试一试。结果,一旦说出口,她们就会特别满足,特别有成就感,对这家店的好感顿时提升了不少。离开餐厅后,她们还会很开心地把这家店推荐给自己的姐妹们,这家店的口碑就是这么打开的。 你看,游戏其实是对人性的最好洞察,而好的商业模式,都是从满足人性开始的。 

      内容介绍

      游戏能改变世界?毋庸置疑。但如何实际操作,一步步设计出有吸引力的游戏化产品?我们需要更切实可行的实战策略。

      全球游戏化专家基于大量深度的人类行为学与游戏研究,推出其独创的八角分析法,帮你用简单的模型分析出产品需要的核心驱动力,逐步设计出具有吸引力的游戏化产品。

      书中提供了大量的行业案例、深度的游戏分析、详尽的实施步骤,帮你分析出产品需要的核心驱动力,配以游戏化技巧,让产品设计过程不再迷茫。

      整本书本身也是一件游戏化产品,配以大量增值服务,让整个阅读过程都充满乐趣。

      内容节选

      游戏之所以上瘾是因为强大的自驱力,使其丧失了自控力! 游戏化的目的不是为了让事物变得简单,而是让事情变得有趣,大家 自发参与 行动。 显然游戏化的核心就是动因,要 给用 户一个行动的理 由,当动因 不存在时,无论任务多么简单,也没有人去做。

      1、 意义、使命 :给产品、目标赋予一个具有使命感的意义。且这个意义是普遍认同的。 案例:小米的为发烧而生;谷歌的不作恶;苹果的改变世界。

      2、 进步、成就 :目标达成、挑战成功后,获得的成就感、自豪感、英雄时刻。 案例:任务系统;排行榜系统;成就、勋章系统;积分系统;

      3、 参与、反馈 :让用户参与其中,共同创造结果。人们对自己参与、自己制作的会付出额外的情感。 案例:小米100位梦想投资人;阿米巴组织;

      4、 所有权、拥有感 :禀赋效应,人会对己拥有的事物,赋予更高的价值,高于其真实价值。 案例:收藏系统;先发效应;家里不舍得扔又不穿的衣服;

      5、 社交 :大多数人,其实都在为别人眼中的自己而活。人与人的网络效应,连接价值。社会认同、从众心理。 案例:分享系统;组队系统;工会系统;

      6、 稀缺、渴望 :物以稀为贵,稀缺资源意味着更高的价值。当然前提是这个东西具有价值,人们渴望得到。 案例:饥饿营销;限量销售;

      7、 未知性、好奇心 :对未知事物,会激发围观、猎奇、好奇的心理,产生探索与求知欲。 案例:彩票;随机系统;

      8、 亏损、逃避 :损失厌恶心理,人们害怕失去,不希望坏事发声。而且会普遍陷入沉没成本监狱陷阱。 案例:代金券、打折券;倒计时系统;渐进机会丧失; 1、 外在动因 :依靠目标、目的或奖励,刺激引诱用户。提高产品早期使用率,调动初始兴趣和欲望。 2、 内在动因 :让用户对产品(使命)产生内在认同。提高产品生命周期,让用户长期参与。 3、 新用户友好 :对新用户早期阶段给予更多的外在激励,更易达成的目标,物质、精神激励。 4、 进度条 :各种具体数据的实时反馈,告知用户当前状态与进度。 5、 里程碑解锁 :不同阶段,不同难度系数的目标。 6、 社交货币 :提供给可供用户分享、炫耀的事物。 7、 易用性 :绝不能让用户超过3秒,还不知道下一步干什么。 你玩游戏不是因为你必须玩,而是因为你愿意!

      目录

      • 第1章  当虚拟融入现实
      • 第2章  游戏化的谬论
      • 第3章  八角行为分析法框架
      • 第4章  正确对待游戏化
      • 第5章  核心驱动力1:史诗意义与使命感
      • 第6章  核心驱动力2:进步与成就感
      • 第7章  核心驱动力3:创意授权与反馈
      • 第8章  核心驱动力4:所有权与拥有感
      • 第9章  核心驱动力5:社交影响与关联性
      • 第10章  核心驱动力6:稀缺性与渴望
      • 第11章  核心驱动力7:未知性与好奇心
      • 第12章  核心驱动力8:亏损与逃避心
      • 第13章  左脑vs右脑核心驱动力
      • 第14章  白帽和黑帽游戏化的奥秘
      • 第15章  八角行为分析法与其他游戏化、行为框架研究
      • 第16章  八角行为分析法第1级实践
      • 第17章  从零开始使用八角行为分析法做设计
      • 第18章  在路上

      读书笔记

      python怎么制作游戏脚本

      本文将以4399小游戏《宠物连连看经典版2》作为测试案例,通过识别小图标,模拟鼠标点击,快速完成配对完成游戏脚本。

      python怎么制作游戏脚本浏览器打开游戏窗口(单个一个窗口),游戏主要界面截图需要两个坐标(左上角坐标和右下角坐标)来确定,原点一般是屏幕左上角,不确定坐标点值的同学,可以全屏截图,用编辑图片软件查看坐标值。(推荐学习:Python视频教程)

      获取窗口句柄,这里就是浏览器标题栏的标题了(右键-查看源代码-title,加上软件名)比如:“宠物连连看经典2,宠物连连看经典版2小游戏,4399小游戏 www.4399.com - Google Chrome“。获取窗口句柄就可以开始了。

      总体开发思路:截取游戏主图 ---> 分割成小图 ---> 对比每个小图,对比图片相识度,编号存入矩阵 ---> 对矩阵进行可连计算 ---> 模拟点击。

      获取窗口句柄,把窗口置顶

      python可以使用win32gui模块调用Windows API实现对窗口的操作,使用FindWindow()方法可以获取窗口的句柄(handle),需要传入两个参数,第一个为父窗口句柄(这里填0即可),第二个参数是窗口的名称(标签title - Google Chrome)。获取句柄之后然后通过SetForegroundWindows() 设置窗口在前面,这里传入游戏窗口的举报即可,代码如下:

      import win32gui
      
      class GameAssist:
      
          def __init__(self, wdname):
              """初始化"""
      
              # 取得窗口句柄
              self.hwnd = win32gui.FindWindow(0, wdname)
              if not self.hwnd:
                  print("窗口找不到,请确认窗口句柄名称:【%s】" % wdname )
                  exit()
              # 窗口显示最前面
              win32gui.SetForegroundWindow(self.hwnd)
      
      
      if __name__ == "__main__":
          # wdname 为连连看窗口的名称,必须写完整
          wdname = u'宠物连连看经典版2,宠物连连看经典版2小游戏,4399小游戏 www.4399.com - Google Chrome'
      
          demo = GameAssist(wdname)
          demo.start()

      截取游戏界面,分割图标,图片比较

      这里需要花费一些时间来校验程序,如果截取的图片不好,则会影响后续操作,所以比较主要的是确认游戏左上角和右下角这两个坐标值,以及每个小图标的宽高。如下图所示,先截取整个游戏界面图,然后分割小图标,接着对每个图标进行比较,然后以编号代替图标存入矩阵(这里的编号矩阵和游戏图不一致,原理一样)。

      python怎么制作游戏脚本根据初始化设定的左上角和右下角两个坐标,使用ImageGrab.grab()方法进行截图,传入一个元组即可,然后对这个大图进行分割,切割成一个个小图标存入到images_list数组中。 

      def screenshot(self):
              """屏幕截图"""
      
              # 1、用grab函数截图,参数为左上角和右下角左标
              # image = ImageGrab.grab((417, 257, 885, 569))
              image = ImageGrab.grab(self.scree_left_and_right_point)
      
              # 2、分切小图
              # exit()
              image_list = {}
              offset = self.im_width  # 39
      
              # 8行12列
              for x in range(8):
                  image_list[x] = {}
                  for y in range(12):
                      # print("show",x, y)
                      # exit()
                      top = x * offset
                      left = y * offset
                      right = (y + 1) * offset
                      bottom = (x + 1) * offset
      
                      # 用crop函数切割成小图标,参数为图标的左上角和右下角左边
                      im = image.crop((left, top, right, bottom))
                      # 将切割好的图标存入对应的位置
                      image_list[x][y] = im
      
              return image_list

      通过上面代码切割的小图标,转成数字矩阵,如果图标已经存入image_type_list则返回这个索引,如果不存在,则在追加进去,然后当前长度就是这个新加入图标的编号,代码如下所示:

      def image2num(self, image_list):
              """将图标矩阵转换成数字矩阵"""
      
              # 1、创建全零矩阵和空的一维数组
              arr = np.zeros((10, 14), dtype=np.int32)    # 以数字代替图片
              image_type_list = []
      
              # 2、识别出不同的图片,将图片矩阵转换成数字矩阵
              for i in range(len(image_list)):
                  for j in range(len(image_list[0])):
                      im = image_list[i][j]
                      
                      # 验证当前图标是否已存入
                      index = self.getIndex(im, image_type_list)
      
                      # 不存在image_type_list
                      if index < 0:
                          image_type_list.append(im)
                          arr[i + 1][j + 1] = len(image_type_list)
                      else:
                          arr[i + 1][j + 1] = index + 1
      
              print("图标数:", len(image_type_list))
      
              self.im2num_arr = arr
              return arr

      上面的getIndex就是对比图片,判断图标是否出现过(是否已存在image_type_list中,没出现则追加进去),这里使用汉明距离判断两个图片的相识度,设置阀值10,当小于阀值则认为是同一个图片,具体代码如下:  

      # 检查数组中是否有图标,如果有则返回索引下表
          def getIndex(self,im, im_list):
              for i in range(len(im_list)):
                  if self.isMatch(im, im_list[i]):
                      return i
      
              return -1
      
          # 汉明距离判断两个图标是否一样
          def isMatch(self, im1, im2):
      
              # 缩小图标,转成灰度
              image1 = im1.resize((20, 20), Image.ANTIALIAS).convert("L")
              image2 = im2.resize((20, 20), Image.ANTIALIAS).convert("L")
      
              # 将灰度图标转成01串,即系二进制数据
              pixels1 = list(image1.getdata())
              pixels2 = list(image2.getdata())
      
              avg1 = sum(pixels1) / len(pixels1)
              avg2 = sum(pixels2) / len(pixels2)
              hash1 = "".join(map(lambda p: "1" if p > avg1 else "0", pixels1))
              hash2 = "".join(map(lambda p: "1" if p > avg2 else "0", pixels2))
      
              # 统计两个01串不同数字的个数
              match = sum(map(operator.ne, hash1, hash2))
      
              # 阀值设为10
              return match < 10

      程序核心-图标连接算法(路径寻找)

      这里仅对算法代码进行简单分析,如果对程序不好理解,可以留言,后续可以图文分析。

      通过上面的开发流程,基本获取如下这样的矩阵,只要比较两个编号相同的值进行可连路径寻找,如果找到即进行模拟点击操作。这里简单介绍下游戏规则:8行乘12列游戏图标区域,外围的0其实表示寻找路径的时候可以通过,例如坐标(1, 1)可以与(1,10)进行连接、(7, 1)和(7,2)进行连接。

      arr = [
          [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0],
          [ 0,  1,  2,  3,  4,  5,  4,  6,  7,  2,  1,  1,  8,  0],
          [ 0,  9,  3,  3, 10,  4,  7, 11,  7,  2,  3,  1,  6,  0],
          [ 0,  6,  7,  4, 11,  5,  8,  1,  6,  5,  4,  2,  8,  0],
          [ 0,  6,  2,  9,  6,  8,  9,  7, 12, 11,  3, 11, 11,  0],
          [ 0,  5,  9,  8,  9,  2,  6, 11, 11,  3,  9,  2, 12,  0],
          [ 0, 12,  5, 12,  5, 10,  5,  6,  5,  7, 12,  4,  3,  0],
          [ 0,  1,  8, 10, 12,  9, 10,  4,  3,  7,  2,  1, 10,  0],
          [ 0,  1,  4, 10,  8, 12, 10, 10,  9, 12,  8,  7, 11,  0],
          [ 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0]
      ]

      法的思路:路径的寻找首先是寻找一个坐标的横向竖向可以直接相连的坐标集合,比如坐标p1(1,1)这样的集合有[ (0,1), (1,0) ],另外一个坐标p2(1,10)的可连集合为[ (0,10) ],然后再对p1和p2的可连坐标集合进行比较,如果集合中坐标也有可连,则表示p1和p2可连,很明显,(0,1)和(0,10)为同一行且可连,这样就表示p1和p2两点存在可连路径了,代码如下所示:

      简单分析下代码实现过程:在isReachable()传入两个需要比较的坐标值,然后分别获取两个点横竖向(isRowConnect()、isColConnect())可以连接的坐标集合,最后再对集合进行遍历比较是否存在可连的,如果存在则表示传入的两个坐标是可以连接的。

      # 是否为同行或同列且可连
          def isReachable(self, x1, y1, x2, y2):
              # 1、先判断值是否相同
              if self.im2num_arr[x1][y1] != self.im2num_arr[x2][y2]:
                  return False
      
              # 1、分别获取两个坐标同行或同列可连的坐标数组
              list1 = self.getDirectConnectList(x1, y1)
              list2 = self.getDirectConnectList(x2, y2)
              # print(x1, y1, list1)
              # print(x2, y2, list2)
      
              # exit()
      
              # 2、比较坐标数组中是否可连
              for x1, y1 in list1:
                  for x2, y2 in list2:
                      if self.isDirectConnect(x1, y1, x2, y2):
                          return True
              return False
      
          # 获取同行或同列可连的坐标数组
          def getDirectConnectList(self, x, y):
      
              plist = []
              for px in range(0, 10):
                  for py in range(0, 14):
                      # 获取同行或同列且为0的坐标
                      if self.im2num_arr[px][py] == 0 and self.isDirectConnect(x, y, px, py):
                          plist.append([px, py])
      
              return plist
      
          # 是否为同行或同列且可连
          def isDirectConnect(self, x1, y1, x2, y2):
              # 1、位置完全相同
              if x1 == x2 and y1 == y2:
                  return False
      
              # 2、行列都不同的
              if x1 != x2 and y1 != y2:
                  return False
      
              # 3、同行
              if x1 == x2 and self.isRowConnect(x1, y1, y2):
                  return True
      
              # 4、同列
              if y1 == y2 and self.isColConnect(y1, x1, x2):
                  return True
      
              return False
      
          # 判断同行是否可连
          def isRowConnect(self, x, y1, y2):
              minY = min(y1, y2)
              maxY = max(y1, y2)
      
              # 相邻直接可连
              if maxY - minY == 1:
                  return True
      
              # 判断两个坐标之间是否全为0
              for y0 in range(minY + 1, maxY):
                  if self.im2num_arr[x][y0] != 0:
                      return False
              return True
      
          # 判断同列是否可连
          def isColConnect(self, y, x1, x2):
              minX = min(x1, x2)
              maxX = max(x1, x2)
      
              # 相邻直接可连
              if maxX - minX == 1:
                  return True
      
              # 判断两个坐标之间是否全为0
              for x0 in range(minX + 1, maxX):
                  if self.im2num_arr[x0][y] != 0:
                      return False
              return True

      学习这样一个游戏辅助脚本,对于个人培养编程兴趣也是有很多帮助的,在工作之余不失为一个好的消遣方式,以后会多向这些方向研究学习。

      更多Python相关技术文章,请访问Python教程栏目进行学习!

      以上就是python怎么制作游戏脚本的详细内容,更多请关注码农之家其它相关文章!

      以上就是本次介绍的游戏化初学者电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:深入解析Android虚拟机

      下一篇:AI人工智能的本质与未来

      展开 +

      收起 -

      下载地址:百度网盘下载
      读者心得
      124小时16分钟前回答

      JS实现的走迷宫小游戏完整实例

      本文实例讲述了JS实现的走迷宫小游戏。分享给大家供大家参考,具体如下: 先来看看运行效果截图: 完整实例代码如下: !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"html xmlns="http://www.w3.org/1999/xhtml"headtitleJS打造的走迷宫游戏/title/headbodySCRIPTfunction ShowMenu(bMenu) {document.all.idFinder.style.display = (bMenu) ? "none" : "block"document.all.idMenu.style.display = (bMenu) ? "block" : "none"idML.className = (bMenu) ? "cOn" : "cOff"idRL.className = (bMenu) ? "cOff" : "cOn"return false}/SCRIPTSTYLE!--A.cOn {text-decoration:none;font-weight:bolder}#article {font: 12pt Verdana, geneva, arial, sans-serif; background: white; color: black; padding: 10pt 15pt 0 ……

      100小时21分钟前回答

      Java实现两人五子棋游戏(五) 判断是否有一方胜出

      之前的两篇文章:Java实现两人五子棋游戏(二) 画出棋盘;Java实现两人五子棋游戏(三) 画出棋子;Java实现两人五子棋游戏(四) 落子动作的实现,可以点击查看。 前面我们已经画好了棋盘、棋子并且可以自由的落子了,那么接下来要实现的功能是判断是否有五连珠(暂时不考虑行棋方)。 我们采用遍历棋盘已经落子的位置,查看每个落子点,在它的上下,左右,左下右上,左上右下四个方向的任一方向上是否有五个连续的棋子。 第一步 ,对棋子类进行改造,之前我们的棋子类只有颜色信息和落子状态,现在要新增一个int型的数据,用于记录遍历过程中当前有几个珠子已知连续。 Chessman.java package xchen……

      网友NO.40237
      网友NO.40237

      产品游戏化 产品游戏化是通过游戏设计,让线上或线下的产品更有吸引力。大多数企业创造的产品都难以让客户喜爱,持续使用并热情地分享给朋友,很大一个原因是这些产品的功能性目的太强,忽略了用户的动机和核心驱动力。 在过去,消费者没有足够的信息,习惯了延退满足,且那时创建公司的壁垒很高,市场竞争并不激烈,公司且创建,就不用担心产品卖不出去。然而,互联网的即时满足、游戏的沉浸体验与实时反馈、社交网..

      网友NO.21048
      网友NO.21048

      伟大蓝图 核心驱动力4:所有权与拥有感是吸引我们做很多不合理事情的强大动力,但也能给我们带来大量的情感舒适和幸福感。通常它与其他核心驱动力密切合作,是设计焦点。与核心驱动力6:稀缺性与渴望搭配时,人们会一直受到胡萝ト的吸引:与核心驱动力8:亏损与逃避心搭配时,人们会尽己所能保卫他们已经拥有的东西;与核心驱动力7:未知性与好奇心搭配时,人们会痴迷于能否得到珍贵财富。当然,成功的财富积累也会导致核心驱动..

      网友NO.39266
      网友NO.39266

      游戏化的八大核心驱动力: 一、史诗意义与使命感 eg: 如用户自动维护维基百科,觉得实在保护全人类的知识; iphone广告《1984》向观众暗示,被IBM控制的电脑行业将被苹果解放; Waze导航,将街道比作大蟒蛇,许多卡车卡在里面,可爱的waze骑士身穿盔甲、手拿利剑,协力与蛇怪作战。所以使用waze开车不仅仅是为了到达目的地,更是在帮助waze骑士与蛇怪作战; 中国古代孝道:卖身葬父、割肝喂母。

      码农之家

      伊彗云 提供上传

      资源
      24
      粉丝
      36
      喜欢
      191
      评论
      14

      Copyright 2018-2021 www.xz577.com 码农之家

      版权投诉 / 书籍推广:520161757@qq.com