Monday 18 March 2024

夢.十夜 (10.2) Colosseo


我們私下找了其他大公會的成員,詢問他們第二檔隊伍的一般強度。得到的答案是除非在現有準備上再砸大量資源下去,否則我們還是比第二檔的隊伍低一點。現在的隊型已經是他們砸鍋賣鐵造出來的了,我根本拉不下臉來求他們再追加下去。

我再次翻出上次攻城戰的最終排名。在一番計算後我發現這個排名藏了一堆遠比「進二檔比較容易對上Super Rangers」有用的關鍵信息。

首先是一二檔隊伍的敗場總數,前九名的敗場加起來一共34場。假設他們沒輸過給前十以外的隊伍好了,前十完整內戰也就36場,他們加起來34敗就代表了他們幾乎完整地互戰了一遍。也就是說如果能爬進二檔的位置,我們幾乎肯定能對上Super Rangers才對。上一次我們坐在第十卻只對上了六隊一二檔隊伍可說是個異數。大概因為我們在打敗奧林匹克神眾之前根本沒排進二檔過,在那一場過後配對的強度已經讓我們沒法完整配對到前十的隊伍。

另一個重要訊息是二檔隊伍裡面的敗場亂成一團。從第四名敗了四場就能看出二檔內戰至少出現了一場「下剋上」的狀況。第八第九名卻只有六、七敗,不是配對讓它們少輸一場就是它們贏過排在前的的隊伍。出現這種情況的原因也很簡單,二檔的競爭不比一檔,說到底還是有一點容錯率的。如果知道只要第二檔容許六敗,而對上不能穩贏的對手可能只有十場不到,為甚麼我就不能放過某些場次讓自己舒服一點呢?

最合理的推測是,當二檔隊伍需要休息而對手又太拼時它們是可以放水輸一下的。以第九名的七敗來看的話,只要能贏一場再少配對一場二檔隊伍的話就能穩進二檔。換句話說,只要我們實力能進步到完全不輸二檔開外的隊伍再加上對二檔能咬下一勝再來點運氣的話應該就能對上Super Rangers。最最最壞的情況就是配對上Super Rangers以外的八九支二檔隊伍全敗,但是至少有個希望不是嗎?

七天28場的攻城戰,一天四場,每六小時一場。好消息是跟上次的攻城戰相比玩家至少能在兩場之間睡個四五小時,壞消息是對戰最激烈的的場數不變,每天場數減少代表玩家需要繃緊神經的日數變多了。本來可以請兩天假應付十場對戰,現在請兩天假說不定不夠用。能不能碰上會放水的二檔隊伍真不好說。這就是所謂的三分天注定、七分靠打拼、愛拼才會贏了吧?

*

攻城戰配對的難度曲線跟上次倒是沒大分別。我們直到第六場才遇到會還手的隊伍,到了第八場才遇到可以算上是威脅的對手,那也只是有威脅而已。上一次我們都能在開頭拿到八連勝,何況是這支進化後的熊熊隊呢?一波砸下去推到對方的城門,對方很快就放棄了。如果對方能輕易摸到你的城門,再多的抵抗都是沒意思的。其實除了衝前兩檔的隊伍,剩下來還會認真砸資源打的隊伍要不是新隊伍憑一腔熱血硬衝,要不就是真的傻。

排名榜顯示八連勝的隊伍還有不少,但很多都是叫得出的名字強隊。我們第九場配到上次排行第四的隊伍。我們的確有對上二檔隊伍一拼的打算,但我們跟第四名的差距還是很大。當我們看到對方剛開戰就已經滿員殺過來,我們不得不把這場放棄掉。很可惜,按照上一次攻城戰的軌跡我們碰上Super Rangers的機會不小才是。

第十場的對手是上次排名第八的隊伍。本來以為上一場是對上第四的話這場能配對再低一點的,只能說運氣不佳。這支隊伍聽說時區跟我們相近,對戰的時間又在晚上,對方本來就不可能因為缺人而認輸。本著看看對方對伍的想法打過去卻發現對方不知道是運氣好還是想衝一下,居然拿著兩張活動七星。這是熊熊隊的第二敗。

