Saturday 28 April 2018

10 years of Osu! 雜談(1) - 個人篇



九龍灣地鐵站,B出口。其實到現在大家都記不清那是B出口還是C出口,只知道大堂的另一邊是A出口,所以大家都管叫它CBB出口。不過它還有另一個好認的特徵,那就是長年不變的批&撻專門店。所以大家說CBB出口等時還會說在批&撻對面等。

所以我今天來這邊到到底要做甚麼呢?德福商場跟那些領匯改裝過的商場一樣走高檔路線,裡面除了不怎樣大的商務印書局和不怎樣好吃的甜點店之外其實沒有甚麼好逛的地方。唯一的例外,二期頂樓的機舖Virtual Zone從認識到消失也只有短短三年時間而已。伴隨著VZ一併消失的,還有旁邊的冒險樂園這個小朋友最後的淨土。

牛奶撻早就從$6漲到$9,那堆用料比較豐富的批的價錢更是一律雙位數。$6在另一邊A出口某包子店剛好可以買個新鮮出籠的芋頭包,所以這家批&撻的生意似乎也沒以前好了。不過我想了想還是點了一個牛奶撻,在這種咋暖還寒的春日拿來做下午茶實在再好不過了。極速把牛奶撻清進胃裡,我就趁這個空檔拿出耳機,在手機上打起Groove Coaster來。

十年前智慧型手機還只是剛冒出頭來,在軟硬體雙重限制下實在不可能有甚麼遊戲能搬到手機上,音遊的話只有十分粗糙的osu專用app,osu太鼓專用的t!aiko和超級山寨版jubeat而已。十年過去,商業性質的精美音遊早就遍地開花,連本來做街機的廠商也要盤算著反攻手機市場,Taito出品的這個Groove Coaster就是很好的例子。當然,如果說街機移到手遊上的話我最期待的還是Beatstream,好可惜啊。真他媽的可惜啊……FYK。

咦……?我剛才說等人?

我以前的確經常在這邊等人。那是每年春秋二祭……啊不對,每年兩次的CW同人展,再加上RG的話大概每年有三四次這樣。我們每次都相約在這裡集合,上去美心MX吃個早/午餐,然後向九展出發。現在所謂兩大同人展都因為不同原因衰落,同人圈子不是跑去更小眾的場地,就乾脆跑到台灣FF或者日本Comiket去了。

正好打Groove Coaster打到手酸(不得不說,狂點屏幕真的會很累),我抬起頭看剛好有三四個人正圍在一起打jubeat plus。該不會他們就是我要去找的人……?我這樣想著湊了過去。

「俄羅斯雪舞在平板上打真的好累。」
「在平板上沒辦法滑呀。不過習慣了平板打法可以逆向輸出呢。」
「我還是打rb算了……」
「所以我們還要等誰啊……?」
「主角還沒到呢,來慶祝的人還有幾個。」
他們其中一個人發現了我:「你也是Osu玩家吧?是來慶祝wmf註冊十週年的吧?」

我……十週年……?「我……就是本人啊……」

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

好吧,我編不下去了。說編也不太準確,因為同人展和九龍灣對我來說幾乎可以跟osu畫上等號。自己的帳號十週年了,大概也是華人活躍圈子第一個,怎也要寫點東西紀念一下。

關於我

人生有幾多個十年?我現在的人生過了兩個多一點的十年,而其中一個十年塗滿了Osu的印記,如果說人生沒受到影響那是不可能的。趁這個機會我就在這邊數一下自己的改變。

首先當然是對音樂的理解。在接觸Osu!之前我對音遊也有一定興趣,以太鼓-太鼓同人為主,但在web1.0世代下始終沒有一個整合的平台,我終究還是沒有深入鑽研類似的遊戲,直到DS遊戲應援團的出現,然後便是這個惡名昭彰的Osu!。

