Friday, 29 April 2022

被青梅竹馬抓來(略) (4):提升火球術威力的方法很多,不包括練出火焰曲球

Character design: @kuonyuu, Illust: @こめた commissioned by forretrio. Pixiv
Editing and re-posting are prohibited // 無断転載、無断使用禁止です


「認識,當然認識!您旗下的商會這一年來收購了不少工坊進行魔導工學的研究對吧?」

魔導工學是指利用魔力驅動機械的領域。出身工匠家的克萊伊從小就對各種機關有著濃厚的興趣,在他魔法上的天賦被挖掘出來以後將兩者結合便成了他的夢想。家裡買了一堆魔導物品的失敗作不用說,他也試過自己做一些試作品出來,不消說也以失敗告終。甚至那個想來要倒在庫里斯頭上的那桶水,他本來也想做一個感應到有人就會自動翻轉的裝置,只是到最後他還是放棄了,親自驅動更方便也更快更狠更準。

如果當時用的是魔導裝置,他就不會被發現了吧?這是克萊伊的感想。很遺憾這也是不可能的:班上會弄這種裝置的大概就他一人,熟讀學生背景的庫里斯才不可能猜不出來。

「嗯,沒錯呢。這位是--」

「我的名字叫克萊伊!在庫里斯老師的指導下就讀魔法科一年級,興趣是魔導工學,希望可以做出平民化的商品!」眼前的女性毫無疑問是自己的偶像,但身份上的差距要使他們見面幾乎不可能。偶像卻突然出現在自己面前怎能叫他不激動呢。

「叫我學姐就好。」金髮女性沒有被眼前少年的熱情嚇到,她淡淡一笑問道:「克萊伊同學很喜歡魔導工學嗎?」

「沒…沒錯!我從小就看著家人製造不同的機械……可是要人力驅動的話太麻煩了。如果可以改成魔力驅動的話,一定可以變得更……更方便、大家都能使用的工具的!」

「好好、冷靜一點~」庫里斯把剛才給自己準備的點心架放到星韻對面的桌面,然後把克萊伊按到坐位上。「雖然以後禮儀課也會教不過現在先學一點點吧,下午茶要從三文治開始吃喔。」

少年按著老師的指示拈起一塊三文治放入口中。他沒法分辨口中的三文治屬於哪一個檔次,但肯定跟家裡自己做的有很大差距。他再吞下一塊三文治和喝下一大口茶後終於冷靜了下來:眼前的大小姐是個日理萬機的大忙人但不知為何出現了在這裡,原因看來是旁邊的庫里斯老師。然後這裡似乎是老師開的茶會,也難怪他很在意那些點心。

他開始拿起點心一件接一件的塞進口裡。坐在他對面的學長學姐也沒說話,只見他們以合乎禮儀的方式慢慢把點心消滅掉,偶而會盯一下他的點心架並露出一臉「你慢慢吃還有很多」的表情。

「學姐……請問放假的時候可以到您名下的工坊那裡參觀跟實習?」他把最後一塊鬆餅吞掉再喝了一大口茶後便急著講出自己心裡的願望。

「是庫里斯的學生的話肯定沒問題,不過我想先聽聽你對魔導工學的理解呢。嗯……比如說,你覺得為甚麼這些年來不少人挑戰這個產業都沒法成功呢?」

「是成本問題嗎?我曾經在跳蚤市場撿過一個用魔力驅動的水壼,比平時家裡的水壼還大不說,一塊魔石只能燒十壼水不到,還不如老老實實用煤炭呢。這個水壼也可以由使用者直接注入魔力驅動,可是能操縱魔力的人直接把水燒開根本就不用這破水壼吧?」

「沒錯,目前其中一個大問題就是這些物品都沒法好好使用儲存起來的魔力,因此對大部分來說使用它們的成本太貴了。可是反過來說一些效率再低也能堪用的物品比如會動的玩具和裝飾,或者是專攻貴族市場比如奢侈品和槍械,按道理說就沒有這個問題了吧?為甚麼市面上沒有出現這些商品呢?」

這個問題十分合理卻把少年難住了。她提到的這些東西只要能製造出來都有一定的市場,可是這也是少年接觸不到的市場。出身平民的他又怎會知道貴族的奢侈品在甚麼地方能買到呢?她的問題換個說法就是,這個市場到底是不存在的,還是只是他看不到呢?「呃……因為一些跟魔法有關的零件很難造出來?」他選了後者。

「的確如果不考慮魔力消耗的話,製造魔導物品的主要問題就是人力成本太高了。到最後真正能賣出去的物品都是極為昂貴的訂製品,都是透過大商會私下一件件地賣出去的,你沒有聽說過也十分正常。你能想象一個魔法師的工資是普通工匠的十倍到數十倍,而他們在一件零件上花的時間又是普通工匠處理普通零件的數倍嗎?」星韻輕描淡寫地描述著,彷彿這些對她來說都是小錢一般:「再考考你。你覺得一個這樣的工坊,魔法師跟普通工匠之間比例應該是多少呢?」

少年開始意識到這個產業是怎樣一個無底洞,一邊流著冷汗一邊回答:「一……一比十?」他曾經夢想過在學園畢業以後要接手老家的工坊並在那邊研究可以平民化的魔導商品,現在看來根本是癡人說白夢。

