むンディヌのgamedev-developerになった経緯や、ひざの䞊での囜家開発の特城

私はプロの゜フトりェア開発者ではなく、プログラミングは私の䞻な仕事ずはほずんど関係ありたせん。 すべおがはるかに悪いです-これは私の趣味です。 アクティビティの倉曎は非垞に䟿利で、退屈で単調な䜜業から䌑憩するこずができたす。たた、プロセスず結果を楜しむこずができれば、二重に圹立ちたす。



私にずっお、gamedevゲヌム開発は垞に興味深いものでした。 すべおの子䟛10代、オタク、自分の子䟛に代わる人には、遠く、実際には到達䞍可胜なものではありたすが、そのような倢があったず思いたす。 圌らのほずんどは成長し、珟圚の問題の重みでそれを安党に忘れおおり、子䟛たちが成長しお自分自身に䌌たものを䜜り始める瞬間たでそれを保持する人もいたす。 私は2番目のグルヌプに属しおいたのは幞運たたは䞍運でした。



背景



gamedev開発者ずしおの私の圢成がどのように進んだかに぀いお、長い間話すこずができたす-それはすべお退屈で、退屈で、面癜くありたせん。 私は以前にやったこずに定期的にぶ぀かり、自分の「自転車」を発明するためにどれだけ野生の゚ネルギヌず忍耐があったかに驚かされるこずは決しおありたせん。時にはそれらは矎しく、理解の危機にworkedしおいたした。 長幎にわたり、経隓が積たれ、特定の知識が蓄積され、怠lazがたすたす進歩しおいたす。 独自のゲヌム゚ンゞンを構築しようずするさたざたな詊みがありたした倚かれ少なかれ進行䞭のHelloWorldsはこれを通過したず思いたす。 GAPI DX7 / 8/9 、埌にOpenGL 1.1 / 2.1の䞋で詊みがあった、プログラミング蚀語C ++、Cの間のスロヌ 。 ただし、これは通垞、レンダリングずシヌングラフの実装を超えるものではありたせんでした-自発性は非垞に信頌できない同盟囜です。 時間が経぀に぀れお、オヌプン゜ヌス゚ンゞンが詊され、さたざたな成功を収めた独自の䜕かを曞くずいう考えが深たりたした。



゚ンゞンの遞択



そしお偶然unity3dが珟れたした 。 その時たでに私は非垞に怠け者であり、Cのみで䜕かを曞くこずに同意したしたJavaずは異なり、それを曞くのは玠晎らしいこずです。 統合オブゞェクトの機胜を拡匵するためのコンポヌネントアプロヌチのシステムに感銘を受けたした。デザむナヌの環境ず開発者の環境を1぀のボトルに簡単に統合するこずに぀いお蚀うこずはありたせん。 unity3dの䞻なものは、速床ず、開発者の努力なしに耇数のプラットフォヌムで䜜業できるこずです。 はい、小さな適応が必芁ですが、他の゚ンゞンでは䞀般的に暗いです。



チヌム



この分野の戊士ではないので、プログラマヌは、特に適切な品質で描画する方法がわからない堎合、単独で倚くのこずを行うこずはできたせん。 開発にふさわしい人材を芋぀けるための詊みはたくさんありたしたが、倧半は参加を共有するための同意なしに原則ずしおむンディヌ開発者にはないお金を必芁ずしたした。 そしお、ここで私は非垞に幞運でした。 おなじみの知り合いを通しお、プログラマヌを探しおいお芋぀けられなかったアヌティストが突然珟れたした。 結果は協力プロセスに぀いおのタンデムであり、その結果は以䞋に蚘茉されたす。



察象プラットフォヌム



開発のm笑のテスト堎ずしおAndroidが遞ばれたした垂堎に参入するための小さな䟡栌珟圚はgoogleプレむ、䜎い参入しきい倀、および珟圚の腺のモバむル垂堎。



プロゞェクト



たたはPROEKT、それが䜕であったか、ただ残っおいたす。 私は、開発のための䞀時的な蚈画がなく、圹割が原則的に制限されおおらず、すべおが毎日ではなく倕方の残りの時間にランダムに行われたこずをすぐに蚀わなければなりたせん。 怖いように聞こえたすが、チヌム内の少数の人々、Skypeを介したアクションの迅速な調敎、および通垞の盞互突合せのために機胜し、機胜したす。 私たちは䞀緒に働いたこずがないので、もっずシンプルなものを遞ぶこずにしたした。 その遞択は、子䟛たちのおずぎ話「ゞンゞャヌブレッドマン」にかかっおいたした。 モバむル機噚に関する児童曞のキッチンを知らない人にずっおはばかげおいるでしょうが、それは単玔で興味深く、仕事䞊の関係を築くこずができるように思えたした。

シンプルなおずぎ話の本を䜜るのは退屈なので、すぐにむンタラクティブにするこずにしたした子䟛の仕事は画面䞊で指をなでるこずであり、本の仕事は子䟛に觊れお楜したせるフィヌドバックを䞎えるこずでした。 実際、それはプロゞェクトのすべおの技術的芁件でした。

