ロシアのAIカップ。 選手権の小計





ロシアAIカップ2016は1か月間行われていますが、これはゲームの形で行われる人工知能プログラミング競技です。 ここで今年のアイデアとルールについて詳細に話しまし



しかし、チャンピオンシップの開始以来、多くのことが変わりました。 参加者は、ゲームの難しいルールを理解し、テストの負荷に対処するために汗をかかなければなりませんでした。 ルールが編集され、コードが最適化され、ラウンドが変更され、プレイヤーが禁止されました。 CodeWizards 2016の全容をお伝えします。



ラウンドワンオープンベータ



11月7日、ベータテストが開始されました。 週の間に、参加者は最初のラウンドのルールに従って戦略を書き、主催者はバグを修正し、ルールのバランスを取りました。



たくさんのオブジェクト。 CodeWizardsは、多くのオブジェクトを持つ最初のゲームです。 過去何年もの間、私たちは数十に制限されていましたが、現在は約500になります。これらは木、手先、建物、貝殻などです。 このような多数のオブジェクトは、戦略とテストシステムの作業に悪影響を及ぼします。



高いメモリ消費。 オブジェクトの説明がRAMのスペースを使いすぎました。 ゲームは長時間ロードされ、速度が低下しました。 最も不愉快なことは、1つのブラウザタブに割り当てられたメモリ制限に収まらないという事実のために落ちることさえあるということです。



ビジュアライザーの主な作業を実施しました。 可変オブジェクトをリロードする代わりに、それらの変更の履歴を保持し始めました。 ゲームの開始時に計算する3Dモデルのすべての規定。 これにより、ダウンロードが少し遅くなりますが、fpsは増加します。 消費するRAMの平均量をほぼ半分、つまり1 GBから500 MBに削減することができました。 うまくいったとき、ゲームにサウンドを追加して、結果がもっと面白かったことを確認しました。



データ送信が遅い。 多数のオブジェクトに関連する別の問題:参加者の戦略を送信する必要があります。 RubyやPythonなどの遅い言語には、データの送受信に対処する時間がありませんでした。 戦略に何らかのロジックが追加された場合、制限時間を克服できず、テストシステムによって無効にされました。



特別なキャッシングメカニズムを実装しました。 彼は、最後のディスパッチ以降変更されていないオブジェクトを転送しないことを許可しました。 簡単ではありませんでした。すべてのプログラミング言語で相互作用コードを更新しました。 現在、Rubyの第2ラウンドを完了したメンバーが何人かいます。 Pythonは多くのトッププレーヤーによって使用されており、Java、C#、C ++などの高速言語と静かに競合しています。



ゲームのルールの変更。 フォーラムでプレイヤーからのフィードバックを注意深く見ました。 ルールのバランスを取り、ゲームをより均一にするのに役立ちました。 いくつかの小さな変更に加えて、建物へのダメージの増加、ボーナスを選択するためのポイント数の100から200への増加、およびボーナスが2つのうちの1つで偶然ではなくペアで表示されることに注意する価値があります。 ゲームの開始時には、誰も塔を恐れることはなく、ボーナスのために歩くことは有益ではありませんでした:彼らは少しポイントを与えましたが、まったく現れないかもしれません。



新しい言語。 前の年と同様に、コミュニティは戦略を書くことができる言語のリストを拡大しました。 現在、ロシアのAIカップは一度に10言語をサポートしています。 D、Go、JavaScript、Scalaを追加しました。 言語パックの作者に感謝します!



ベータ版の結果 最初の週に、650人のプログラマーがチャンピオンシップに登録しました。 私たちはフォーラムを注意深く読み、それを続けています。 提供されるすべてを評価し、ほとんどのアイデアを開発に取り入れます。 適切で忠実なプレイヤーがチャンピオンシップに参加していることを嬉しく思います。 基本的に、これらは経験豊富な開発者です。 よろしくお願いします!



最初のラウンドの結果



11月25日と26日に、チャンピオンシップの最初のラウンドが開催されました。 それに参加するために、私たちはその時に受け取った1500のうち1090の最良の戦略を選択しました。 最初のラウンドは、24時間の休憩を伴う12時間の2段階で構成されていました。 その間に、テストシステムが完了し、ゲームを開始しました。 最終評価は 、40戦の結果に基づいています。



第2ラウンドの受賞者の皆さん、おめでとうございます! そして、残りはサンドボックスからの参加者の追加について思い出します。 そこから、最初のラウンドで失敗した60の最高の戦略が2番目のラウンドに分類されます。



悪党:(



ラウンド1の参加者の戦略を慎重に分析したところ、残念ながら、コンテストの全員がルールを順守し公正な競争の倫理基準を順守しているわけではないことがわかりました。 共同開発またはシステム内の複数のアカウントの1人による使用の多くのケースが特定されました。



トップ300にはそのような参加者がおり、ラウンド2に合格するために2枚以上のTシャツを受け取る権利を与えられる可能性があります。 1を除くレコード。



今回は、厳密な警告に制限することにしました。 言及された参加者は失格になりませんが、ラウンド1の結果にさらに進むことはありません。代わりに、リストの次の参加者はラウンド2に分類されます。 もちろん、幸運な人にはメールで通知されます。



ラウンド2ベータ



2回目のラウンドでは、ウィザードにレベリングスペルへのアクセスを提供します。 今、彼らは各レベルで強くなり、スキルのブランチを選択できます。



新しいルール。 さらに、ルールに多くの変更を加えました。





最も強力な戦略でさえ、その強さのためにすべての建物を破壊する時間がないということが判明しました。 ゲームは引き分けに終わった。 メイジのチャンスが大きくなりました。





一連の経験はダメージの量に依存するため、ヒーローのレベリングを遅くしないようにこの係数を上げました。





最初のラウンドで経験値を200に上げると、ボーナスが表示されたときに全員が戦闘を離れて彼を追いかけるという状況になりました。 最初の3つの変更により、ラインに立ったほうが収益が上がります。





このボーナスは他の2つよりもはるかに収益性が高いことがわかりました。 ゲームに少しバランスを追加しました。





MOBAはチームのジャンルです。 チャンピオンシップのオフセットは個人的なものであるにもかかわらず、ゲームの参加者間の相互作用を確認したいと考えています。



チャンピオンシップに参加することをお勧めします



CodeWizards 2016に参加してください ! 技術的には、ファイナルの少なくとも3日前にクールな戦略をゲームにロードして勝つことができます。 追加のSandboxセットが、才能あるプログラマーを待っています!



All Articles