Doom engine reject解析筆記

更新於 2023/03/08閱讀時間約 1 分鐘
Reject是附屬在map data裡面的一個表格,存放的位置和長度都是紀錄在WAD最前面的lump目錄裡。Reject是一個表格,用來設定放在某個sector(地圖上的一個被圍起來的空間, 詳細說明參照sectors和linedefs)的怪物有機會看到哪幾個sector的玩家。觸發查表的條件尚待確認
所有怪物在地圖產生時都是發呆不動,直到看到或聽到玩家才被觸發,reject table用來快速判斷怪物有沒有看到玩家的"可能性",如果有玩家在怪物視線可及的地方就會進行更進一步的觸發判斷。這是在電腦算力不足的年代用來節省計算資源的手段,算力爆發年代可以忽視他。
表格由一堆布林值組成,水平軸是玩家所在sector,垂直軸是怪物所在sector。每個布林值都是1bit,會以左到右、上到下的順序封裝成byte,解開資料時會從LSB開始讀。每個map的reject table size是roundup(sector^2 / 8),以E1M1來說sector有85個,所以是904byte。
以doom wiki的範例來說明,一個有5 sector的地圖,怪物在sector3看得到在sector 2,3的玩家、看不到sector 0,1,4的玩家。這個表會被封裝成b11000101, b00111110, b00100110, b00000001,轉成hex是0xC5, 0x3E, 0x26, 0x01。轉換時表格沒有用到的位數補0補滿到8的倍數。
   p0 p1 p2 p3 p4
