平衡掌控者-游戲數值戰斗設計

一、有效生命值

1、計算公式

有效生命=生命值/(1-傷害減免率)/(1-閃避率)


2、前搖和后搖

對數值來說,戰斗由兩大模塊組成,一個是戰斗公式生效前的戰斗攻擊流程,一個是戰斗公式與自身流程。

比如說:砍死一只兔子,需要0.5s去拔起斧子。砍死后需要0.5s拔出斧子,這就相當于前搖和后搖。之后才能進入到下一個攻擊循環。


3、CD

在下一個攻擊循環之前,還有一個冷卻時間,CD。

如果計算1分鐘之內不同情況下的攻擊次數,以下是計算表格。

二、遠程攻擊前后搖

1、法師

以上內容所提到的 都是 戰士。

因此展示的攻擊 前搖、命中、后搖 都是一個線性的過程。

但是法師比較特殊,釋放技能需要一個“吟唱”的過程,因此這個過程就是前搖。

但技能釋放出去后,飛行時間==后搖時間。游戲設計中會盡量減小飛行時間。

圖為法師攻擊的前后搖圖示。

注:飛行時間不可控。因此,后搖時間不一定會比后搖時間長。


2、公共冷卻時間

設計原因:限制角色在單位時間內的指令量和輸出量。

如果沒有公共CD,輸出量會不好控制,

3、攻速

衡量攻速快慢時,需要衡量單位統一。

游戲中,攻擊速度會和武器掛鉤,也有游戲會與敏捷掛鉤。

攻速低的武器容易傷害高,但輸出少 ;攻速高的武器容易傷害低,但輸出穩定

三、戰斗公式流程

一般是兩種:a.圓桌理論 b.逐步判斷理論、

1、逐步判斷

也就是一步一步判斷流程。

但這種方式有一定的缺點。如果是大型游戲,戰斗時產生的結果比較多,那么控制數值就比較艱難了。

因此只適用于一些小型的戰斗流程。

2、圓桌理論

一個圓桌的面積是固定的,如果幾件物品已經占據了圓桌的所有面積,其他物品將無法再被擺上圓桌

也就是說,如果優先級高的各結果的和超過100%,會把優先級低的各種結果擠出桌面——即為“圓桌理論”。

a.未命中概率:30%

b.命中且暴擊:(1-30%)×10%=7%。

注:此處的暴擊率是命中的0.7的暴擊率,要計算出命中時的暴擊率,而不是百分百命中的暴擊率

c.命中目標但未暴擊產生了普通攻擊,概率為(1-30%)×(1-10%)=63%。

注:就是用命中率乘以未暴擊率,計算得出。

如果命中率改為20%。其他概率為多少?

暴擊:7%=》2%? ?命中:63%=》18%

所以,相當于進行了等比稀釋,這就是逐步判斷公式的優勢。

會將各種可能性維持在一個穩定的比例。


四、一級屬性和二級屬性

關于攻擊力(Attack Power,下文簡稱AP)的計算公式如下。
獵人/盜賊:AP=角色等級×2+力量+敏捷-20
戰士/圣騎士:AP=角色等級×3+力量×2-20
薩滿:AP=角色等級×2+力量×2-20
德魯伊:AP=力量×2-20
法師/牧師/術士:AP=力量-10

1、屬性計算的次序


計算力量的公式比較復雜,有針對所有裝備力量的百分比加成,也有針對所有力量的百分比加成。公式如下。
a.裝備力量和=武器力量×(1+武器力量百分比加成)+頭盔力量×(1+頭盔力量百分比加成)……(計算所有裝備力量和)

b.力量總值=裝備力量和×(1+裝備力量百分比)+加點系統力量和×(1+加點系統力量百分比)+升階系統力量和×(1+升階系統力量百分比)+人物自身力量×(整體力量百分比加成+預留位置)

2、閃避公式

閃避公式有兩個核心屬性:攻屬性、防屬性。

攻屬性是命中,防屬性是閃避。

閃避公式有兩種思路方向:
·命中先減去閃避,由差距的大小來決定命中的概率有多大。這種做法相對較少。
·命中和閃避進行除法公式計算,最終決定概率有多大。


如果使用除法公式,會更有優勢。

命中率=命中/(命中+閃避)

總結:

1.命中和閃避在前期的加點效果非常明顯,玩家很容易從數值提升感受到戰斗效果提升,從而對屬性的需求變得強烈,進而促進消費。
2.命中和閃避在達到一定數值時,開始產生邊際效應,但也不會完全無效,玩家依然有提升意義。

3、暴擊公式

在暴擊公式中,會遇到只有暴擊值的情況

1.暴擊減去抗暴擊(如果沒有防屬性,那就直接算暴擊),然后差值換算為暴擊率。
2.暴擊和抗暴擊進行除法,計算出暴擊率。

公式:暴擊率=職業基礎暴擊率+暴擊值轉換暴擊率

4、減法公式

傷害=攻擊-防御

