寫了一個2000行的屎山指令碼之後我大概真正理解了模組化和解耦合

作者:Orscat工作室 發布時間:2026年10月14日 19:46

晚上好朋友們,依舊好久不見,最近幾周好訊息和壞訊息都有。

首先是壞貓的神經問題基本痊癒,兩個瞳孔已經恢復到一樣大了,食慾也恢復正常。

《旅居魔女與她的畢業課題》實機截圖 1

壞訊息是似乎感染了貓癬,一檢查面積還蠻大的,不過貓癬本身也不是什麼嚴重的問題甚至營養全面的情況下可以自愈,只算個有點麻煩要每天上藥的小病,於是貓貓的問題算是結束了。

之後是開發進度,主角效能已經實現完畢,又做了兩種敵人,之後大概會用換色和隨機搭配一點盔甲模組讓場面看起來不那麼像克隆人戰爭。

《旅居魔女與她的畢業課題》實機截圖 2

本作大概會設定兩個或三個難度,並且難度不會影響劇情和成就,這樣我就可以在高難度下盡情堆怪了口牙。

關於敵人的部分,我希望玩家會面對有組織敵群,目前已經做完了劍盾兵和長矛兵的AI,當雙方同時存在時長矛兵會跟隨劍盾兵行動,並且如果長矛兵的數量夠多也會有防空的分工。

劍盾兵會試圖壓縮玩家的行動空間,當受到數次攻擊後盾牌破裂,變成行動速度更快攻擊慾望更強的普通單手劍士兵。

接下來在做的是雙手長劍,個人還是希望能尊重一定的史實劍術,於是雙手劍毫不意外地成了一個比單手劍更敏捷攻擊範圍也更大的糞怪(

目前的想法是雙手劍的基礎攻擊是向前邁步的下劈,玩家如果能在正確時機打出怒擊(這個以後再講,這裡的演算法我自己玩下來覺得有點不夠直觀,以後應該會最佳化)可以直接觸發斬殺,但拼刀時機錯誤就會觸發變招的橫劈,並且此時玩家很大機率處於拼刀後搖裡而無法躲開攻擊。

《旅居魔女與她的畢業課題》實機截圖 3

還是多用手槍吧,歡迎來到17世紀,小子。

最後講講標題裡說的模組化和解耦,原始需求是我希望能在玩家用近戰或手槍擊殺敵人時,給下一次使用另一種攻擊附加一個增益效果,但眼下還沒想好具體加什麼就決定先在角色指令碼里留一個空函式佔位。

那麼如何讓玩家角色知道自己擊殺呢,我第一時間想到的當然是在敵人指令碼里寫一個函式,死亡時通知玩家角色觸發對應的增益函式。

好在我想這個事的時候正在朋友打遊戲,有一個做架構相關工作的朋友跟我說你不要這麼搞,你這是典型的強耦合,到時候兩邊關聯起來之後再有改動會需要兩個指令碼一起改非常麻煩。

最後的實現方案是加一個全域性的訊號管理器,敵人側只負責發出訊號,玩家只負責接收訊號,兩個指令碼不需要知道自己的訊號發到哪裡。而且這樣測試起來也更簡單,我可以用任意順序去實現,當敵人指令碼做好之後只要訊號能發出就能視為測試透過並且去做下一件事。

順著這個回想了一下自己以前的工作,從測試到專案經理再順便做一些產品設計相關的事,雖然天天跟開發的同事也會聊開發思路,需求總結完決定先做哪裡後做哪裡,任務優先順序和測試順序這些,但沒實際接觸程式碼架構還是不知其所以然。當時最多能理解到的就是這部分介面寫好了我可以測試,但也沒想過為什麼介面會預留在這裡,還有為什麼這裡即使前端還沒提交也可以先測試。

程式碼架構,很神奇吧。

總之先到這裡吧,雙手劍的敵人攻擊動畫還有一堆問題,在橫板2D遊戲裡做長劍橫斬這種透視變形有點超過自己的能力上限,不過總會做出來的。

《旅居魔女與她的畢業課題》實機截圖 4

另外,最近在玩風雨來記,感謝製作漢化的大佬,這大概會是本人今年玩到的後勁最大的作品,等打完之後再來寫長評好了。

最後的最後,新作還要很久嗎,先買一份旅居魔女吧,謝謝喵。

旅居魔女與她的畢業課題
旅居魔女與她的畢業課題
¥26