m0  1  0  1  0  0
m1  0  1  1  0  1
m2  1  1  1  1  0
m3  0  0  1  1  0
m4  0  1  0  0  1
真正使用時通常只讀取半個表格,因為是對稱的。
為什麼會看到廣告
avatar-img
6會員
63內容數
ktest
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
hls Ding的沙龍 的其他內容
blockmap是附屬在map data裡面的一個資料結構,說明blockmap的結構
兩種在windows系統用win32 api關閉輸入法的作法
在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
blockmap是附屬在map data裡面的一個資料結構,說明blockmap的結構
兩種在windows系統用win32 api關閉輸入法的作法
在樹莓派安裝OpenCV的紀錄。板子是樹莓派3B(沒有+),系統raspbian bullseye 32bit灌到USB隨身碟。
你可能也想看
Google News 追蹤
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Prompt Engineering 是一門藝術和科學,它精心設計有效的提示,以從人工智慧模型中誘發所需
Thumbnail
前一篇我們有提到「【Generative AI - Prompt篇】Ep.3 讓AI身歷其境的角色提示法」如何催眠AI成為專家,藉著該提示技巧讓AI可以針對該領域進行專業的回答,但…這還不夠,我們還希望AI可以更強大,可以根據我們設計的範本,進行相同規格的輸入與輸出。 我們在前面幾個篇章也玩過一些P
Thumbnail
前面我們有介紹「【Generative AI — Prompt篇】Ep.1 什麼是Prompt Engineering?」相信對於下指令給AI應該已經具有基本知識,那麼這一次我們來介紹Prompt技巧中的其中一環「角色提示法」,這是什麼樣的一種魔法呢? 很簡單,我們就是讓AI變身成專家,賦予特定領域
Thumbnail
前面我們有介紹「【Generative AI — Prompt篇】Ep.1 什麼是Prompt Engineering?」相信對於下指令給AI應該已經具有基本知識了吧,在進入Prompt Engineering之前有一些Guideline是我們需要知道的,就如同線上遊戲一般,我們會先進到新手村學習一
Thumbnail
「Prompt」這個詞是提示的意思,但為什麼需要提示呢? 當AI不理解我們的時候,勢必給出的回應並非準確的為我們解答,因此一個好的提示是非常重要的,就如同我們人與人之間的溝通一樣,如何將自己心裡的疑惑轉化成好的問題來提問對方,讓對方理解,進而給出一個明確的答案,這就是提示(Prompt)的重要性,對
Thumbnail
相信很多電玩迷,尤其是毀滅戰士迷 (DOOMer),看到這個標題會發出會心的一笑,因為它是個人電腦上最出色的電動遊戲。 DOOM 是由 ID Software 公司所發行的電動遊戲。它的前身是德軍總部(Wolfstein 3D),後因市場反應熱烈而出了 DOOM 這款電玩。 使用者面對一個非常立體的
本文簡單描述該如何設定UE4內的物件碰撞,以及各個選項的意義 碰撞 在Project Settings裡面,可以調整預設的碰撞設定 把大部分的物體都設上去會很方便,真的沒辦法的時候可以對物體直接調為Custom Object Channel 設定物體的類型 預設的有 Vehicle:載具,例如車輛
Thumbnail
有時候都覺得,這裡及周邊地帶都太過正向,我的心底總會想背道而馳。我的情緒天秤會自動校正,太正向我會白眼,我需要負面來平衡。我就是看到心靈雞湯會想吐。 所以我持續有在聽 doomy 的東西。
Thumbnail
*合作聲明與警語: 本文係由國泰世華銀行邀稿。 證券服務係由國泰世華銀行辦理共同行銷證券經紀開戶業務,定期定額(股)服務由國泰綜合證券提供。   剛出社會的時候,很常在各種 Podcast 或 YouTube 甚至是在朋友間聊天,都會聽到各種市場動態、理財話題,像是:聯準會降息或是近期哪些科
我們人類和ChatGPT的對話技巧也是需要學習的,有鑑於此,我想要一天分享一點「和ChatGPT對話的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 Prompt Engineering 是一門藝術和科學,它精心設計有效的提示,以從人工智慧模型中誘發所需
Thumbnail
前一篇我們有提到「【Generative AI - Prompt篇】Ep.3 讓AI身歷其境的角色提示法」如何催眠AI成為專家,藉著該提示技巧讓AI可以針對該領域進行專業的回答,但…這還不夠,我們還希望AI可以更強大,可以根據我們設計的範本,進行相同規格的輸入與輸出。 我們在前面幾個篇章也玩過一些P
Thumbnail
前面我們有介紹「【Generative AI — Prompt篇】Ep.1 什麼是Prompt Engineering?」相信對於下指令給AI應該已經具有基本知識,那麼這一次我們來介紹Prompt技巧中的其中一環「角色提示法」,這是什麼樣的一種魔法呢? 很簡單,我們就是讓AI變身成專家,賦予特定領域
Thumbnail
前面我們有介紹「【Generative AI — Prompt篇】Ep.1 什麼是Prompt Engineering?」相信對於下指令給AI應該已經具有基本知識了吧,在進入Prompt Engineering之前有一些Guideline是我們需要知道的,就如同線上遊戲一般,我們會先進到新手村學習一
Thumbnail
「Prompt」這個詞是提示的意思,但為什麼需要提示呢? 當AI不理解我們的時候,勢必給出的回應並非準確的為我們解答,因此一個好的提示是非常重要的,就如同我們人與人之間的溝通一樣,如何將自己心裡的疑惑轉化成好的問題來提問對方,讓對方理解,進而給出一個明確的答案,這就是提示(Prompt)的重要性,對
Thumbnail
相信很多電玩迷,尤其是毀滅戰士迷 (DOOMer),看到這個標題會發出會心的一笑,因為它是個人電腦上最出色的電動遊戲。 DOOM 是由 ID Software 公司所發行的電動遊戲。它的前身是德軍總部(Wolfstein 3D),後因市場反應熱烈而出了 DOOM 這款電玩。 使用者面對一個非常立體的
本文簡單描述該如何設定UE4內的物件碰撞,以及各個選項的意義 碰撞 在Project Settings裡面,可以調整預設的碰撞設定 把大部分的物體都設上去會很方便,真的沒辦法的時候可以對物體直接調為Custom Object Channel 設定物體的類型 預設的有 Vehicle:載具,例如車輛
Thumbnail
有時候都覺得,這裡及周邊地帶都太過正向,我的心底總會想背道而馳。我的情緒天秤會自動校正,太正向我會白眼,我需要負面來平衡。我就是看到心靈雞湯會想吐。 所以我持續有在聽 doomy 的東西。