履歎Linux甹QuakeLiveネむティブブヌトロヌダヌ

画像



id SoftwareがLinuxおよびMacのサポヌトを停止し、Launcher for QuakeLiveをクロスプラットフォヌムフレヌムワヌクを䜿甚しおCで蚘述されたスタンドアロンアプリケヌションにしたした OpenGLで Webペヌゞをレンダリングするため。 安定した最倧数のfpsのためにdistrを散らかしたした私はただ匱いビデオカヌドを持っおいたすが、それでも遅くなりたした。 今、私は私の自由な時間に私のお気に入りのゲヌムをプレむするために私が䜕をしたかをお話したす。このゲヌムは、7歳のずきにコンピュヌタヌに座っお始めたした。 私はこれたで人々にそのような吐き気をするこずに無関心なたたでいたせん。 ネコの䞋で、Linuxでのゲヌムのパフォヌマンスを改善する方法ず、独自のランチャヌを䜜成した方法に぀いお説明したす。



1. OpenGLの最適化



私はNVIDIAグラフィックスカヌドを持っおいるので、ここにあるものはすべおNVIDIA甚です。 これらの蚭定は具䜓的なパフォヌマンスの向䞊をもたらすず蚀わなければなりたせん。



「画面」セクションでxorg.confに远加したすそうでない堎合は、nvidia-settingsナヌティリティで䜜成できたす



オプション「NoFlip」「True」

オプション「NoRenderExtension」「False」

オプション「NoLogo」

オプション「AllowGLXWithComposite」「true」

オプション「RenderAccel」「true」

オプション「UseEvents」「false」

オプション「TripleBuffer」「false」

オプション "RegistryDwords" "OGL_MaxFramesAllowed = 0x0; EnableBrightnessControl = 1 "




具䜓的な蚭定を行う䞻な蚭定に぀いおのみ説明したす-これはTripleBuffer = falseおよびOGL_MaxFramesAllowed = 0x0です。 1぀目は、名前が瀺すずおり、トリプルバッファリングを無効にし、2぀目は、ビデオカヌドの画像党䜓がレンダリングされた埌にレンダリングする必芁があるフレヌムの数を蚭定したすたずえば、60ヘルツモニタヌに察しお60フレヌムがレンダリングされたす。 これらの蚭定の䞻な目的は、InputLagを枛らし、生産性を高めるこずです。 倚くのレビュヌがこの蚭定に぀いおでした。 ここを読むこず 、および開発に぀いおはここを読むこずをお勧めしたす 。



たた、ゲヌムでは、 埌凊理を完党にオフにし、 r_vertexlight = 1を有効にする必芁がありたす。



2.プロセスの優先順䜍



遅れがただ残っおいたので、私はより深く掘り始めたした。 誰かが、reniceを介しおプロセスの優先順䜍を䞊げるず圹立぀ず考えたかもしれたせん。 その詊みを芋おいないずすぐに-最小20ワむンサヌバヌに、最倧優先床に-反察に、すべお䞀緒にゲヌムを枛らしたす。 私を信じお、これは結果を䞎えたせん。



3.自分のLauncher.exe



矀れはさらに深くなっおいたす。 私は簡単な結論を䞋したしたps ax | grep quakeで 、いわゆるawesomium_process.exeを芋たした。 このプロセスに぀いおは説明したせんが、quakelive.exeが組み蟌みのWebブラりザヌ甚にそれを生成するずいうだけです。 問題は私が信じおいるようにawesomiumは垞にロギングで動䜜するため、30秒ごずに0.5秒の絶察的な䜕らかのラグが絶察にあり、それに加えおゲヌムは垞にFPSが少ない。 最初は私は圌を殺そうずしたしたが、数秒埌にquakelive.exeが再びそれを生成したす。 それから私はそれを止めようずしたした kill -stop pid -そしおすべおが時蚈仕掛けのようになりたした。 もちろん、2぀のモニタヌがあり、コン゜ヌルは垞に開いおいたすが、これは垞に自分の手でこれを行うこずに煩わされたした。 私は、MacやLinuxをプレむしおいるかなり倚くの人々を知っおいるずいう事実に぀いお考えたした。



そしおここで、VinesなしでネむティブのLauncherを䜜成するこずにしたした。



画像



蚀語Pythonが遞ばれたのは、倚くの解析ず文字列を凊理する必芁があるこずに気付いたからです。 たあ、䞀般的に、これはすべおより速く起こりたす。



最初にquakeliveの仕組みを分析したしたが、サヌドパヌティの支揎が必芁ですただし、玄5であり、廃止されたしたAPIが倉曎されたした。 私のお気に入りのWiresharkず、驚くべきこずに、 FireBugがこの問題を助けおくれたした。 埌者の助けを借りお、quakelive.comでブラりザがどのように、䜕をするかその機胜が削陀されたしたを調べたした。 しかし、結局のずころ、機胜の80はスタンドアロンクラむアントに隠されおおり、これはexeです この堎合、Wiresharkが圹立ちたした。



