推しアイデア
CPU上のガベージコレクタが弾(メモリ解放)を放ち残留物を掃除する3人称弾幕シューティングゲームです。 学習コストの高いRustに慣れ親しんでもらうために開発しました。ゲーム内の敵の名称やギミックは、Rustの型から発想を得ています。
CPU上のガベージコレクタが弾(メモリ解放)を放ち残留物を掃除する3人称弾幕シューティングゲームです。 学習コストの高いRustに慣れ親しんでもらうために開発しました。ゲーム内の敵の名称やギミックは、Rustの型から発想を得ています。
Rustの型の理解のハードルを下げたいと思ったので、ゲームでわかりやすくしようと思ったから。 またゲーム開発自体をほぼしたことがないため、フロントエンドの勉強とゲーム開発の体験を兼ねて作ることを決めました。
ブラウザの機能を用いるためのWebGLライブラリ、Babylon.jsを使用しています。 Next.js上に実装しているため、Vercelを用いて簡単にサイト上にデプロイしています。
GCのない荒れた世界、Rust。普段は厳密な所有権のシステムやライフタイムによってRustceanは平和な開発を享受していた。しかしなぜかそのシステムが壊れてしまい、メモリ空間に大量の残留物が残ってしまう!! そんな緊急事態にあなたたち ガベージコレクタ(GC) は立ち上がる!メモリリーク、だめ、絶対。
フロントエンド React.js(Next.js) バックエンド Vercel KV(Next.js) 描画フレームワーク Babylon.js ホスティングサービス Vercel(Cloudflare(URLリダイレクト))
その他 pnpm, node.js, git/GitHub
画面のリフレッシュレートを切り替えることで難易度選択が可能です。
GCのあなた達はfree()
弾をメモリ残留物に当てることでガベージとなってしまったデータを消去することができます。GCはメモリ管理に長けているので、もちろん当たらなかったfree()
弾は空間の端に行けば消去されます。意図的な多重開放などあってはなりません。
メモリ残留物は自らの意志ではなく執念により開放を拒むでしょう。自身のデータを用いて残留物を放ってきます。これに一定回数当たってしまうと予期しない動作を引き起こしてしまいオーバーフローとなってしまい、任務失敗となります。
このゲームはRustの型システムやメモリ管理などに対して親しみを持ってもらうために制作しましたが、このゲームのシステムそのものがRustの型システムをそのまま反映したものではありません。正確な仕様についてはAPI referenceおよびドキュメントサイトを御覧ください。