「目前大概是一比十沒錯,不過理想中應該是一比三或者一比四呢。這些魔法師有一部分負責研究開發,其他都是生產線上的人員。檢查刻有魔法陣的模具、製作精細的魔法零件到最終的品質檢查,這些都要可以精準操控魔力的人才可以勝任的工作。更要命的是,習慣冒險的魔法師一般都沒法達到我們精度的要求。也就是說,最主要的魔法師來源跟我們無緣呢。」她喝了口茶開玩笑道:「如果是庫里斯的話應該沒問題的--庫里斯你要來我們的工坊打工嗎?」

在一旁靜靜吃東西的庫里斯迅速作出了回應:「容我拒絕。在外面冒險比這個有趣多了。」

她當然不覺得庫里斯真的會來打工,不過這樣至少能讓臉色青白的克萊伊輕鬆一點:「所以克萊伊學弟……發展魔導工學的困難你現在也略知一二了:我們真的很缺魔法師。所以如果你想來實習,我比較希望你以魔法師的身份來實習呢。不是一般的魔法師,而是作為可以滿足我們要求的魔法師呢。」

「無論學姐的要求是甚麼,我、我都會盡力滿足的!」

星韻轉頭望看不知不覺間將點心架清空正在喝茶的庫里斯:「聽說你把一年級的課程改得比以往密集多了。裡面肯定有精密操作魔法的部分吧?」

庫里斯笑著回道:「你又不是第一天認識我~只是要讓大家都往這個方向練習的話有點不切實際呢。我把第一年的目標訂在流暢在不同場景下使用魔法,勉強也可以提高精度的吧?」

於是她對克萊伊道:「那……不如這樣,你好好跟著庫里斯學習,得到他認可的話我就讓你過來實習如何?」

「我、我會努力的!」克萊伊吃著甜點沒多加思索就答應了。

然後……他就成為伊雅娜之後第二位受害者。

原因很簡單,過於精細的操作並非人的本能。

魔法師可以感應到魔力的流動,但這個感知並非來自五官。一般認為這種感知是由身體驅動體內魔力與對象互動所得,而且需要耗費感應者的精神。魔法師發動魔法時同樣需要耗費精神驅動魔力,因此決定一個魔法師能否使用強大的魔法除了可以調動的魔力以外還要看精神上能否負荷這種消耗。精神沒法駕馭魔力的情況下最好的結果是甚麼都沒有發生,但更常見的是魔力在身體內暴走產生傷害,或者對精神造成不可逆轉的損傷。

長久下來魔法師們演化出一套以點、線、面為基礎使用魔力的方法,可以壓低精神上的消耗。在固定點上加上一個方向便成線,加上兩個方向就是面:比如火球術就是定點產生火球然後定向發射出去,而盾狀的魔法則是從一個點延伸出去成面。與這些基本操作相比,精細的魔力操作需要施法者一直感應魔力流動的變化並作出回饋,顯然更耗費精神。

對那些把魔法用在戰鬥上的人來說,點線面的高效操作才是最好的。尤其對大部分普通的魔法師來說,將施法方式簡化到他們能用出來才是他們最為看重的東西。

少數職業在使用魔法的理念上採取截然不同的路線,這是因為他們用以工作的魔法更依賴精度而非強度。比如需要使用魔法進行治療的醫生或者冒險小隊裡的治療師,又或者制作魔導物品的工匠--他們對精細的零件施展魔法,稍有誤差就會使物品的效果或耐用度大幅下降。這些行業需要的魔法師很難在外面找得到,因此他們一般都有自己的培訓體系:醫生或治療師多半都在醫院裡接受培訓,工匠則更多是封閉的師徒制。這就造成了行業擴張時人手極為短缺的問題:當一家工坊需要更多魔法師時,外面找不到現成的難道別的工坊就願意讓你挖角嗎?現在有人送上門來,星韻當然沒有拒絕的理由。

唯一的問題是,到底克萊伊有沒有能力在暑假來臨以前達到可以進工坊的標準而已。

魔法學園尤其是魔法科學生天賦無容置疑,讓他們學會精細地操作魔法並非難事,要花一點時間教授這方面的內容還是要幹別的事情全在教師的一念之間。當然他前任那個老頭絕對不會這樣做:提升火球術威力的方法很多,當中練出火焰曲球甚麼的並不在他的考慮之列。

但庫里斯跟那個老頭不同,他可是風系魔法的專家啊。風魔法一大特色就是要靠精度確保靈活性來彌補威力不足其他屬性的缺點。他絕對樂意在課綱裡加入這方面的內容,只是為以戰鬥中的應用為主:光是要讓魔法以特定軌跡行進或者把魔法張開成特定形狀就夠學生們喝上一壼了。

在魔導物品的零件上附魔的難度卻是比這些難上許多。原因很簡單,操控微小的魔力對零件進行精密的操作需要更高的集中力。在製作零件的過程中失敗是常有的事情,倒不如說零件的良率反映了工匠的技藝高低。每一件成品都由大量失敗的廢料所堆積而成,這也是為甚麼魔導物品如此稀少的原因。

可以這樣說,克萊伊光是乖乖上課是不夠的。

當然她口中的「得到庫里斯的認可」……並沒有說明具體的內容為何。這不是十五歲少年當下能意識到的事情。

庫里斯並沒有急著讓他練習附魔,而是讓他泡在圖書館裡學習各種前置知識,像是各種附魔的方法和不同材質的等性等等。畢竟每多一分知識,到了真正動手的時候就多一分把握。在這種失敗率很高的過程裡把良率提高就意味著成本可以壓下去--使用太貴的道具還不如請個魔法師在自己身邊服侍呢!

等他熟悉了書本上的理論後庫里斯又找來一大堆三角錐形狀的金屬廢料--據說是從他朋友的工坊撿來的。這次的作業是附魔在這些金屬塊上,使得灌注進去的魔力可以聚集在一個角落上面。