在機廳看人玩跳DDR,明明是白癡一樣的Level 4也跳得東歪西倒,苦撐半首歌之後還是failed的情況時有發生,現在的我可能難以理解,卻沒想到十幾年前的我其實也差不多:太鼓夏祭勉強過、應援團幾乎沒S過……在接觸了Osu以後有了刷分的需要,每首歌只能聽個一兩次下如何快速掌握一首歌就很重要,不是依靠反應而是用理解去打音遊。現在的我可能在這方面可能做過了頭:每次恍神就會自動按自己的理解打下去,然後理所當然的打得亂七八糟。

做圖對音樂的理解度當然又比做圖深了一層。我很享受那種用耳機loop三千遍抽絲剝繭將自己的看法寫出來(Holy Moon, Dreamenddischarger, それは花火のような恋)或者那種觸景生情的作品(Babylonia 我有說過我是淋雪寫出來的嗎?)。雖然在13-16這幾年在忙別的遊戲把做圖放下了,不過去年又回來做了2張,希望今年也能繼續做下去。

我自己一向跟別人說現代線上遊戲,享受玩樂只是次要,認識到志同道合的朋友才是更重要的事。Osu在社交性上比我主力玩過的其他遊戲都要強:除了遊戲內IRC跟論壇的雙平台外,遊戲會半強逼做圖的圈子進行交流。輕鬆聊天也好,正經討論規則也好,因為mod而打架也好,經常交流的人才有可能成為自己的好友。在本地我們有沙包群HKOSP不在話下,在CWRG衰落前幾乎都是指定的聚會日子(所以九龍灣那個鳥不拉屎的工業區都快被我們走到熟了);外地的話在台大打麻將、在涉谷唱K、在倫敦的同人展上……類似的異地交流幾乎數不完。當中不乏有更多共同興趣的朋友,但對我來說每個可以交流的都能算做朋友了呢。

*

上次總結寫的是我玩滿四年的時候,正好是我上BAT後不久、卻大概也是投入Osu時間逐漸減少的時間。要歸根究抵的話大概就是TWC發生的一連串不愉快事件跟上mod圖的無力感,再加上2012下半年推出的Fantasica把我能肝的時間都搶走了吧。這六年我的Osu帳號當然沒前四年精彩,不過免不了還是要在這邊細數一下:

2012-13:偶有佳作,但作圖有種劍走偏鋒的感覺。鋼琴獨奏連打變成了我的標記。有效果好的(Ubertreffen - 這首DDR也不容易;Faith is for the transient people - 早苗就是棒)也有效果一般的(加速する恋は誰も止められない - 也不是說差,但就不像是最佳解,跟前面比起來轉變太急了)。比較遺憾的是我的超大型企劃Touhou Last Boss Rush最後還是沒能成事。

2014-2016:完全是空窗期。地城、黑貓(英文)、日麻加上其他手遊把我的遊戲時間全佔去了。

2017- :機緣巧合下我透過discord又回到比較活躍的osu圈子裡,然後在2017年也做了兩張圖:Sakurairo Dairy 會接這張不消多說當然因為對路人女主的愛,穩穩地做一張TV size Muzu對我也是小事一椿。それは花火のような恋 女裝是萬惡之源 又是Beatstream(啊啊啊Konmai還我BS)又是Prim(或者senya或者moimoi或者...)豈有不接的道理呢?比較有趣的是我、nardo跟aabc三位對歌曲的解讀完全不同:可能我過度loop導致對自己理解太過深刻,我幾乎打了他們的圖10次以上才開始習慣他們的圖……



這邊帶出了一個有趣的事實:在音游的領域上不論是做圖或者打圖我都是用感性行事。做圖當然沒問題,出了問題也可以在mod的過程中補正;打圖一直過份依賴自己的理解大概是我沒法取得高命中率的原因?在osu如是,在jubeat更如是(當然也有自己手勢過於花巧有關),DDR也是。即便將動作修正幅度變小,我也只有在專心數拍子時才能取得98以上的分數;在其他時候隨性的數拍子則總有跑掉的時候。不知道我繼續把DDR練下去這方面會不會修回去,修回去又會是好事還是壞事呢?我可沒興趣知道--打音遊只要享受過程就好了。

