趣味としてのターンベースの戦略





こんにちはハブラ 自分のゲームを作成することを夢見ていない人は何人いましたか? 経験とお金がなくてもブラウザ戦略を書くことは可能ですか? おそらくあなたが本当にしたい場合。



猫の下で、私の話は無料のターンベースの戦略を作成することです。







どんなゲームですか? 簡単に言えば、古き良き「Panzer General」に相当するネットワークです。



しかし、まず最初に。



背景



少し前に、一連のゲーム「Behind Enemy Lines」をプレイして修正しました。 シリーズは素晴らしいです、そして、そこでの戦車戦はWorld of Tanksの先駆者であると思います。 しかし、数年の間、MODを使用してもネットワークゲームはひどく疲れていました。 その理由は、同じゲームプレイ、同じカード、同じユニットのストリーム、

すべてのプレイヤーは常により強力な戦車または歩兵分隊のクレジットを蓄積し、それぞれのユニットリストは厳密に修正されました。

したがって、一部の装備は戦闘から完全に姿を消し、後者は単調で予測可能でした。 私たちは、MODで購入メニューをカスタマイズする方法を検索しました。これにより、プレイヤーは、特化は言うまでもなく、少なくともランダムにユニットリストを受け取り、戦うことができます。 しかし、悲しいかな、エンジンはこれを許可しませんでした。



その後、フォーラムでの議論でアイデアが生まれました。「グローバルマップを経済とゲームに結び付けるとしたらどうでしょうか」。

グローバルマップ上の戦略、VTBでの戦術的な戦い。 当事者が利用できるユニットは、前線によって決定されます。 援軍を送る時間がなかった? -あなたが持っているものと戦う! かっこいい! 単調の終わり!



開発者を説得するだけです。 しかし、彼らとの会話の結果は誰にとっても明らかであると思います-それが報われるかどうかはわかりません。



私はBestWayチームに少し精通しており、戦略をブラウザーに実装することもできるという結論に達しました。APIを追加するだけで、「Behind Enemy Lines」を最小限に変更する必要があります。



ブラウザ部分は、ためらうことなく、誇らしげに引き継ぎました。 いくつかのベストプラクティスを実施した後、プロジェクトの将来の人生について議論することに同意しました。



わずかなプログラミングの経験が私の背後にありましたが、それでも自由な時間に旅を始めました。

それから約2年が経過しました。



開発



Codeigniterがフレームワークとして選択され、他のいくつかのプロジェクトを統治し、いくつかの経験がありました。 クライアントパートをJS、より正確にはjQueryで記述することが決定されました。



次に、どのように見えるかを理解する必要がありました。 このジャンルのゲームのうち、「トータルウォー」と「カリブ海の危機」だけを見ましたが、それらはすべてスタンドアロンでした。 ロンググーグルの結果-weewar.com ここに必要なものがあります!



ヨーロッパ地図が基礎として選択され、htmlの分析が開始されました。 vivarにはいくつかの層がありました。 一番下のものは領土の写真、真ん中のものはユニット、一番上のものはヘクスの正確なアウトラインを持つエリアタグです。 同時に、htmlコード全体の重量は500 kbを超えました。



私はこの計画を簡素化し、領土と軍隊の2つの層に限定することにしました。 しかし、この場合、間違ったセルをクリックすると問題が発生しました。 結局、ディーバは互いにぶつかりました:





この問題をどのように解決しましたか? まさか。 実践により、それは完全に重要ではないことが示されました。 99%のケースでのすべてのクリックは、ヘックスの中央以上で行われます。 今後苦情があれば、クリックの座標を確認します。

地図は、幸福の観点から描かれています。 続けて。



そして、パスの検索を実装する必要があるときまで、すべてが時計仕掛けのようになりました。 そして、道を見つけるだけでなく、ユニットが移動できるあらゆる種類の道を表示する必要があります。



いつものように、自転車が最初に作られ、その後「波動アルゴリズム」が突然発見され、それに基づいてすべてが正常に動作状態に組み立てられました。 それから、phpに移植する必要がありました。 jsの計算は簡単に偽造されます。 サーバーでは、ポイントAからポイントBへの移動の有効性を確認するだけでよいため、コピーして不要なものはすべて捨てました。



別の興味深いタスクは、ページのリロードを取り除くことです。 ここではすべてが非常にシンプルであることがわかりました。 すべてのゲームアクションをログに記録し、Ajaxは長いポーリングを使用して新しいログを取得し、受信したデータのマップにアニメーションを表示します。 その結果、2つの異なるブラウザーで、3番目のブラウザーで同じアクションが実行されるのを見ました。 そして、それは非常にクールでした。生き生きとしたものにもアニメーションがなく、敵が何をしていて、彼が移動して攻撃したかを理解することはほとんど不可能でした。



