3 ポイント 投稿者 GN⁺ 2025-05-08 | 1件のコメント | WhatsAppで共有
  • 2010年のインディーゲーム VVVVVV のソースコードが公開され、ゲーム制作は Terry Cavanagh、音楽は Magnus Pålsson が担当
  • デスクトップ版のソースコードはリポジトリの desktop_version フォルダにある
  • VVVVVV は現在も 商用販売 されているが、個人利用目的のビルドは自由にコンパイル可能
  • コンパイル済みバージョンを 配布 するには、リポジトリの LICENSE.md を確認する必要がある
  • VVVVVV のアップデートに関する議論は、非公式 VVVVVV Discordvvvvvv-code チャンネルで主に行われている

公開されたソースコード

  • このリポジトリには、Terry Cavanagh による 2010年のインディーゲーム VVVVVV のソースコードが収められている
  • ソースコード公開の発表は Terry のブログ告知で確認できる: announcement
  • デスクトップ版のソースコードは desktop_version フォルダにある

利用と配布条件

  • VVVVVV は thelettervsixtim.es で現在も 商用購入 できる
  • 個人利用目的であれば、ゲームを自分でコンパイルできる
  • コンパイル済みのゲームバージョンを配布するには、LICENSE.md を確認する必要がある

アップデート議論チャンネル

  • VVVVVV のアップデートに関する議論は、非公式 VVVVVV discord で主に行われている
  • 関連チャンネルは vvvvvv-code

