前往
大廳
主題

月底製作日誌兼雜談-第57回(2025/02)

Mr.JX | 2025-03-05 23:53:26 | 巴幣 1114 | 人氣 66

「無限幻想」總進度(僅供參考):20.5%
「無限幻想」主線劇情(第二章):13.5%
「雪花的夢」總進度(僅供參考):100.0%
---
「無限幻想」目前製作中段落部分
地圖數量:128
怪物資料:141(47*3)
第二章主線:2/11-地圖繪製、重要角色臉圖繪製
---
Hololive-5期生 二次創作遊戲
「Dream of YukiHana - 雪花的夢」目前製作中段落部分
完工,投稿等審核結果中,測試與Steam連動的功能
---

經過過年、工作、頻繁跑出差、搶票(?)並準備出國自由行&參加活動
回過神來發現這2個月很快就過了
雖然佔另一個大半的是上個月提到的
「1月下旬到現在基本上都在和steamworks搏鬥」
所以這次日常也省略,來記錄一下這方面的心得

先20字內說完
這篇非教學,碎碎念居多,因為這玩意真的挺難用的

PS:截稿的時間點,「雪花的夢」尚在等待Holoindie官方審查
目前準備steamworks基本上以摸索流程與相關功能為主
以及這個時間尚未完成所有的上架準備,因此僅以目前接觸到的部分為主

統整下來,這段期間在steamworks上做了這些

1.申請steamworks的開發者身分
除了繳傳說中的100美金(3200NT)的上架費(兼保證金)外
還有身分驗證,跟美國的稅務有關的資料等
這個有找到不少中文圈的教學,但還是得很小心照實填寫,至少最後是順利過關了

2.通過驗證,開始設定遊戲在steam商店頁的資料
平常逛Steam逛得很自然,但進到後台就發現
「...喔靠北,一個作品要上架所需準備的資料與圖片超乎想像的多」
以前在R版發遊戲時的圖文介紹那些只是一小部分
首先是你的遊戲在steam上由系統分類與分級的設定項目
然後是有相當多種尺寸的宣傳圖片要準備
平常可能覺得很自然出現在各種角落(像是橫幅、列表、側邊等)
那些其實都有自己的尺寸,不是一張圖讓系統幫你縮放喬好的
然後還有遊戲的分級(不是台灣的那種),以及支援的控制器種類,建議配備等

3.前台(商店頁)與後台(遊戲組件)
像上面提到的還只是前台的部分
還有後台關於遊戲本體,一些與Steam連動的附加功能之類的設定
...這裡又被震撼教育到,還是看過這教學影片才比較有概念
簡單說,就是上傳的遊戲檔案不會是單純的主程式讓玩家下載就好
指派安裝資料夾,啟動指令等
以及在steam上,這種打包檔案有個單位「Depot」以及「組建(build)」,甚至還有「分支」等
就好比你的遊戲有賣「本體」、「DLC1」、「DLC2」、「原聲帶」
既然有4個部分,那你的遊戲就會有4個Depot,可以各別決定有哪些license的玩家能取得哪些部分
4個部分能被打包成1個版本,例如1.0版本,如果中途更新了,要再另外打包成1.1版本
...我想應該理解沒錯吧

搞到我能夠用自己的帳號先測試
也就是模擬自己是玩家,用steam介面下載並啟動遊戲玩看看
我似乎搞了半個月還是一個月之久
而且現在把遊戲上傳的方法似乎已經改進了不少,以前更夭壽的樣子

4.讓RMVA的遊戲連動Steam成就
因為在RM比賽2020看過有作品能連動成就,所以確定可行
然後就找到了RGSS連動SteamAPI的開源範例
趁這個機會來惡補了一下Win32API與DLL
從開始用XP到現在VA的4個作品,我現在才第一次動用Win32API
透過範例大致搞懂RM要怎麼與Steam連動後,把相關指令整合到遊戲架構裡,成功觸發成就了
到這邊是還OK,也順便試了一下其他功能
...然後就踢到鐵板了

5.嘗試連動Steam的排行榜功能
在查steamworks的說明書時,發現他有「排行榜」的功能
也就是steam本身就提供讓遊戲上傳玩家的分數做排名,也可以公開讓所有玩家看
因此想做STG的分數排名,也不用另外架伺服器是有可行性的
更進一步,有些商業作的STG甚至還可以把Replay檔案一起上傳,讓其他玩家觀看都行
說明書也很直接這樣寫了,所以就開始研究
本來是想說以排行榜的範例為基礎,然後對照說明書寫的API函式抓看看
...這才發現我對WIN32API的以及SteamAPI的運作邏輯其實都還沒搞懂
東找西找後,雖然是有找到曾經有人為RGSS寫過同樣要抓steam排行榜的範例
但深入研究卻發現一個死胡同

6.惡補DLL與C++
這方面是我自己理解的部分,也許和實際情況有些出入
找到的RGSS連動排行榜的範例與原始碼,發現他的做法超乎想像的粗暴
也就是用C++寫「代替RGSS,去呼叫相對應的SteamAPI」的DLL
這凸顯了不同程式語言間如果要互相呼叫的限制
會這樣做的原因在於「RGSS→呼叫外部的DLL」能呼叫的類型很有限
SteamAPI的DLL雖然是用C++寫的(大概),但只有很基本的部分能成功被RGSS直接拿來用
要是碰到64bit的資料型態,就無法傳遞,偏偏SteamAPI一大堆這樣用的
不然就是SteamAPI你直接用RGSS呼叫他不鳥你,得用同為C++的寫法去叫才有用
...這個我真的目前不會用C++的情況下搞不懂為何會有這情形,到後面投降了放棄這功能
所以前人的研究似乎就得到這樣的結論,直接用C++去另外寫了一個包含SteamAPI的DLL
我理解沒錯的話,這也算是在官方提供的原始碼為基礎下去加寫的

7.另外新增了視窗放大功能
雖然前面搞得亂七八糟的,但多虧這麼一搞總算對WIN32API有了些認識
所以回頭找以前的一些RGSS功能範例,也能稍微看懂他是怎麼運作的
這部分就不是SteamAPI的範疇了,而是windows本身的DLL,像是user32
畢竟RMXP~VA已經是10年甚至20年以前的老東西了
在那個年代的遊戲解析度(640x480),放到今天1080P都是基本配備的情況下
遊戲視窗都會變超小,反而成了大問題
以前雖然不是沒研究過這方面的功能,但找到的大多都是「改變遊戲的解析度」
例如把遊戲畫面從640x480變成1280x960
但這並沒有像RM2K3那樣把畫面跟著放大2倍,只是顯示範圍擴大
也就是本來20x15格地圖,會變成40x30格之類的,這個就不符合我所想的
所以找到相關範例後,再自己抓出關鍵部分重寫並整合到遊戲內,就得到了這個
至少這部分是成功了,至於鋸齒部分這個就別計較了

由於截稿的時間點,我在日本參加Hololive的FES兼自由行(?)中
所以圖片準備的不足還拖稿了幾天
希望下個月的時候同人作品的投稿審查能有個結果
2025/03/05 - 23:45
追蹤 創作集

作者相關創作

相關創作

更多創作