我們拿著兩敗排名都不知掉到哪去了,接下來的兩場自然對上了能輕易斬殺的嘍囉。直到第十三場我們才對上排第九的隊伍,我們再一次吞下敗仗。對上第九名我們倒沒有一面倒被壓著打,但是碰上兩個隊員下半場都有急事不得不脫離戰線,我們也只能放過這一場。

上一次對上這些二檔隊伍我們直接投降倒是沒留意它們強在甚麼地方,這一次拼下來才知道兩方之間的差距還是壓倒性的大。除了活動卡片比我們多,他們的防守意識也比較好,每當我們快有機會摸到城牆時對方總是能及時回復。這當然是因為我們硬實力不夠,打完一輪沒法打破對方防守的緣故,但肯定的是這些隊伍的可趁之機一定比較少。

再斬落一隊不知名隊伍,我們在第十五輪遇上次排名第十四的隊伍。打下來我們發現強化過後的熊熊隊已經可以正面對上這些隊伍而穩佔上風。我們甚至不需要費神去砲擊,只要一直進攻和回復就好。對戰開始不到十五分鐘我們已經穩定領先,然後對面果斷地放棄了。這些連二檔都摸不太到的隊伍根本沒有認真打的欲望吧?下一場我們出乎意料地再次配對到比二檔開外的對手,上次排第十三現在排十一同樣是三敗的隊伍,結果同樣以我們的勝利告終。原因不是因為我們隊伍強或者協調好,只是因為對方剛好沒滿員。

第十六輪的幸運配對讓我們升到第七名。上次的第一名依舊無敗站在頂端俯瞰眾生,下方是一敗兩敗各兩隊,然後三隊三敗隊伍。有點意外的是Super Rangers居然拿著兩敗屈居第四名。按照上次的配對前三名的內戰應該已經完成了才對,但兩支一敗隊伍顯然代表著截然相反的事實。她們兩敗到底輸了給誰呢,會不會因為已經輸了給不該輸的隊伍導致無緣前三呢?她們會不會因為這樣而調整甚至取消和我們的賭局呢?

卡羅說他偷偷私信了給Yuki。Yuki只給他回了個鬼臉表情,說一切照常。

如果我們能一直坐在這個排名的話,對上Super Rangers真的只是時間問題……前提是要能坐穩。僥倖升上來又打不過別的二檔隊伍的話,自然會以同一方式掉下去。熊熊隊對上次的第五名毫無懸念地輸掉,然後又遇上了第一名。對戰才過了五分鐘我們就理解到那種規格外的強隊完全不是任何其他隊伍可以比擬的,哪怕是我們遇過的一檔隊伍。Super Rangers不想跟他們硬碰完全可以理解,甚至是理所當然的選擇。本來以為兩連敗已經是最差的結果,沒想到命運再次給我們沉重一擊,配對系統把我們配給了第二名。我們那場連上線應戰也懶,直接跳過一場換來了八小時的優質睡眠。三連敗後我們終於配對到雜魚隊,但下一場馬上又對上第六名輸掉。

一波下來我們掉到第十二名,跟第十一和十三名同樣七敗。這個排名不怎好看但忠實地反映了我們的打不過二檔但穩贏十幾名的實力。Super Rangers現在還是兩敗升上第三,本來意外壓在她們上面的隊伍已經變成三敗落到第四。更重要的是Super Rangers的分數遙遙領先三敗的四五名。也就是說即使她們對上熊熊隊並輸掉,她們也有把握拿下第三名。看來Yuki根本沒擔心過能不能進前三的問題。

對熊熊隊來說要二檔無望言之尚早,但是難度已經很高了。現在前十名加起來一共34敗,內戰配對可能已經快要結束了。其中一個跡象是近兩輪前十新增的敗場數都只有三四場,也就是說系統已經開始把弱隊配給一二檔隊伍去炸魚,這樣想要對上Super Rangers就很難了。

不知道是幸運還不幸運,或者純粹是配對可能性有限所使然,我們第二十二輪配對到第七名。好消息是贏了這場就有了對上Super Rangers的最後機會,壞消息是……對方是第七名的強隊。

經過這麼多場次,我們對熊熊隊的實力已經有了深刻的認識。經過一輪強化後我們對上那堆十幾名都是輕鬆獲勝。至於前列隊伍呢?對上前三當然被碾壓到渣都不剩。對上第四五六名呢?被揍個鼻青臉腫。第八第九名呢?還是打不過。

