1 ポイント 投稿者 GN⁺ 2023-10-23 | 1件のコメント | WhatsAppで共有
  • RuffleはRustで書かれたオープンソースのFlash Playerエミュレーターで、もはや標準サポートされていないFlashコンテンツを最新のOSとブラウザーで再び実行できるようにする
  • デスクトップとWebの両方をサポートし、Web環境ではWebAssemblyを使用する
  • RustとWASMの保証を活用し、Flashで問題視されていたセキュリティリスクを避けることを目指している
  • 一般ユーザーとWebサイト所有者のどちらも、すばやくインストールして実行できるように構成されている
  • MIT/Apache 2.0ライセンスで提供され、自由に利用できる無料のオープンソースプロジェクトである

Flashコンテンツを最新環境で実行

  • RuffleはFlashコンテンツを最新環境で実行するためのFlash Playerエミュレーターである
  • 最新のOSとブラウザーでネイティブに動作するよう作られており、特別な手間なくFlashコンテンツをよみがえらせることに重点を置いている
  • 実装言語はRustで、デスクトップとWebの両方を対象としている
  • Web実行対象にはWebAssemblyが使われている

セキュリティへのアプローチと配布条件

  • RustとWASMの保証を活用し、Flashが抱えていたセキュリティ上の落とし穴を避けようとしている
  • ユーザーとWebサイト所有者のどちらも、すばやくインストールして実行できるよう設計されている
  • MIT/Apache 2.0ライセンスで配布される無料のオープンソースプロジェクトである

