運営中

GOKIs

Macのデスクトップに小さな住人を手配するアプリ。

何を解いているか

解いている課題はありません。GOKIsは実用のためのアプリではなく、Macのデスクトップに小さな住人を置くためのアプリです。

なぜ作ったか

macOSのデスクトップは、作業していないあいだ何も起きない場所です。そこに、カーソルから逃げ、ウィンドウの背面や画面の隅に潜み、放っておくと定住する生き物を置きました。駆除するアプリではなく、設置するアプリです。 公式サイトは害虫駆除業者の体裁で書いています。プロダクトの説明としてはあちらが本体なので、こちらには作りの話だけを置いています。

設計の判断

  • 止める条件を3つに分け、OR で判定する

    描画を止める条件を3つに分け、いずれかが成立したら止める形にしています。 画面がロックされたとき、ディスプレイがスリープしたとき、全画面のアプリが前面にあるときです。 1つの条件でまとめて判定するのではなく別々に見ているので、復帰の取りこぼしが起きません。 常駐する前提のアプリなので、止まっている時間を長く取ることを優先しました。

    描画を止める3つのフラグの OR 判定と、計算を含む描画ループの関係
    3つのフラグの OR で止める。計算は描画ループの中にあるので同時に止まる
  • 最下層に置き、クリックは下へ通す

    ウィンドウ階層は通常より1段下で、マウスイベントは既定で無視します。 他のアプリの前には出ませんし、クリックはオーバーレイを素通りして下へ届きます。 常に前面に出して見えるようにする選択はしませんでした。 例外は狩りモードで、オンのあいだだけクリックを受け取ります。

    階層 −1 のオーバーレイをクリックが素通りする図と、狩りモードで受け取る場合の対比
    階層 −1 とマウスイベントの無視で、見えるが操作の邪魔をしない層に置く
  • 個体数の上限は10万、目盛りは対数

    設置数の上限は10万匹にしています。 上限を小さく丸めなかったのは、極端な設定を試すこと自体がこのアプリの遊び方だからです。 ただし1から10万を線形のスライダーに載せると手元が効かないので、目盛りは対数にしています。

    個体数の6段の目盛りと、CPU の仕事が一定で GPU の仕事だけが増えることを示す図
    選べる個体数は6段。段が上がって増えるのは GPU 側の仕事だけ
  • 逃走方向は、乱数一発では決めない

    逃走の向きを乱数一発で決める形にはしていません。 脅威から離れる向きを基準に、いくつかの選好角のなかから選びます。 まっすぐ遠ざかるだけでも、完全な乱数でもないので、追いかけても軌道が読めません。 捕まえられる挙動にすると、置いておく理由がなくなります。

    脅威から離れる向きを基準にした5つの選好角と、相対角ごとに候補が入れ替わる表
    候補は5つの選好角。脅威との相対角で使える候補が入れ替わる

提供形態

対応プラットフォーム
macOS
動作要件
macOS 15.6 以降、Apple Silicon
価格
無料
配布
Mac App Store
設置数
1〜100,000匹(メニューバーから一括退去)
プラットフォーム
  • macOS

ほかのプロダクト

同じプラットフォーム向けに作っているものです。

← 自社プロダクト一覧へ