天真。這是自己唯一能想到的詞語。以為把隊伍稍為特化一點,加幾隻低成本角色就真的能壓到那些課金大佬了嗎?戰果以殘酷的的方式告訴我們輸出能力有差時其他旁門左道對戰局根本不會有影響。其他隊伍評價我們比二檔低一點,其實已經是讚美之辭了吧?

Yuki此刻看著排行榜大概在偷笑吧?眼花瞭亂的一頓操作下去結果不是在原地掙扎,二檔獎品雖然不如一檔的值錢,但也沒到食之無味的地步。只要看二檔隊伍手握多少張活動六星七星就知道這不是一個戰法就能扭轉的差距。

每場的交戰對手會在開打前一小時公佈,也就是說當我知道下一場的對手時就該開始對戰的準備了,但此刻的我完全沒有備戰的心情。我關掉聊天室和模擬器、放著那剛濾好的咖啡不顧,向後一倒無力地躺在床上。如果是熱血漫畫的話這時候就應該流下不爭氣的淚水,可是我連想流淚的感情也擠不出來,大概早就輸到麻木了。

啊--

攻城戰甚麼的已經不重要了。都是重課大佬的天下,我們就只配卑微地在他們腳下撈點湯水喝。嗯嗯一定是這樣。就算我不上線也沒所謂了吧?反正我們肯定都會輸掉的。熊熊隊的其他人大概也是這樣想的吧?不如大家一起裝作看不到這場算了。各種負面情緒閃過,很像打完爬塔活動那陣子但是更深刻。大概因為積壓了這麼多場的怨念因為希望破滅而一次過爆發出來。

手機傳來聊天室被點名的震動,而且越來越頻密。本來想把震動無視掉,但手機在桌子上震動略嫌吵鬧,我只好把手機拿過來把震動提示給關了。震動停了下來,他們開始用聊天室的音訊功能打過來,對面是熊熊。我立刻就按下拒絕接聽算是表明了我的態度,他們被回絕兩次後也再沒有打過來。

我真的很需要一個人靜一下。除非有適合的人可以為我開解,比如--

手機再次響了起來,鈴聲跟其他人打過來的不同。目前手機設定裡只有一個人的來電被設成了這種鈴聲。

他打過來就只有一個目的吧?總不會是來安慰我的吧?就算我說不打了,他第一反應大概就是讓我把帳號借給隊友們打吧?懸在空中的手猶豫再三還是按下了開始通話的按鍵。通話的另一端立刻傳來他那帶點輕挑但又可靠的聲音:「嗨~摸事摸事~這邊是小紅對嗎~」

「……」懶得回他。

「對上第七名可真讓人頭痛呢~這麼難打仗沒有你我們可打不來~」

「……」被我講中了吧。

「我們都知道前十隊伍很強很難打~這段時間辛苦妳了~」

「……」是要該讓我交出帳號了?

「你可能覺得我廢話有點多,但我現在打過來想給你帶來一個好消息的~」

「……」他的聲音好像變正經了一點,我不自覺凝神等著他下一句話。

「我已經聯絡過第七名那一隊了,他們答應放水一把讓我們贏下這場。」

***

考慮到上一次攻城戰我也寫了整整兩章,這次的舖排長度其實很正常。尤其是我希望帶出那種因為要衝排名,而且要衝到實力對應排名以上所以要每一場精打細算卻又因為天殺的狗屎運氣讓熊熊隊整個來回地獄又折返人間的過程。熊熊隊隊友此刻大概還是會講出鼓勵的說話,但這些鼓勵在執著的小紅眼裡可能不太好聽吧。

那個排名參考自我當時參與過那幾次攻城戰的最終排名。當時的我沒有多想就覺得自己的配對模型沒錯,現在回想其實很多東西已經藏在數據裡面只是我那時候沒留意到而已。我開始動手模擬配對的時候才發現原來實際上的配對比我想象中更接近瑞士式,只不過肯定不是絕對意義上的瑞士式(即配對排名接近者為最優先)而已。逆戰幻想的配對保留了配對強度曲線,前面的隊伍配對得差不多時不待完整配對就會開始把它們往下配給弱隊--只是這個往下配的時機沒有想像中早。