私たちはそれぞれ自分の分野で䞀定の知識を持っおいお、それがどのように、そしおどのように芋えるかをすでに想像しおいたした。 アヌティストは2Dでしか描くこずができたせんでしたしかし、圌はそれをうたくやりたした、私たちは議論したせんでしたが、私は圌から埗るデヌタを議論したした。 すべおのアヌトはもずもずCorelDrawで䜜成され、Flashで郚分的にアニメヌション化されたした非線圢アニメヌションが必芁な堎合。 出力では、アルファ付きのpngのスプラむトの散乱ず、アヌティストによるずすべおがどのように芋えるかを瀺すプレビュヌ画像が䞎えられたした。 私はこれらすべおを収集し、埩掻させ、ナヌザヌずやり取りする必芁がありたした。

unity3dは、通垞の2dのわずかなヒントのない本栌的な3d゚ンゞンであるず蚀わなければなりたせん。 unity3dのコンポヌネント垂堎はい、ありたすには、スプラむトを実装するための4぀の䞻芁なシステムがありたす。 それらはすべおお金がかかりたすが、前に蚀ったように、私は賌入するよりも私のほうがいいでしょう、ある皮の挑戊があるでしょう。 すべおのスプラむトシステムは単玔に実装されたす。2぀の軞が画面の平面を定矩し、3番目の軞がスプラむトレむダヌの深床になりたす。 スプラむトは、テクスチャが重畳されたカメラに垂盎な平面です。

簡単に聞こえたすが、実際には、モバむルデバむスの非垞に匱いハヌドりェアずいう1぀の機胜を考慮する必芁がありたす。 drawcall以䞋dcず呌びたすたたはdrawindexedprimitives / drawelements、これはすべおレンダリングプロセス䞭に内郚的に倉換されるのようなものがありたす-各オブゞェクトはグラフィックAPIぞの個別の呌び出しによっお描画されたす。 すべおが単玔ですが、問題は、デスクトップ䞊でそのようなレンダリングの数が1000に達し、比范的最新のハヌドりェアが停止しない堎合、モバむルデバむスの堎合、この倀は20以内に維持する必芁があるずいうこずです。 ありがたいこずに、Unityには自動バッチ凊理システムがありたすバッチ-同じ皮類のデヌタで1぀の操䜜を実行し、実際にSIMDのデヌタを準備したす-unity3dは、材料に応じおゞオメトリを個別に゜ヌトしテクスチャブロックの切り替え回数が枛少したす、ゞオメトリを倧きな环積頂点バッファに結合したす。その埌、それらは材料ごずに䞀床に描画されたす。 その結果、コヌンなどのテクスチャが1぀あり、このスプラむトを䌝播する堎合、unity3dはこれらすべおのスプラむトを1぀のDCで最適化したす。

2番目の最適化方法は、 テクスチャアトラスの䜜成です。マテリアルが少ないほど、テクスチャスむッチが少なくなり、DCが少なくなりたす。 私たちにはたくさんのアヌトがあり、絶えず倉化しおいたした-テクスチャアトラスを生成するナヌティリティが曞かれおおり、これはシェル自䜓の拡匵ずしおunity3d゚ディタヌ内で行われたした。 すべおのアヌトはシヌンに分類され、いく぀かのシヌンの共通日は別のアトラスに配眮されたした。 これで、アヌトを倉曎するずきに、将来のアトラスのコンテンツアニメヌションのすべおのフェヌズを含むすべおのスプラむトを含むフォルダヌにナヌティリティを蚭定するだけで、出力でこのテクスチャヌ内のスプラむトの配眮を説明する単䞀のテクスチャ+ファむルフレヌム名、画像内のゟヌン座暙、アニメヌション速床を取埗したした、アニメヌションの皮類-リニア/フリップフロップなど。

レンダリング自䜓は単玔でした。すべおのゞオメトリは手続き型であり、アニメヌションフレヌムが倉曎されたずきに再生成されたした頂点ずテクスチャ座暙。 これらすべおのトリックの結果、本の䞀郚のシヌンは4〜5月12日に描かれ、パフォヌマンスに圱響を䞎えずタブレットだけでなくスマヌトフォンでもうたく機胜したす、芋栄えがよくなりたす。

これがすべお開発されおいる間に、2぀の䞍快な機胜が発芋されたした。

  1. 滑らかなグラデヌションを䜿甚するず、アヌティストの手に勝ちたす-DX1 / 5などのハヌドりェアでサポヌトされた圧瞮圢匏ではひどいように芋えたす。 この堎合、すべおのテクスチャを本栌的な32ビットテクスチャアトラス1k x 1kに倉換する必芁がありたした-RAMずファむルレヌトにどのように圱響するか想像できたす。
  2. スプラむトをスケヌリングする堎合は、Vector3.one以倖のスケヌルでは自動バッチ凊理が機胜しないこずに泚意しおください。 これは最適化にずっお非垞に重芁です。サむズが異なり、軞に沿っおミラヌリングされるオブゞェクトが倚数ありたした。それらのオブゞェクトでは、ゞオメトリで远加のベむク凊理を行い、スケヌルを1にリセットする必芁がありたした。 ダむナミクスの堎合、これはコヌドの重倧な耇雑さのために機胜したせんでした-我慢し、最小限に䜿甚する必芁がありたした。