在某一個晚上,他看著面前連續第二十個失敗作會想起老師用人畜無害的笑容如此跟他說:「工坊裡的零件加工有時十個才有一個堪用,就算你失敗三五十次才成功一次也沒關係,我這邊的廢料很充足呢!」

可是老師……這堆廢料每件都長得有點不一樣,怎樣跟人家制式的零件比較啊啊啊啊啊!

*

「茶會」以星韻有下一個行程為由結束了。

即使有一位還在發育的少年幫他們清掉不少食物,點心還是剩下來了一些。庫里斯把這些食物都打包起來送給了校工們。不過這星期的舉辦的茶會相當多,多出來的食物大概會被送到孤兒院去吧。

等一切都收拾好時夜幕已經降臨,等待他的是另一個派對。

學園方舉辦的「開學派對」。

與學生們不同,教師們很多都不需要茶會那種拘謹的社交方式,這個開學派對更像是冒險者那種喝酒吃肉的派對。即使是教歷史或禮儀的先生也會放下平時緊繃起來的臉孔渡過一個輕鬆的晚上。

派對會堂的中央放滿了一盆盆的食物,還有廚子和侍應可以按客人要求端出菜式和酒水。與食物區的燈火通明想比,會堂兩側則昏暗許多。參與派對的客人三五地圍在一張張高腳桌子旁邊聊天,就像在酒館一樣。

庫里斯接過一盤肉排後開始環顧著四周尋找聊天的對象。在場不少都是他認識的人--這是當然的,只要教歷稍長的教師都看過學生時代的他。另一方面,參加派對的人並不只限教師,不少相關人士都會過來串門,比如眼前這位向他揮手的老頭。

「好久沒見了,布拉德老師。」眼前的老者正是到去年為止都在魔法科任教的人,也就是當年教他的那個偏愛火魔法的老頭。雖然長出了一點白頭髮,但從他銳利的目光中完全看不出他是因病告老還鄉的樣子。他旁邊還站了二男一女,他們四人身上都穿著代表宮庭魔法師袍。就算不看他們的服飾,光憑他們在布拉德的旁邊加上他們身上的魔力流動就不難猜出他們的身份了。

「不要這麼見外嘛,當年第一眼看見你就覺得你那身渾厚的魔力潛力無限,沒想到過了幾年你居然回來接我的班。對了,你不是一直都在外面冒險,甚麼風把你吹回來了?」

「在外面累了想回來,受人所託就接受了這份工作。畢竟冒險者每項任務都像是不同工作,再多一份教師好像也沒大問題呢。」才怪。他怎可能無緣無故回到這個幾乎無容身之所的城市。

「回來不就好了~最可惜還是你不是專精於火魔法,不過你在競技場對後輩們用上火魔法的話大概會把他們烤焦吧。」他突然意識到這句不太合適,趕緊灌了一大口啤酒轉移話題:「對了,介紹這幾位你認識--」

「叮--」一聲清脆的敲玻璃聲響徹會堂,雖然沒很大聲但卻清晰地傳到每個人的耳中,本來嘈吵的會堂瞬間安靜下來。在會場正中間一名男子右手拿著玻璃杯,左手拿著沾了肉汁的餐刀,顯然剛才敲杯的人就是他。

敲杯的人正是這所學園的學園長,華萊里安。

這位學園長是庫里斯離開學園以後才上任的,所以庫里斯對他並不熟悉。根據有限的資訊來看,這位學園長是皇室從文官系統中直接調過來空降的人物。聽說略懂魔法但肯定打不過大部分的教師們。本來以為會壓制不住教師們的狀況並沒有發生,似乎在管理上頗有手段。他上任以來最大的變革是改善了魔法科以外畢業生的出路。這樣一來學生就不必非魔法科不可,而是可以挑選自己心儀的學科--當然,高階貴族依舊聚集在魔法科裡面就是。

「各位,歡迎來到開學派對!可以在新的一年見到大家實在太好了。這一年我們的新生陣容依舊華麗,不但有以公主殿下為首的一群天才,今年入學試考生的平均表現也是近年最佳。這所學園可以不斷成長都是在各位的功勞呢!」

「既然是開學派對我就廢話少說了:首先我們今年迎來了兩位新老師。第一位是史蒂芙老師,」會堂另一側一位黑髮嬌小女性舉起手,周圍傳來一陣掌聲:「她之前在國立圖書館擔任研究員,主要研究貴族的家族史。她在這邊會負責一部分歷史課程。」

「另一位我想很多人都認識,甚至可以說見識過了吧?庫里斯老師會接過布拉德老師的火棒成為新一年魔法科的專屬老師。」他舉起握著叉子的右手,會場也回應了一陣掌聲,只是沒剛才的響亮:「他離開學園以外就一直在外面冒險,現在已經是千金難求的人物了。精通各種冒險的技巧不用說,戰鬥力也是有目共睹。」

「還有一件事就是本年的預算已經定下來了,跟去年差不多。想申請教學經費的各位請記得在月底之前提交計劃書喔。雖然每年都是同樣流程不過每年都有人錯過申請時限,所以拜託大家一定要記得準時申請喔!」

「--以上,就是我要報告的事項。」

「剛才已經嘗過這邊食物的人應該已經發現口感跟平常的肉不太一樣吧?這是早上在一個公會那邊拍下來巨型山豬的肉,保證鮮味十足。當然我們也準備了山豬料理以外的各種菜式,如果還有需要的話跟駐場的廚師說一聲就好。」

「那麼,祝大家有個愉快的晚上--乾杯!!」