用最簡單的加減數來算第一名何時會下去炸魚的話,從第九或第十場開始會一直配到另外九隊前十隊伍。考慮到前十尾段會偶而換人的話第十九、二十場才能完整配對前十才算合理。在35場制下,這意味著對第一名來說整個下半段都是垃圾時間。現在賽制縮成28場,留給他們炸魚的時間就少了很多。但是對熊熊隊來說,這也意味著即使沒法進入前十靠接近排名而對上Super Rangers也能在後面等配對系統大發慈悲的機會變得不切實際。

前十之間幾乎完整配對這件事跟我以前的印象差距很大。直到我把敗場數拿出來數才發現以前那種「只打六七場前十」的印象完全是錯的,而這又會延後那個往下配對的時間點,還好這跟熊熊隊上次只對上了六場前十並不矛盾。實際上的經過比較像是這樣:

「我」當時的視角:第十場贏下了奧林匹克神眾就能把對方擠下去,撐過後面幾場,強度在第十六場左右開始下降而鎖定第十名
實際上發生的:奧林匹克神眾始終比熊熊隊強一點,在第十場往後的配對中又另外配對到七場前十所以慘吞八敗屈居熊熊隊之後;熊熊隊則因為輸過一場給排名十幾的隊伍,排名始終在前十上下進進出出,降低了配對前列隊伍的機會,運氣(?)加持下只另外配到到六場前十(把神眾隊加進去就會是合理範圍的七隊--配對是看當下的排名而作出的),所以在前十配對完成那一刻剛好鎖定前十而把神眾擠下去,這個時間點可能在第二十幾輪而非第十六輪。

至於為營運方要搞這種特殊的、非常人工(Artificial)和繁瑣的配對系統呢?這是只有他們才能回答的問題,我只負責逆向猜出配對系統並加以利用而已。用剃刀理論看的話假設配對系統長這樣根本不明智,可是那些最簡單的算法都被推翻了。如果我當時真的逐輪收集數據的話大概能進一步摸清這個配對系統的原理,現在就只能從各種蛛絲馬跡中倒推回去了。

有關下剋上的論證我還想進一步解釋一下。假設九隊完整地互戰了一輪而上位者總是能戰勝下位者的話敗場數應該是完美的階梯狀012345678,但我們現在看到的是012445567。第四名的四場敗仗至多三場是輸了前三,所以至少一場是輸給了第五或以後。第九名本來該輸八場給前八的,現在少了一場要不就是配對系統跳過了,要不就是它贏了上面某一隊。

在理想的情況下,第四輸了第七一場,系統讓第八第九各少打一場。這是只有一場下剋上結果的組合。如果跳過的是其他場次,比如第四對第八和第六對第七呢?我們就會得到一堆下剋上結果,比如下圖(左vs上 0/1=負/勝):


你以為上圖的結果是我隨便作出來的嗎?你可以試試像填數獨那樣把每一場的結果填上去。你會發現只要跳過的場次和前三名的結果固定了的話,剩下來的結果並沒有多少選擇。想想也是,其實下剋上的頻率總會有個限制。如果上位者被「剋」太多,它根本就沒法排在上面。反過來說上位者被「剋」完還在上面就代表它在剩下場次有很強的壓制力。這讓勝負關係形成了一個閉環(可以參考每年足球英超的「食物鏈」)而非雜亂無章地敗給下位者。而且在這個閉環裡面的都是十名以內的隊伍,恰好印證上位者被「剋」是因為它們有空間放水而非實力上打不過……神眾那場真的是意外就是了。

有時現實就是如此諷剌。熊熊隊這次待在前面的輪次足夠長,前十也打了七場,如果運氣好一點應該早就遇上Super Rangers了。計算很美好,回到現實才發現配對系統的惡意。當初自信滿滿以為有機會正面和前十一掰手腕,現在想改變策略已經太遲了。

從Yuki能帶起一整隊就知道她不旦懂得怎樣優化遊戲打法,肚裡絕對藏著各種遊戲以外的盤外招,這是小紅所明顯欠缺的。小紅應該慶幸這次不是她一個人在戰鬥,尤其她身邊還有個卡甚麼羅,居然能想到這種辦法力挽狂瀾。

