創作內容

2 GP

4/28,主要先針對陣型系統與好友系統(16:05更,今日實況結束)

作者:李兒諳│2017-04-28 11:04:41│巴幣:4│人氣:380
原始碼依然在
很多東西寫在程式碼註解中
Github上看的灰色部份
若用Notepad++來看很可能是綠色部份
雖然設定應該是可以調
(比較重要的程式註解
我是喜歡用//來寫
我通常用/* */框一大段的
都是比較沒那麼重要的居多
至少以這份檔案來說
以前寫俄羅斯方塊系列時的註解方式我好像也是框一大塊)

陣型系統指的是
     
     
     
     
     
     
這類或變形的系統

例如:
《軒轅劍伍》、《軒轅劍外傳─雲之遙》
與日本很多的同人類型遊戲那種有 前後列 甚至是多列 或與替補角色替換 等設計的
若不談前後列切換與些替補角色一類的
那符合的遊戲更多了
像是《仙劍奇俠傳三》 《仙劍奇俠傳三外傳─問情篇》
與一部份的非卡牌對撞類的RPG網頁遊戲
(有陣型的手機遊戲就稍嫌少見些,因為手機有耗電問題
比網頁遊戲需要互動,不然容易造成流失與無聊、心焦情緒)
像是《墨戰》、《龍將》、《神仙道》
當然手機遊戲─《刀塔傳奇》其實也有沒那麼嚴格的陣型系統

現在突然想到個比較好的解釋方式
陣型系統─也就是角色擺的位置與被攻擊的順序有關的遊戲

(繼續寫
先寫下想法或者美其名為"設計文件"、"手稿"好了

嗯,大概決定了
等下睡醒後
要做的是
1 2 3
4 5 6
7 8 9
與敵人的
7 8 9
4 5 6
1 2 3
的攻擊順序程式實作
至於具體攻擊順序
看能不能用腳本或者說組態檔的方式來設定

還有視覺呈現的問題
也就是說
戰鬥時有時會不僅只是更換背景
類似網易投資、營運的《陰陽師》
有時在劇情模式下
會變成 我方把敵人圍起來打的狀況)

這次若有檔案
會Github跟OneDrive都放

睡醒了
正在思考用寫死的與仇恨值的實作差異
準備開始寫程式

陣型系統
因為遊戲模式不同的關係
所以有時要怎麼處理車輪戰(以前有看過英文,但突然忘記寫法)
也就是連戰、連續戰鬥(通常沒補給或些微回復)
面對那時要先想好
(這比較算是RPG一類回合制
或說不是以鍵盤、手眼協調與反應時間為主要操控模式的遊戲
本身的問題

RPG除去《仙劍奇俠傳2》以外
大多是讀檔或者是轉換頁面時
才會刷新怪物
而《仙劍奇俠傳4》才比較有連續作戰的系統在)

------------------------------------------------
先想好仇恨值(hate value?)要怎麼處理再繼續

陣列(存角色站位的)存的東西可能是物件
或者是能對應到具體角色、物件的東西(例如物件可能會有的編號值)

然後仇恨值
嗯...
其實直接存在第幾個位置的仇恨值好像也可以
14:25補充
戰鬥不能後再清空
甚至是可以藉此做出角色退場後要強制吸收火力的效果
雖然應該是有別的做法可以實現相同效果
也就是說乾脆直接做個仇恨值陣列?
不過這麼做的優缺點
還不太確定、明朗就是了

陣型系統的分類
與仇恨值系統的差異
要再次思考下

有些遊戲的做法是
幾號位就專門打幾號位
而大多數的遊戲是前排沒死的狀況下
只能靠技能或角色攻擊特性一類的打後排
類似象棋中的 包、炮這樣(好像有些象棋種類是寫砲、炮)