weewarと比較したもう1つの「ノウハウ」は、アクションログとリプレイを表示する機能を表示することです。 では、 player1 move unit 23,5 -> 24,6



快適に読むことができるのは誰ですか?

数十行のコードと、ユーザーがログの目をクリックすると、アニメーションが繰り返されます。

画像



このプロトタイプが示されたとき、私はBestWayから明確な答えを受け取りませんでした。 しかし、絶対に動揺しない。 私は優れたプログラミング経験を持ち、ゲームを独立したものとして完成させるというペースの速い決断をしました。 ウィーウォーと似ていますが、より良いです。



プログラミングに加えて、次に何が起こったのかは、ゲームデザインの作業と見なすことができます。

設定は放棄されました-第二次世界大戦。

私は攻撃、ユニットの特性を計算するための公式を考え出しました...私の次の誇りは、さまざまなタイプの軍隊の相互作用のための領土のさまざまなボーナスです。 たとえば、森の戦車は敵の装備から+2の防御を受けましたが、歩兵からは-2でした。これは非常に論理的で、ゲームプレイにとって重要でした。 vivarでは、森は単にタンクに-2防御を与えました。



ゆっくりと悲しいことに、半年後、アルファ版が誕生しました。アルファ版はすでにプレイ可能であり、場所さえも面白かったです。 ドメインの購入とホスティングにお金を使い、プロジェクトは収縮し、最初のゲームは友人とプレイし始めました。 それはそのように見えました。



プロジェクトライフ



最初の数週間では、登録ユーザーの数は非常に少なかった。 彼がどこへ行って何をすべきかを誰も理解していなかった。 優れたマニュアルが必要でした。そして、少なくともおおよそどのように書かれているかを理解するために、オンラインプロジェクトの存在を探し始めました。 少しスクロールすると、退屈した。 すでにゲームに少し精通している場合、ドキュメントは読みやすいです。 しかし、初心者にとって-これは「森」です。 インタラクティブなトレーニングが必要だという結論に達しました。 最小テキスト、最大アクション。 実装後、生活は改善し始めました。



毎日、ゲームはヨーロッパの穴に磨耗した地図でプレイされました。 すぐに疲れました。 地図編集者が不可欠であることは明らかでした。

約1か月で、彼はそのようなエディターを書きました。 その存在の初日に、5つの新しいマップがプロジェクトに登場しました。 今日、約40枚のカードがあります。



可能なパスの美しいレンダリングを作成したかったのです。

しかし、彼はブラウザのパフォーマンスに出くわしました。 実装するには、半透明の白いヘキサJSを使用して3番目のレイヤーを適用する必要があります。 そして、中央のマップでは、約1000の新しいdivです。 Firefox、オペラ-タスクにかなり迅速に対応しました。 Chromeには数秒かかりました。 さて、「勝利」の犯人-IE。 9番目のバージョンでさえ、5秒のディーバを追加しました。私は拒否しなければなりませんでした。 もっと生産的なスキームを考えています。



そのため、数か月間、ほぼ毎日、プロジェクトで何かが行われました。 バグが修正され、新しい機能がネジ止めされました。 ユニットが追加されました。 先日、インターフェースが根本的に更新され、新しい国、米国が追加されました。 完全な変更履歴は、「新機能」セクションにあります。



プロジェクトの生涯の2か月間で、ほぼ150人のロシア語を話すユーザーが登録され、300のゲームがプレイされ、75,000のエントリがアクションログに記録されました。

広告に多額の費用が費やされていなかったことを考えると、おそらく悪くはありませんでした。また、このプロジェクトはロシア語のフォーラムでしか発表されませんでした。



次は?



誰かがモデルを接着し、誰かがエアソフトをプレイします。私の趣味は私の戦略です。



ゲームの多くのユニットとオブジェクトは他のゲームのものであるため、現時点では、良いアーティストのために「苦労して稼いだ」ものを集めています。



将来、中世や現代戦争など、さらにいくつかの設定を実装する予定ですが、まだ決定していません。 または、オークとエルフ、地獄が冗談を言っていないものかもしれません。



また、戦争の霧や装備の予約など、必要な機能も計画に含まれています。 詳細については、ウェブサイトの「工事中」セクションをご覧ください。



このプロジェクトはまだ通常のホスティングで行われているため、すぐにトレーニングへのリンクを提供します。 完全にJSであり、MySqlを強制しません。 habraeffectが慈悲深くなることを願っています。



Chargex



仮想面での注意と幸運に感謝します!



PSこの記事を手伝ってくれたalexDarkArminに感謝します。



All Articles