一個月前我寫10.1的時候只是把有關攻城戰最淺層的回憶給挖回來,這一章的內容則要深入得多。至於下一章的內容……應該是全新的領域。正如上面所說,你的想象是一回事,是否跟當年的遊戲保持一致(align)是另一回事。希望我能做到後者吧?

Thursday 29 February 2024

The Chunithm 16.00 dissertation

When you search for chunithm song lists on Youtube, a bunch of them fall into the category of "my recommended/rated list at rating XX" and the rating involved is most likely 16.00. Why? That's because the rating in-game is colour coded and 16.00 is coloured in rainbow, the highest possible one. Of course higher rating is possible and there are many vids about lists at 16.25, 16.5, 16.75 and 17.00, but 16.00 is still the most significant stage after all. If you look into those videos the creators comment heavily on each song on why they performed well on the song or where is it hard/easy and so on. It's almost like...a grad dissertation where you are allowed graduation by achieving 16.00 and are obligated to analyse your achievement.


With my recently achieved 16.00 I am here to follow the tradition and present mine. Admittedly I am not 16.00 over best 30 yet (it's 15.94), but I feel like boosting my rating to 16.00 with recent scores and I did it ^.<

Style

Map styles are extremely diversified in chunithm because of the complicated input system -- in math terms the dimension is very high. As a result it is normal to find players significantly overperforming on particular type of maps and underperforming on some others. 

When players make their "dissertation", they first talk about their previous exposure to MUGs and how that allowed them to play particular maps better. Some examples are WACCA or maimai when it comes to slides as well as iidx or arcaea when it comes to 4k or 5k charts. It can also be some very general stuff like exposure to reading confusing or gimmicky patterns, or quick tappers.

I am very special in the sense that my exposure is rather uncommon -- DDR and nostalgia. DDR helped nothing at all -- not even stamina when you only need to move your hands not the whole body. Nostalgia on the other hand defined my advantage over others as its keyboard is almost the same as the chunithm board. As a result I overperform on maps with narrow notes or any patterns that resemble charts from nostalgia. Slider is fine, but wriggly slider is really my nightmare possibly because I don't use gloves.

Rated list

Instead of listing them right away, I want to divide them into 3 categories:

1) Outperform in nature: maps that I outperformed due to my exposure to other MUGs particularly nostalgia. Replicating scores may not be easy depending on your style.
2) Outperform by coincidence: maps that are generally viable but I made a particularly good score vs my regular performance. Replicating should be okay if you have good accuracy in general.
3) Natural performance: maps and scores that I feel standard to most players.

For each categories I go from the lowest to highest rated with comments. At the end I also want to give a few extra nominations for maps I love but failed to make into the list.

↓↓↓↓The list below is quite long as it should be with comments on 30+ maps. Click "read more" for the rest↓↓↓↓

Monday 12 February 2024

古早遊戲BGM巡遊(7): 狙いうち

大概又有人要來投訴說這首既不古早也不遊戲BGM了吧?

其實論古早這首原曲在1973年發表,比大多遊戲類音樂還要早。至於遊戲BGM方面呢?狙いうち被重製成為DS音遊霸主之一的應援團上面,於是就有了今日的推介:


無論是在現代還是七八十年代的日本樂壇,我們都很難想像會有這種狂野風的舞曲,也就同樣狂放的山本リンダ可以駕馭。更難得的是她在四五十年後的今天仍保持著演繹這首歌所需的青春活力,近年跟一堆團體合作演唱過,大家直接上Youtube搜歌名就有,這裡就不再詳述。

回到遊戲本身的部分,應援團本身一個主要特色就是中間加插一堆強制休息(break)時段。休息時段期間遊戲會播放過場畫面,是推進劇情(應援效果)的重要設計。用常理來看休息時段應該對應歌曲裡面一個完整的部份,或者至少是一個相對低潮的部分。而且為了有足夠時情播放劇情這個時段還不能太短,8個小節差不多,再短也要有4-6個小節,每首歌不算結尾有2-3個休息時段這樣。