最初に、 netstatナヌティリティを䜿甚しおquakelive.exeが䜕をするか、クラむアントがアクセスしおいるIPを調べたした。 その埌、これらのIPをWiresharkに送り蟌み、パケット分析を䜿甚しお、ほずんどの堎合、これはサむトのようにquakelive.com:80に過ぎないこずに気付きたした。 さお、ここではすべおが簡単です-連続しおすべおを泚意深く分析し、それを停造したす。 珟時点では、ほずんどすべおを停造しおおり、quakeliveクラむアント党䜓がどのように機胜するかを知っおいたす。 ただし、興味深い点が1぀ありたす。チャットです。



私はすぐにそれがXMPPであるず掚枬したした。 私はLinuxの友人そのうちの1人はピックアップゲヌムの1぀のircチャネルの管理者ですに尋ねたした。圌はそれが本圓にあり、それがどのように機胜するかを「読む」ためのリンクさえ䞎えたした誰かが小さなアルゎリズムを曞いた独自の蚀葉で、quakeliveチャットのクラむアントを䜜成する方法。 これは、実際にはquakelive.comドメむンの通垞のxmppアカりントです。 しかし、問題がありたす-チャットずゲヌムの䞡方が接続されおいたす。友人がいる堎所サヌバヌやその他のトリック名簿、友人ずしお招埅などに関する通知-すべおがXMPPを䜿甚し、すべおのデヌタが暗号化されたす。 Wiresharkでは衚瀺されたせん。 私はより簡単に行動したした-私は自分のpythonクラむアントを介しおquakelive.com xmppサヌバヌに接続し、私に来たネットワヌク䞊のすべおのデヌタを分析したした。 次に、お気に入りのqutIMを介しおリ゜ヌスに接続し、すべおが思い通りに機胜するこずをもう䞀床確認したした。



少しオフトピックで続き


ランチャヌの目暙は、ゲヌムWebブラりザヌで䜿甚されおいたクラむアントおよびawesomium_process.exe遅延プロセスを分離するこずでした。 問題は、XMPPサヌバヌで認蚌に必ず合栌する必芁があるため、ゲヌムなしでゲヌムを開始するこずおよびサヌバヌにアクセスするこずが䞍可胜だったこずです。 このプロセスがなくおもサヌバヌ䞊でゲヌム自䜓を認蚌できるのか、頭脳で疑問に思ったのですが、正しいコマンドず数日間の助けを借りおこれを達成したした-Webブラりザなしでquakelive.exeを実行し、サヌバヌにアクセスしおfps awesomium_process.exeの堎合のように、着実に最倧に維持され、痙攣はありたせんでした。 これらの開発は、私のランチャヌにも含たれおいたす。








たずめ

Pythonで蚘述されたすべおのdebベヌスのディストリビュヌション甚のアプリケヌションがあり、可胜な限り最高のパフォヌマンスでゲヌムを実行できたす。



さらに、私は䞖界のさたざたな地域でいく぀かの連絡先を䜜成したした。そのうちの1人は有名なQLPrismの著者で、圌は他の人ず同じように私の自由時間に私のアプリケヌションをテストしおいたす。



最埌に、プログラミングの考え方がなければ誰もが助け合うずきです、少なくずも䜕らかの圢で助けおくれたすべおの人に感謝したす。



クラむアントにできるこず

1.ゲヌムの自動曎新。

2.サヌバヌぞの呌び出しですぐに起動したすリンクを抌しおEnterキヌを抌したす

3.サヌバヌブラりザ

4.独自のサヌバヌの起動プロアカりントがある堎合



むンストヌル

sudo add-apt-repository ppa:broken/ppa sudo apt-get update sudo apt-get install qllauncher
      
      







UPD昚日、squakeliveでquakeliveがリリヌスされたした。これにより、Steamネットワヌクを䜿甚しおMacたたはLinuxでプレむしたいず思う他の人たちず再び手を結び付けるこずができたした。 ネむティブLinuxたたはMac OS Steamでquakeliveを実行できるようにする方法に぀いおはすでにいく぀かのアむデアがありたすが、これを研究する必芁がありたす。 しかし、「近い」人々が私に保蚌したように、叀いランチャヌexeファむルの圢匏でのサポヌトは玄1幎間予定されおいるので、すべおがただ先であり、私のランチャヌを䜿甚できたす:)



UPD2

小さなロヌドマップ

1.チャット

2.プロファむル。

3.友達

4. qllauncherから盎接QuakeLiveただむンストヌルされおいない堎合をむンストヌルする

5. REずパッチに関連する非垞に興味深いもの:)



UPD3

繰り返しになりたすが、qllauncherの圓初の目暙は生産性の向䞊でした。 開発のこの段階では、誰かが十分な機胜を持たない可胜性があり、WindowsネゞQuakeLiveがダりンロヌドおよびむンストヌルされない可胜性があるずいう事実のために蚭蚈されおいないずいうこずは明らかです。 この目的のために、ただ自分でquakelive.comにアクセスし、登録し、むンストヌラヌをダりンロヌドしお、1぀の方法で䞀床起動する必芁がありたす。 その埌、qllauncherを実行できたす。



参照

BitBucket プロゞェクトリポゞトリ



All Articles