zoukankan      html  css  js  c++  java
  • SLG手游的战斗抽象

    说明:本文仅讨论王国纪元、乱世王者这类的SLG手游战斗。

    战争策略游戏的核心追求点

    1、 玩家通过进行兵种选择和分配,能够战胜对方

    2、 玩家通过进行兵种选择和分配,在战胜对方的基础上,以自身最小的损失换取对方最大的损失

    战斗的基本元素

    不同兵种

    战争类SLG的战斗一定都会有一定数量士兵的参与,所以士兵是战斗的基本元素。如果大家都只有一种兵,那么战斗时只需比谁的兵多,体现不出策略性,所以需要有不同种类的兵,因此更确切的说,不同兵种是战斗的基本元素。

    克制系数

    那么如何通过不同的兵种来体现SLG的一个基本策略性?

    一个简单且容易让玩家接受的方法就是克制关系(步克弓、弓克骑、骑克步或者其他元素互克等)。有了克制关系,就能很清晰的知道当别人出战某种兵种的时候,自己选择哪种兵种对自己最有利,同时由于克制关系简单直接,玩家在任何时候都能够做到快速反应(时间在战争游戏中至关重要,试想一下,敌军正在行军,准备侵犯你的领地时,因为克制关系而需要思考太久,最后导致在做完抵抗的策略前,敌军已经攻打完领地,这样的感受是有多糟糕)。

    不同的站位(阵型)

    不同的站位本质上是不同的兵种攻击目标。想象一下,我们有了不同的兵种以及克制关系,每次战斗都是按照既定的目标选定规则(比如最近寻敌规则)进行攻击,那么当对方的战斗部队所有兵种都出战的时候,就没有办法让克制系数得到充分的利用,或者没有将战斗的策略性完全的体现出来。

    所以,需要一个功能,可以在双方对抗前,改变原定的目标选定规则,以充分发挥出克制系数带来的策略性。

    方法有很多种,比如直接修改原有的目标选定规则,即不按最近寻敌规则,而是对不同兵种附上不同的寻敌规则(包装为兵种特性或者寻敌逻辑)。举个例子,骑兵在前面没有敌方部队的情况下,能够绕后攻击邻排最后面的部队。这种方法的使用,能够将克制关系策略性充分体现出来,但可能会导致玩家不容易理解寻敌规则(因为有可能出现与玩家的想象相违背的情况,),需要一定的学习成本。

    还有一种方法就是不改变原有的目标选定规则,在战斗开始前加入部队的站位。需要明确的一点是,部队的战斗不应该是在一条线上进行,而应该是在一个面上进行。站位的设计,结合就近攻击原则,同样能让克制关系的策略性充分体现出来。然而,在站位的设计上,存在一个难点,就是希望玩家因为该设计体验到战斗的策略,但又不希望玩家在兵种站位调整上过于自由(过于自由导致在此方面调整的时长过长,而时间在战争游戏中又极其重要)。所以需要把握站位设计的度,因此,就引入了部队阵型设计。在设计者提供的有限的阵型下,双方能够通过较少时间上的思考,改变自身的阵型来达到克制对方部队的目的。

    阵型的引入,还带来了另外一个好处,那就是双方均在线时的对抗博弈,这里不细说,内容可能过多。

    战斗的抽象

    按照数学思想,一系列的输入数据,经过战斗的函数,得到一系列的输出数据。玩家在战斗过程中的情感体现,通过目标函数的值来呈现。

    战斗的输入

    这里只给出基本的输入数据,就是上面的战斗基本元素。当然,设计者还可设计其他的元素来丰富战斗的策略性,但不可脱离战斗基本元素

    • 双方的参战部队
    1. 各兵种数量
    2. 兵种属性(基础属性,属性加成百分比)
    • 克制系数
    • 双方的阵型

    战斗函数

    战斗函数,体现为战斗规则,比如战斗如何开始攻击,战斗的过程有什么规则,又是因为什么样的规则而结束战斗。

    战斗的输出

    • 双方剩余的参战部队:战争带来的是伤亡和掠夺
    • 掠夺的资源

    玩家的目标函数

    目标函数,体现为核心追求点,即战后敌方损失与我方损失的对比。敌方损失越大,我方损失越小,玩家的情绪越积极;反之,则越消极。

    战斗抽象

    下面,以数学公式来抽象出SLG的战斗。

     
    f(攻方部队,攻方阵型,守方部队,守方阵型,克制关系)=(攻方剩余部队,攻方其他损失,守方剩余部队,守方其他损失)
    g(玩家)=(守方部队损失+守方其他损失)/(攻方部队损失+攻方其他损失)
     

    其中,

     
    攻方部队损失=攻方部队-攻方剩余部队
    守方部队损失=守方部队-守方剩余部队

    f()为战斗函数,g()为玩家目标函数进攻方玩家通过改变f()中的攻方部队、攻方阵型变量,来使得g(进攻方玩家)值最大化或趋于最大化;防守方玩家通过改变f()中的守方部队、守方阵型变量,来使得g(进攻方玩家)值最小化或趋于最小化。

    公式中,克制关系和双方阵型提供战斗的策略性,双方阵型还提供战斗的博弈性(假设双方阵型战前不可知)。这两者用于保证同等状态下双方策略和博弈的公平性,然而游戏很难做到两个玩家在战斗过程中出于同等状态,须知剪刀石头布虽互相克制,但小的布包不住大的石头。公式中,攻方部队、守方部队两变量就会让玩家与玩家之间不在平等状态,这就让战斗充满了随机性,整个国家的战争形态变得更加的多样化。奇观战双方势均力敌,集结手公平对抗;高战单撞陷阱号,士兵一去不复返;高战单撞低战,以实力碾压;高战集结下线陷阱号,多波集结清零陷阱号士兵……这,就是SLG战斗的核心趣味性。

  • 相关阅读:
    SQL Server XML数据解析
    c# XML和实体类之间相互转换(序列化和反序列化)
    C#解析XML详解(XPath以及带命名空间NameSpace)
    Jquery实现按钮点击遮罩加载,处理完后恢复
    jquery控制div随滚动条滚动效果
    asp.net中利用Jquery+Ajax+Json实现无刷新分页(二)
    easyUI tree点击文字展开节点
    201805牛客模拟考
    策略模式
    非线程安全演变成线程安全---原子性与加锁机制
  • 原文地址:https://www.cnblogs.com/architecture101-gbt/p/8306637.html
Copyright © 2011-2022 走看看