私は信じています-私はインディーズ開発を信じていません。 パート1

おそらく、創造的な好みの仕事がルーチンに発展するとき、すべてのプログラマーの仕事に重要な瞬間が来るでしょう。 すべてがこの瞬間に独自の方法で対処します。 誰かがプログラミング言語を変え、誰かが仕事を変え、誰かが独立した製品を作ろうとしています。



画像



この瞬間は私には通りませんでしたが、すべての本質を受け入れ、何かをするように命じました。 私は作品を変えたくありませんでしたが、この作品の外に何かを作ることは可能でした。 仕事では有用なアプリケーションのみを作成する必要があるため、それ以外ではまったく役に立たない何かをしたかったのです。 私の理解では、これはゲームを意味するエンターテイメントアプリケーションであると想定されていました。 最悪の場合、ゲームは貯金箱のポートフォリオに移動する必要があります。これは、営業秘密の非開示に関する合意を禁止しません(はい、あなたはたくさん働きますが、できないので何も見せることはできません)。 最善の場合、ゲームを喜ばせるために-少なくともいくらかのお金が必要です。



アイデアから実装まで



最初に、最終ゲームのアイデアと要件が必要です。 もちろん、すぐに、クラスAAA +のRPA要素とレーザーとエルフを使用して、ターンベースの3D戦略を作成したかったのです。 ただし、可能性によって空想が制限される瞬間を考慮する必要があります。つまり、これらの可能性に要件を適合させる必要があります。 プログラミングに問題はなく、ネットワークアプリケーションを作成した経験もあり、これはゲームがマルチプレイヤーであるべきであることを示唆しています。 しかし、芸術から私はPhotoshopでZenの影だけを所有しているため、ゲームには最小限のグラフィックスが必要です。



将来のゲームのジャンルについて真剣に考えなければなりませんでした。 シューティング、戦略、レースには美しいグラフィックが必要です。つまり、これらのジャンルのいずれかの開発は、実装の不可能性にかかっています。 しかし、カードゲーム-すべての要件を満たしています。 しかし、ここには別の問題があります。元のゲームでのみ行かなければならないカードゲームが非常に多いのです。 もちろん、「ポーカー」と「バカ」はすぐに消えます。 考えられるカードゲームのリストを作成し、友人の間で調査を実施しなければなりませんでした。これは、多くの人がこのゲームを知っていることを示しています。 そして、私たちを喜ばせなかったのは、そのようなゲームの賢明な実装が市場にも社会サービスにもなかったことです。 ネットワーク!

決定が下されました。



かわいいカードゲームの巨人を駆け抜けて、ゲームの外観のために以下の要件が策定されました。



独立した部隊によってカード、テーブル、ボタン、文字を作成することは可能でしたが、少女たちと何かをしなければなりませんでした。 そして、これについては、おなじみのアーティストに感謝します-私は感謝のために欲しいものを描きました(ありがとう、アーニャ!)。 確かに、出版物の近くで、私は自分で少し派手なエロティシズムを片付け、あまりに率直な場所を隠さなければなりませんでした。 (次の記事で詳しく説明します)。



結論1:自分の能力に頼る必要があるので、何かが必要になる瞬間はありませんが、それを手に入れることはできません(たとえば、MMORPGMEGA AAA +の3Dキャラクターモデル)。 あなたが機会と欲望を操作するとき-あなたはじっと立っていません



コンセプト

ゲームスタイルのコンセプト



ケーキ作りましょう



マルチプレイヤーゲームに最初に必要なのはサーバー部分です。 すべてを可能な限り正直にするために、サーバーパーツは、考えられるすべてのユーザーアクションを処理し、間違った組み合わせとあらゆる種類の「チートムーブ」を除外する必要があります。 つまり、ロジックはクライアント上ではなくサーバー上にある必要があります。



サーバー部分のコンポーネントを分析しましょう:



すべてのゲームには永続的にデータが保存されている必要があります。 これは、セッション間でクライアント用に保存されるデータです。 このようなデータには、たとえば、プレーヤーチップの数が含まれます。 一般に、保存されたデータはそれほど多くなかったため、MySQLはそのようなデータの保存と処理の運命を引き継ぎました。



次は、クライアントアクションの処理と1つのゲームの複数の参加者の接続です。 これは、ソケットサーバーによって行われます。



ソケットサーバーで最もアクセスしやすい言語はJavaでした。 そして、ソケットサーバーを書くことになったので、サーバー用のAPIを作成することにしました。 それは非常にうまくいった。 驚くべきことに、ゲームを完全に操作するために必要なのは8 APIだけでした。 つまり ソケットサーバーの作成は、当初から考えられていたよりもはるかに簡単でした。



