所见即所得
所见即所得是一种设计理念,是一种UI交互理念。
photoshop、剪映等是多媒体的所见即所得。
doc是文档的所见即所得。
游戏的表象
游戏的表象就是可以响应用户操作的视频。
当人在打游戏的时候,其实是在打视频。
而要想构建视频,就不得不进行比较复杂的现实世界模拟。
可视化技术为啥在学术界不受重视?
数据比界面重要,逻辑比界面重要。 同一套数据,即便使用比较差的UI进行展示也是勉强能看的,并没有优化的必要。
游戏的重点就是有反馈。动画、界面、逻辑全是反馈。
在线和离线、实时和非实时
同样一个问题,在线处理的难度比离线处理难度大很多,因为在线处理要求不能看未来的、后面的数据。
在线不一定是实时,但是大多数情况下,在线处理通常是要求很强的实时性。
工程的逻辑
工程的逻辑很简单,深度学习玩的是尺寸,计算机图像学玩的是立体几何。
游戏的外在
游戏的外在就是搞好shader、做好动画。
游戏的内在就是逻辑。
游戏的外在决定了用户是否愿意玩这个游戏,许多简单的小游戏单纯因为美工优秀就风靡全球,例如切水果、3D切方块等。
游戏的动画会反向驱动游戏逻辑。我过去实现的2048都没有考虑为动画服务,都是动画不友好型的代码,只有数据生成+数据渲染两个步骤,而至于两次刷新之间数据是如何动态变化的必须要表现出来,这就是游戏动画的需要。如果没有把数据之间的变化过程描述清楚,则玩家会感到迷惘困惑。举例来说,如果没有卡片缓慢的动画位移,则玩家分不清楚哪个卡片是上一状态的哪个卡片。
心流
心流Flow是玩家在游戏中一种非常沉浸的状态,在这种状态中,玩家能够获得最好的游戏体验,甚至忘记了时间。任何一个游戏开发者都希望能够开发出能够让玩家进入心流的游戏。要让玩家进入心流,核心是如何根据玩家的水平Skill去匹配不同难度Difficulty的对手或关卡。但是现有的游戏是很难开发出完美的机制去满足所有玩家的水平的,但是AI的出现让实现完美的心流体验成为可能。AI存在这样的潜力去记录玩家的情况,快速的判断玩家的水平来提供合适的对手及关卡。
Unity心法
以玩耍的心态去学习,不要过于严谨,追求好玩和新奇有趣。
unity的调试
在web环境中,chrome的console非常好用。实际上,unity完全可以实现不输于chrome的体验,unity是一个exe,exe可以实现自己的console,exe可以完全控制所有的内容。
unity的优势
unity所使用的技术很多都是开源界已有的技术,它的核心特点就是整合能力特别强,把一些已有技术整合起来就能够使得整体看上去像是新技术。
GUI和游戏的区别
GUI运行效率较高,占用内存CPU资源更少,因为它不需要过于复杂的渲染。游戏运行效率较低,因为它需要不停地刷新页面。
例如flutter,当用户不操作按钮的时候,界面是静止的,应用的性能较高。当用户执行操作的时候,能够立马响应。
而Unity即便用户不操作按钮,Unity也在不停地刷新。当用户执行操作的时候,只能在下一帧中检测用户是否执行了某个动作。
GUI是事件驱动的,游戏是自动演绎的。
游戏是一种可以响应用户操作的视频流。
游戏经常使用绝对布局,GUI经常使用CSS、布局容器等。因为游戏中的对象比较自由,使用CSS无法满足需求。
webxr的缺点
游戏资源通常非常大,在网页端受到的束缚较多。
复杂游戏场景需要大量的计算资源进行渲染,网页端无法充分利用GPU等硬件。
输入很重要
输入决定了游戏的玩法。
手游是手指的游戏。
Pico是6dof的游戏。
游戏的战斗场景和外围场景
游戏的战斗场景是游戏的核心玩法,每个游戏都有战斗场景。
在进入战斗场景之前,是一个可以自由发挥、但是有许多套路的东西,称之为外围场景。
不论哪种外围场景,总要给玩家提供动力,有的是名(徽章),有的是利(金币)。
- 天梯,华山论剑,泰山十八盘。胜利一局前进一步,失败一句退后一步。到达山顶之后又勋章。
- 评级,起立评测,尝试准确评估一个玩家的战斗力水平
- 地图,海岛奇兵中的海岛布局,每个海岛表示一场战斗。
- 残局,一个一个的考题
- 铜钱场,经济。可以进一步分场对战,普通场,中级场,高级场。不同场次的赌注不同
- 好友对战,私有房间
- 人机对战,人工智能。
- 关卡制。一个游戏有若干个关卡,玩家按顺序选择关卡。
- 拓扑图关卡。普通的关卡是一条线,玩家只能一关一关地过。拓扑图关卡是一个拓扑图,只有前驱结点全部解决,才能开启下一个关卡的挑战。
- 直接选择模式。全部关卡是一个集合,用户想玩哪一个关都可以
- 排位赛:对战斗力进行排序
与游戏战斗场景相关联进行设计:
- 三人场
- 五人场
- 两营对垒
- 身份局,三国杀
游戏的战斗场景应该力求做到让玩家全心投入,而外围场景则应该以水平、经济、勋章等让玩家有进入战斗场景的动力。一旦进入战斗场景,用户是否能够留住就取决于游戏的核心玩法了。
Unity没有必要学习2D游戏
Unity没有必要学习2D游戏。
2D比3D简单,3D肯定包含2D。使用正交相机就是2D游戏。
先学跑,再学走。