歴史を知ればもっと楽しくなる!!
2025/2/27
osu!(オス)はpeppy(ディーン・ハーバート(Dean Herbert))が開発した無料のリズムゲームです!!
自分がリスペクトしている方です。
.NET Framework上のC#で書かれてて。2007年9月16日にWindows向けにリリースされ、その後osu! lazerでは、macOS、Linux、Android、iOSに移植されています。
osu!のコミュニティは非常に大きく、redditの r/placeでosuのロゴが刻まれる程の規模です。
WYSI (when you see it) や 727などプロによって数々の面白い単語が生み出されています
.NET FrameworkはMicrosoftが提供しているしているフレームワークです。
Windows 7以降のパソコンには標準インストールされており、アプリやWebサービスを制作するのに最適です。
知っている方は.NET FrameworkじゃWindowsのみでmacOS、Linux、Android、iOSに移植できなくない?と思ったはずです。
osu! lazerでは.Net Core が使用されており、Windows以外の機種とも互換性を持ちます。
2017年4月1日からReddit内にて実施された共同プロジェクト、社会実験のことです。
実験はSubreddit内にあるオンラインキャンバスにて行われ、ユーザーは16色から1色を選び、キャンバスを1 pxごとに編集することが出来ます。
ここから歴史を紹介していきます。
初期のゲームビルド
初めてosu!がリリースされたのは2007年9月16日でした。それ以前に初期ビルド(プロトタイプ)がありました。その際の機能などを抜粋して紹介します。
非常に基本的なビートマップとエディターとプレイモードをがありました。
この頃はモードがosuのみでtaikoやmania、ctbなどはまだありません。
エディターで作成できるのは、シーク機能やスナップ機能のない非常にシンプルなビートマップのみで、スライダーやスピナーはなく、円と基本的なスコアリング/コンボ カウンターのみ。
昔のビートマップってやけに今と比べたら単純な訳ですね。
最初のリリースでは、約 16 時間のコーディング時間を要し、一晩中作業して完成したらしいです。
最新バージョンへの更新を処理するために、(すぐに として知られるようになる) pUpdaterosumeが導入されました。
この頃のバージョンのosu!をインストールすると別でアップデートするためのアプリケーション osume.exe があります。
メインメニューは新しい外観に更新されて、エディターにはコピペのサポート等を含む多くの新機能が追加されました。
メニュー タブとコンテキスト メニューが追加され、エディターの機能が以前よりも使いやすくなりました。
スライダーはスライダー ティックの存在によりさらに広範囲にサポートされ、ヒット サークルのスタッキングが存在し、ローカル ハイスコアのサポートが向上?
また、ファイル形式が改訂され、完全に刷新されましたが、古いファイルから新しい形式への変換も含まれていました。.osu
この頃から今のビートマップと同じ拡張子が使われるようになったんですね。
この頃にヒットバーストが新しくなったようです。懐かしいですね。
2007年9月17日は、一般の人々にとってosu!の誕生の日です。今日知られているフォーラムが設立され、peppy のホーム ドメインのppy.shからホストされました。
bemanistyleでのニュース発表ppy.shによって注目を集め、以前にリズム ゲームを体験したことがある多くの興味を持った人々が集まりました。
当時のリズムゲームと言ったらビートマニアやDDRとか太鼓の達人っていったところでしょうか。
リリース後すぐにNo FailとEasyのモッドと休憩セクションが追加されたそうです。新感覚のゲームだったので難しすぎたのもあるのでしょうね!!
今思えば休憩わからず急にサークル来るの怖いですね。
2007年10月6日は、オンライン ランキングが公開された日です。
この日に、.oszパッケージング方法と、初期の Web ベースの送信システムを備えたオンライン ビートマップ データベースも開始されました。
オンライン ランキングはゲーム内インターフェイスに追加され、Web サイトにも表示されました。
この頃に曲選択画面でのマウスホイールの改善とかソフトサンプルセットやキーボードでのコントロール(ゲーム内検索)等や完全なタブレットパソコンのサポートも実装されたみたいです。
pUpdater(osume)バージョン2がリリースされ、オプションのパッケージ ダウンロードがサポートされました。
これには、アップデーターを介してすべてのプレイヤーが利用できる最初のユーザー作成スキンの作成が含まれていました?
エディターには、距離ベースのスナップ、ブックマークのサポート、複数のスライダー カーブ タイプ、カスタム カラー、プレイ テスト、リードイン タイムなど、多くの機能が追加されました。
この頃からエディタがちゃんと使いやすくなった感じですかね!!
完璧なプレイ(FC)が達成された場合に S ランクの代わりになる新しい SS ランクがランキング システムに追加されました。
No VideoおよびHiddenモッドが導入され、それに合わせて SH (シルバー S) および SSH (シルバー SS) ランクも導入されました。
初めて、プレーヤーはタイミング セクションごとにスキンを適用し、通常およびソフト サンプル セットを割り当てることができるようになりました?
.oszファイルは、ダブルクリックするか、osu! アイコンまたはウィンドウにドラッグすることで読み込むことができるようになりました。
今までは直接Songsフォルダに入れるしかなかったのかな?
ビートマップ投稿システム(BSS) が公開され、ユーザーは簡単に自分の作品をアップロードして共有できるようになりました!!
これにより、保留中およびランク付けされたマップのステータスが導入、急速に増え続けるユーザー投稿のビートマップ コレクションを整理するのに役立ちました。
ゲーム内チャットは、ゼロから構築され、標準の IRC サーバー ( Banchoなし) に接続されたIRC (インターネット リレー チャット) クライアントとして追加されました。
拡張チャットが表示され、http ベースの通信を使用してゲーム内にアバターと基本統計が表示されました。
メイン メニューにオーディオ コントロールも追加され、起動時にランダムな曲が再生されました。
ローカル スコアとオンライン プレイの両方でリプレイを視聴できました。プレーヤーは他のプレーヤーを観戦できました (観戦データは IRC 経由で生で送信されました)。
このころはBanchoが居ないです。
Mod (ハードロック、サドンデス、ダブルタイム)の追加。
カウントダウン画像とサウンド、コンボのカスタム番号と色、O/X (合格/不合格) セクションのランキング、カウントダウン イントロ、背景色スクリプト、
タイミング セクションごとのボリューム コントロール、(おそらく最も重要な)ストーリーボード スクリプトサポートの導入
Relax (RX)とHalf Time(HT)のMODが登場
カウントダウン画像とサウンド、コンボのカスタム番号と色、O/X (合格/不合格) セクションのランキング、カウントダウン イントロ、背景色スクリプト、
タイミング セクションごとのボリューム コントロール、(おそらく最も重要な)ストーリーボード スクリプトサポートの導入
アニメーションを初めてストーリーボード化できるようになり、スキン選択画面が追加されました。
パフォーマンスの最適化により、曲選択画面の読み込み時間が 82% 減少しました (ローカル ビートマップ データベースの新しい形式を使用)。
フレーム制限トグルの導入やその他多数のグラフィック オプションなど、その他のさまざまなパフォーマンス調整も行われました。
Project Bancho は2008 年 3 月 24 日に開始されました。
そのアイデアは、ユーザー間の通信を処理し、 IRC (インターネット リレー チャット) への依存を排除する、osu! ファミリーのサーバー コンポーネントを作成することでした。
便利ボットってことですね
ユーザーは、ユーザー パネルで他のユーザーが何をしているかを確認できるようになり、クリックして観戦することで他のユーザーとやり取りできるようになりました。
自動エラー送信システムがデビューし、xfire 互換性が実装され、メイン メニューとエディター インターフェイスが刷新されました (LuigiHannによる新しいアイコンを使用)。
チャット インターフェイスには、「チャットを表示」ボタン、タブ補完、ニックネームのハイライトアラートが追加されました。
ランキング画面には、次のランクに到達するために必要なポイントが表示されるようになりました。
太鼓モードが初めて登場、ストーリーボード スクリプトのサポートというもう1つの大きな追加機能も追加。
Multi (マルチプレイヤー)ゲーム モードの追加
グラフィックスとサウンドの両方に関して、スキン オプションがさらに拡張されました。 最後に、マルチ チャネル チャットが初めて可能になりました。#osuチャンネルとか#japaneseチャンネルとか
一時停止した際にカーソルを元の位置に戻さないと続きができないようになる
ランキング画面とデフォルト スキンのさまざまな要素のグラフィックが改善され、以前よりもさらにすっきりと鮮明に感じられるようになりました。
スライダー ティック スコア スプライト (10/30) の表示が実装されました。
マルチプレイヤー マッチの設定が改善され、ホスト コントロールを転送できるようになりました。
ユーザーの利便性のために、多くの新しいチャット コマンドが追加されました。
品質は高いものの、ランキングの長さ、難易度、その他の制限を何らかの形で超えているマップに対して、新しいランク付けステータス「承認済み」が追加されました。
このステータスのマップは、プレイヤーのスコアには加算されませんが、スコアボードがあり、 ランク付けされたマップのように動作します。
Flashlight、Spun Out 、 Autoなど、多数の新しい mod が発表されました。
Auto は、(ほぼ) すべてのビートマップを完璧な精度で完成させる AI プレーヤーをスクリプト化し、エディターのテスト モードからもアクセスできます。
今ほどAutoは精度が良くありません!!
ビートマップのデザインの限界は、スキン設定可能な要素 (コンボバースト イメージ、クラップ サウンド サンプル、サウンド サンプルを個々のスライダー
エンドポイントに割り当てる機能、継承されたタイミング セクションなど)の追加により、さらに押し広げられました。曲選択画面も全面的に改良されました。
プライベート テスト環境では、OpenGL の実装と、今後のゲーム モードのデビュー (Catch the Beat)が進められました。osu! の内部の多くが書き直され、
プレイ モードをよりモジュール化して将来のモードをより簡単に追加できるようにするために、4,000 行を超える完全に刷新されたコードに相当します。
これによって今のプライベートクライアント(非公式)やQuever、McOsuなどがあります。
Catch the Beat が導入
OpenGL サポートが初めて導入され、osu! はほとんどのシステムで実行できるようになりました。
このアップデートのその他の新機能には、ゲーム内フレンド リストのサポート、プライベート チャット タブ、新しいチュートリアル/オフセット ウィザード、
osu!direct (サポーター向けのゲーム内ビートマップ ダウンローダー) など。
多数のビートマップを持つ人々が osu! のロード時間について不満を述べたため、peppy は可能な限りの最適化に数え切れないほどの時間を費やし、
その結果、規模ではほとんど測定できないほどのパフォーマンスの向上 (9,000 を超える) が実現しました。1 分以上かかっていたロード時間は、わずか数ミリ秒にまで短縮されました。
2つ目のマルチプレイヤー モード「タグ プレイ」が追加されました。
オンライン ビートマップ リストにサムネイルと音声プレビューが追加され、再生したいビートマップの参照がはるかに簡単になりました。
ユーザーはリプレイにコメントを追加できるようになりました。
+を押すことでスクリーンショットをosu!サーバーに自動的にアップロードできるようになりました
インフラストラクチャの変更により、IRCサーバーはアドレスirc.ppy.shに移動されました。
新しい星評価の難易度アルゴリズムを導入
すべてのユーザーにユーザー名の変更が1回許可されました。ユーザー名を変更するには、購入またはギフトとして、少なくとも 1回はosu!supporterタグを受け取っている必要がありました。
Banchoにチャット!reportコマンドが追加され、チャット内で不適切な行動をしているユーザーをチャット モデレーターに通知できるようになりました
すべてのユーザーにユーザー名の変更が1回許可されました。
ユーザー名を変更するには、購入またはギフトとして、少なくとも 1回はosu!supporterタグを受け取っている必要がありました。
Banchoにチャット!reportコマンドが追加
osu!streamが公開
ユーザーが osu!supporter ステータスを持っている場合、メイン メニューの背景を変更できるようになりました。
ボタンステータスオーバーレイが追加。
Multi のロビーに「クイック参加」ボタンが追加されました。このボタンは、押すと、持っているビートマップに基づいてランダムに部屋に参加します。
ワイドスクリーンサポート
ビートマップ開始時のロード画面
osu!apiを一般公開
ビートマップ開始時のロード画面
プレイ中または他の人のプレイを見ているときに精度を追跡するための 2 つの新しいゲーム内オーバーレイ(ヒットオーバーレイ)が追加されました。
ppシステムの再設計!!
古い pp システムは「ppv1」に名前が変更され、新しいシステムは「ppv2」と名付けられました。
デバッグ作業を支援するために、osu!supportersだけでなくすべてのプレイヤーに「osu!test」ビルド(現在は「Cutting Edge」) をリリースしました。
古いFPS カウンターが新しい「リフレッシュと遅延の表示」に置き換えられました。
この新しい表示では、現在の FPS (フレーム/秒) は引き続き表示されますが、新しい変更により500FPS を超えると非表示になります。
さらに、FPSカウンターの下に新しいカウンターが追加され、
フレーム レンダリング中に発生した遅延の量 (ミリ秒単位) が正確に表示されます。
「途切れた」または「ドロップされた」フレームは、カウンターの左側に色付きの四角形で表示され、
ユーザーが経験しているフレーム レンダリング遅延の量をより正確に視覚化します
OpenGLへの完全な移行
ただし、互換性の問題により新しい更新を実行できなかったユーザーは、
古い DirectX グラフィック レンダリングを使用する「Stable (Fallback)」という新しいリリース ストリームに切り替えられました。
2016年、osu!のソースコードがインターネット上で広まる事件が発生しました。
ソースコードは、公式の開発者から直接リークされたわけではなく、恐らく外部の個人やグループによって不正に取得され、公開されたものと考えられています。
リークされたソースコードは、osu!の主要なゲームエンジン、バックエンド、クライアントのコードを含んでいたとされています。
これにより、ゲームの内部構造やセキュリティ機構などが明らかになった可能性があります。
ゲームの機能やバグ修正のコード
ゲームのサーバー通信に関連するコード
クライアントとサーバーの相互作用に関する部分
データ管理や保存に関するコード
ソースコードが流出したことにより、いくつかの重要な影響がありました。
セキュリティリスクの増大:ゲームのソースコードが公開されたことにより、不正なプログラム(チート)を作成するための手がかりが得られた可能性があり、
これによりゲームの公平性が脅かされる懸念が高まりました。
エクスプロイト(脆弱性):ソースコードに含まれていたバグやセキュリティホールを利用する攻撃が増加するリスクがありました。
特に、オンラインマルチプレイヤーゲームであるため、ユーザーのデータやアカウントが危険にさらされる可能性もあります。
コミュニティへの混乱:多くのプレイヤーがゲーム内で使用するクライアントやサーバーのカスタマイズを行うため、ソースコードを活用しようとする試みがあった一方で、
元のゲーム開発者であるpeppyさんは、リークされたコードを使って公式に更新を続けることに対して不安を抱いていました。
ソースコードのリーク後、osu!の開発者は以下のような対応をしました。
セキュリティ強化:コードがリークされたことにより、さらにセキュリティが強化されるようなパッチや修正が行われました。特に、不正なチートや改造を防ぐための措置が講じられたとされています。
コミュニティの警告:peppyさんや開発者は、ソースコードを無断で使用することに対して警告を発し、公式のリリースを通じて、ゲームの改造やチート行為を行わないようにプレイヤーに呼びかけました。
新たな開発方針の模索:リーク事件を受けて、開発者は今後のゲーム開発やソースコード管理方法について、より慎重に取り組む姿勢を示しました。
osu!のソースコードリークは、ゲームのセキュリティとコミュニティに対する信頼に大きな影響を及ぼしました。
リークされたコードはゲームのプレイ体験に対してリスクをもたらし、開発者はその後、セキュリティの強化に注力する必要がありました。
また、コミュニティ内での改造やチート行為の増加を防ぐための取り組みが重要となりました。
このような事件が発生したことで、今後のゲーム開発におけるソースコードの取り扱いや管理方法に対する教訓が得られるとともに、ゲームの安全性確保に対する意識が高まりました。
自分もこの頃はまだ初めてすらいない頃ですがこのことは知っています。詳しく調べましたがデスクトップの写真などが撮られていたりなど、、、詳しいことは言えませんが。
デスクトップの写真を撮る機能はチート対策で元々あったらしくこのことからコミュニティーからも批判を受け、現在はありません。
この影響でハッキングされたクライアントが現在でもあります。Atoka!やAinu、Akatsuki等などです。