
私はCounter-Strikeの地図を作成することから始めました:私の都市からのバス停で地図を作り、学校を作ろうとしました。 自宅の学校で撮影するのはクールですか? これにより、仮想世界の構成要素に関する基本的な理解が得られました。
少し後に、AndroidでOpenGL チュートリアルを始めました。 最初の三角形が電話画面に初めて表示されたとき、私は子供の頃に幸せでした!

*写真はここから撮影されました。
次に、石のテクスチャが重ねられたキューブを取得し、最も単純なゲームを作成することについて考えを示しました。 Androidへのポータルポータルは、初心者にとって達成可能なタスクのように思えました。 今後のワークロードを大幅に過小評価しました。 当時、ポータルは既にGoogle Playに存在していたので、1つの部屋しか作成できませんでした。
それから私はもっと簡単なことをすることにし、重力のないフューチュラマでビリヤードを見たので、すぐにそれを実装することにしました(他の人が時間を得るまで)。 私はまだ仕事の量を過小評価していたことが判明しました。 そして、ところで、彼らは私の前で重力のないビリヤードを作ることができました。

*フューチュラマ、シーズン7、エピソード5のスクリーンショット
その瞬間から、約3年前、私の最初のスタープールゲームの作成が始まりました-無重力のビリヤード。 最初は、基本的なJavaの知識と最小限の画像編集スキルがありました。 私は主に仕事の後に仕事をしましたが、時間がないときは長い休憩を取りました。
グラフィックエンジン
チュートリアルから借用したグラフィック「エンジン」に機能を追加すると、柔軟性と脆弱性がますます弱くなってきました。 この瞬間までに、私はそれを真剣に2回作り直し、現在その構造は「中間」に作られています。 過去に戻る機会があれば、「THINK ARCHITECTURE !!!」と自分自身に言います。 それにもかかわらず、プラスは高速ロードと非常に優れたパフォーマンスです。
プログラムのこの部分は、私にとって最も興味深いものでした。なぜなら、あなたがすることはすべて、すぐに見ることができ、感じることができ、計画が画面に現れたときにたくさんの前向きな感情を受け取ったからです。 たとえば、ゲームの空はカメラの周りの小さな立方体であり、そもそも画面に描かれている空のテクスチャで塗りつぶされています。 世界の他のすべてのオブジェクトは後で重ね合わせられ、空を上書きし、オブジェクトが存在しない場所で「輝いて」います。 立方体は常にカメラの周りに描かれているため、空は立方体とともに動いているように感じられます。 しかし、実際には、移動するのはカメラではなく、常に(0、0、0)です。 これらはすべて、カメラに対する相対的な位置を変更する他のオブジェクトです。

*写真はここから撮影されました。
物理エンジン
主な目標は知識を獲得することだったので、私も物理エンジンを自分でやることに決めました。 (また、マニュアルを読んだり、自分のアプリケーションで他の人の無料エンジンを使用する方法を見つけ出すのにうんざりしているためです)。
その中で、グラフィックエンジンの作成で得た経験を考慮に入れ、最初からアーキテクチャについて考えようとしました。 グラフィックと比較して、学校のものではありますが、はるかに多くの数学がありました。 さらに、ブレーキが発生しないように、できるだけ最適なコードを記述しようとしました。 物理学をテストし始めたとき、ピラミッドを壊すときにすべてがひどく遅れていたので非常に怒っていました-結局、私はコードをほぼ完璧になめました。 他に生産性を高める方法は想像できませんでした。 幸いなことに、ゲーム内のオーディオプレーヤーは低速であることが判明し、同時に多数の衝突を再生しようとしました。 2つのボールの衝突音を何度も再生する代わりに、多くのボールの1つの衝突音を再生することで問題を修正しました。

テクスチャー
ゲームが既に安定して動作し、リリースの瞬間が近づいたとき、私は他の人のゲームのテクスチャを使用したことを思い出しました。 無料のアクセスで許容できる品質のテクスチャを見つけることができなかったため、自分でペイントすることにしました( Paint.netで )。 そして何? あまりにも経験! しかし、私の想像力はきついので、最初に使用したものと同様のテクスチャをペイントしました。 メインアイコンが最も時間がかかりました。 真剣に、私は自分でそれを発明しなければなりませんでした。 彼は数日間それをして、彼らが彼女をどのように好きであるか友人に質問しました。 本当にかっこいい?

発売日
当初計画されていたものの多くは延期されなければなりませんでした。 追加の機能はそれぞれ山のような作業に沿ってドラッグされ、このゲームを終了するかどうかはまったくわかりません。 最終バージョンに組み込まれた基本的な機能セットを選択しました。 ゲームをダウンロードしてレビューを残すことを期待して、この記事を書いているという事実を隠しません:良いか悪いかは関係ありません。 これは私が値する私のグレードになります。 ですから、奇跡が起こり、十分なダウンロードがある場合、私は働き続け、チャットとグッズでオンラインモードを作ります。
ご清聴ありがとうございました!