[SheltCube] #1 創世神,不會飛 | 遊戲 LineBot 開發小記

2022/12/30閱讀時間約 8 分鐘
此篇為先前已發布之文章,僅重新分類專題及更改標題,內容並未做修改。

文前碎碎念

這天,我的手指正如往常一般,節奏性的彈奏著電腦鍵盤。
數小時後,工作總算告一段落,滑鼠默默移入視線,輕輕的按下了儲存,並上傳這次的專案更新。
我如釋重負的拿起手機,點開創作平台的瞬間,才像是回過神般的意識到,自己似乎好一段時間沒寫給人類看的東西了,不如就趁這個機會,分享一下近期關於開發的心得吧。

鍵盤的喀噠節奏,又再次響起

夢想,我,想創世

以上,大概就是我一兩週以來的生活寫照吧。
除了工作上的程式開發外,又因為前一陣子回鍋補了《刀劍神域》系列動畫,突然靈感乍現,而將一個被我擺爛已久的遊戲專案再度拿出來修改,因此大半的時間,都拿來摳頂了。
不過,與其說是遊戲,以現在的狀態來說,這個作品其實也還沒完整到那個地步。
這個專案的起源,大概是在一兩年前,我還在開發另一隻泛用型 LINE Bot 的時候,異想天開的將一些以前寫過的零碎系統,整合到主架構中,所衍伸出的附加模組。
當初會想組合這些內容的目的,比起單純製作一個有固定劇情的遊戲,我反倒更希望做出一款能夠隨時間成長的架空世界核心,就有點像是以 Minecraft 這類沙盒遊戲為基底,再混上一般開放 RPG 的感覺,並使用文字的方式來呈現。
而為了建立一個具有擴充彈性的架構,除了使用者最初生成角色所使用的資源,以及一些基本的元素定義之外,我並不打算把故事線寫死,藉此允許內容能隨時增減,或甚至透過互動而有所變動。
除此之外,我也希望能建立一些讓這個文字世界的參與者,也可以打造新事物的機制,並在其中能有一定程度的互相接觸,藉以讓這個世界,能有一些真正『活著』的元素在運作著。
隨著想法越來越多,這個模組也就這麼越長越大,最終被我從最原始的那隻機器人中分割出來,成為一位獨立運行的世界管理員了。

積少話談

說完整體方向,接著就回頭來看看,這個世界目前已經具備的功能,也稍微展示一下具體運作的樣子吧!

基礎架構

先從架構說起,大家應該都知道,所謂聊天機器人,基本上就是一問一答的運作形態,而這個世界核心所依附的機器人,就是扮演著使用者,這裡暫稱為「居民」們,與核心間溝通者的角色。
正常情況下,居民可以透過對機器人輸入特定字句組合,來獲得相對應結果描述。
但如果要做任何動作前,都要思考如何輸入的話,是一件非常麻煩的事。
再加上目前核心中,已經存在數十條指令組合,連我這位開發者都沒有全記住的情況下,何況是使用者呢?
幸好,在 LINE 所提供的套件中,官方有提供了許多,可以透過程式客製化的多樣訊息格式。
因此大部分的情況下,都可以透過直接點按選單來取代文字輸入,除了簡化操作外,還可以省去重頭刻介面的精力,這麽方便,又一舉多得的工具,何樂而不用呢。

世界系統

在功能性部分,目前已經具備的基礎系統,包括有基本的人設生成、能力數值計算,還有簡易素材蒐集、收藏小屋、遊戲預設物品製作,還有商店系統等。
而其餘較具有互動性的,就是簡單的迷宮探索、自動戰鬥、農場,還有可獲得獎勵的隨機打工事件。
嚴格說起來,整體進度,基本上還在起始的階段,也就是初步的把一些遊戲中可能會出現的基本互動元素,盡可能以某種形式,重新呈現在這隻機器人中而已。

重啟的氣象

就跟前面提到的一樣,這次專案重啟,多少也有受到刀劍世界觀的啟發,不過真正推動我的,也倒不是動畫中的主線劇情,而是在無意間注意到了故事中遊戲世界的物品打造,跟玩家跟對戰兩種主要機制。
而這兩項系統,也正是目前在自己的世界中所沒有的,因此就著手嘗試加入看看。

居民創造

