網頁

2017年12月19日 星期二

【社群】卡牌在效果處理前離開原本區域、又回到原本區域,決定讓它效果仍然有效


最近用腦量挺大的,過了一關又有一關。

這次是考慮到某些效果較特殊的牌,
舉例來說,像是爐石戰記的
「克蘇恩」「派奇」「弱效碧玉法術石」等等,
在處理效果到一半時,若正好因其他效果而離開原本區域、
又或者被奪取控制權,這種情況下當然應該要算作無效了
(克蘇恩例外,只有在被奪取控制權的情況下才會無效);

但又假設,如果在效果處理到一半時,
該卡先離開原本區域、然後又回到原本區域,
到底該算作有效或無效?

在我以前常玩的卡牌遊戲中,
有的規則會將它視為不同卡牌而無效,
但這樣的規則,和我原本規劃的程式架構會有所衝突,
雖然是可以為它開特例,
但想想還是維持邏輯的簡潔、一致性比較好,
所以就決定讓它維持有效了。

(事實上,這種可能性發生的機率極低,
若不刻意去營造,可能完全都不會遇上,
所以更沒必要為它開特例了)

2017年12月17日 星期日

【社群】打算將Token獨立出來、不視為卡牌


這週進度做到一半時卡住了,
原因在於身為「企劃的我」和「程式的我」意見混雜在一起,難以抉擇的緣故。

簡單來說,問題就是在於
「卡牌產生的Token,是否要視為卡牌?」
這在許多遊戲中的做法都不同,
會影響到卡牌「回手」等效果的處理。
(若不視為卡牌,Token回手通常就直接消滅)

由於《無限技域》的手牌上限不高,
即時制的玩法也提高了思考難度,
因此目前是打算將Token獨立出來、不視為卡牌,
這樣即使以後設計了大量回手的效果,
也不必擔心被一堆廢卡塞爆了。

2017年12月4日 星期一

【社群】成功使用Unity新功能打包圖集並動態載入


由於卡牌遊戲的卡圖總數既多,
又會隨著玩家牌組不同而有非常多的排列組合,
如果每局都將所有卡圖載入肯定是不行的,
遊戲中動態載入的話,
也需要考慮到瞬間的效能消耗、以及Draw Call結合的問題。

因此上禮拜就是在研究這個了,
吸收大量資訊+實際測試後,
得出的結論是用<Image>取代<SpriteRenderer>,
在Layer管理上會直覺許多,
如Raycast Target、Filled Image Type等功能也較完善,
至於消耗效能稍多的問題就以Canvas動靜分離的方式來節省。

並且以uGUI新的SpriteAtlas來取代Packing Tag,
以新的AssetBundle、LoadFromFile + StreamingAssets
取代Resources.Load,
成功實現了將大量圖片打包成圖集後,
於每局遊戲開始前動態載入會用到的部分,
並且載入多張圖也都算是同一個Draw Call。

研究到此總算是告一段落,可以繼續往下寫了,
也順便跟大家分享一下這點心得,
若有更好的方式歡迎討論指教唷!