「「「乾杯--!!」」」

=============

一如往常的雜談時間。

- 花半年甚至一年去重構知識體系在大學十分常見。比如數學系第一個微積分課程基本上跟高中課程無異。在重讀的過程中不但可以讓你重溫一遍已有知識,也可以達到理解解題要求、習慣運算和更一般(generalized)地去了解整件事這些目的。除了我提了太多次蘭度(Landau)那句「我希望大家忘記如何算2+2=4」以外,文科方面我也看過某大學日文系第一年的目標就是讓學生忘記以前學過的日文,以正統的方式再次達到N1水平云云。

- 高度發展的魔法世界在(魔法以外的)物理法則保持不變下,最後只會變成以魔法取代化石燃料為能源的現代世界,說穿了就是另類dieselpunk(騎士魔法)或者帶一點魔幻的維多利亞風世界而已(要舉例的話有點像剌客守則開場那段或者瓦尼塔斯的手記?)。透過先進魔法使個體極端強大的例子則有失格紋外傳(殲滅魔導的最強賢者):這部的戰鬥是寫得很不錯啦,但是除了把東西推給不可名狀之術跟看穿之術以外還有甚麼能成體系的嗎?

- 如果將工業革命看成能源的更替推動生產的權力下放的話,其實魔法世界也是一樣:只要普通人不能使用魔法和利用魔力,這個封建的制度就難以被打破,更何況整個制度都有心一直加強這種束縛。不過換句話來說這也是一種另類的穩定吧?

- 以前製作弓的時候,因為是人手製作所以每一把都有誤差。所謂的誤差是弓箭朝正前方射出去時實際會出現左右偏移的偏差。你可以想成手工越好的工匠,其誤差的標準差就越小--在古代,這個誤差以可以準確射到N步以外的目標為比較。在數量堆出來以後總有幾把弓的實際誤差極小,可以準確射到遠處(比如五百步、一千步)目標的弓。這些弓會優先被送到神射手的手上,否則把誤差較大的弓給他們用只會削弱他們的神射功力。在這裡制作魔導物品的原理也一樣。只不過在容錯率更低的情況下,誤差較大的零件不是「堪用」而直接變成了「廢物」而已。

- 今年還是比較忙,尤其二月開打以後就有那種2019年的感覺了。關於這場仗可以講的地方很多,真寫下來真的三天三夜也寫不完(上次那篇根本每一句都在點到即止)……除此以外我還想寫的東西還有很多,不過有靈感的話果然還是寫小說好。

- 接下來可能會把前面的設定修整一下。

- 感謝こめた老師這張繪圖!雖然不像你畫其他vtb那麼帥不過這氣質也很不錯啦 >w<


