这期间游戏从无到有,一点一点的由雏形到最终的成品,整个过程也是值得记录一下。
游戏的想法源自一个随机的想法,就是俄罗斯方块贪吃蛇消除的一个大混杂。
所以游戏的第一版是随机的色块,玩家控制角色的上下左右移动方向。
完成了角色的方向控制,接下来要解决的就是如何搭配消除的规则,实现的手段就是吃到一个方块就把这个方块接在头部,当吃到三个连续色块时,相同的色块就消除了。
当采用滑动操作来控制四个移动方向时,觉得还是有点不太适宜触屏,所以经过思考,决定把移动方向缩减到两维,通过点击操作来在两种方向上切换。同时为了简化游戏操作,在屏幕边界做了自动转向的设定。游戏的视角也从俯视,变成了后方45度。
考虑到主角的头应该是玩家注意力集中的地方,所以把吃到的方块接到尾巴上是一个更好的选择,方块从吃到接到尾巴,采用了先放大吃到的方块,等到它到达尾巴的位置才开始移动的方式。此时的消除也是吃到三个相同即产生消除。角色的移动也从离散式变为了连续式。
由于消除只发生在一维,所以并不能产生连消的效果,二连消恰恰又是消除游戏的一个核心玩法,最后决定的方法是可以接到更长的相同的颜色,消除发生在接到一个不同的方块时。同时游戏内增加了动画表现。
]]>最近在构思一个新的游戏,采用纯色快的风格,游戏规则是贪吃蛇与消除的结合,立方体的造型又有俄罗斯方块的感觉。
想突出的特色是,颜色和动作。
目前采用的配色是参照苹果图标的配色, 在demo中看起来颜色还是非常的和谐。
接下来会在相机移动,消除规则,还有动作之间做一些设计。
技术上希望能够运用shader实现动作,目前想要的效果是弹弹的感觉。
这会是一只清新的蛇。
]]>一撸到底是一款精致打造的击破地心引力的生存游戏。高度落体中需要你躲避突入的岩石,绕开致命的炮弹。无害又可爱的乌鸦以及金币是你坠落过程的好朋友。
无论你喜欢左手,还是右手,在#一撸到底#都能满足你畅爽的体验。 随着故事的深入,需要你的手指以更快的节奏配合大脑更加沉着的判断,才能冲破重重阻碍到达最后的巅峰。
也许每个人能够游戏的时间各不相同,但是少年,努力,就一定能活的更久。
游戏特色:
超快和紧张的玩法
瞬间敏感的模拟控制
复古的音效
爆棚的成就感
]]>
基本的思路为读取模型文件,创建Animation Controller, 将动画文件添加到Animation Controller的Layer,并建立不同状态间的Transition. 代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 |
|
定义士兵的AI,使用的是XML配置文件,XML的结构与实际生成的Behavior Tree结构非常一致。
Behavior Tree的结点类型包括Composite Node、Decorator Node、Condition Node、Action Node。其中Action Node是AI主体所能执行的具体行为,而通往各个叶子结点(Action Node)的路径就是Behavior Tree根据环境所做的决策过程。
先来看一段士兵的Behavior Tree的配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
|
这段配置定义了士兵的行为,包括死亡、Idle、攻击、移动的相关决策行为和决策条件。通过结点的名称也很容易就能够推断出所要实现的功能。
Behavior的实现
]]>使用delegate的目的是在方法中传递方法指针。通过声明delegate的方法签名,可以在运行时在符合delegate方法签名的方法中选择要执行的方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
|
]]>参考资料:
1. C# Delegates, Actions, Funcs, Lambdas–Keeping it super simple
2. event(C# 参考)
行为树定义了AI主体的智慧能力,这种智慧能力体现在AI主体可以根据环境变化而改变自身行为。在一棵完整的行为树中,叶子节点是AI主体所能执行的行为,而从根节点到叶子节点的路径就是AI主体的决策过程。
状态机描述了状态和状态转移条件。状态被动接受条件变化,通过判断确定状态的变化。
条件功能函数是指,在固定的触发点,通过判断预先定义的条件,如果条件满足,则执行对应的功能。这里定义的需要执行的功能,也可以是带有条件的功能组。条件功能函数也可以抽象为树形结构,判定与执行的过程就是遍历整棵树的过程。
]]>一般来说,游戏UI的制作步骤为:
1. 美术在设计软件(PhotoShop,Flash)中进行UI的设计.
2. 美术导出切分好的散图和整体效果图。
3. 程序在程序的开发环境中参照效果图实现UI的布局和功能。
这种工作流就经常导致程序制作出的UI效果和美术的设计存在偏差,并且对于美术的修改来说也不够友好。
使用Unity开发UI,理想的情况是美术也能够使用Untity进行设计和实现。但现实往往是美术不太接受使用不太熟悉的软件进行创作。并且美术如果和程序公用同一项目,在版本维护中出错的机会也比较大。
不同系统之间的集成通常都是通过中间语言的传递来实现的。参考A good workflow to smoothly import 2D content into Unity:
本文给出的“从PSD UI制作到Unity UGUI生成的工作流”是:
1. 从PSD中导出可以描述UI的配置和对应的图片资源。
2. 使用Unity读取配置,使用图片资源生成对应的UI.
其中,PSD中的"组"与"层"的组织和命名需要遵循一定的规范。组织规范定义了UI的结构,命名规范定义了UI的组件类型(包括:Button、Label、Image、ScrollView、ListView等)和参数。从Photoshop导出对应配置是使用Photoshop支持的ExtendScript,通过遍历PSD,生成UI的结构并使用XML保存,同时也会导出相应的图片资源。
通过包含特殊字段的命名(如:Common),可以指定某些图片引用自其他的PSD文件,这样当Unity导入的时候就可以根据命名去查找对应的图片资源,从而保证相同的图片资源在Unity的资源中仅存在一份。
UI资源图片在导入的时候通过设置类型为Sprite,然后通过指定Packing Tag,可以将相同的Packing Tag的图片在Build时打包到同一个图片集,从而降低DrawCall.
]]>参考资料:
1. A good workflow to smoothly import 2D content into Unity
现在还不太了解Markdown的语法,默认的模板也不太喜欢。文章的排版和博客样式统统都要改改改。不管内容,首先还是要好看。
第二日更新:
在献给写作者的 Markdown 新手指南中介绍了主要的一些Markdown语法,看起来很有帮助。原来MarkDown的语法如此简单直接。
1
|
|
其中图片是放在images路径下。
```
{% img /images/A-Team-Logo.png 200 %}
```
第三日更新:
今天尝试了修改博客的样式和布局,增加了About和Categories.
]]>参考资料:
1. 利用Octopress搭建一个Github博客
2. 象写程序一样写博客:搭建基于github的博客
3. 献给写作者的 Markdown 新手指南
4. Markdown语法示例
5. Sharing Code Snippets
6. 灵魂机器 我的Octopress配置
7. Show Categories and Post Count in Octopress
8. Inserting Liquid Syntax Into Octopress Codeblock