このプロジェクトについて

Pokexは、ElixirとOTPを使用して、APIのない敵対的な環境で信頼性の高いオートメーションシステムを構築する方法を示す個人プロジェクトです。macOS上の2DタイルベースMMORPG向けに設計されており、スクリーンキャプチャを通じてゲーム状態を認識し、合成マウスおよびキーボードイベントを介して動作します。アーキテクチャは、26のGenServerと3つのスーパーバイザーからなるスーパービジョンツリーに依存しており、プロセス分離とメッセージパッシングを強調して、入力遅延、レースコンディション、システム競合などの現実世界の制約を処理します。 主なエンジニアリング課題は以下の通りです: - **リソースの希少性:** スクリーンキャプチャは単一のGenServerを通じてシリアライズされ、macOSの競合を回避し、タイミングの一貫性を確保します。 - **破壊的アクチュエーション:** 入力は専用の「Body」プロセスとフェイルクローズドの「InputGate」によって管理され、フォーカスが失われたりプロセスがクラッシュしたりした場合の迷いキーを防止します。 - **純粋なロジック:** 意思決定モジュールはI/Oドライバから分離されているため、実行中のクライアントやスクリーンなしでゲームロジックを徹底的にテストできます。 - **安全性:** 外部の「Guardian」プロセスが緊急停止条件(例:カーソルがキルコーナーにある)を監視し、ワーカーの状態に関係なく、フリート全体を独立して停止できます。 このプロジェクトは、ローカルコントロールパネルにPhoenix LiveViewを使用し、低遅延入力とスクリーンキャプチャのためのネイティブSwiftヘルパーを含んでいます。キャリブレーションツールが含まれていますが、汎用製品としてパッケージ化されておらず、異なるマシンやゲームクライアントでは大幅な再構成が必要です。このリポジトリはOTPのケーススタディとして機能し、37k行を超えるテストでロジックレイヤーの信頼性を確保しています。