結論2:困難を恐れないでください。 すべてが一見すると思われるよりもずっと単純です。



クライアント用のプラットフォームを選択する



APIを使用してソケットサーバーを操作できることにより、クライアントプラットフォームを選択する際にほぼ無限の可能性が開かれました。 プラットフォームの選択について考える必要がありました。 原則として、一度に複数のプラットフォームをカバーできますが、ここから始めましょう。



ここでは、さまざまなプログラミング言語の長所と短所のタブレットを作成する必要がありました(長所と短所は、機能、目標、および私の謙虚な意見に基づいてのみ選択されました)。



ActionScript(Web)

長所:グラフィックスを簡単に操作できます。 とても簡単な言語。 クロスプラットフォーム。 追加の視聴者を引き付けるためにソーシャルネットワークに統合する機能。

短所:私の観察によれば、モバイルデバイスはなく、Flash'omも使用されていません。



HTML + JavaScript(Web)

長所:グラフィックスを簡単に操作できます。 とても簡単な言語。 クロスプラットフォーム。 追加の視聴者を引き付けるためにソーシャルネットワークに統合する機能。

短所:中価格帯のモバイルデバイスでの作業に関するトラブル(IMHO)。 ソケットサーバーは、RFC 6455プロトコル標準にバインドする必要があります(これは、他のプログラミング言語のエントリしきい値を増やすことを意味します)



Unity(膨大な数のプラットフォーム)

長所:完全なクロスプラットフォーム。 追加の視聴者を引き付けるためにソーシャルネットワークに統合する機能。

短所:ゲームは完全に2D形式で計画されているという事実にもかかわらず、3Dの操作に慣れる必要があります。 高いエントリーしきい値。



Java(Android)

長所:非常に簡単な言語。 多数のターゲットデバイス。

短所: 1つのプラットフォームのみのカバレッジ。



Swift(iOS)

長所: 「名門プラットフォーム」。 他のモバイルプラットフォームと比較して、多数の有料視聴者。

短所:開発をテストするデバイスの不足



リストに少し反映した後、機能と要望の点で最適なAndroidを選択してください。



結論3:操作の余地を残します。 誰が知っている-あなたのプロジェクトが離陸した場合-あなたはいつでも新しいプラットフォームでそれを追加することができます。 1つのプラットフォームに追加できない場合は、別のプラットフォームに切り替えることができます。



クライアントの作成について



Android向けのゲームを作成するための最良のオプションは、 OpenGLを使用することです。これはかなり時間がかかるプロセスであり、ある程度の知識が必要です。 したがって、作業を大幅に促進するエンジンに注意を払う価値があります。 私の選択はAndEngineにあり、最終的には良い結果を示しました。 何らかの問題を引き起こした唯一のものは、さまざまな画面解像度に対するカメラの正しい配置でした。 さまざまな形式の座標の処理を記述したくありませんでしたが、空のフレームを残すことは、花壇に座っているようなものでした。 カメラのフォーマットをいじる必要がありました。これにより、画面全体を画像で満たしながら、余分な部分をトリミングし、コンテンツを引き伸ばすことができませんでした。 それは非常に良く、すべてのデバイス形式で非常にうまくいきました。 トピックはハブで繰り返し言及されているため、この記事ではAndEngineでの作業を説明することは想定されていません。



画像を調整して少しのコードを書くだけです。 だから、非常に短い時間の後、テスターで行われた作業についてのフィードバックを聞くために、私は自分の作品を演奏することができました。



結論4:機会と欲望適切な組み合わせは、早期の結果につながります。

画像

最初の実際のゲームパーティーのスクリーンショット



合計:



完了した作業を確認しました-インディーズゲームの開発は、経済的には完全に無料でありながら、楽しい時間を費やすことができると主張できます(出版物ではなく、作成)。 この記事の目標は、ゲームを作成するプロセスがどれほど面倒であるか、そしてプログラマーがプログラミングスキルだけでプレイ可能なものを作成できるかどうかを理解することです。 そして、プレイ可能なプログラマーができることは、インディー開発を信じる価値があります。 しかし、部分的に。 結果は実を結ぶはずだからです。 ゲームを作成することは氷山の一角にすぎないため、この趣味が利益をもたらすかどうか、出版物がどのように使われるか、そして何にお金を費やす必要があるかについて、次の記事に移ることにしました。 そして、一人のプログラマーの助けを借りて、ゲームから利益を得ようとするだけで、インディーズ開発を信じる価値があるかどうかを理解できます。



All Articles