所以隱約覺得跟仇恨值好像不太相同
但我猜也可以用仇恨值系統實作出類似效果
像是陣列位置對應的仇恨值優先
這樣還能輕易做出仇恨值為0時
有機會閃掉攻擊的效果
(呀,不過我的思考方式很常會違反 單一功能原則 與 保持簡單原則
一次只做一件事情比較不會亂
但大原則是這樣,很多時候一次只做一件事情
就跟「不懂就要問」
其實實作上是很容易出問題的
這就是為何
學物件導向、設計模式這些東西前
應該是要先多寫程式才對
寫的程式、處理的狀況種類不夠多
那種前人的踩地雷經驗很難切身體會、具體傳承
正如《資本論》線上版 所說
歷史的發展順序,與後來在學習的順序往往是反過來的
很多時候是有後面的結論
歸納出前面的公理、定理、定律
可是古代人往往不是從公理、定理、定律出發來研究事情的)

------------------------------------------------

再拉回主題下
有些遊戲的做法是
幾號位就專門打幾號位
而大多數的遊戲是前排沒死的狀況下
只能靠技能或角色攻擊特性一類的打後排

現在仔細思考這問題
我是覺得用仇恨值的實作方式應該還是有明顯的優點在
如果用腳本語言或者說是那類組態設定方式來做
感覺會明顯麻煩很多

不過我不太確定這直覺可不可靠
(結論會比較麻煩是肯定的
例如我可能會需要引入jQuery或者是寫類似的程式碼
來讀取伺服器上的文件
就沒辦法像現在幾乎用比較常見的瀏覽器還不會出事
雖然在http://或https://底下
本來就不太會出事
(那時比較容易出事的是流量與HTTP或說網頁伺服器本身,而不是網頁)
只是單機測試時
Firefox比較能夠靠
file:///這種開啟方式來測試網頁的功能是否正常
但仇恨值系統能否取代硬寫的,這件事情有待商榷)

ZoC(Zone of Control):
時常忘記這術語,就地形卡位
可以想成用A*演算法時
有敵方單位旁的鄰近幾格
會變得禁止通行或者是行走成本非常高
通常是禁止通行才會被說為ZoC

現在假設只有 常見六面骰子的五 那圖形在我方有站位

X X
X
X X
對敵人,簡單起見的話,先塞滿九宮格吧
OOO
OOO
OOO
敵人的代號暫定為
123
456
789

有些遊戲的設計是
暫時只看我方最左側
也就是↓
X

X
只能打
123
或者是147
若是單體攻擊
很可能只能打1

因此這部份與傳統的仇恨值系統略有差異
畢竟傳統仇恨值系統
考慮的狀況是 一個單位會去打哪幾個單位
至於尋路狀況、目標是否在攻擊範圍內則是另一件事情
就遊戲特性本身不同導致的狀況

思考下函數的自變數吧
自變數指的是
受哪些因素的影響
例如 f(x) 是受x值的影響
f(x,y) 是受 x,y值的影響
以此類推
因此可以想成副程式或者說函式要傳的參數

攻擊哪個單位會受到哪些因素影響?
被攻擊的單位
可能有個優先權
傳統對於敵人、Boss來說的話
是鎖定第一個攻擊Boss的 或者是 離Boss最近的
又或者是仇恨值最高的
所以陣型系統
其實理論上是不需要仇恨值設計的
只是如果陣型系統不用仇恨值設計
若有需要更改
可能會有些麻煩在

假若不用仇恨值

假設行動順序:{1 3 5 7 9}這樣(之前六面骰五的陣型)
輪到1
根據職業特性,然後開始遍歷敵方站位陣列
{123
456
789}
(個人喜歡一維陣列,只是分三排表示
陣列就是數組,array,配列(はいれつ)
雖然各程式語言的陣列可能意義不太一樣
像Javascript的陣列跟鏈結串列、堆疊、佇列很難分
看各瀏覽器的具體實作方式而定)

所以最優先針對的是敵人的1
假如對應的位置1沒有的話呢?
看設計
有些可能先掃直的,可能先掃橫的
(橫的直的具體方向不管
也就是循固定方向來掃的設計較符合直覺
與較能讓玩家習慣
不然其實也可以隨機尋找下個目標
該場戰鬥固定那攻擊順序即可)