1件のコメント

 
GN⁺ 2023-10-23
Hacker News のコメント
  • このプロジェクトは年に1回くらい確認しているけれど、AS3 サポートが完成に近づいているのを見るとうれしい
    学生のころ、多くの人と同じように Flash ゲームに時間を使いすぎたし、ゲーム史の一部が消えてしまうのは残念だった
    それでも Ruffle が少しでも復活させてくれるかもしれない。ただ、iOS で Wolfenstein RPG を遊ぶ方法がまだないことも思い出す。2010年にほぼそのゲームだけのために買った iPod があるけれど、バッテリーが永遠にもつとは思えない。とりあえず Adrenaline Challenge でもやりに行くことにする
    • 18か月ほど前には、Ruffle にはAS3 サポートが実質的になくて、自分にとっては決定的な障害だった
      まだ数年はかかると思っていて、その間は時限爆弾のない最後の Flash バージョンをインストールして使っていたけれど、自分が間違っていてよかった :)
    • 最後に見たときは AS3 に着手し始めた段階だったのに、こんなに早く近づいてきたのは驚き
    • iOS で Wolfenstein RPG が遊べないという状況は、もうすぐ変わるかもしれない :)
      https://github.com/hikari-no-yume/touchHLE/pull/139
    • 自分も Inishie Dungeon をまた遊ぶ方法をまだ探している
    • Ruffle の古い PR が実際にマージされるといいな
  • Flash エミュレーションの話はいつも Flash ゲームに流れがちだが、それ以外にも、まだ Flash に依存している情報系ウェブサイトを保存できるという大きな利点がある
    New York Historical Society の Slavery in New York 展にある The Merchant's House ページは、品物を一つずつ見せながら「すべてが奴隷制と結びついていた」ことを説明している。オンライン展示には Flash に依存する情報の断片が多く、その中でもこのページは個人的に一番よかった
    Ruffle のようなプロジェクトのおかげで、こうした作品を維持できる。展示がなくなった今ではこの内容を見る唯一の方法であり、膨大な歴史研究の成果を引き続き活用できるようにしてくれる
    ただし、同じ展示サイトの video galleries は失敗する。展示を見た人たちが専用ブースで残した動画クリップのはずで、関連する記事をたくさん読んでみると、当時のニューヨーク市民が奴隷制をどう見ていたかを示す良い資料だったようだ。「アマチュアのホームビデオのぎこちなさがある。背景ノイズ、長い沈黙、カメラを避ける視線」という New York Times の文言もあった
    約400本の動画の一部だと思うが、このページでは Ruffle が正しく動作しない。見ようとしたときにタブから音声が一瞬出たことはあるので、何かは起きているようだが、映像を見たことはない。この分野に詳しい人が状況を分かればいいのだけれど、この資料が失われるのは惜しい
    • 動画ファイルはまだ残っている。例えば https://www.slaveryinnewyork.org/flash/Gallery7Responses2.fl... で、ブラウザのネットワークインスペクタでもリクエストされている URL を確認できる
      VLC や ffplay のようなツールでオフライン再生できるし、より現代的な再生形式に変換することも可能
    • この内容を Ruffle チームに伝えた。数か月前に追加された外部動画サポートを改善する作業をしている
  • 何年もの間、Adobe Flex 向けに AS3 と mxml を書いていた
    AS3 は多くの面で ECMAScript 4 であり、かなり時代を先取りしていたと思う。最近私たちが期待する多くのものは、Flash Player エコシステムではすでに当たり前に使っていた機能のように感じられる
    もちろん悪夢のような瞬間もあったが、ブラウザごとの JavaScript がそもそも可能なのかどうかさえ厳しかった時代に、私たちはかなり素晴らしいものを配布できていた
    • 自分も何年もその仕事をしていた
      AS3 が時代を先取りしていたというより、Steve Jobs と当時の Adobe CEO のせいで Flash を捨てた結果、私たちが過去へ戻ってしまった感じだ
      AS3 は本当に良く、学びやすく、複数の開発者が一緒に拡張するにも安全だった。Flash も末期にはかなり速くなっていたのに、結局すべてトイレに流されてしまった
    • 完全に同意。Flash と AS3 で3D レンダリングエンジンを作ったが、これまで使った開発プラットフォームの中でも特に気に入っているものの一つだ
      AS3 は素晴らしい言語だった。Brendan Eich が Lex Fridman のインタビューで短く触れていたが、ブラウザに入らなかった JavaScript の潜在的な後継に近かったという点が興味深かった。新しい標準になっていたらよかったのに、残念
  • Adobe Flash は死んだのか? Adobe がもう製品として販売していないなら、なぜ Flash Player 部分をオープンソースとして公開しなかったのか気になる
    もうソフトウェアを販売しないなら、パブリックドメインとして残すべきだという法律があればいいのに
    • 以前のスレッドで同じ質問をしたところ、Flash Player にはライセンス付きのサードパーティコードがあまりに多く、取り除いたり再ライセンスしたりしてオープンソース化するのは非常に難しい、あるいは不可能である可能性が高い、という答えをもらった
      それでも関連仕様は Adobe が無料で公開している
      著作権期間を5年のような合理的な水準に短縮するのもよさそうだ。さらに進めて、著作権を維持するには毎年指数関数的に増える税金を払わせるほうがいいかもしれない
    • 企業が通常そうしない理由は法的リスクのため。使用しているライブラリの一部が、オープンソース化を許可しない形でライセンスされている可能性がある
      法律を変えれば解決できるかもしれない。例えばアンティークソフトウェア保存法のようなものを作り、どんなソフトウェアでもオープンソースとして公開できるようにし、その法律に基づく措置に関連する訴訟を防ぐことができる
      追加のインセンティブも与えられる。商業的に販売されたすべてのソフトウェアは、永久保存するかオープンソースとして公開することを求める、といった形だ。法的に永久保存するのは高くつくので、多くのところがオープンソースを選ぶ可能性が高い
    • Flash Player をオープンソースとして公開しなかったのは、コード品質が恥ずかしいレベルだったからかもしれない。まだ見つかっていない脆弱性も多そうだ
    • かなりの部分はすでに公開している[1]。もちろん十分ではないと見ることもできる
  1. https://github.com/adobe/avmplus
  • 問題は、こうした製品がたいていサードパーティのプロプライエタリなコンポーネントを使っていたことにある。
    そのため、コードベースの大部分を切り捨てない限りオープンソース化できない場合が多く、その作業は高くつき、公開されたコードの有用性も大きく損なわれる。
  • これがリリースされた後でも、新しい作品を作れるのか気になる。
    それともツール群はすでに復活が難しいレベルで、実質的には過去のカタログをよみがえらせる用途にとどまるのだろうか?
    もちろん過去のカタログは途方もなく膨大だが、多くの開発者がFlashゲーム作りを好んでいたという話を聞いたことがあるので、誰かが十分に粘り強くFlashゲームシーンを復活させようとするなら面白そうだ。
    今は必須というわけではなく、日々進化している有望なWeb標準もあるが、そういうものが執念深い人たちを止めたことはない。今でも古いNintendoハードウェア向けに新作ゲームを作る方法を探している人たちがいる。
    • Adobeは今でもAnimateをCreative Cloudの一部として提供しており、これでAS3ムービーを作れる。
      AS2が欲しいなら少なくともCS6までは戻る必要があり、FLAのサポート範囲がずっと広いのでCS5.5のほうがよいと思う。なぜCS6でそれを削ったのかは聞かないでほしい。
      Adobeに金を払いたくないなら、Adobeツールチェーンの自由なオープンソース版であるApache Flexを使える。もちろんコマンドラインのコンパイラツールで、AS3ファイルしかコンパイルしないので、グラフィックは別途作って結び付ける必要がある。
      ベクターアートなら、SVGをSWFに変換する方法を探し、Flexで妙なクラス宣言の魔法を使ってメインSWFに含め、そこから生じる微妙なマスキング問題まで対処することになる可能性が高い。
    • Flashは死ぬべきではなかった。
      低帯域でも動作し、拡大縮小可能で、クロスプラットフォームな単一ファイルのアニメーションを作り出せる、手に取りやすい制作ツールだった。
      私たちはまだその喪失を埋められていない。JavaScript + canvas + Webスタックはめちゃくちゃだ。Ruffleランタイムが素早く起動できるなら、新しいFlashを作り始めると思う。
    • Windowsでは古いFlashバージョンを今でも問題なく実行できる。
      macOSではそれらのバージョンがすべて32ビットなので、より複雑になる。M1 MacではWindows VMを構成してその中でFlashを動かすほうがよく、Intel Macでは32ビットをサポートする最後のバージョンであるmacOS Mojaveを別パーティションにインストールできる。
    • うちの会社では今でも新しいAS3コードを書いている。すべてのIDEとツールがW10/W11で問題なく動作する。
    • Newgroundsには年に1回くらいflashforwardイベントがある。
  • FlashをWebAssemblyに変える商用ツールもある。
    実際にはWebAssembly内のVMでLinux全体を動かし、その中で正式にライセンスされたAdobe Flash Playerを実行する。そしてそのFlashライセンスは別途Harmanから取得する必要があるようだ。今はFlashの知的財産権をそちらが持っているように見える。
    https://labs.leaningtech.com/cheerpx/for-flash
    彼らとは何の関係もなく、いつか興味本位で調べただけだ。
    • 開発者です。CheerpX for FlashはFlashのPepper API版を実行しており、ライセンスの話はその通りです。
      ただし、Flashを動かすためにLinux全体をエミュレートしているわけではありません。PPAPIをエミュレートし、Flash Playerをx86 JITであるCheerpX上で実行しています。
      YuriがCXFFアーキテクチャをここで説明しています:
      https://youtu.be/7JUs4c99-mo?t=1045
      完全なLinuxシステムのエミュレーションが必要なら、それもあります: https://webvm.io
  • すごい。以前は見たことがなかった。
    インターネットと若い初心者プログラマーたちは、Flashとともに本当に価値のあるツールを失ったのだという思いは今もある。セキュリティモデルをきちんと機能させられなかったのが残念だ。Flashアプレットは機能が豊富で、参入障壁も珍しいほど低かった。
  • AdobeがFlashをああいう形で終わらせたのが本当に嫌だ。
    問題があったのは確かだが、ほとんどのソフトウェアはそういうものだし、Flashは本当に時代を20年ほど先取りしていた。Flashが死んだ後、Webは信じられないほど味気なくなった。
    私の陰謀論は、AppleとGoogleがモバイル対応を強制するためにAdobeに金を払ってFlashを潰したというものだ。
    • 陰謀など必要ない。製品があれほどひどいユーザー体験を生み出せば、それで十分だ。
      Flashを一行も書いたことはないし書きたいとも思わないが、Flashサイトがどれほど壊れていたかはいまだに悪い記憶として残っている。
      ウィジェットはネイティブのように振る舞わず目立っていたし、Firefoxではキーボードフォーカスの問題が絶えず、動画アクセラレーションはまともに効いているように見えずバッテリーを食い潰していた。削除するにはAdobeのFlashアプリを起動しなければならなかった永続クッキーのようなプライバシー上の悪夢もあり、権限処理もホストシステムやブラウザを無視していた。
      ほぼ常時発生していたセキュリティと安定性の問題も忘れがたい。個人的にはFlashが死んでくれてよかったと思っている。
      Flashはデスクトップでも微妙だったが、モバイルが重要になりつつあった時期に、モバイルではそれよりはるかにひどかったために死んだ。
    • Flashはいまいちだった。アクセシビリティに悪く、クローズドで、遅く、広告を強制的に見せる手段だった。
      アニメーションは作れたが、当時の私たちの大半が必要としていた、あるいは望んでいたものはそれではなかった。
      Flashを好んだ集団は、マーケティング部門と、ゲーム開発者になりたかった人たち、そしてそのゲームで遊んでいたティーンエイジャーだけだった。
    • Flashがサポート終了になっていなければ、Ruffleのようなプロジェクトは、まだ広く使われているプロプライエタリなランタイムに追いつき続けるという難しい仕事をしていたはずだ。
    • Adobeは降参したが、実際に殺したのはiOSでサポートしなかったAppleだった。
    • 死んだときは祝っていた記憶があるが、振り返るとそこまで悪くはなかった。
      少なくとも開発者の観点では、単一ベンダーの全部入りSDKで作業するほうが、このnode_modulesというがんの塊よりずっとましだ。
  • 話題から外れるが、ここにAdobe FastlyアカウントへアクセスできるAdobe社員がいるなら、Fastly設定を確認したほうがよさそうだ。

古い blogs.adobe.com の記事に行くと、現在は次のようなライブエラーが表示される:
Fastly error: unknown domain: blogs.adobe.com. Please check that this domain has
been added to a service.
上記のエラーはこの URL で出たもの: https://blogs.adobe.com/asset/2012/06/inside-flash-player-pr...

  • 学生だった頃、GNU Gnash が AS2 と AS3 のサポートに取り組もうとしていたのを追っていた記憶がある
    何年もかかったが、結局は部分的にしか動作しなかった。当時は Flash がブラウザでまだ支配的だったにもかかわらず、Gnash が消えるまで誰もまともに移植できなかった
    Ruffle はどうやってこんなに早く動くようにできたのか気になる
    • GNU のようにライセンスに過度に厳格ではなかった可能性が高い