另,日圓也太便宜了吧(日圓匯價也是我想寫的東西之一XD現在目標是2002的1:135﹐下一關就是夢回廣場協議了……) 。還是趕快發委託好了(つ´ω`)つ

Thursday, 10 March 2022

DDR, the 8th year


The above picture (as a 7th credit play in a non-stop run) best describes my current DDR progress.

I never expected myself to pass Endymion again...not after 2020 where I almost dropped playing for 2 whole years (and instead spent time clearing Ring Fit), but I did it a few days ago and in a relatively easy fashion somehow. The question is how?

There are some clearly dropping metrics when you don't play for a long time. You become worse in reading hyper speed charts: in my case BPM 450-500 boost ~= BPM 680-750 normal is now hard for me. Instead I have to resort back to BPM 400-460  boost. Another problem arises is the difficulty in reading densely packed charts especially when you lowered the speed multiplier. Songs like A4A or Cosy Catastrophe could be harder. The last problem is you need to restraint yourself from wasting stamina on easier sections...not a big problem but annoying. Having your stamina wasted means that you won't be able to play consecutive 17s or 18s at your 7th credit.

These problems aren't too hard to deal with, since this is your 8th year playing DDR anyway as long as you keep playing. But still, it is quite surprising that I can play top 17s and 18s without getting too tired after being afk for some time.

The reason behind is clear though: I got better in playing BPM 200+ songs with the OVER200 folder during the latest event. High & Low and Panic Holic are very good songs and charts that I am happy to play over and over again, and there are 6 more similar charts with BPM 200+ songs in the folder.

The common feature of these new charts is that they all contain long 1/2 steams with 1/4 triplets inserted every 2 or 4 beats. They are combo intensive: High & Low and Panic Holic are about 600 combos, ノープラン・デイズ is of 650 combos and Sword of Vengeance is of 707 combos! They are not plainly streams either - ノープラン・デイズ consists of crossover streams and PANIC HOLIC has some single tap streams.

In short these are fast, intensive but not too straightforward charts.

In the past we usually say BPM 180 is fast in DDR. Then we received more BPM ~190 charts like HyperTwist, Our Love, AI and POSSESSION (20th Anniversary Mix). With the most recent folder it is clear that bar is once again speeding up. And since I play those fast charts over and over again, the older fast charts now look easier. 東京神話, New Decade and Endymion are the best examples.

*

Let us now take a step back and look at how charts within a MUG evolves over time. It is always a choice between speed and complexity, both of them with a limited inherited based on the design of the game. The speed limit of DDR is inheritably slower comparing to Taiko, a game that is played by hands. The complexity limit of pop'n on the other hand, is higher than iidx by having one or two more tracks. 

By saying limit it is the boundary where the song or the map  become absurd or inappropriate for the game. It is common to expect BPM 300 1/4 (or equivalently BPM 150 1/8 in Osu terms) in the hardest Taiko songs, but anything above BPM 220 1/4 is almost forbidden in DDR (except Lachyrma...). Similarly you see patterns in iidx that is not feasible in pop'n because players simply can't hit them (physically).

You don't make crazy maps at the very beginning, but you need to slowly increase the availability of mid-top difficulty maps as players start to get better. The key is to attract enough players and enter a stable state before the potential is fully exploited -- consider Beatstream as an example. A new map (Chernobog) was announced at its last KAC final (here is the video - start from 1:13:00). This map came with a new difficulty rating...and some extremely weird sliders. It made some noise but far not enough for the game to sustain. That slider was considered too absurd to play and not many were interested. Beatstream had no choice but to terminate its service and turn into Nostalgia. It was a good game, but it is not compatible with harder maps -- it's just a prettier and easier Reflec beat. It is still a good game though and should receive a mobile port.

Now for DDR the evolution at the frontline has always been very slow -- only about 25% lv 18 maps are DDR A or later (which is crazy as DDR A and later covered more than 25% of DDR's lifespan). On the other hand, maps around lv 12-15 are constantly evolving. We have been observing maps that should have been placed one level higher under older standards: take 腐れ外道とチョコレゐト (originally at lv 12 then to 13), Firestorm (hard lv13), スーパー戦湯ババンバーン (expert lv14) and Poppin' Soda (expert lv15) as examples. Although once again, these maps found themselves hard to fit in that level due to high BPM but not overly complicated patterns.

The phenomenon of not having well-rounded maps is even more severe for top tier maps. In fact, we haven't seen such maps for a long time. There are a few particularly gimmicky maps like Firestorm csp (16), Prey csp (18) and び csp (18), but you feel like they are made just for that gimmick instead of good maps in overall. One exception is perhaps 東京神話 esp (17). Is this what Konami thinks DDR should evolve into? When will we get new maps like Blew My Mind csp (18) or Trip machine evolution csp (18) again? 

A pass on a new lv 18 song is still a pass regardless of the quality of the chart and I am happy to keep the all clear lamp on the lv 18 folder. But a good chart will put a smile on your face and makes the twice a week routine of DDR practicing more enjoyable.

*

Past DDR entries:

Tuesday, 1 March 2022

02/03/2022: 凜冬烈火.續集

砲火連天,徹夜難眠。

沒錯,說的當然是全世界都在關注的烏克蘭。

我一直追著不同的即時消息跟Twitter上各種民眾拍下來的影片,就像2019年那會在香港一樣。

看著烏克蘭大媽罵俄兵快去當肥料,不就像香港大媽下樓罵黑警一樣嗎?
看著烏克蘭平民以血肉之軀塞住道路阻擋裝甲車,不就像香港人撐起黃雨傘擋警棍嗎?--喔不,至少俄兵裝甲車還知道不要碾到人。
看著蛇島守軍對俄艦說go fuck yourself,不就像理大裡的學生堅守到底嗎?

這裡不是要比誰更高尚。斯拉夫民族的戰鬥根性在此處顯得可貴,港豬的覺醒也非常難得。在2019年烏克蘭對香港的示威感同身受,到了2022香港人緊追俄烏局勢也十分正常。

所以這個世界會怎樣發展呢?

大家當初理性的覺得普京只會吃掉烏東那兩個省,頂多吃掉以河為界的烏東--結果他不但想吞掉整個烏克蘭,甚至想著進犯芬蘭或波蘭。這一刻研究他是瘋了還是覺得「人生太短 出手要更大~旁觀者不需理解」所以來放煙火已經不重要了,他的沙俄夢終究只是空中樓閣。俄羅斯本來就像燃料用盡的飛機一樣在滑行,機師卻還想俯衝以速度換操作性,卻沒想到沒燃料的飛機衝下去就拉不上來了。於是這台飛機從滑行變成以300節速度往下衝,直到機毀人亡。

俄軍戰力之低下令人跌破眼鏡。有沒有可能是他們保存實力打基輔或波蘭呢?但你說前線都是新人也就算了,俄軍這幾天的表現是全方位的垃圾:前線協調、後勤、指揮、情蒐等都是全方位地差勁。更好笑的是有人還用大縱深理論替俄軍緩頰,說第一波都是砲灰,第二波才是主力云云,說俄軍藏了一堆不出來就是證據。那我想問:底層菜鳥爛就算了,多一天份的食物燃料也不打算給嗎?沒有步兵掩護的坦克推進和沒有制空的飛機運輸和空降,也是第一波裝弱的一環嗎?俄羅斯數十年來潛心開發尖端軍武卻沒錢提升指揮系統、通訊系統和標配武器的事實很難承認嗎?俄羅斯不知道打下去每一天制裁都只增不減嗎?他們不知道自己有多少錢可以燒嗎?這些還沒出動的士兵是精銳也不奇怪,但不太可能起甚麼逆轉的作用,一切已經太遲了。

目前看來俄軍並沒有殺傷平民的意圖,這樣即便他們成功圍城也不可能短時間內逼使烏克蘭投降。現在俄軍想贏的選擇只剩下用非核大殺傷武器(e.g.溫爆彈)……或者核武而已。對孤注一擲的普京來說,會不會真的用核武還真不好說……如果核威懾持續升級,被直接威脅的英法肯定毫不猶豫地搬核武出來對幹,但某失智老人有沒有能力作出正確決定,應該就是整個危機有沒有辦法壓下去的關鍵。

從歐洲的角度來看,這次侵烏終於使他們朝更適合面對極權政體的結構轉型。過去一年匈牙利不斷的搞事已證明歐盟全票採決制的漏洞非常大,以至其他國家決定以歐洲國家集體而非歐盟的名義行動。這次更進一步,波蘭和波羅的海三國直接跳過歐盟層面提供援助,之後到法國瑞典,再來是希望洗刷頭盔污名的德國。一直到了過去24小時在除了匈牙利外所有成員國都提供了軍援以後歐盟才匆忙宣佈戰機等支援,但大家都已看穿了歐盟在這方面沒法迅速做出決策。

歐盟和現任大佬德國也不是傻子。很明顯英法更為進取的姿態包括英國的情報支援和情報物資支援和法國的外交奔走就是想削弱德國的影響力。作為應對德國首先自己把軍費加了上去宣示自己從極度厭戰的政策中扭轉過來;再來就是推動歐盟把烏克蘭甚至擔驚受怕中的瑞士芬蘭這些傳統上中立的國家統統收納進去。此舉的後果就是歐盟不再單以經濟為主導,而是作為歐洲的利益--不但是經濟上的利益也有政治、國防上的利益--為主導的組織。在俄烏問題解決了以後,這個新的歐盟也會重新審視自己與中國的關係。到時中國那套銳實力還玩的下去嗎?

這次事件直接把中國置於兩難之中。作為多年的「兄弟」、現在的「患難手足」或者至少是反西方陣營的唯二大國來說中國很難不挺俄。從微博上就能看出小粉紅為攻烏作出來的一百個理由:烏克蘭欠錢不還、烏克蘭亂殺自己人、烏克蘭巴士不付車票被罰活該被打、徐州等中國鄉下很需要烏克蘭女孩、澤連斯基是猶太人等等等等。只是他們發現俄羅斯全面侵略原來是認真的,這超出了他們支持主權和領土完整性的底線,那到底還挺不挺俄好?挺俄會被西方一起制裁同時被蓋上支持侵略者的蓋章(雖然本來就是),不挺俄則是背叛加失去盟友。中國在思考數天後終究在聯合國安理會上投下了棄權票同時也偷偷買進俄產小麥。裝低調的中國或許可以躲過一時風頭,但如果某人真的想在有生之年收復台灣完成民族復興的話還是盡快打吧,過了今年就再沒有別的國家幫你擋槍了。

另一個觀察這次衝突的角度是從金融出發。貨幣是立國之本,是決定國家興亡的關鍵。從古到今從東到西各種帝國、1985年的日本、1997的亞洲一遍又一遍地告訴我們保不住幣值的國家有何下場。我們沒想到的是我們在有生之年居然又還能看到大國貨幣崩潰--而且一來就來兩個。

土耳其里拉的崩潰純屬是自己作死,盧布的崩潰卻可以成為現代貨幣的經典教材。我們可以看到SWIFT如何影響一個國家的金融系統(甚至將外匯儲備無效化)、看到一個國家在極緊急的狀態下如何守護自己的貨幣。啊對了任志剛你乾脆去俄羅斯守盧布好了,大幅加息剛好是你的拿手招數吧?香港人沒興趣聽你的廢話。

說了這麼多俄烏局勢其實跟我們大部分人沒有直接關係,但作為一個正常人我們很難不為烏克蘭的狀況感到擔憂。縱然有西方無窮的支援俄羅斯還是步步進逼接近完成圍攻之勢,而他們的狂轟濫炸也逐步升級。若然真的打巷戰基輔必定是俄軍的史太林格勒,但對別忘了蘇聯在那絞肉城裡也犧牲了一百萬人。烏克蘭在精神上和經濟上能受住這個級別的打擊嗎?

希望烏克蘭可以堅持下去,勝利終將歸於敢於捍衛家園的人。願榮光歸烏克蘭。

Friday, 18 February 2022

Wordle, Nerdle and other dles

Edit: well I don't recommend people playing the original Wordle, which is now under NYT due to their hideous changes to the game, including banning words from dictionary, making answer words notoriously difficult, and ADDING AD TRACKERS ON THE GAME SITE

Although we won't possibly try Wordle anymore...the science behind the game is still fun to look into. There are also other interesting non-commercial variants like those I listed below. I hope you will spend a little time trying and feel fun about those :)

Recently it has became a trend to play Wordle or its variant: Nerdle, Kotobade Asobou, Primel,... and you can extend the list for another 10 or more games.


From a computational perspective, finding the optimal route is easy given the fixed dictionary set and the limited word length (5). Not necessarily the best but the entropy approach is classic (cf. strategies against games like hangman), efficient and near optimal. 3Blue1Brown made two very high quality videos (as usual) which you can find here and there.

The only thing to point out is that the overall efficiency (distribution on number of guesses) relies on how you weight the frequency/likelihood of those answer-words. It is fine not to assume anything (word frequency), but if any I would set the cut-off (the inflexion point for the sigmoid function) much much narrower given that most answer-words seems to be common enough, more common than the impression from the actual pool size (~2300 words). Of course the ideal weighting is to equate the frequency of occurrence for words as answer, but that would be a meta thing to consider after.

I have been using the same starter from day 1 -- POWER. Clearly not the most efficient as O and E are not the most popular vowels and W is fairly uncommon, but I feel like to stick with that and see how do I perform. So far so good: I averaged 3.6 guesses over the past games.

But English is never my specialty...it would be more interesting to talk about Nerdle, the one based on numbers and the four arithmetic operators. Mahjong Handle is also fun given its totally different nature and an essentially harder variant to tackle. 

Nerdle.


10 numbers, 4 operators and the equal sign, with 8 slots and 6 guesses. A much easier game given its highly predictable pattern (math based) and a small letter pool size. In fact there are two starters that covers all 15 letters that you can almost always guess it right on the third guess with some exception. 

The first exception comes from equivalence by operator inverses. For example 12/3 = 4 can be expressed as 4*3 = 12. Such equivalence can usually be eliminated once you know which operator appears and which does not.

The second exception comes from equivalence upon translation for + and -. For example 3+8=11 translates to 5+8=13. Again it can be eliminated by fully exhausting all 10 possible numbers with proper starters. (It is in fact possible for translation to happen using the same set of numbers. Can you find one? -- just keep reading if you can't :P)

The third exception is by commutativity. For example 6+9=15 swaps to 9+6=15, 12/3=4 swaps to 12/4=3 and so on. Unlike the previous two exceptions, the starters do not necessarily eliminate commutativity. In fact, the author of Nerdle said that it won't be fun without allowing commutativity...although he added the choice of playing the game that accepts equivalent commutated answer at the end. 

The strategy is simple from here: you use the two starters (in a very rare case if the first starter is good enough one may also give it a try). Once you know all the symbols appearing in the expression it should be easy to get the right answer in the third guess (upon commutativity). There many ways for one to eliminate most random permutations of letters:

- RHS is presumably a single number without operators. The equal sign should appear on the 5th-7th slot, which is then clear from the starters. That means the expression on the left consists of 4-6 letters with 1 or at most 2 operators. You can then guess the position of those operators before filling the numbers in.

- The possibility for RHS is greatly limited by the operators given. An expression with single digit numbers, + and - only would not exceed 19/29 and you know the 1 must be at the 6th slot (if ='s on the 5th). Checks like mod 10 are also very helpful.

Take Nerdle#20 as an example. The two starters told you that the letters are 1, 3, 5, 6, + and =; also = is at 6th with +, 1, 6, 5 not at 2nd, 3rd, 7th and 8th slot respectively. What's the correct answer?

With 5 slots on LHS and only + allowed the answer is either a sum of 3 single digit numbers or a sum of two double digits. Let's look at the possibility of a sum of three single digit numbers. Clearly RHS must be 1x: 11 and 13 are too small as 6+5+3=14; 15 is not allowed and the only combination that sums to 16 is 6+5+5 where 3 is missing. 

What about a sum of two double digits? By checking mod 10 the possibilities for the ones are 1+5=3+3=6, 5+6=11 and nothing else. Notice that the tens on RHS is not 6 but it's not 11 either, so we need an extra 10 from the ones meaning that the ones must be 5 and 6. We now look for combinations that add to 2, 4 or 5 (so that the corresponding tens would be 3, 5 or 6). The possibilities are 1+1=2 and 1+3=4.

Plugging in we conclude that we have two distinct expressions satisfying the hints from the two starters: 15+16=31 and 15+36=51. One of them would be the third guess and if that fails we know for sure what's the right answer at the fourth guess even without commutativity (why?).

*

The phenomenon of "when your first serious attempt (for the right answer) failed you can easily give the correct answer right away" is important because not only that the chance of getting right is respectable, but it is also informative for you to get the right answer even if it doesn't work. In that way we have largely avoided the long tail cases (guessing 5+ times) and compresses the average number of guesses required  to the minimum. But what about games where long tail cases are well possible?

Welcome to the world of Mahjong Handle, where you guess a given valid hand in 6 guesses. 

*I never play Mahjong in English and I guess that applies to most of you guys...check Wiki if you are not sure about the terminology.

How hard is Mahjong Handle? We start by counting the number of valid winning hands in Japanese mahjong. I am sure there is a calculated number somewhere on the web, but to make it simpler we consider a very restricted yaku type -- all triplet hand (対々和) where you need 4 triplets and a pair. Simple math tells you that there are C(36,4)*32 = 1884960 ways to score an all triplet hand and that is already 1000 times as massive as Wordle's answer pool! There is no doubt that the actual number of valid hands is at least 20 times larger...or 50 times, 100 times maybe?

With that in mind, exhaustive information theory approach isn't practical anymore (another differences between Wordle and Mahjong Handle is that frequency analysis doesn't work here -- at least there is no obvious frequency references). Even if one managed to estimate the information provided by each guesses one must face the long tail problem. Unlike Nerdle, it may take up to 2 extra necessary guesses. Given the overall complexity of the game it often decides whether one gets it within 6 guesses or not. 

To give a more solid example one may consider the combination 2223334 and you are waiting for one extra tile. The extra tile can be 2, 3 or 4:

2: 222 234 33
3: 22 234 333
4: 222 333 44

While you may not know anything about whether it's 2, 3 or 4 in previous guesses. Things can be taken to extreme in the case of nine gates(九蓮宝燈) where all nine tiles are possible in the case of 11123456778999.

Gathering information on appearance is cheap, but information on repetition is expensive because it takes up multiple slots. It's even more expensive to ask if a tile appears 3 or 4 times, yet it's always possible given that triplet is a basic block in the hand. 

As a consequence we often fall into a long tail trap where the remaining uncertainty is low, but each guess would only help by a little. The simple greedy approach as in the video (entropy + probability) may not work very well, but I bet that a secondary correction would help greatly (note: 3Blue1Brown also mentioned this in his second video).

The real challenge is to evaluate each pieces of information gathered from the guesses though. Since exhaustive evaluation is now impossible, we can instead assign weightings to different kinds of partial information regarding the building block of 3 or 2. Rating from the least to the most useful information:

- a given tile is not in the hand
- a given tile is in a hand
- a tile is in a hand and is isolated from the sides
- a tile is in a given block
- a tile is in a block of sequences
- a sequence block with 2 known tiles
- a fully known sequence block
- a fully known triplet block
- a fully known block and isolated from the sides
...

Of course there are technical problems where blocks are often ambiguous when they stick together, but the idea should be clear: we assign weightings to each categories of information and play Mahjong handle prioritizing guesses according to the  weightings assigned. We then adjust weightings to improve  efficiency. No optimal performance guaranteed (as for any non-convex optimization), but it should be good enough.

And for humans like us how do we tackle the game?

Well I don't have any concrete suggestions even for starters. Thirteen orphans(国士無双) is certainly something to start with, but some says that these terminal tiles do not actually appear in hands *that* often comparing to the simple 13/36 coverage. Some also suggests the use of seven pairs due to its flexibility and to detect repetition but some also say that to be a waste. Some prefer to use loads of sequences...it's hard to tell which one's the best but I ended up using thirteen orphans as my starter. There are two reasons for that:

1) Coverage is still important. It is still very probable for at least one of the 13 tiles to appear in the hand and this is the cheapest way to ask for all 13 of them in one go.

2) Detecting honor tiles are very costly. In normal hands you need 2 or 3 copies of an honor tile for the hand to be valid, but for thirteen orphans you only need a single copy of it. This is another long tail problem -- any of the seven honor tiles may appear in your hand. Any algorithm that neglects them will face the chance of wasting 2 or 3 extra guesses at the end just to detect them. 

After that it's also about detecting sequences and repetitions. When both terminals (1,9) are void from the hand you can detect any sequence with 3 tiles (456), although repetition of 2, 3, 6 and 7 will be harder to detect. Some would prefer the use of two sequences (e.g. 234+678) to avoid that. Which is the better approach? I can't really tell.

For Wordle and Nerdle, one starts making reasonable attempt at guess number 3, but for Mahjong handle the guess should start no earlier than the fourth guess. From here you can really pile up something close to the answer and complete the final pieces using the ordering hints. There are too many 'rules' to apply and I can't even count them all, but here is one for example: if you have two consecutive tiles (e.g 56s) one labelled orange and one labelled blue then these two tiles must be a repetition of the tile labelled blue (why?).

Still getting it right on the fifth guess is not that easy and here is my stats:

There are definitely better strats as observed from the daily performance of my friends, but I enjoyed more the later guesses for this game and haven't bothered to optimize the overall approach (yet). If you have any ideas please comment and tell me that :D

Tuesday, 4 January 2022

04/01/2022: 聽說afk回來會變強

 
快……快了 (話說不是Senpuu嗎w)


新年快樂。

又一年新年在疫情的陰影下度過,以致我根本沒有甚麼好寫。總不能寫我抽不到門票進C99吧?不過至少最底限度的新年儀式都有辦妥:做紅豆湯(本來要做糕點的但是電子磅壞掉了)、看紅白、看箱根駅伝。本來以為今年會是戰國時代,沒想到青學還是太強了,連半點機會也沒給其他學校。就算駒澤的ace沒爆掉也不可能追上11分鐘的差距吧?

來說一下我好久沒提過的音遊好了。說好久沒提過,其實因為某些原因下半年都沒玩過,不過現在又重新打起來了。主要原因大概是要DDR當成做運動……吧?聽說音遊玩家afk一段時間後回鍋會變強,今天來驗證一下在我身上是否成立好了。

DDR:體力沒大退化,平時在家裡也有玩健身環/Jump rope challenge(其實是跑步)。爆發力在家裡練不了但退步不明顯,至少瓶頸還是在BPM 200 (Pluto relinquish, Anti-matter之類)。比較大的問題是讀譜真的退步了:以前習慣打450-480 Boost,BPM 200可以調到500 Boost正常打,Neutrino爆發段可以調到600 Boost;現在比較舒服的是420-460 Boost,500 Boost會非常不舒服,600 Boost打Neutrino CSP完全看不清。另一個讀譜的問題是看不懂比較複雜的連打比如A4A CSP慢速段和Possession (20th anniversary mix) CSP的地雷段。當然這些以前多半也只是半懂,但現在是看到直接石化的感覺。現在重新每週兩次每次打七道,希望能慢慢回復。

太鼓:很神奇地我重新打街機太鼓了。對上一次有常規打街機太鼓的時候熊蜂飛行還是10星……現在打回去感覺上肢耐力比以前好,大概因為有玩健身環。不過最神奇的是我好像突然就適應半~全換了!這對於以前街機用炒菜而Osu用三指的我來說是從來沒試過的東西,只能說是日有所思夜有所夢就悟出來了吧。

以前我街機可以打大部分9星和幾首10星……現在也是,不過是現在的9星和10星。以前第一首過的10星是mint tears,到了2022第一首過的10星也還是mint tears--我覺得這首快要被降格就是。主要瓶頸還是在體力和速度上,看多練一段時間會不會變好吧。

Nos:沒練。感覺打完太鼓手就沒力彈琴了,明明打下去miss比以前還要少(所以afk一段時間真的會變不同),但用疲憊的雙手彈下去完全沒了那種優雅的感覺,也就漸漸不想打了。另外感覺難度漲的很快,最近也沒有很驚艷的歌曲(除了スーパー戦湯ババンバーン和bemani symphony系列--沒想到Nagiha居然投身K社),根本沒有每週四衝下去解歌的動力。

喔對了,看過紅白我才發現まふまふ這傢伙也太帥,根本是從FF7裡走出來的吧?歌唱力也沒話說,完爆那個炒解散話題的Bish。所以那個Ado甚麼時候也要上紅白露一手?