唔~
所以說用仇恨值系統感覺好像有些複雜化這類遊戲
用仇恨值系統的優點是
如果突然決定不做這類遊戲
還有些轉圜餘地
不過這種程度的優點...
總之
個人還是比較想用仇恨值系統來做這件事情
雖然上述想的過程
感覺好像攻擊順序跟仇恨值是兩回事
陣型系統的話
攻擊對象主要不是靠仇恨值決定
若硬要用仇恨值來決定
大概就是在以下三種情形挑一個

1.幾乎捨棄陣型系統,採取的做法可能會是像《かくりよの門》
透過增加仇恨值的招式,大多要前排,也就是在特定位置才能用
這樣間接達到,玩家會把坦放在前排的目的
(其實我沒有這個目的啊!!只是對於一般人來說,這樣排比較合理
個人喜歡的遊戲類型是
能夠打到螢幕外的
我的意思是,在進入戰場之前,就可能會被削血
那種伏筆在很早期的戰鬥就決定的
而不是真的靠玩家自己私下的物理攻擊
或者是在打地鼠與些遊戲主機裝些類似按老虎、鱷魚牙齒的陷阱
這類來打到螢幕外!!)

2.仇恨值系統裝飾用,根據隊列與職業特性
在行動時臨時在對應位置加上高額仇恨值
也就是說...其實跟陣型系統寫死程式碼差不了多少,還更麻煩
除非有那種扛攻擊或者是暫時喪失隊列與職業特性的相應設計在

3.戰鬥時隨機挑第一種狀況或者第二種狀況之後再進行

也就是在第三種作法雙系統或說兩種函式都要寫
嗯,那我當然是想寫第三種啦
不然前兩種感覺沒什麼作用(或者說個人覺得不夠好玩)嘛!!
(又或者說是
在寫編譯器時
除非是學習為目標
不然C++編譯器與C編譯器
當然是寫C++編譯器
C++是C語言的超集合
有能力的話當然是寫C++編譯器
最好是 C++ 17這類較新且有向下相容的版本
雖然C++ 17有沒有向下相容其實我還沒研究過)
雖然說以個人的美工、排版與介面設計能力來看
不管怎麼做幾乎本來就不太好玩
今天實況就差不多到這邊

明天是否會繼續這系統的實作
還是先想
如何在這類系統讓好友發揮功能
雖然我這類遊戲還沒有伺服器端的設計
也就是說
好友其實是類似AI與資料庫、資料一類的東西
(網頁遊戲大多不適合做即時交互功能的設計
特別是在玩家同時在線量破百萬、千萬級別的遊戲而言
這也是為何大陸那邊很常出產一些
不太像任天堂、Sega主機系列的遊戲的遊戲
此外當一遊戲講究技術時
是很難收費的
就算是外觀也一樣
因為玩家基本上可以靠著修改客戶端的程式
來顯示自己想要的模型
(抱歉,後來想起來沒那麼麻煩,其實只要改模型檔就能顯示想要的模型
只是可能每幾次更新都會調整檔案格式,讓自己原先的修改不能用這樣
所以關於網路遊戲有種東西叫"私服")
那根本不需要買
看對於玩家的技術的技術是怎麼定義而定
例如任天堂、Sega時代很多玩家技術也很高超
就算是硬體、主機
卡帶照樣能盜版這樣的技術)

今天實況結束前文章大概就這樣
實況結束後
看個人狀況可能會更新這篇或Github上的檔案
並先傳下相同檔案到OneDrive的備份
其中的hate.html
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3558400
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 1 篇留言

李兒諳
我後來回想了下
《仙劍奇俠傳三》跟《仙劍奇俠傳三外傳─問情篇》
確實是陣型系統
有些武器打橫的
有些武器打直的
一陣子沒玩
沒回憶印象有些模糊了

04-28 20:30

我要留言提醒:您尚未登入,請先登入再留言

2喜歡★y541258 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:4/28,預計研究一般不... 後一篇:4/29,談下週與更未來...

追蹤私訊切換新版閱覽

作品資料夾

s9051035404大家
日本實話怪談翻譯-業務K系列更新了~歡迎來我的小屋坐坐~看更多我要大聲說10小時前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】