持續開創 C# 可能性的專門公司「Cysharp」所放眼的目標
「Cysharp」是以程式語言 C# 為中心進行遊戲技術的開發,並為了向世人推廣 C#(※1)的優點而成立的 Cygames 旗下公司。他們為了替遊戲業界盡一份心力展開各種行動,像是公開數十個適用於 C# 的 OSS 函式庫等等,而獲得「CEDEC AWARDS 2022 工程部門優秀獎」,還登上國際級遊戲創作者祭典「GDC2022」的舞台,持續嶄露頭角。我們請到了「Cysharp」的常務董事,來為大家分享公司的成立經過及今後願景。
※1 C#:由 Microsoft 開發,適用於 .NET 平台的程式語言。不但在許多領域中受到廣泛的使用,連遊戲引擎 Unity 也有採用。在伺服器端開發方面,為了開發者所設計且全世界工程師都在使用的問答網站「Stack Overflow」或是搜尋引擎「Microsoft Bing」之類的大規模服務中,也有非常多運用到 C# 的案例。
- Cysharp, Inc. 常務董事Yoshifumi
- 與 Cygames 共同成立了 Cysharp, Inc. 這間 C# 專門的開發公司。標榜著「C# 大一統理論」,進行伺服器與用戶端(Unity)皆使用 C# 實行的框架(Framework)開發並建構架構(architecture)。甚至開發出多款全世界都在使用的 C# 開源軟體函式庫(Library),像是「Message Pack for C#」,而在Microsoft MVP 獎計劃──Microsoft 為了表彰全世界技術社群領導者的活躍表現所設置的獎項中,從 2011~2022 年的現在(指日文版發表時間)連續 11 年獲得「Microsoft MVP」(Microsoft MVP for Developer Technologies)的獎項。持續引領著日本對於 C# 技術方面的開發。
常務董事的過往經歷與
Cysharp 的成立經過
首先,請為我們介紹 Cysharp。
Cysharp 是以「徹底鑽研程式語言 C#,來向世人推廣 C# 優點」為動力的 C# 專門集團,成立於 2018 年 9 月。說到在遊戲公司使用 C# 這件事,通常都是用戶端(Unity)的印象比較強烈,但在 Cysharp,我們是提倡「C# 大一統理論」的建構方法,仰賴伺服器與用戶端兩者皆以 C# 製作的做法,使開發產值達到最大化。由於 Unity 用戶端與伺服器的開發,通常都是分別使用不同語言進行開發的,所以勢必得進行多重安裝,像這類必須個別管理程式碼的情況就會發生,但只要將程式語言統一成一個之後,就能解決掉以往那些複數的問題了。
由於這是一種全新的開發手段,所以我們在 Cysharp 為此做出許多努力,像是建構出參考架構,還研發出用來連結用戶端與伺服器的效率化函式庫,並以 OSS 的方式提供等等,致力於讓整個遊戲業界接納這套做法。
請告訴我們 Yoshifumi 先生您在 Cysharp 成立前的經歷。
我在高中時代因為與《思考スピードの経営: デジタル経営教本(英文原名:Business @ the Speed of Thought: Using a Digital Nervous System)》(比爾‧蓋茲著作)這本書相遇,而對 Microsoft 產生興趣,經常遊玩初代 Xbox 跟 Xbox 360。我認為比爾‧蓋茲的原點是開發出 BASIC 直譯器(※2)而加以販賣,所以要真正使用電腦,就必須學會寫程式才行……帶著這個想法嘗試寫程式,就是我身為工程師的起點。然而,當時並沒有留下什麼明顯的成果,身為程式設計師只有不停感受到挫折而已。
※2 BASIC 直譯器(interpreter):能夠讓使用者運用 BASIC 語言輸入並執行程式的方法之一。
在我遇到「C# 3.0」時才出現轉機。在 2008 年發布的「C# 3.0」一開始被稱為「LINQ」,是一款搭載了革命性功能──將基於對象語言及函式語言融合在一起的開發語言。實際接觸後,操作起來跟 Visual Studio 很搭,總之寫起來的感覺真的很棒,跟我的想法非常合拍。我從這段經驗中感受到命運,接著便想說「希望能專心探究這個語言」,而開始積極分享相關資訊或是參與程式語言社群。另外,我也開始將自己的成果以 OSS 形式發表出去。
後來,我個人所開發的 OSS 獲得好評,並在 2011 年獲得「Microsoft MVP」的獎項。得獎後,我得知有一間使用 C# 進行遊戲開發且急速成長的公司存在,便進入該公司任職。開發過幾款遊戲後,我們的開發團隊於 2012 年獨立,成立了 Grani, Inc.。我從 Grani 的草創時期就是其中的一員,並擔任 CTO 一職。我在參與過許多形形色色的作品開發工作後,加入 Cygames 的行列直到現在。
原來您在加入以前有這樣的經驗呢!請告訴我們在加入 Cygames 行列後,Cysharp 的成立經過吧。
在 Grani 的時期,我也曾進行「讓全世界的 C# 更加熱鬧」、「製作並推行 C# 的 OSS」這類活動,目前還在世界各地廣泛使用中的「UniRx」、「MessagePack for C#」這類 C# 的 OSS 函式庫,都是在那段時期誕生的。從 Grani 退職後,我在協助其他公司開發的同時,更加深了自己「想要聚焦在 C# 達成一些大事」、「希望能向世人展現出成果」這樣的想法。以 Cysharp 名義公開的 OSS 之中,得到最多支持的「UniTask」就是在這段期間製作出來的。然而,以個人層級行動,能夠做到的事情實在相當有限,我認為要對世界產生巨大的影響或帶來什麼價值應該都很困難。
在那個時候,我從 Cygames 的 CTO 室收到「要不要一起做什麼事呢?」的邀請。我從 Grani 時期就相當注意 Cygames 的存在了,我對 Cygames 的印象是遊戲品質非常好的一間公司。我在談話中理解到,他們能做出那些遊戲的能量來源是來自於「要做出這世上最高品質的內容」這股熱情,這跟我「要用 C# 做出全世界最高品質的內容」的想法也有部分相似,所以引起了我相當大的興趣。
而且,不但有能夠製作出「Cyllista Game Engine」這種以 AAA 遊戲開發為目標的自家遊戲引擎的部門,也有像是 Cygames Research(本網頁為日文版)那種類似於學術理論的研究開發部門。這讓我覺得要是在這麼豐富的環境內出現「C# 專門的開發公司」的話,應該會產生一些有趣的化學變化吧,於是我才下定決心要以 Cygames 旗下公司的名義成立 Cysharp。
揚名世界的 Cysharp 技術
用於《公主連結!Grand Masters》開發的革命性架構
請告訴我們更多 Cysharp 從事的內容與成果。
為了「持續開創出 C# 的可能性」,Cysharp 正在進行的活動大致上可分為兩種。其中一種是「在軟體開發平台 GitHub 上公開C#的OSS」。我們現在一共公開了 25 個 OSS,GitHub 用來衡量人氣的指標──星星數量共計已超過一萬個。以 C# 相關內容來說,就算放眼世界也算是排在相當前面的數據了。事實上 Cysharp 的 OSS 正廣泛地受到使用,而日本 Unity 的行動裝置遊戲大多都有使用到一些 Cysharp 所製作的 OSS。因為有這些成果,讓我們今年(2022 年)榮獲「CEDEC AWARDS 2022 工程部門(本網站為日文)」的獎項,還受到集結世界知名技術人員的「2022 Game Developers Conference(GDC2022)」邀請,在線上進行演講。
另一種則是「增加在伺服器端使用 C# 的高品質遊戲的業績」。以 Unity 製作的遊戲當然有使用 C#,但我覺得在伺服器開發採取 C# 語言的遊戲還不夠多。只要採取 C# 語言的業績夠多,一定也會有更多人想要嘗試這個做法,所以我認為和 Cygames 一起開發高品質的遊戲,讓業績持續增長,將會成為我們最有利的宣傳。
說到近期的成果的話,可以舉《公主連結!Grand Masters》(※3)為例子。這個作品簡直就是「C# 大一統理論」的理想形式,像是即時通訊的部分,還有從 API 伺服器到對局配對、伺服器基礎架構的基盤製作為止,構成這個遊戲的一切元素都是用 C# 做成的。Cysharp 最主要是負責伺服器端的基盤設計、開發輔助工具以及基礎架構等等。
※3 《公主連結!Grand Masters》是作為《超異域公主連結!Re:Dive》的愚人節企劃,於 2022 年 4 月 1 日〜8 日期間公開的 app。
在開發《公主連結!Grand Masters》的時候有什麼特別注重的事情嗎?
我很注重於要讓 Cygames 的員工認為「還好有使用 C#」。Cygames 是第一次嘗試以 C# 安裝伺服器,所以我很小心不讓大家在使用 C# 開發時感到不方便。我在開發時所思考的是,從正面意義上來說,要讓作業過程「如同空氣般」自然的進行,並且,希望能營造出 C# 擁有豐富的開發輔助資源的工作氛圍。Cysharp 這邊開發出來的《公主連結!Grand Masters》專屬開發輔助工具,我覺得有適度地活用了 C# 的優勢。
那是什麼樣的輔助工具呢?
《公主連結!Grand Masters》是將過去存在於用戶端的遊戲邏輯模組,設計成活用 C# 撰寫,並在伺服器端改動邏輯的專案。因此,從網頁瀏覽器即時連接伺服器後,就可以即時掌握到戰鬥中的內容,或是從瀏覽器上改寫檔案。在網頁瀏覽器上的即時顯示及編輯,都是仰賴我們使用了一種叫做「Blazor Server」的全新 C# 框架,才能在瀏覽器、伺服器、Unity 以及所有範圍內共享 C# 的程式碼。
這個開發輔助工具在 Cygames 的工程師與企劃人員中也得到了相當好的評價,我們成功地建立起緊密且良好的合作關係。關於《公主連結!Grand Masters》的整體細節,Cygames 員工有在 CEDEC 2022 的演講「運用 C# 統一用戶端/伺服器的開發語言所帶來的高效率開發體制~公主連結!Grand Masters 的開發案例~」中發表更詳盡的內容。(該網站為日文版。)
將 C# 的優點推廣給
Cygames 以外企業的意義
聽說 Yoshifumi 先生您也有從事一些對外的活動。
由於在遊戲業界裡,撇除掉 Unity 開發的情況後,C# 並不能算是主流的程式語言,所以我認為也必須將 C# 的優點推廣給 Cygames 以外的企業。在「GDC」、「CEDEC」及 Unity 舉辦的「Unite」這種大型會議,還有社群學習會的那種小型活動之中,我都會積極地演講 C# 主題的內容。另外,我也有以顧問的形式,協助其他公司的作品開發。近期比較大的案件就是在《NieR Re [in] carnation》(營運:SQUARE ENIX)的開發上,引進許多 Cysharp 的 OSS 並進行技術支援。(連結為日本遊戲官網。)
另外,我也有參與技術類書籍的編譯,去年(2021 年)我負責擔任《Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .Net Libraries》(Krzysztof Cwalina、Jeremy Barton、BradAbrams 著作)的編譯。我非常推薦這本書,希望以 C# 撰寫程式的工程師們都能夠讀到這些內容。裡面對於 C# 最常被使用、最重量級的框架──C# 本身的核心函式庫「.Net Framework」是基於什麼思想而設計出來的一事,記載得非常詳盡,所以不但實用,也有非常多的學問。我想關於 C# 的內容,從基礎到應用方面全都有涵蓋進去了,請大家務必去翻閱看看。
Cysharp 的願景
希望「說到 C# 就想到 Cysharp」能成為全球共識
那麼在最後,請告訴我們 Cysharp 今後的願景。
為了讓「說到 C# 就想到 Cysharp」能成為全球共識,我今後想要努力進軍國際。以 OSS 積極推行 C# 的活動當然會持續進行,但我覺得最重要的還是要和 Cygames 一同製作出最高品質的遊戲。繼《公主連結!Grand Masters》之後,我們會繼續協助 Cygames 發表最高品質的內容。此外,我們也有在考慮將活用 C# 特性的開發輔助工具普及化,以不論公司內外皆能廣泛使用的型態提供出去。希望這樣的做法,能讓大家對 C# 抱持親近感。