1件のコメント

 
GN⁺ 2025-05-08
Hacker Newsのコメント
  • 高校の終わりごろ、家族とLondonに行ったとき、ゲーム開発者になりたくてTerry Cavanaghにメールを送ったら、驚いたことに、昼食を一緒に食べようと快く応じてくれた
    本当に親切で、いろいろ人生の助言もしてくれた。アイデアの大半は壮大なビジョンから生まれるのではなく、ゲームメカニクスをいじりながら実験する中で得られる、と言っていたのを覚えている。とにかく素晴らしい人で、彼がVと呼んでいたVVVVVVをオープンソースとして公開してくれてうれしい

    • 「アイデアの大半はメカニクスをいじりながら実験する中で得られる」という部分が重要。あまりにも多くの人が、新しいアイデアは抽象的な概念からしか生まれないと思っているが、メディアそのものを使って遊ぶ中でもいくらでも生まれ得る
    • 2つの文は真実だと学んだ。頼まなければ断られることもないし、「英雄には会うな」という言葉は幻想だ
      本当にひどい人を何人か見てみないと、本当にいい人をちゃんと見分けられない
    • 素敵な話だ。その出会いがその後の進路選択に影響したのか、結局ゲーム開発者になったのか、あるいは試してみるだけでもしたのか気になる。後日談があるといつも面白い
    • 彼がしてくれた人生の助言が具体的に何だったのか気になる
  • 本当に面白いゲーム。ものすごくゲームをやるほうではないけれど、これを手に入れるためにHumble Bundleを買ったのを覚えている
    最後までプレイした数少ないゲームの一つだった。Terry、素晴らしい仕事と楽しい時間をありがとう。ついでに、veni vidi viciは本当に悪態をつきたくなるほど難しく、かなり時間がかかった
    https://www.youtube.com/watch?v=4CtiY5D6HCs

    • バンドルを買って、「容量の大きいもっと面白そうなゲームがダウンロードされる間、軽い2Dプラットフォームゲームでもやってみるか」と思ったのに、結局その日の夜を丸ごとこれに使った
    • この動画は、各画面をかろうじて通過したうえで左側に着地する体験を十分には捉えていない
    • 謝罪はしていた。「I’m sorry」という画面があったから :P
    • 記憶が正しければ、数百回くらい挑戦した末にようやくクリアした。おかげでFinal Fantasy XVのPitiossダンジョンを終える忍耐力が準備できたようなものだ
      当時の彼氏はVVVVVVを買ってくれた人で、ノーデス全トリンケット走破に挑戦していた。いったいどれだけゲームがうまいのか理解できなかった。そしてVVVVVVのサウンドトラックであるPPPPPPは今でもよく聴いている。特に関連するosu!のストリーム曲が好きだ
    • 初期のHumble Bundleを買っていて、VVVVVVはそのときからSteamライブラリで積んだままだった。そろそろ一度やってみようと思う
  • 関連記事。ほかにもあるのか気になる
    Is opening up your source code worth it? Terry Cavanagh thinks it was for VVVVVV - https://news.ycombinator.com/item?id=25727963 - 2021年1月
    Many games are held together by duct tape - https://news.ycombinator.com/item?id=22043156 - 2020年1月
    VVVVVV Source Code Released - https://news.ycombinator.com/item?id=22011465 - 2020年1月
    VVVVVV’s source code is now public, 10 year anniversary jam happening now - https://news.ycombinator.com/item?id=22011358 - 2020年1月
    VVVVVV 60% Off On The Mac App Store This Weekend - https://news.ycombinator.com/item?id=2347676 - 2011年3月

  • Graphics::print_level_creator(...)のコメントには、「by {author}」の代わりに顔を表示すると書かれている
    「by」が作者の言語と違って不自然に見えるかもしれず、別の言語では長くなって既存のレベル制限を壊す可能性があり、「by」と作者名で互いに合わないフォントが必要になるかもしれず、性別や名前の屈折のような文法上の問題も避けられ、顔で表示するのは筋が通っていて、この決定で悲しむ人がいても笑顔がどうせ元気づけてくれる、という理由だった。反論しにくい

  • 記事にリンクされているhttps://distractionware.com/blog/2020/01/vvvvvv-is-now-open-...では、C++版には、先にFlashで作って欠点までそのまま手作業で移植したことを思い出さないと理解しにくい奇妙な部分が多い、と述べていた
    たとえば、ijkのような一時変数を関数内で宣言しないように、各クラスのメンバーとして宣言する癖があり、Flashでは退屈な理由から関数内での宣言が面倒だったためだという。その結果、追跡しにくいバグが生じ、特にエンティティの衝突処理では複数の関数が同じi変数を共有していたため、無限ループも起こり得たという。本当にひどく見えるし、ゲームコードはぐちゃぐちゃだという偏見を裏付けている

    • むしろ素晴らしく聞こえるし、ゲームプログラマーは一般のプログラマーより多くを学ぶという疑いを裏付けている
    • あとで忘れないうちに書いておくと、コードはぐちゃぐちゃでも面白いことがある。新しいアイデアの中で興味深いバグが作られ、発見される場合だ
      コードは素晴らしくても退屈なこともある。よく書かれているが実装が味気ない電卓アプリのようなものだ。コードがぐちゃぐちゃで退屈なこともある。何百もの例外条件があり、それぞれに似ているが互いに異なるバグが多い、設計不足のB2B製品のような場合だ。コードが素晴らしく、かつ面白いこともある。Doomのようなものだ
    • 人々は実際にこんなことをするのか? 突然、JavaScriptですべてのメンバーの前にthis.を付けなければならないことが、ずっと気にならなくなった
  • 同じ制作者の Super Hexagon にも触れておきたい。ものすごくシンプルなのに本当に面白く、中毒性が高いゲーム。
    どこかで、制作者が1日ほどしかかけずに作ったと読んだ記憶がある。それから VVVVVV のサウンドトラックである PPPPPP も素晴らしい。

    • 同じ制作者のゲームの話なら、Dicey Dungeons もものすごく面白い。デッキ構築ローグライクに似ているが、カードの代わりにサイコロを使う。
      固有キャラクターが6人ほどいて、キャラクターごとに複数のチャレンジがあり、ルールが絶えず変わるのでゲームを考え直させられる。ユーモアも多く、まだ試せていない無料DLCやModコンテンツもある。
    • Super Hexagon が同じ開発者の作品だとは知らなかった。VVVVVV とはまったく違う種類のゲームなのに、本当に面白かった。
      インディー開発者が初期の成功の後にまったく新しいジャンルへ舵を切るのはいつも興味深いし、そういう形で素晴らしい宝石のような作品が生まれてきた。たとえば Fallen London -> Sunless Sea -> Cultist Simulator のような流れだ。
    • Super Hexagon を10分プレイすること以外に、フロー状態に入る確実な方法を知らない。
    • このおすすめには同意する。学んでいく過程が本当に楽しいゲーム。
      最初は不可能に見えるが、脳が適応する。まるで マトリックスの向こう側を見る ような感覚だ。
    • このゲームには人生の本当に多くの時間を費やした。
      何人もの人にも共有して、みんなを夢中にさせた。今でも Steam のインベントリに5〜6個くらい残っているはずだと信じている。念のために。V、SMB、Braid、その他多くのゲームも同じだ。時には小さなひらめきと粗いグラフィックだけで十分なのだ。
  • カナダから California に引っ越してきたばかりで、仕事がどうしても必要だった時期があり、Comcast で訪問販売の仕事を得た。
    その仕事が嫌いで、よく車の中に座って責任から逃れながら、携帯で VVVVVV をプレイしていた。Terry のおかげで少し息をつくことができた。

  • 素晴らしいゲーム。その時代のインディーゲームらしく、コードが 本当にめちゃくちゃ で、見ていて良い。

    • 「本当にめちゃくちゃ」という表現がぴったりだ。いちばん気に入っているのは、3300行の Game::updatestate() 関数と巨大な switch 文 だ。
    • もともと Flash で書かれてから C++ に移植されたので、めちゃくちゃな部分の一部は説明がつく。全部ではないが。
    • このコードは本気で刺激になる。コード品質を過度に持ち上げることが常に最善とは限らない、という教訓だ。
    • このコードには何の問題もない。これは ループ展開 と呼ばれるもので、ゲームの性能を保ってくれる。
  • Zig 用にパッケージ化しておいたので、zig build を実行するだけで Linux、macOS、Windows でゲームをプレイできる。
    https://github.com/allyourcodebase/VVVVVV

  • 関数内で使うたびに宣言したくなくて、すべてのクラスに ijk を宣言しており、予想どおり汚くて厄介なバグが起きたと告白していた。
    そんなコードで良いゲームを作り上げたことに驚く。

    • ほとんどすべてのゲームには、ありとあらゆるひどい ハック的なコード が入っている。もちろんこれは、私が見た中でもかなりひどい部類だ。