會造成強烈的差距感。

假設玩家初始攻擊為10,此時新手村的弱雞生命值為80。不難計算出空手情況下我們需要8次攻擊才可以擊殺弱雞。此時我們做任務獲得了一把攻擊加5的武器,裝備之后只需要6次攻擊,弱雞就會死掉,整整提升了33%的效率。而大部分國產游戲肯定會來一個類似1元送攻擊加100的充值獎勵。你充值之后,幾乎在一定等級之內的怪物都可以被秒殺。這種效率的提升給玩家帶來了巨大的誘惑。

5、乘除法公式

乘除法的傷害公式主要分兩種。

a. 傷害=攻擊 x (1 -?傷害減免百分比)

b. 傷害減免百分比=護甲/(護甲+人物等級 x?K1 + K2)

另外的傷害計算公式:

傷害=攻擊 X 攻擊/(攻擊+防御)

6、暴擊傷害計算公式

公式如下:暴擊傷害=普通傷害×(1+傷害暴擊系數+特殊效果系數)+暴擊后附加傷害

暴擊后附加傷害是暴擊之后直接附加的傷害,這是無視防御的。如果你想計算防御,那就把這個影響加在之前計算傷害的公式中并額外說明。


一般游戲在計算傷害的時候還會有兩個系數,一個是傷害加成系數,一個是最終傷害減免系數。
最終傷害=傷害×(1+傷害加成系數)×(1-最終傷害減免系數)

五、屬性價值

各個屬性像不同國家貨幣一樣,只要找到中間的匯率,這樣就可以統一價值。

攻擊屬性我們是以提升了多少輸出能力作為依據的;

防御屬性我們是以提升了多少生存能力作為依據的;
輸出能力是看屬性可以提升多少每秒輸出(DPS);

生存能力則是看屬性可以提升多少有效生命值(EHP);

最終輸出和生命的平衡看我們預期的戰斗時長或回合次數;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/95391.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/95391.shtml
英文地址,請注明出處:http://en.pswp.cn/web/95391.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用DataLoader加載本地數據 食物分類案例

目錄 一.食物分類案例 1..整合訓練集測試集文檔 2.導入相關的庫 3.設置圖片數據的格式轉換 3.數據處理 4.數據打包 5.定義卷積神經網絡 6.創建模型 7.訓練和測試方法定義 8.損失函數和優化器 9.訓練模型,測試準確率 10.測試模型 之前我們DataLoader加載…

從零開始的python學習——函數(2)

? ? ? ? ? づ?ど 🎉 歡迎點贊支持🎉 個人主頁:勵志不掉頭發的內向程序員; 專欄主頁:python學習專欄; 文章目錄 前言 一、變量作用域 二、函數執行過程 三、鏈式調用 四、嵌套調用 五、函數遞歸 六、…

RAG 的完整流程是怎么樣的?

RAG(檢索增強生成)的完整流程可分為5個核心階段:數據準備:清洗文檔、分塊處理(如PDF轉文本切片);向量化:使用嵌入模型(如BERT、BGE)將文本轉為向量&#xff1…

研發文檔版本混亂的根本原因是什么,怎么辦

研發文檔版本混亂的根本原因通常包括缺乏統一的版本控制制度、團隊協作不暢、文檔管理工具使用不當以及項目需求頻繁變化等因素。這些問題使得研發團隊在日常工作中容易出現文檔版本混亂的情況,導致信息的不一致性、溝通不暢以及開發進度的延誤。為了解決這一問題&a…

ChartView的基本使用

