前面提过,这个游戏的核心玩法基于我做的第一个Unity游戏,名字就叫《Invert》,现在在应用宝上面还能搜到。不过那个游戏也不是我原创的,它的玩法设计来自github上的一个开源项目(https://github.com/gorried/inverter),那时候我正在上培训班,它本来是我的一个课下练习。当时主要是为了熟悉游戏从制作到发布的流程,所以几乎完全模仿了原项目的设计,连方块的配色都没改(因为我觉得那配色挺好看的,还特意用Photoshop取了人家的色值)。

  但是现在回过头来看,这种设计其实是有待商榷的。前两天看了IndieACE上的一篇文章(http://www.indieace.com/topic/137),感触颇深。诚然,现在扁平风大行其道,极简风格的游戏受众也越来越多,但这只能说明用户越来越适应这种设计,并不能证明它本来就应该是这样的。我们停下来想一想,排除人造物品,自然界中哪种东西是由纯色的小方块整齐排列组成的?反正我是想不出来。我甚至可以作出一个大胆的假设:如今我们身边所有的东西都是四四方方的,大抵是由于人类早期生产活动形成的思维惯性。

  我们文明刚刚迈入农耕时代的时候,使用“刀耕火种”的作业方式种植作物。而由于人体的生理基础,我们倾向于在负重的情况下走直线而非曲线,这就形成了我们对直线最初的好感。到后来我们使用木材作为建筑材料,因为树干大部分都是直线形的,建成的房子自然也就四四方方的了,我们开始习惯使用直线和矩形。手工业逐渐发展,我们很容易就发现直线形的切口是工艺上最简单的,立方形的材料也是用起来最方便,所以你会发现埃及金字塔是用Cube拼成的。今天跟埃及法老建金字塔的时候并没有太大差别,我们住在立方形的房子里,因为盖房子的钢筋是直线形的;我们拿着矩形的手机,因为矩形的模具更容易制作和量产……甚至在计算机的世界里也是如此,了解一点图形的朋友应该都清楚,计算机里所有的图片都是矩形,所谓的圆形图片其实只是它的边角部分像素alpha值为0而已。

  我们再看这个游戏的玩法:

  玩家点击红色标注区域获得反馈。排除人造物品,自然界中哪样任务是需要我们用手指点击一个面去完成的?我能想到的就是键盘和开关,可惜它们都是人造的。其中原因跟我们前面的讨论一脉相承,工业革命初期,为了操作方便发明了开关,于是开关的设计一直延续至今。但是电子游戏不是工业生产,矩形和开关节省不了多少成本,没有现实寓意的设计却很可能降低玩家的游戏体验。于是我想做这样的改变:

  虽然还是点击操作,但是将交互区域从面转移到点上,由点的变化影响线的变化,由线的变化影响面的变化。其实从数学上看,这两种设计完全等价。但是点、线、面的联动更容易让人产生对现实世界的联想,同时也可以增加游戏表现上的层次感。我第一个联想到的就是农田和灌溉,虽然实际农业生产的情况肯定不是这样,但能映射到现实世界中的事物,总比单纯的思维游戏更容易让人接受。

  这就是游戏的核心玩法,说白了其实就是一个平面几何领域的数学游戏。我总是倾向于避免把游戏变成人与人之间对抗的工具,首要原因当然是这样的强联网游戏需要服务器端的大量工作,不太适合独立开发;更重要的原因是我一直怀念当初单机时代的游戏体验,我总觉得电子游戏应该是作者思维和情感的具现,玩家经由游戏的玩法、剧情、画面、音乐与作者形成思想共鸣,最终完成个性化的解读和理解。就像一首歌,一本书,一部合格的电影。

  核心玩法设计至此结束,接下来将确定游戏的整体表现风格……

《Invert》开发日志01:核心玩法设计的更多相关文章

  1. Rokid开发者社区skill之【历史上的今天】之简介+玩法+设计+实现+心得

    Skill简介: 来源:好奇心.探索欲.趣味性: 资源:百度百科: 方式:实时获取,自动更新: 技能玩法: 想要进入历史上的今天这个skill,则对若琪说:若琪,打开历史上的今天. 想要了解某天的历史 ...

  2. 《Invert》开发日志00:缘起

    按照所有程序员的惯例,编号从0开始.本系列日志将记录一款独立游戏 发起->构思->设计->实现->完善->测试(如果需要)->上线->后期维护(如果有人玩) ...

  3. 《Invert》开发日志03:一些想法

    本来标题想写“详细设计”,但是由于独立游戏开发有很强的探索性,最终项目一定是经过原型调整迭代而来的,所以在实际效果出来之前把设计做得太细并没有太大意义,现在只能先陈列目前的一些想法,不能定义“它是什么 ...

  4. 基于Spring框架怎么构建游戏玩法服务

    说明:本篇阐述的问题,是基于前面的游戏服务器架构设计的. 问题 众所周知,Spring最擅长的领域是无状态服务的构建,而游戏(尤其是玩法部分)是有状态的.以棋牌游戏为例,玩法服务里面大概涉及以下两类对 ...

  5. 《Invert》开发日志05:终止

    今天终于看了久闻大名的<独立游戏大电影>,然后我就做了一个坑爹的决定:终止“Invert”项目的开发.没错,在还没正式开工之前,我就决定停掉这个项目,而且是永久终止.做这个决定并不是因为觉 ...

  6. [课程设计]任务进度条&开发日志目录

    任务进度条&开发日志目录 周期 时间 任务 Sprint One   11.14     ●  Scrum团队分工及明确任务1.0    Sprint One   11.15   ●  Scr ...

  7. ExceptionLess新玩法 -- 审计日志

    审计日志 这算是一个挺酷的功能,把每个请求都记录下来,之前在abp中看到过这个功能,配合可视化的界面,简直是在装逼 看到了exceptionless后,心念一动,我也可以根据它做一个审计日志的功能.这 ...

  8. ExceptionLess新玩法 — 记日志

    ExceptionLess 之前也有介绍过这个框架,其实网上也有很多的资料,无论是部署还是一些详细的高级玩法都讲的很清楚也很棒,博主也学习了一些他们的博文,因为很多的东西比如本地部署别人已经写了,我再 ...

  9. 简单Elixir游戏服设计- 游戏玩法介绍

    抄以前的,做了点修改. 到目前为止,我们完成了玩家的数据和进程建模,现在介绍游戏玩法. 为什么我们还不做客户端接入.协议指定呢?为什么还没有网关和数据存储呢.在我接手的游戏, 这些通常已经定下来了,我 ...

随机推荐

  1. bootstrap深入理解之格子布局

    一.源码文件: _grid.scss:格子系统类文件 Mixins/_grid.scss:支持格子系统实现的mixin集合 Mixins/_grid-framework.scss:格子系统实现的核心m ...

  2. css布局模式

    css布局模型在网页中,元素有三种布局模型: 流动模型(Flow) 浮动模型 (Float) 层模型(Layer) 流动Flow模型(一): 流动(Flow)是默认的网页布局模式.也就是说网页在默认状 ...

  3. 一个python线程池的源码解析

    python为了方便人们编程高度封装了很多东西,比如进程里的进程池,大大方便了人们编程的效率,但是默认却没有线程池,本人前段时间整理出一个线程池,并进行了简单的解析和注释,本人水平有限,如有错误希望高 ...

  4. js 将json对象转成字符串

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. JavaScript 使用反斜杠对代码行进行折行

    JavaScript对代码行进行折行-使用反斜杠 您可以在文本字符串中使用反斜杠对代码行进行换行.下面的例子会正确地显示: <html> <head> <script t ...

  6. ae 打开地图文档

    if (openMxdDialog.ShowDialog() == DialogResult.OK) { pathMXD = openMxdDialog.FileName; if (pathMXD ! ...

  7. atitit.身份认证解决方案attilax总结

    atitit.身份认证解决方案attilax总结 1.1. 身份认证1 1.2.  basic认证1 1.2.1. 编程实现basic客户端2 1.3. digest认证机制3 1.4. SSL认证3 ...

  8. [javascript svg fill stroke stroke-width rx ry ellipse 属性讲解] svg fill stroke stroke-width ellipse 绘制椭圆属性讲解

    <!DOCTYPE html> <html lang='zh-cn'> <head> <title>Insert you title</title ...

  9. Android--ListView下拉刷新

    整理了下以前写的小项目,ListView的下拉刷新,虽然小但还是想纪念下..适合新手看,大神略过... 效果图:     代码:  实体类 package com.example.listviewre ...

  10. Ida双开定位android so文件

    Ida双开定位的意思是先用ida静态分析so文件,然后再开一个ida动态调试so文件.因为在动态调试中ida并不会对整个动态加载的so文件进行详细的分析,所以很多函数并无法识别出来.比如静态分析中有很 ...