15.游戲引擎的Gameplay玩法系統(tǒng)基礎(chǔ) | GAMES104-現(xiàn)代游戲引擎

AI課代表的筆記:這個視頻是關(guān)于現(xiàn)代游戲引擎中的玩法系統(tǒng)的基礎(chǔ)知識。視頻中講解了游戲引擎中的三個重要系統(tǒng):游戲邏輯、控制和相機(jī)系統(tǒng)。玩法系統(tǒng)涉及到游戲中的各個系統(tǒng)的交互,包括動畫、聲音效果、輸入設(shè)備、游戲?qū)ο笾g的通信等。視頻還提到了可視化腳本系統(tǒng)的重要性,以及如何通過事件和回調(diào)函數(shù)來實(shí)現(xiàn)游戲中的交互和邏輯控制。視頻強(qiáng)調(diào)了玩法系統(tǒng)的重要性和復(fù)雜性,以及在設(shè)計和開發(fā)游戲引擎時需要考慮的各種因素。
00:00 ??課程作業(yè)提交和引擎介紹:本章節(jié)主要內(nèi)容包括:課程作業(yè)的提交時間統(tǒng)一到8月31號,作業(yè)難度可以根據(jù)個人能力選擇;作業(yè)提交失敗可能是因為沒有點(diǎn)擊提交按鈕;課程團(tuán)隊會幫助解決作業(yè)提交問題;介紹了皮克勒引擎的腳本系統(tǒng)和使用CMake的原因;解釋了每次重新編譯的原因和引擎開發(fā)中的復(fù)雜性;介紹了玩法系統(tǒng)的基礎(chǔ)和著名的3C系統(tǒng);下一節(jié)課將介紹AI系統(tǒng)。
09:42 ??玩法系統(tǒng)的重要性和挑戰(zhàn):這個視頻的章節(jié)講述了玩法系統(tǒng)的重要性和挑戰(zhàn)。玩法系統(tǒng)需要與游戲中的各個系統(tǒng)進(jìn)行交互,如動畫系統(tǒng)、特效系統(tǒng)、音效系統(tǒng)、UI系統(tǒng)和渲染系統(tǒng)等。玩法系統(tǒng)的開發(fā)需要與各個團(tuán)隊密切合作,并支持快速迭代。游戲引擎中的事件消息機(jī)制是實(shí)現(xiàn)玩法系統(tǒng)的關(guān)鍵。通過發(fā)布和訂閱模式,游戲中的各個對象可以進(jìn)行有效的通信和互動。玩法系統(tǒng)的設(shè)計要求具備擴(kuò)展性、快速迭代和豐富的游戲體驗。
19:22 ??publishing subscriber模型和回調(diào)函數(shù):在publishing subscriber模型中,callback是一個重要的組件,用于處理消息的動作。消息要素包括消息定義和處理函數(shù)。消息通過dispatcher發(fā)送到不同的接收者。事件的定義需要考慮類型和數(shù)據(jù)結(jié)構(gòu)。設(shè)計師可以定義各種event類型,以適應(yīng)不同的需求?;卣{(diào)函數(shù)需要提前注冊,但注冊和執(zhí)行的時間間隔可能導(dǎo)致問題。引入強(qiáng)引用和弱引用等概念可以解決對象生命周期的問題。
29:07 ??游戲引擎中的強(qiáng)引用和弱引用:本章節(jié)介紹了游戲引擎中的強(qiáng)引用和弱引用的概念。強(qiáng)引用(strong reference)表示對對象具有控制權(quán),只有房間不銷毀,房間內(nèi)的物體才不會被銷毀。而弱引用(weak reference)相對沒有那么強(qiáng)大,當(dāng)刪除引用時,需要判斷對象是否已被刪除。在游戲中,強(qiáng)引用和弱引用都非常有用,但必須正確使用。此外,還介紹了callback函數(shù)和物體引用關(guān)系以及消息分配系統(tǒng)的問題,并提出了采用event queue和ring buffer來優(yōu)化內(nèi)存管理的方法。
38:50 ??事件處理的重要性和問題:在游戲開發(fā)中,事件處理是一個重要的環(huán)節(jié)。為了提高游戲邏輯的穩(wěn)定性,我們可以將不同類型的事件進(jìn)行分類管理,例如網(wǎng)絡(luò)事件、戰(zhàn)斗事件和動畫事件等。這樣可以避免處理過多的事件和頻繁的回調(diào),提高引擎的效率和調(diào)試的便捷性。此外,事件處理還存在一些問題,如消息執(zhí)行順序無法保證和事件的延遲等,需要注意規(guī)避。在現(xiàn)代游戲引擎中,事件處理機(jī)制是游戲玩法系統(tǒng)的基礎(chǔ),開發(fā)者需要理解和掌握不同的處理方式,以提高游戲的開發(fā)效率和品質(zhì)。
48:33 ??腳本語言在游戲引擎中的應(yīng)用:腳本語言適合設(shè)計師定義游戲玩法,但改代碼很痛苦。腳本語言簡單,更新方便,適合運(yùn)行在虛擬機(jī)上,不會crash引擎。腳本語言在復(fù)雜網(wǎng)絡(luò)游戲的服務(wù)器端應(yīng)用廣泛,可以重新啟動服務(wù),不會crash整個引擎。腳本語言通過編譯器編譯成bytecode,在虛擬機(jī)上執(zhí)行。腳本語言通過GC管理對象,但GC效率慢,影響游戲時間。引擎設(shè)計時需考慮對象管理,取決于游戲類型。
58:15 ???腳本系統(tǒng)的應(yīng)用和架構(gòu)選擇:這個章節(jié)主要講述了腳本系統(tǒng)在游戲引擎中的應(yīng)用和架構(gòu)選擇。作者首先介紹了常見的一種架構(gòu),即將腳本作為組件擴(kuò)展,以實(shí)現(xiàn)一些業(yè)務(wù)邏輯,如AI系統(tǒng)和玩法設(shè)計。然后,作者提到了另一種有趣的架構(gòu),即將引擎作為SDK庫,由腳本控制整個流程。作者強(qiáng)調(diào)了腳本系統(tǒng)的重要特性之一是熱更新,通過修改函數(shù)指針實(shí)現(xiàn)。然而,使用腳本語言也存在一些問題,如效率低和類型管理困難。最后,作者提到了選擇腳本語言時應(yīng)考慮的因素,如功能豐富、效率高和面向?qū)ο蟮取?/p>
67:59 ??不同腳本語言的優(yōu)劣比較:Python是一種面向?qū)ο蟮木幊陶Z言,具有強(qiáng)大的擴(kuò)展庫,但內(nèi)存占用大。C#作為一種原生態(tài)編譯語言,學(xué)習(xí)成本低且社區(qū)支持強(qiáng)大,被越來越多的團(tuán)隊考慮作為擴(kuò)展語言。Unity依托于C#的可擴(kuò)展性,性能高且內(nèi)存占用適中??梢暬_本語言在現(xiàn)代游戲引擎中越來越受歡迎,為非程序背景的開發(fā)者提供了編程便利??梢暬_本語言的設(shè)計結(jié)構(gòu)包括變量、語句和控制流,通過管角和不同形狀或顏色的節(jié)點(diǎn)進(jìn)行數(shù)據(jù)類型定義和類型轉(zhuǎn)換,使編程變得更簡單、方便和可控。
77:39 ???可視化腳本系統(tǒng)的原理和應(yīng)用:本章節(jié)主要講述了可視化腳本系統(tǒng)的原理和應(yīng)用??梢暬_本系統(tǒng)類似于函數(shù)的概念,可以方便地將一系列操作打包在一起,并實(shí)現(xiàn)清晰的輸入和輸出。它可以形成一個接口單元,類似于高級語言的類。然而,在大型游戲產(chǎn)品中,可視化腳本系統(tǒng)的merge和debug過程會變得復(fù)雜和困難。因此,在工業(yè)化應(yīng)用中,可視化腳本系統(tǒng)需要進(jìn)一步完善和規(guī)范,以提高效率和可追蹤性??偟膩碚f,可視化腳本系統(tǒng)是一個適合藝術(shù)家和設(shè)計師進(jìn)行快速原型制作的工具,但在商業(yè)級應(yīng)用中仍需面對一些挑戰(zhàn)。
87:24 ??角色戰(zhàn)斗的控制系統(tǒng):角色戰(zhàn)斗的各種體系對游戲感知有直接影響,如移動細(xì)節(jié)、與環(huán)境互動、音效、物理系統(tǒng)等??刂葡到y(tǒng)負(fù)責(zé)將各種輸入設(shè)備轉(zhuǎn)化為游戲操作,如射擊中的瞄準(zhǔn)、鼠標(biāo)移動的吸附效果。反饋也是重要的,如手柄震動、RGB背光等??刂葡到y(tǒng)需要考慮不同環(huán)境下的操作,需要設(shè)計師參與定義。游戲與電影的區(qū)別在于游戲是主動媒體,需要用戶輸入和反饋互動。控制系統(tǒng)并不簡單,需要解決不同環(huán)境和操作的問題。
97:05 ???Control和Camera系統(tǒng)介紹:這個章節(jié)主要講述了游戲引擎中的Control和Camera系統(tǒng)。Control系統(tǒng)通過定義用戶輸入來實(shí)現(xiàn)不同行為,包括組合鍵和按鍵序列。Control系統(tǒng)決定了游戲的手感和反饋,如PS5手柄的聲音和麥克風(fēng)。Camera系統(tǒng)定義了相機(jī)的位置和視角,通過相機(jī)的遠(yuǎn)近、抖動和效果來實(shí)現(xiàn)游戲的代入感和畫面感。相機(jī)系統(tǒng)還包括相機(jī)切換和相機(jī)管理,以及相機(jī)的差值和效果調(diào)整。Camera系統(tǒng)是表達(dá)游戲主觀感受和提升游戲品質(zhì)的重要系統(tǒng)。
106:48 ??游戲內(nèi)GO之間的communication:這個章節(jié)講述了游戲內(nèi)GO之間的communication的統(tǒng)一模式,通過開放scripting系統(tǒng)讓設(shè)計師和藝術(shù)家定制游戲的玩法。不同類型的游戲需要修改引擎和代碼,因此每個優(yōu)秀的作品都有自己的Gameplay系統(tǒng)。未來平臺可能會禁止熱更,邏輯和表現(xiàn)可以分離但對現(xiàn)代游戲來說越來越密切相關(guān)。建議保持腳本和可視化腳本的雙重系統(tǒng),以滿足不同需求。
#AI課代表 #看視頻不分心 https://kedaibiao.pro 幫你記錄好內(nèi)容~