但是問題來了,一般的流行樂哪來這麼多長時間的休息時段呢?開發者的選曲範圍必定受版權和歌曲內容適合與否所限制,不可能只挑到結構完全符合要求的歌曲。那些簡單如ABAC的音樂結構,我們又如何把休息時段插進去呢?遊戲開發估計也沒多想,答案簡單粗暴:任何過渡性小節都是進入/離開休息時段的時機,多數休息都放在一段結束/開始之時。雖然不是完美的解答但估計對絕大部份玩家來說都不是一個問題。這種放長休息時段的習慣一直延伸到Osu古早年間,比如這首Osu裡面極少數帶有模仿應援團那種成功vs失敗畫面SB(storyboard)的譜面,AlexanderPD的Je t'aime。後來Osu偏好轉向更高強度的電子音樂,休息時段的處理已經變得和其他音遊無異。

說句題外話,這Je t'aime是我最愛的Osu譜面之一。除了精美的小畫家SB以外原因還有幾個,包括我當時有個在學法文的同學,或者是我經常跟某人在MP房打這首。最重要的原因是我當年跟Derekku和皮皮在MP房打過,打的就是這首。結果當然是皮皮落荒而逃。Derekku當時世界前百,我好歹也快三位數排名,真當我們吃素的?

咳咳,回到正題。

從音樂結構來看的話狙いうち就屬於沒一致(consistent)地擺放休息時段的樂曲之一,原因不是結構過於簡單,反倒是過於工整以致任何其他擺法都略顯奇怪。如果把開頭五連拍那段intro叫作I段,烏拉拉那段叫做A段,然後「弓をきりきり心臓めがけ 逃がさないパッと狙いうち」這四句叫作B段,那這首歌的結構是這樣的:

IAA(BA)*IAABAI'(BA)*
(BA)* - 重複
(收尾方式應援團版和原曲不同,但那不太重要)

兩次IAABA然後重複一次副歌段(BA)收尾,非常工整。如果放兩個休息時段的話那兩段I是必然選擇,但如果動畫部門跟你說要放三個休息時段呢?結果出來變成這個鬼樣子:

IAA(B)AI(A)ABA(I')BA

簡單來說就是平均地切三刀下去,結果ABI各中一段,毫無規律可言。同樣地這首歌也被稱作轉盤地獄兼觸屏破壞者,因為幾個惡名昭彰的轉盤都有夠長。實際上這堆轉盤都是拿去直接把一個或半個段落蓋掉所以才這麼長。具體的轉盤位置如下:

IA(A)BA(I)AA(B)(A)I'(B)A

第三、第五個轉盤都在B段出現,前兩句對應兩個滑條,後兩句則用轉盤,前後一致而且也算合理。第一第四個都是休息前的過渡,但休息時間亂擺使得這三個轉盤的出現時機變得奇怪,更像是「啊要休息了」的意思。最奇怪的當然是第二個在I段的轉盤,完全就是遷就接下來的A段休息而做出來的:轉盤所處位置不作休息也只能放轉盤了,但是這個轉盤已經夠長了總不能後面的五連拍也放轉盤吧?於是硬打五連拍打了兩句--然後就突然休息了。

你說如果工整一點休息時段放在兩段I上面,B段轉盤照舊,I前面的A段在最後兩句「世界一の男だけ この手にふれてもかまわない」比照B段擺法換成轉盤是不是合理很多呢?這些今時今日在Osu mapper之間已是常識,但當時的遊戲開發絕對沒有這方面的經驗,狙いうち只是例子中的冰山一角。不得不說這些東西也是要時間累積的,即使在Osu裡你翻翻2007-08的譜面也會有這種基礎錯誤。畢竟不是每個開發商都像任天堂一樣,弄個節奏天堂也能有淳君把樂理基礎全給開發人員教一遍。說到節奏天堂,switch上面最近發售的Rhythm Royale是不錯,但那個終究不是本家遊戲啊……只是再說下去又要提到岩田老大了……Q^Q

最後說一點,我在Osu做的譜面都有個用音符把一句句串成連續節奏的習慣。剛好在這首歌B段「弓をきりきり心臓めがけ」(194、271連)這兩個滑條中間用1/2連打串起來的做法就很像我的作風。考慮到當年的我已經對這首歌觀感不錯,那就現了雞和蛋的問題:到底是我愛這首歌所以做譜風格變成這樣子,還是我做譜風格是這樣才愛上這首歌呢?這問題深究起來有點難度,畢竟都快二十年前的問題了。2005年的應援團是我最早接觸的音遊但不是唯一--以後還會有機會講這邊的故事,比如有一天把Holy Moon拿出來講的時候。