*

本回主要是Osu在我身上發生的事,下回我們會來回顧一下這六/十年Osu或者相關遊戲的發展。

Wednesday 4 April 2018

Two little math questions

I get math questions day in and out and some of them are quite interesting that I considered to put it here.

1) Consider the following nutrition label:

per 200g: 17.1g of carbohydrates with 17.1g sugar
per 100g: 8.6g of carbohydrates with 8.5g sugar

Can you approximate the sugar content in the carbohydrates?

If it's an olympiad question (junior level of course), we will probably end up with the sugar content being a fraction p/q for integers p and q, then you are asked to minimize q...

2) Consider the space of continuous functions $C(\mathbb{R}^n \times \mathbb{R}^n, \mathbb{R})$, and the subset:

$K = \left\{ f(x,y) = \varphi (x) \varphi (y) \mid \varphi \in C(\mathbb{R}^n , \mathbb{R}) \right\}$

where the kernel can be separated. We want to see if it is possible to relate the space $C(\mathbb{R}^n , \mathbb{R})$ with $K$ so that we can have some linear structure on it.

Define a mapping $r: C(\mathbb{R}^n , \mathbb{R}) \to C(\mathbb{R}^{2n} , \mathbb{R})$ by $\varphi \mapsto f(x,y) = \varphi (x) \varphi (y)$. Let $A \subseteq C(\mathbb{R}^n , \mathbb{R})$ be an independent set. Clearly $r(A)$ is an independent set in $C(\mathbb{R}^{2n} , \mathbb{R})$. To see this consider the equation

$\sum _{i=1}^n a_i \varphi _i (x) \varphi _i (y) = 0$

for all $x,y\in \mathbb{R}^n$. Now note that by definition $\varphi _i \neq 0$ so they do have non-empty support. If the supports are all disjoint then clearly we conclude $a_i = 0$. Otherwise pick a point $y_0$ in the intersection of at least the supports of two $\varphi _i $'s, then we have

$\sum _{i=1}^n (a_i \varphi _i (y_0)) \varphi _i (x) = 0$

for all $x$, and from the independence of $\varphi _i$'s we conclude that $a_i = 0$.

On the other hand $K$ is not a subspace of $C(\mathbb{R}^{2n} , \mathbb{R})$. To see this lets assume we can find a function $\varphi $ so that $r(\varphi ) = r(\varphi _1 ) + r(\varphi _2)$ for $\varphi _1, \varphi _2 \in C(\mathbb{R}^n , \mathbb{R})$.

By setting $x =y$ we know that $\varphi (x) = sgn (\varphi ) \sqrt{\varphi _  1^2 + \varphi _2^2}$. Substituting back to the original equation we have

$\sqrt{(\varphi _1 ^2(x)+\varphi _2^2(x))(\varphi _1^2(y) +\varphi _2^2(y))} = \varphi _1(x)\varphi _1(y)+\varphi _2(x)\varphi _2(y)$

$\varphi _1^2(x)\varphi _2^2(y) + \varphi _2^2(x)\varphi _1^2(y) = 2 \varphi _1(x)\varphi _2(x)\varphi _1(y)\varphi _2(y)$

which is the equality version of the AM-GM equatity! We conclude that $\varphi _1^2(x)\varphi _2^2(y) = \varphi _2^2(x)\varphi _1^2(y) $ and so

$ (\varphi _1(x)/\varphi _1(y))^2 = (\varphi _2 (x)/\varphi _2(y))^2 = c$

being constants for all $x,y$ in the support. Hence they must be constant functions. [I have missed the details handling the sign of $\varphi$ but it can be verified that it does not matter due to the square].

so we can actually assign a rank to $span(K)$ to the minimum dimension of $\varphi$ required so that the kernel separation trick works.