综合讨论组

创建于:2016-06-18

创建人: indienova

1508 信息 3988 成员
这是一个可以畅所欲言的小组
三页@综合讨论组 的内容(查看所有内容
国产游戏《算卦模拟器》寻求发行商
三页 2024-01-02

Image title


国产游戏《算卦模拟器》寻求发行商

专注易经占卜,算卦的模拟器,包括六爻,梅花等占卜方法

游戏基本开发完毕,后续还弄些优化

现寻求发行商合作,准备上架Steam

有感兴趣的发行可以联系我,QQ:991655778

(转发自:原日志地址
国产游戏《算卦模拟器》寻求发行商
三页 2023-12-31

Image title


国产游戏《算卦模拟器》寻求发行商

专注易经占卜,算卦的模拟器,包括六爻,梅花等占卜方法

游戏基本开发完毕,后续还弄些优化

现寻求发行商合作,准备上架Steam

有感兴趣的发行可以联系我,QQ:991655778

(转发自:原日志地址
独立游戏团队寻找美术
三页 2021-07-25

独立游戏团队寻找美术

项目地址:https://indienova.com/g/jiri

团队美术因为个人原因,无法跟进,现在需要重新招募一位有创业想法的美术来继续合作。

前期线上合作一段时间,后期团队全职线下开发。

希望招募可以长期合作共赢的伙伴

欢迎联系QQ:991655778

塞尔达荒野之息深度评测(二)——系统设计
三页 2020-05-15

一、介绍

前段时间有个游戏设计概念很热门,叫系统驱动设计,举的例子就是拿荒野之息里面的设计进行举例。那么什么叫系统驱动设计,网上可以查到一些解释,通俗易懂说人话,其实就是不同系统之间进行交互的设计。这种设计思路不只是塞尔达里面有,其他游戏也有。比方说你的游戏有ABCDEF等几个系统,此时你可以考虑让他们之间进行交互来设计出一些新的东西。当然进行交互的部分是一个系统的小功能,不是那种很复杂的交互。说白了就是系统与系统之间存在相互感知,塞尔达给这些系统进行了归类称为物理与化学,从而让其引发乘法效应。

下面来看塞尔达里面的设计,首先列举塞尔达里面的要素

1.运动物体

2.静止物体

3.水面

4.铁器

5.石头类

6.可燃物:(木头,草)

7.结冰柱

8.磁铁

9.炸弹

10.火元素

11.冰元素

12.雷元素

13.气流

14.飞行

15.天气

16.剧情

17.武器

18.敌人

19.生命值

20.精力条

21.地形

二、开始交互

塞尔达设计师在GDC里面谈到,我们为游戏设计了游戏物理系统与游戏化学系统,当然这些系统与真实的物理化学是有区别的,毕竟是游戏。

他们说的物理就是游戏中的物体,化学就是一种手段,可以让一些物理元素产生改变。

物理与物体之间的交互(√)

物理与化学之间的交互(√)

化学与化学之间则交互(×)

物理:运动物体,静止物体,水面,铁,石,可燃物,敌人,武器

化学:静止器,火,冰,雷

然后进行乘法效应,遵循规则,产生以下结果

1.草木柴与火交互(物理与化学),效果为会被点着(化学),被点燃的物体会产生气流,可以飞行系统进行交互

2.磁可以与铁进行交互,让铁产生运动。静止器可以与铁进行交互,使其运静止。武器可以击打静止的物体,使其蓄力。这些操作实现林克坐着某个运动的物体进行飞行。

注意塞尔达里面的只要是会动的物体都可以被静止的。比如树被砍倒的时候,可以快速静止树木。升级的静止器与怪物交互,就是静止怪物。

3.水面上可以结冰,冰柱可以推动门框

4.铁器与电元素交互,由此产生被缴械。天气系统加上雷就是雷雨天气,所以林克背着铁器在雷雨里行动是非常危险。

5.木柴与火进行交互,生成篝火,使用篝火可以推动时间系统。

最让我觉得精彩的设计是获得大师之剑的这块,大师之剑这块直接结合了三种系统

①生命值 ②剧情 ③武器

剧情为触发点,拔出武器需要生命值。而生命值的上限是需要解锁神庙或打败神兽。

这块设计真的非常有趣,也让人印象深刻。

三、实际应用

那么作为一名普通的游戏开发者,我的游戏又不会像塞尔达那样复杂,有这么多要素,我能用这个吗。理解这种设计当然也可以做到。比如我的游戏只有以下几种系统

1.昼夜

2.怪物

3.物品

4.植物

5.NPC

6.地形

①昼夜与植物交互,设计某种只在夜里开的植物,只能夜里采摘

②昼夜与地形交互,设计某个大门只能在夜里/月圆这种特殊时刻开启

③物品与怪物交互,经典的宝箱怪的设计

④怪物与植物交互,植物怪,具备怪物与植物2种特性

⑤NPC与怪物与昼夜交互,经典的狼人设计,平时是NPC,月圆之夜化为狼人怪物

自由组合,任你想象,将会产生非常多的有趣设计方案

四、总结

核心为多思考已经有的系统相互之间产生交互会是种什么结果。如果你的系统足够多,你可以像塞尔达那样给系统归类,他叫物理与化学,你可以叫生物与历史,由此产生乘法效应。系统没那么多也没事,几个之间也可以产生交互。

除了塞尔达外,《神界原罪》这款游戏里面也有很有趣的系统交互设计,感兴趣可以去研究下。

(转发自:原日志地址
塞尔达传说:荒野之息 深度评测(一)——开放世界设计
三页 2020-05-03

塞尔达传说:荒野之息     深度评测(一)——开放世界设计

作者:三页

转载请注明出处


塞尔达传说荒野之息作为一款开放世界动作冒险游戏可以说是非常的优秀,夸他话我就不多说了,网上有很多。那么今天我们来从游戏设计的角度上来看一下荒野之息是做了哪些设计让游戏变得如此有趣的。

一、开放世界的主动性引导探索

我们知道有些开放世界游戏,一般是把任务地点标注在地图上。这个塞尔达也有,但是点很少。

传统开放世界的任务地图:

Image title

【图片来源:open world game:the open world game 一款讽刺开放世界TodoList任务设计】

在Npc处接到任务后,或者触发一些条件时,地图上就会出现任务点。这种设计主要是为了引导玩家走向目标处,防住玩家迷路。但是这个做法做的太多了之后,你就会感觉自己是在一直循环这个过程,网游的主线任务更是如此。一直不停地循环接任务——跑到任务点完成——再回来报告这个过程。这种设计像是游戏设计师给你列了一个任务清单(TodoList),路线给你规划好了。这个过程长了你会感觉你是被强迫这么玩的,你没得选择。这种设计就是被动式的任务引导。

那么塞尔达是怎么做的?塞尔达地图也有任务点,但是就是主线任务点,去因帕老奶奶那里后,地图上就标准了四神兽的地点了,当然你也可以不打四神兽直接去最终boss那里。那么没有任务点的引导,玩家会不会不知道干啥。那么塞尔达里的一个关键的设计就来了——地图迷雾与高塔。塞尔达里面有很多高塔,这些高塔一般位于一块地图区域最高的位置。爬上这个高塔可解锁这块区域的地图迷雾。塞尔达设计师说玩家在游戏过程中不自觉地喜欢朝高处走。高塔对玩家具有很强的吸引力,你会非常想到达这个地方。这个设计将玩家被动的去某个地方变成玩家主动想去某个地方,你就会感觉到我是按照自己的意愿走的。而且攀爬上高塔解锁当前地图迷雾是一个很有成就感的事情。

Image title


然后高塔上可以看到附近的神庙。神庙的奖励是强化玩家属性的。所以神庙对玩家是很有吸引力的。然后玩家自己去找神庙,并且可以自己把神庙的位置标注出来,然后自行前往。这一系列的事情都是将被动式转化为了主动式。

试想下如果系统刚开始直接把地图上的神庙位置和高塔位置给你标好,你还会有那种探索感吗?塞尔达的设计更多是让玩家来标注哪些位置,而不是系统给标的。这2种设计感受是不同的。一种是我是被命令去那里的,一种是我是自己想去那里的。

Image title



二、动态的开放世界难度

大家知道林克在海拉鲁大陆是想去哪就去哪的,那么就会有个难度平衡的问题。因为等玩家拿到很强的装备后去某些地方会不会秒杀敌人。因为你无法知道玩家先去哪个地方再去哪个地方。

塞尔达对此做了一套动态系统,他的怪物强度和获得的武器强度取决于击杀怪物的分数。强度取决于怪物积分,积分越高怪物越强,装备越好。每次击杀怪物,怪物积分都会增加,同样的怪物积分最多累计10次,再杀也不会更多。以下是各种怪物的分数

(数值参考来自互联网)

红皮波克:0

蓝皮波克:0

黑皮波克:1

银波克:5

金波克:7

绿皮蜥蜴:0

蓝皮蜥蜴:0

黑皮蜥蜴:1

银蜥蜴:5

金蜥蜴:8

冰属性蜥蜴:4

火属性蜥蜴:4

电属性蜥蜴:4

红莫力:0

黑莫力:1

银莫力:5

金莫力:8

初级石头人:1

属性石头人:3

高级石头人:5

红希诺克斯:1

蓝希诺克斯:3

黑希诺克斯:5

红人马:6

蓝人马:10

白发银人马:20

黑发银人马:21

金人马:26

无腿守护者:3

炮台守护者:7

八爪守护者:10

飞行守护者:10

沙漠鳄鱼:10

以下是只能获取一次的积分:

神兽解放:60/个

依盖队队长:40

通关一次:160


同时塞尔达还设计了武器耐久度,避免玩家一直使用某个强力武器。

当然大师之剑是可以自动修复的。但是大师之剑的获取是需要13点血。

初期送3点血, 光开神庙的话需要开10*4=40个神庙,当然你可以去挑战神兽,胜利可以直接加一个血上限。也就是想拿大师之剑,正常流程起码得游戏中后期。大师之剑也是属于游戏剧情里面的一把关键武器。


三、偏向于简洁设计与更加深层次的交互

玩家在游戏里是非常想和周围的元素进行交互的,所以这就是为什么说空气墙是一个让人体验很糟糕的设定,平白无故拦我干嘛?

塞尔达在游戏刚开始时,你可以看到树

看到树,玩家想干嘛,可以砍吗?可以爬吗?可以烧吗?

塞尔达做到了,你去尝试了,真的可以,

树上有苹果,苹果可以摘,树可以爬,树可以被砍,砍掉掉圆木,圆木可以被砍,变成一捆柴,柴可以被火箭做成篝火,篝火可帮助你消磨时间。

Image title

Image title


这就是物品看似简洁,但是交互深度,并且可以与其他系统进行交叉交互

就会感觉很棒,因为他不是一个纯装饰的物件,是可以交互的,会感到很有趣。

而如果涉及成纯粹的装饰物的话,你就不会感觉那么有趣了。

塞尔达里面的怪物种类是不多,但是你会感到很有趣。比如常见的波克布林。是可以拾取地上的武器,根据武器的种类从而有不同类型的攻击方式。并且你可以用电元素缴械怪物,拿走他的武器,同时怪物也可以顺走你掉落的武器。这种设计在其他游戏里面比较少见。但是他符合真实性,而且游戏里这样做,确实有趣。

可以看出塞尔达设计师他们的设计重点不是设计一堆花里胡哨的外表,而且把工作量堆在了更加深层的设计。



这篇文章就到这里,下篇文章我们来分析塞尔达里的不同元素之间的交互设计

(转发自:原日志地址
祭神之日3月份开发总结——游戏中的怪物制作技术
三页 2020-04-08

不知不觉又过了一个月,由于疫情影响,我在三月多才回到上海这边。

这个来讲下3月份我们的开发进度,同时我发现indienova上技术开发人员是比较多的。那么这篇文章我来谈谈本人在游戏中使用的一些技术。

首先是我们重新制作了一批怪,因为之前怪物不符合游戏的世界观,需要重新优化

 上 怪物图鉴

Image title

那么怪物是通过Animator动画状态机和行为树来进行控制的

但是在制作的过程中,你会发现要给每个怪物做Animator连线是很麻烦的一件事情

方案一:

在很早之前我是想通过直接播放动画的方式来解决这个,直接animator.Play(动画名)来播放动画 

就是通过代码维护状态机,这种处理一些简单的情况是可以的,比如门的开关等,复杂的怪物会有些麻烦

方案二:

通过运行时用AnimatorOverrideController动态加载动画片段,这个我在很早时研究过

内容较多,可以看我以前的一些文章:https://www.cnblogs.com/sanyejun/p/9076729.html

方案三:

使用编辑器功能实现自动连线

比如,大部分怪物的一个基本逻辑

Image title

那么这个连线其实是可以通过编辑器代码来自动生成的

为了让大部分人能看懂,我先来2个不错的参考

官方参考:https://docs.unity3d.com/ScriptReference/Animations.AnimatorController.html

民间参考:https://www.jianshu.com/p/cf1b54b78c23

再来一份我的代码

using System;
using System.Collections;
using System.Collections.Generic;
using Framework;
using UnityEditor;
using UnityEditor.Animations;
using UnityEngine;

/// <summary>
/// 状态机自动连线
/// 使用方法:选择Project视图里面的动画状态机文件,右键——>创建怪物动画状态机
/// </summary>
public class EditorAnimator
{
    [MenuItem("Assets/创建怪物动画状态机", priority = 0)]
    static void CreateUIView()
    {
        AnimatorController ac = (AnimatorController)Selection.objects[0];
        AnimatorStateMachine stateMachine = ac.layers [0].stateMachine;
        //添加动画容器
        AddNewState(stateMachine, "Die", new Vector3(300, 20, 0));
        AddNewState(stateMachine, "Idle", new Vector3(300, 120, 0));
        AddNewState(stateMachine, "Run", new Vector3(300, 220, 0));
        AddNewState(stateMachine, "Attack", new Vector3(600, 220, 0));
        
        //连线,并且添加条件
        var line = StateLine(stateMachine, "Idle", "Run");
        line.AddCondition(AnimatorConditionMode.Greater, 0.01f, "speed");//数值大小式
        var line2 = StateLine(stateMachine, "Run", "Idle");
        line2.AddCondition(AnimatorConditionMode.Less, 0.01f, "speed");//数值大小式
        var line3 = StateLine(stateMachine, "Run", "Attack");
        line3.AddCondition(AnimatorConditionMode.If, 0, "attack");//Trigger触发式
        var line4 = StateLine(stateMachine, "Idle", "Attack");
        line4.AddCondition(AnimatorConditionMode.If, 0, "attack");//Trigger触发式
        StateLine(stateMachine, "Attack", "Idle", true);
        var line5 = StateLine(stateMachine, "Die", "Idle");
        line5.AddCondition(AnimatorConditionMode.IfNot, 0, "die");//bool-false
        //任意状态到死亡
        var lineDie = stateMachine.AddAnyStateTransition(GetStateByName(stateMachine, "Die"));
        lineDie.AddCondition(AnimatorConditionMode.If, 0, "die");//bool-true
        lineDie.AddCondition(AnimatorConditionMode.IfNot, 0, "IsDie");//bool-false
    }

    static void AddNewState(AnimatorStateMachine stateMachine, string name, Vector3 v3)
    {
        bool has = false;
        foreach (var one in stateMachine.states)
        {
            //Debug.Log(one.state.name);
            if (one.state.name.Equals(name))
            {
                has = true;
            }
        }
        if (!has)
        {
            stateMachine.AddState(name, v3);
        }
    }

    static AnimatorState GetStateByName(AnimatorStateMachine stateMachine, string name)
    {
        foreach (var one in stateMachine.states)
        {
            if (one.state.name.Equals(name))
            {
                return one.state;
            }
        }
        return null;
    }

    //连线
    static AnimatorStateTransition StateLine(AnimatorStateMachine stateMachine, string name1, string name2,bool defaultExitTime = false)
    {
        return GetStateByName(stateMachine, name1).AddTransition(GetStateByName(stateMachine, name2), defaultExitTime);
    }
    
}

 直接鼠标右键,生成状态机,即可实现上图状态机的自动连线功能


接下来是制作行为树

我用的方案是使用Behavior Designer插件,其实还有个类似的插件叫  node canvas,感兴趣的可以看下

Image title

行为树如何使用,我写了个简单易懂的教程

https://www.cnblogs.com/sanyejun/p/12599772.html

有个关键地方是,用行为树做  if  else  和 if

会这个的话,大部分怪物逻辑应该不成问题

然后有些怪物的通用逻辑,可以单独抽离做成子树/引用树    就是 Behavior Tree Reference

Image title



更多技术文章可以看我的博客:https://www.cnblogs.com/sanyejun/ (长期稳定更新)

最后宣传下自己在做的独立游戏《祭神之日》 中国神话题材    感兴趣可以加群

Image title



(转发自:原日志地址
祭神之日2月份开发总结
三页 2020-03-10

2月底,我们发了一个测试版本demo,目前可以初步的体验游戏,但是离游戏核心完成还是有点距离。测试反馈下来还有一些问题需要修改。感兴趣可以在群里下载Demo。目前团队在准备下一个版本,游戏核心是以  建造+RPG+探索 为主。要做的东西还是不少。下个版本目标是体现出游戏核心特色。

【Demo版本截图】

界面

Image title


新手引导

Image title


建造

Image title



Image title


感谢关注

游戏QQ群:951358574

Image title


(转发自:原日志地址
祭神之日1月份开发总结
三页 2020-02-09

很快1月份就已经过去了,写下1月份游戏的进展过程

本来我的这个游戏名字叫做《祭日》,但是这个名字有误导性,很多人都以为是忌日......这两个词意思是不一样的,前者指的是神明的祭祀,为了后续发展我就先把名字改了,《祭神之日》,暂时就这个名字了

1月15日在IndieNova上就公布了游戏页面,这款游戏计划1年完成。但是2月底群里就会发一份测试demo


这个月把献祭系统已经敲定

Image title


Image title


就是这个献祭值,什么都可以拿去献祭的,部分东西献祭会有特殊效果(如果有时间做的话)

UI还需要等美术同学完善下


一个重要的NPC

Image title


流程草图

Image title

Image title


大体框架基本敲定,接下来就是爆肝


目前团队来说,我们对于动作制作这块很苦手,如果有人擅长动作动画这块,有意合作的可以联系我QQ: 991655778

最后,2月底出体验试玩Demo, 欢迎加QQ群 951358574




(转发自:原日志地址
独立游戏《祭品之书》寻找美术大佬等小伙伴
三页 2018-12-09

《祭品之书》

这是一款架空世界观的游戏,你被卷入到一个异世界当中,在这个世界里怪物横行,你不仅要在这里生存下去,还要提防着这些怪物。除此之外,还有一个更大的威胁,祭兽,这个世界里食物链顶级的存在。他的能力绝对是秒杀你的存在,但是他并没有选择马上杀掉你,他想让你做他的奴隶,必须在每个月给他上缴一定的贡品,否则,他就会吃掉你。你可以选择反抗,也可以选择先苟且活下去,等待自己强大起来。祭兽到底是怎样的存在?打败他,后面又是怎么样的发展?这个世界究竟有怎样的秘密?如何才能逃离这个世界?欢迎来到祭品之书的世界探索答案。

1.游戏类型

单人和联机,预计平台steam

RPG,生存,冒险,探索,合作,(建造?)

2D横版像素风格(类似泰拉瑞亚)

2.世界系统设定:

昼夜时间交替

天气系统(下雨,雷电,下雪,冰雹,大雾,酸雨等)

3.生存设定:

生命值:没血就会死

饥饿值:比较低时会影响情绪,0会扣血

情绪值:会影响人物各种属性,比如攻击防御等,情绪好,人物的属性会有相应的加成,情绪低落,人物属性也会有所降低。

恶劣天气会降低情绪值,比如炎热,寒冷,看见怪物的恐惧(不同人物的恐惧不一样)

一些会提高情绪值:在基地,和伙伴在一起(人越多越好),队友给你喂食也会增加。

4.职业设定:

刚开始无职业,职业是在游戏里面探索,或者触发事件才会获得。

①忍者

通过结印来释放忍术,真的有结印操作,不同的手印会释放不同的技能

②亡灵术士

能看见亡灵,并且可以控制亡灵的强大术士,能将不同灵魂嫁接到不同生物体内,甚至能控制队友的亡灵!

③召唤师

可以捕捉和召唤怪物的人

④炼金术士

可以炼制各种药剂,还可以制作蛊的强大术士

⑤剑神

使用剑术的至高侠客,人剑合一,御剑飞行

⑥自然术士

拥有强大的自然之力,通兽语

⑦机械师

制作各种机械装置,机械兵器,当然也会制造人形机甲

更多的不一一介绍了,保证游戏至少会有20种以上的职业,各个职业各有特色,这些设定我已想了快1年了,现构想的职业早已超过20种了,但是还要做些修改精简,这里先保留悬念,反正应有尽有。

5.特色系统:

①养成系统:会让你将一只小怪兽,养到大,并且还能进化,根据培养方式的不同,进化的形态也不一样。

②基因系统:不同物种有不同基因,基因会控制各种属性,技能。并且你可以控制他们杂交,得到自己想要的基因物种。学过生物的大家都懂。

③奇遇事件:会进入异空间,探索神秘宝藏

④Rouglike世界动态生成,事件随机

----------------------------招人------------------------------

先介绍这么多吧,这些只是游戏的一小部分。

本人U3D程序兼策划

现在寻找志同道合的伙伴,线上合作,只需要你每周有部分时间可以抽出来来参与制作即可。

美术:能画2D像素就行,像素图难度不大,人物在20像素*40像素,需要做帧动画

特效:可以做特效就行

策划:希望有人能帮忙改改文案,设定。

如何你有其他技能,对项目感兴趣的话,也可以参与进来。

本人平时上班,只能业余时间开发,但是每周都会做点,现居上海,如果有上海的小伙伴加入更好,线下可聚一聚。业余开发,分红需要等游戏卖钱后。虽然是业余时间开发,但是这个项目,我是认真的。

有意愿参与制作的可加本人QQ详谈:991655778

---------------------------------------------------------------------

目前我一人在做系统,所以现在画面很简陋,截图比较模糊




加入 indienova

  • 建立个人/工作室档案
  • 建立开发中的游戏档案
  • 关注个人/工作室动态
  • 寻找合作伙伴共同开发
  • 寻求线上发行
  • 更多服务……
登录/注册