何とかしてゲームを書くことを考えました。 また、迅速な方法で。 できればパートタイムで働くという条件で1週間。 最終段階は、Google Playで公開することでした(もちろん、それだけでは十分ではありませんが、後で詳しく説明します)。 したがって、それは「al-wo-oo and production」のスタイルでの開発に関する記事、または友人が言ったように「Ludum Dareのためにそれ自体をアレンジ」します。 ただし、技術的な詳細はほとんどありません。
少しのブレインストーミングの後、「テープを折り畳む」というアイデアが生まれました。 テープの長さは無限であり、直角に曲げることができます(曲げの数は制限されています)。また、「正面」と「間違った」側面の色は異なります。 「前」と「間違った」色の制御点もあります。 すべてのコントロールポイントで関係者がテープを通過すると、プレーヤーが勝ちます。 クイック検索では、そのようなものは得られませんでした。
メカニックがどれだけプレイ可能か、そして少なくともいくつかの興味深いレベルを作ることが可能かどうか、私にはわからなかったことに注意すべきです。 もちろん、私は少し引き、紙テープを敷きましたが、それほど長くはしませんでした。 つまり、私は明らかに幸運だった。
「タスク用の機器を選択する」ときです(はい、主な論点はそうです)。 一方で、複雑な3D、特に洗練されたグラフィックスは計画されていませんでしたが、一方で、期限が短く、開発を快適にしたいという要望がありました。 私はすぐにアンドロイドSDKを使用して「裸の」Javaを記述しようとしましたが、トラブルの利点は少し計画されていましたが、裸のOpenGLに接着することができました。 15分後、投げました。 (支持者は許してください、しかし冗長な言語です。) その後、Haxeとそのフレームワークについて思い出しました(経験はほとんどありませんでした)。 数分のグーグル2DフレームワークがHaxeFlixelにもたらされました。 haxe(およびopenfl / lime / flixel)の重要なボーナスは、デスクトップ(より正確には、nekoターゲットでデバッグできます。プロジェクトは非常に迅速にビルドされ、高速で動作します)。 ハードウェアアクセラレーションにもかかわらず、Android Studioのエミュレーターは依然として低速です。 Androidでは、ネイティブコードが収集されます。
しかし、それにもかかわらず、マウスはデスクトップにあり、「tachi」はスマートフォンにあり、クロスプラットフォームの性質にもかかわらず、自然に異なるAPIを持っています。 しかし、これは記述された唯一のプラットフォーム固有のコードです。
落とし穴
スタック全体には多くの「可動部分」(Androidの複数バージョン、Android SDK、neko、haxe、hxcpp、openfl、lime、flixelなど)が含まれており、何かが壊れる可能性が高くなります。 その日(!)は通常のインストールと設定に費やされ、さらに開発中にいくつかの問題が発生しました(Ubuntuがあります)
- nekoとその標準ライブラリ。 nekoの別のバージョンのライブラリを使用する場合(たとえば、リポジトリから、次にサイトから不注意にインストールする場合に発生する可能性があります)、プロジェクトは起動時に単にセグメンテーション違反になります。 スタックの一部のツールはnekoでも機能するため、segfoltです。
- NDKバージョン22から23に切り替えると、実際のAndroidでアプリケーションがクラッシュします。 NDKの新しいバージョンでhxcppを再構築することで処理されます。
- happe標準ライブラリのマップは、cppターゲット用にビルドされていない場合がありました(Map、Karl!)。 対応する修正のコミットを確認し、修正されたアセンブリを配置する必要がありました。 ちなみに、haxe開発者がバージョン3.3.0-rc1の後、安定したリリースなしで3.4.0-rc1があると判断したのは面白いです。
- グラフィックオブジェクトのスムーズなアルファ変更は、nekoターゲットではバグがありますが、スマートフォンでは正常に機能します。
次のツールのリストが登場しました。
- haxe:3.4.0(git build development @ 41b2e1e)
- neko:2.1.0
- Android SDK:v23
- JDK:Android Studioで行ったこと
- extension-admob:1.6.3
- 拡張アンドロイドイマーシブ:1.1.0
- extension-googleplayservices-basement:1.1.0
- flixel-addons:2.2.0
- flixel:4.2.0
- haxelib:3.3.0
- hxcpp:git(rev。8bab810cc5b871dbe17a4853109ce8c3fe1ae2da)
- 石灰サンプル:3.4.0
- ライム:2.9.1
- openfl:3.6.1
- rox-i18n:git(rev。cd30cf44e9519cb239697d918eece27715797570)
画面サイズ
小さな詳細はないので、重要なのはピクセル単位の画面サイズではなく、アスペクト比です。 4:3〜16:9の比率のデバイスがあります(合計5つの異なる比率)。 いくつかのまれな例外があるかもしれませんが、それらはまれです。 私の場合、最も「正方形」(3:4)と最も「細長い」(16:9)をテストするだけで十分です。
最初は、画面の割合として「グリッド」をインデントしていましたが、アーティストが登場し、レイアウトとともに、すべてを仮想ピクセルでマークし始めました。 つまり レイアウトは1024x1820の解像度で、より多くの「正方形」のために、対応するインデント/エッジへのスナップで調整されました。
ただし、ハードウェアボタンはクールではなく、ソフトボタンはクールだと判断したスマートフォンメーカーもいます。 この発信パネルのため、ゲームは起動時に間違ったサイズの「ウィンドウ」を取得します。 extension-android-immersive拡張およびインストールによって処理されます
FlxG.scaleMode = new StageSizeScaleMode();
最初のストーリー(スクリーンセーバー)。
レベル
最も重要なことを忘れました! レベル。 興味があり、使用可能な「チップ」に徐々にユーザーを導く必要があります。 彼らはコードを手で書き、その後、再び手で歩いたので、それに応じて最低レベルの動きが設定され、レベルを決めることができます。 したがって、20レベルまで作成されました。
Google Play
開発者登録の費用は25ドルです。 同時に、プロセスは非常に高速です(すべてについて約10分)。
「締め切り」がゲームに殺到し始める1時間前。 GPでは、アイコンとスクリーンショットに加えて、ゲームページの背景用に1024x500バナーが必要です。 ダウンロードの30分後、ゲームはテストされ、誰でもダウンロードできるようになりました。 噂によると、ロボットはまずapkをチェックして共有し、その後人々がチェックします。
ちなみに、開発者のパネルで統計をダウンロードするのは1日あたりのどこかです。
結論
一般的に、私は満足しました。 HaxeFlixelは、小さなパズルを見るのに十分なレベルで非常に迅速に学習できます。 トゥイーン(FlxTween)の存在は、任意のスカラー変数を「アニメーション化」(つまり、補間)することを可能にし、いくつかの関数(正弦、次数など)から選択できます。 これは本当にインターフェースをアニメーション化しました。
すべてのツールが構成された後、アセンブリは問題を引き起こしません。
次は?
Google Playで公開した後、リンクをすべてのチャットルームに友人と投げ込み、統計ページでF5を強引にクリックしました。 約30のインストールがリリースされました。 1か月後、ゲームが半分削除され、さまざまな国からのランダムなインストールがいくつか登場しました。 実際にはそれだけです。 PR /タイトルや説明に人気のキーワードがなく、開発者が他のゲームの束を持っていない場合、ゲーム自体はほとんど気づかれません。
最近、ゲームの新しいバージョンをリリースしました。
グーグルプレイでプレイ
ハクセフリクセル
アセンブリプロセスの説明とapk署名に関する役立つリンク