這次首先新增的,就是所謂的「鍛造」功能。
居民可以利用之前已持有的素材,加上既有的物品為基底,進行道具的升級,或是直接製造出新的物品。
而同時,鍛造後的物品,也能獲得與使用的材料,相對應的數值加成,也算是補足了一個之前遊戲平衡上,可以搜集素材,但沒地方使用的缺憾。
這裡假設我用背包裡的材料,製做出了一隻「魔法卯咪」的話,我就可以直接在小屋中看到這個物品,也可以看到物品自動被賦予了與使用的素材,相對應的數值加成。
而被製造出的物品屬性中,也會留存著原鍛造者的簽名,以及自訂的訊息,就算之後被交易後,也不會丟失。
嗯?剛剛是提到交易了嗎?
沒錯,既然都允許居民自行製造出物品,那當然要有相關的流轉機制存在囉,不然單純做出來堆在小屋中,多沒意思!
目前在鍛造系統中製作的物品,除了可以在自己的小屋中查看資訊之外,還可以選擇銷毀或販售物品。
而且,除非持有物品者選擇銷毀,不然物品在每次售出後,都會再進入到世界核心的通用資源庫中,其他居民就有機會在商店,或是透過其他探索系統中獲取這件物品。
像是我把鍛造出的「魔法卯咪」拿去販售後,在其他居民的商店中看到的就會像是這張圖一樣。
這張是用較舊版本,所以顯示效果不同
而對方,也可以像是在其他商店系統一樣,直接使用持有的金幣購買,而物品也會隨之從資源庫中消失。
也就是說,每次鍛造出來的物品,就只會有這麼一個,就算是名稱、數值相同,也會是兩個獨立的物品。
聲明:這裡的「魔法卯咪」只是雕像而已喔,我保證沒有任何卯咪在這次試驗中受到傷害 XD。

居民過招

另外,在這次的更新中,我也順手加上了可以與其他居民隨機配對,進行「對戰」的功能。
雖然這隻機器人本體,被我設定成一對一的單人,而非群聊的使用模式,但為了讓居民間,能在不直接對接的情況下,還能保有一定互動性,我使用了一些比較曲折的方案,來達成對戰的效果。
不過,也因為採用方法的限制,所配對到的「對手」資訊,也只會是對方的「分靈體」而已。
而且在機能上,採用的也還是相對陽春的回合式機制,畢竟戰鬥的運作,還是會依賴到其他基礎架構的交互相連,在各系統都完善前,也大概是還做不出什麼太花俏的變化。

不過,目前這些系統都是新加入的,也算在調整階段,未來有機會的話,還是會再繼續做更進,說不定在這篇筆記發出去後,又會來個大改版了呢~

現實,我,不會飛

雖然在文章前半,對於這個「世界」的期望,確實有訂了一個宏大的藍圖,並立下許多天馬行空,又中二的妄想,但冷靜思考後,又總覺得有些地方還是過於理想,而顯得不切實際。
畢竟,一切幻想到了最後,終究得回到地表。

避風港

說到底,這個專案目前的整體定位,依然還是處在一個興趣使然的小型創作狀態。
而在內容部分,大多也是自己單純為了技術試刀而加入的,目的也只是為了證明一個「我或許也能做出來」的想法。
不過,也跟他的命名 SheltCube 一樣,我也希望在未來某天,他能作為一個,自己在不想面對現實的無趣時候,可以投入去建立的空間,一個如避難所般存在的,另一個世界。

技術債

雖然自己對於這個作品,依然保有許多想像想要實踐,但礙於所選的呈現平台,還有最麻煩,同時也是最殘酷的一點,我個人技術水準的緣故,有些東西還是不得不做出一些妥協。
尤其是時隔多年後,再度打開這個專案時,我真的莫名燃起一股想要回到過去,狠狠揍自己一拳的衝動。
在這次的更新中,光是要在之前所留下的系統中,再進行功能性的擴充,就快要改寫掉四分之一的程式碼了,更不用說還有一些過去,因為偷懶複製貼上,而多寫的冗碼,以及同樣被爛尾,尚未完善的系統等等。

遙遠的理想

而看著近期,越來越被熱絡討論的元宇宙話題興起,各大相關專案、技術也像春筍般冒出,反觀手邊的成品,雖說目標是想創世,但先不提如同龜速般的開發進度,說不定等到自己對於作品整體都大致滿意的時候,大家都已經在其他更好的虛擬世界中,玩上好幾圈了。
只能說,徒有想法,但自己所具備的能力,卻還不足以完美實踐的感覺,真的是很令人不甘啊。

緩慢前進

至於這隻機器人,接下來會如何發展,又是否會讓更多人加入使用,就看後續的調整了吧。
畢竟,目前的規模並不大,因此後端伺服器部分,也是使用基礎的輕量化方案,在規格及效能上依舊有蠻大的限制。
不過,如果未來有相關計畫時,也會隨時更新,有興趣的,可以發囉一下資訊喔。

那麼今天就先分享到這裡
大家下次見囉

〔 作者已登出 〕
為什麼會看到廣告
25會員
172內容數
偽命名並非無名,是為了意識的生存,取得身份的代號,成為數位生命的新載具。
留言0
查看全部
發表第一個留言支持創作者!