Qt ChartView(準確類名 QChartView)是 Qt Charts 模塊里最常用的圖表顯示控件。一句話概括:“它把 QChart 畫出來,并自帶縮放、平移、抗鋸齒等交互能力”。QML ChartView 簡介(一句話先記住:ChartView 是 Q…

系統擴展策略

1、核心指導思想:擴展立方體 在討論具體策略前,先了解著名的擴展立方體(Scale Cube),它定義了三種擴展維度: X軸:水平復制(克隆) 策略:通過負載均衡器&#…

HBuilder X 4.76 開發微信小程序集成 uview-plus

簡介 本文記錄了在HBuilder中創建并配置uni-app項目的完整流程。 首先創建項目并測試運行,確認無報錯后添加uView-Plus組件庫。 隨后修改了main.js、uni.scss、App.vue等核心文件,配置manifest.json并安裝dayjs、clipboard等依賴庫。 通過調整vite.c…

第4章:內存分析與堆轉儲

本章概述內存分析是 Java 應用性能調優的核心環節之一。本章將深入探討如何使用 VisualVM 進行內存分析,包括堆內存監控、堆轉儲生成與分析、內存泄漏檢測以及內存優化策略。通過本章的學習,你將掌握識別和解決內存相關問題的專業技能。學習目標理解 Jav…

面經分享一:分布式環境下的事務難題:理論邊界、實現路徑與選型邏輯

一、什么是分布式事務? 分布式事務是指事務的參與者、支持事務的服務器、資源服務器以及事務管理器分別位于不同的分布式系統的不同節點之上。 一個典型的例子就是跨行轉賬: 用戶從銀行A的賬戶向銀行B的賬戶轉賬100元。 這個操作包含兩個步驟: 從A賬戶扣減100元。 向B賬戶…

C++的演化歷史

C是一門這樣的編程語言: 兼顧底層計算機硬件系統和高層應用抽象機制從實際問題出發,注重零成本抽象、性能、可移植性、與C兼容語言特性和細節很多,學習成本較高,是一門讓程序員很難敢說精通的語言 C是自由的,支持5種…

Qt6實現繪圖工具:12種繪圖工具全家桶!這個項目滿足全部2D場景

項目概述 一個基于Qt框架開發的專業繪圖工具,實現了完整的2D圖形繪制、編輯和管理功能。該項目采用模塊化設計,包含圖形繪制、圖層管理、命令模式撤銷重做、用戶界面等多個子系統,是學習現代C++和Qt框架的最佳實踐。 核心功能特性 12種專業繪圖工具 多圖層繪制系統 完整的…

Linux驅動開發學習筆記

第1章 Linux驅動開發的方式mmap映射型設計方法。【不推薦】將芯片上的物理地址映射到用戶空間的虛擬地址上,用戶操作虛擬地址來操作硬件。使用文件操作集(file_operatiopns)設計方法。【極致推薦】platfrom總線型設置方法。【比較流行】設備樹。【推薦】第2章 Linux…

mac中進行適用于IOS的靜態庫構建

前沿: 進行C開發完成之后,需要將代碼編譯成靜態庫,并且在IOS的手機系統中執行,因此記錄該實現過程. 1主要涉及內容 1.1 整體文件架構 gongyonglocalhost Attention % tree -L 2 . ├── build │ ├── __.SYMDEF │ ├── cmake_install.cmake │ ├── CMakeCache…

C++二維數組的前綴和

C二維數組的前綴和的方法很簡單&#xff0c;可以利用公式res[i][j]arr[i][j]res[i-1][j]prefix[i][j-1]-res[i-1][j-1]。輸入4 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16輸出1 3 6 10 6 14 24 36 15 33 54 78 28 60 96 136#include<bits/stdc.h> using namespace std; int…

Wifi開發上層學習1:實現一個wifi搜索以及打開的app

Wifi開發上層學習1&#xff1a;實現一個wifi搜索以及打開的app 文章目錄Wifi開發上層學習1&#xff1a;實現一個wifi搜索以及打開的app背景demo實現1.添加系統權限以及系統簽名2.布局配置3.邏輯設計3.1 wifi開關的實現3.2 wifi掃描功能3.3 連接wifi總結一、WiFi 狀態控制接口二…

【DSP28335 入門教程】定時器中斷:為你的系統注入精準的“心跳”

大家好&#xff0c;歡迎來到 DSP28335 的核心精講系列。我們已經掌握了如何通過外部中斷來響應“外部事件”&#xff0c;但系統內部同樣需要一個精準的節拍器來處理“內部周期性任務”。單純依靠 DELAY_US() 這樣的軟件延時&#xff0c;不僅精度差&#xff0c;而且會在延時期間…

從零開始:用代碼解析區塊鏈的核心工作原理

區塊鏈技術被譽為信任的機器&#xff0c;它正在重塑金融、供應鏈、數字身份等眾多領域。但對于許多開發者來說&#xff0c;它仍然像一個神秘的黑盒子。今天&#xff0c;我們將拋開炒作的泡沫&#xff0c;深入技術本質&#xff0c;用大約100行Python代碼構建一個簡易的區塊鏈&am…

網絡通信IP細節

目錄 1.通信的NAT技術 2.代理服務器 3.內網穿透和內網打洞 1.通信的NAT技術 NAT技術產生的背景是我們為了解決IPV4不夠用的問題&#xff0c;NAT在通信的時候可以對IP將私網IP轉化為公網IP&#xff0c;全局IP要求唯一&#xff0c;但是私人IP不是唯一的。 將報文發給路由器進行…

國內真實的交換機、路由器和分組情況

一、未考慮擁擠情況理想狀態的網絡通信 前面我對骨干網&#xff1a; 宜春城區SDH網圖分析-CSDN博客 數據鏈路層MAC傳輸&#xff1a; 無線通信網卡底層原理&#xff08;Inter Wi-Fi AX201&#xff09;_ax201ngw是cnvio轉pci-e-CSDN博客 物理層、數據鏈路層、網絡層及傳輸層…

atomic常用類方法

Java中的java.util.concurrent.atomic包提供了多種原子操作工具類&#xff0c;以下是核心類及其方法&#xff1a;?1. AtomicBoolean??方法?&#xff1a;get()&#xff1a;獲取當前值set(boolean newValue)&#xff1a;強制設置值compareAndSet(boolean expect, boolean upd…