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