allenchou.net
我的Uncharted 4開發雜記 | Ming-Lun "Allen" Chou | 周明倫
本文屬於My Career系列文 Here is the original English post. 本文之英文原文在此 註:為方便複製至PTT,本文排版採BBS格式,不習慣者請見諒 Uncharted 4已經發售,終於可以分享我負責開發的部分了 我主要是負責單人模式的夥伴AI、多人模式的戰友AI、還有一些遊戲邏輯 沒有收錄到最終遊戲的部分和一些瑣碎的細工我就略過不提 = 崗位系統 = 在本文開始前,我想要先談談我們用來指派NPC移動位置的崗位系統 這個系統的核心邏輯不是我負責的,我寫的是使用這個系統的客戶端程式 崗位是可行走空間中的離散位置 大部分是用工具自動生成的,也有一些是設計師手動擺置的 基於不同需求,我們設計不同的崗位平分系統 (e.g. 潛行崗位、戰鬥崗位) 然後我們選擇評分最高的崗位,指派NPC移動過去 = 夥伴跟隨 = 夥伴跟隨系統是繼承自The Last of Us 基本概念就是,夥伴在玩家周圍找個跟隨點 這些可能的跟隨點從玩家位置扇狀分開 並且要滿足以下的路徑線段淨空條件: - 玩家到跟隨點 - 跟隨點到前方投射點 - 前方投設點到玩家 攀爬是Uncharted 4的新功能,這是The Last of Us 沒有的 為了與現有的跟隨系統整合,我利用攀爬崗位讓夥伴可以跟著玩家一起攀爬 這個功能比我想像中的還要難搞 單純根據玩家的攀爬狀態來切換夥伴的攀爬狀態,結果不甚理想 只要玩家快速在攀爬與非攀爬的狀態之間切換,夥伴就會在兩個狀態間快速跳換 於是我加入了遲滯現象(hysteresis) 只有在玩家切換了攀爬狀態,並且保持此狀態移動一定距離之後,夥伴才跟進 廣泛來說,遲滯現象是個解決行為跳換的好方法 =