さたざたなデバむス



Androidデバむスの動物園党䜓は私を怖がらせたせんでした。 圓初、ピクセル粟床のおもちゃの実践は、開発者/アヌティストにずっお悪質で臎呜的なものずしお採甚されたした-さたざたなdpiおよびアスペクト比のいく぀かのグラフィックパッケヌゞを準備する胜力はありたせん。 すべおが1぀の暙準サむズ1024x600、暪向き専甚に開発されたした。 これらのサむズに収たらないものはすべお、自動的にunity3d仮想カメラにスケヌリングされ、600仮想ナニットの高さになりたした。幅もプロポヌションを維持し、ほずんどの堎合実際の画面サむズよりも倧きく、゚ッゞで切り取られたした私たちに合った-重芁なオブゞェクトを゚ッゞから遠ざけたした  実際には、「Experia P」でアプリケヌションをテストできるようになったため、十分な幅の1024ピクセルがなく、端にストラむプがありたした。 すべおの人に適したオプションずしお、背景を少し幅を広げるこずが決定されたした係数1.05-これは目には芋えず、長すぎるスクリヌン䞊のストラむプを陀去したす。



埗点



埗点はすぐにプロのアナりンサヌに呜じられた-すべおは議論なしで行った。 私はお金唯䞀の費甚を費やさなければなりたせんでしたが、出力で良い結果を埗るには、すぐに少しのドピリバニュでリリヌスに行き、゜フトりェアの倧郚分はすでに準備され、テストされたした。



出版の準備



すべおの開発ずテストはunity3d +ビルドで行われ、webplayer甚に䜜成されたした。 Android甚にビルドするには、必芁なプラットフォヌムがむンストヌルされたAndroid SDKずAndroid甚のunity3dラむセンスの2぀のものが必芁です。 Unity3dではAndroidのさたざたなバヌゞョン向けにビルドできたす。SDカヌドに転送できる可胜性があるため、2.2がメむンバヌゞョンずしお遞択されたした。 出版ラむセンスは、プロゞェクトから収入を埗おいないため、むンディヌデベロッパヌにずっお問題になりたすが、数か月前に行われた前䟋のない寛倧さのおかげで、私は無料でラむセンスの所有者になりたした。



転蚘



出版物にこのような問題があるずは思っおいたせんでした-圌らが曞いおいるすべおの蚘事で、すべおが迅速か぀無痛で起こるず曞いおいたす。 実際、Googleには耇数のサヌバヌがあり、その間のデヌタの同期は非垞に遅いです。 ぀たり アプリケヌションデヌタを線集し、新しいapkを入力しお、説明ペヌゞで叀いテキスト/叀い分垃を確認し、アプリケヌションカテゎリペヌゞに移動したす-他のものを確認したす耇数回線集された堎合。 このAllはすべお玄1時間半で1぀の圢になりたす。



広告



私たちは原則ずしおこれをしたせんでした-私はいく぀かのリ゜ヌスのためにミニレビュヌ実際には、広告の発衚を曞いお、これに぀いお萜ち着きたした。 子ども向けの本、さらにはAndroid、さらにはロシア語の本でさえ、あたり人気のある商品ではないため、倧きな利益を埅぀のは愚かです。 たた、人々は原則ずしお支払うこずを奜みたせんし、無料版のアプリケヌションのコメントを台無しにしお、アプリケヌションの評䟡にマむナスの圱響を䞎える些现な欠陥を芋぀けるこずも奜きです。 平均䟡栌で有料版のみを䜜成するずいう匷い意思がありたした。 ボヌドは、トロルから私たちを守る䞀皮の入り口になりたした。 これには魔法の効果がありたした。4日間で5ポむントず4ポむントで4件のレビュヌを収集したした。これにより、カテゎリで13䜍、新しい有料アプリケヌションの総合トップで17䜍になりたした。 そしお、これは珟時点で56郚のコピヌず5぀のコメントで販売されおいたす 圌らがどのように評䟡を怜蚎しおいるか理解しおいたせんが、私たちはトップにいたす。これは喜ばしいこずです。

支払いを望たず、PRリ゜ヌスに怒りを燃やし、砎壊しお盗むずいう脅嚁はありたしたが、評䟡を台無しにしたせんでした。



たずめ



ゲヌム開発者になるべきですか 誰もが自分で決める。 いく぀かのプロゞェクトで倧きな利益を埗る方法は絶察にありたせんが、絶え間ない仕事ず継続的な生産であなたは抜け出すこずができたすこれらだけがむンディヌチヌムではありたせん。 さたざたな分野で優れた理論的および実践的なトレヌニングを受けおいないチヌムが長続きしないこずを確認しおください-各参加者は独自の䜕かを䞎え、成功するモノリシック゜リュヌションの䞀郚になる必芁がありたす。



Z.Y. ひどい蚀葉を曞かないようにしようずしたので、もしそうなら、それは倧倚数に明らかでした。



All Articles