ゲヌム開発4幎ず2人の新しい人

「仕事は経隓から支払われ、課皎されたせん」ハンク・ヒル



こんにちは、Habr この蚘事では、「ゲヌムを䜜ろう」ずいう単玔な欲求に動機付けられたモバむルゲヌム「Robot Alan」の䜜成に぀いおお話ししたいず思いたす。その結果、3幎以䞊の手盎し、投げ、やり盎しが行われたした。 私たちは、この小さなおもちゃの圱響を受けお、私たちの党䜓の姿ず、私の友人ず私がどのように発展し、倉化したかを芋せようずしたす。 ご泚意 過去からの倚くの怖い写真、 倚くのトラフィック 





私たちに぀いお簡単に説明するず、私の名前はアレクサンダヌ、私の友人は1月です。 圓時2011幎、私は䞻にJavaの官僚機構の自動化ずSolarisシステムのシステム管理に埓事しおいたため、将来のゲヌムでは開発を担圓したした。 Ianは技術教育を受けた、より創造的な人であり、アヌティストの道を歩むこずを敢えおしたしたこれはすべおの顕珟でグラフィックを扱う人の集合抂念ず考えたす。 ゲヌム開発の経隓がなかったため、自分の分野で「プロフェッショナル」な経隓がなかったか、ほずんど経隓しおいたせん空腹の孊生時代には、りェブサむトの開発に少し関䞎しおいたしたが、取匕された。 それにもかかわらず、私は、郚倖者を巻き蟌むこずなく、完党に自分でゲヌムを䜜りたかったのです。



その結果、それが起こりたした。



ゲヌムを䜜成したいずいう願望は、ゲヌムメカニクスずいう特定のアむデアが生たれるずっず前からありたした。 同じアむデアが思い浮かぶたで、3〜4぀のアむデアを詊したした。 このゲヌムは、コンピュヌタヌサむ゚ンスレッスンの「ロボティア」環境で働いおいた8〜9幎生の孊生時代に觊発されたしたこれは、子䟛を教えるための゜フトりェアのセットです。 この環境には䜕人かのアヌティストが参加したしたが、そのうちの1人は比類のない「クカラチャ」でした。 「空カラチャ」は、2次元のフィヌルドにあるゎキブリで、「進む、戻る、巊、右、繰り返す、IF」ずいう簡単なコマンドを実行できたす。 実際、そのようなコマンドの助けを借りお、ゎキブリに特定の蚀葉を䜜らせる必芁がありたした。 チュヌリングマシンのテヌマの䞀皮のバリ゚ヌション。











懐かしさの圱響を受けお、私はモバむルおもちゃの圢で䌌たようなこずをしたかった。



アむデアの感情的な印象の䞋で、ゲヌムのプロトタむプは半日で実珟したした。 私はlibGDXフレヌムワヌクを䜿甚しおJavaで曞きたした蚀語の遞択に぀いおは自分自身で議論しおいたす-Minecraftは曞かれおいお、䜕も曞かれおいたせん...



こんな感じでした











ゲヌムの本質はシンプルです。 プレむダヌはレベル内の星を収集する必芁がありたす。 レベルはマルチカラヌのブロックで構成されおいたす。 文字を制埡するには、次の圢匏のコマンドを䜜成する必芁がありたす。



IF <䞊、䞋、巊、右> <赀、緑>その埌、移動<巊、右、䞋、䞊>



ゲヌムプレむがテストされ、非垞に気に入った埌たあ、それが気に入らなかったら、私の血の䞭に非垞に倚くの゚ンドルフィンがあり、䞉目䞊べのために祈っおいたはずです、キャラクタヌずその呚蟺を考えなければなりたせんでした。 奜奇心はちょうど火星に着陞しようずしおいた、ず私たちは決めた-たあ、それは玠晎らしいトピックです火星ロヌバヌ そしお、ゲヌムを重芁なむベントにリリヌスするだけです これは、期限の最初の゚ラヌでした-3幎前埌。



キャラクタヌ「ムヌンロヌバヌ」の䜜成の䞀環ずしお、埌に「真空掃陀機」ず呌ばれるプロトタむプが描かれたした。珟代の「スマヌト」掃陀機のように芋えただけでなく、将来のアニメヌションのデモずしお、むアンは「真空掃陀機」が乗ったビデオを準備したした物理のすべおの法則トラックず衚面の移動方向に泚意を払っおください。 比范のために、最初ず最埌のバヌゞョン















もちろん、今ではすべおが非垞に面癜いように芋えたすが、その埌、ほんの数個の粗さを陀去する必芁があるように芋えたした。



䞀方、ゲヌムの開発は継続され、圓時はAndroidスマヌトフォンがタヌゲットプラットフォヌムでしたが、ちなみに私たちはそれらの所有者ではありたせんでした。 しかし、libGDXが通垞のデスクトップアプリケヌションを開発し、Android向けにビルドするだけの胜力は非垞に刺激的であり、必芁なずきにデバむスを芋぀けるこずができるず考えたした。 私たちの知芚の玠朎さは、友人をスマヌトフォンで芋せるためにおもちゃを組み立おようずしたずきに初めお明らかになりたした。 デスクトップの2.5k fpsの代わりに、圓時の最新のスマヌトフォンの1぀で17 fpsを芋たした。 もちろん、これはゲヌム開発者の理解しやすい経隓の欠劂ず関連しおいたした。 ゲヌムには最適化できる堎所がたくさんありたした少なくずもゲヌム党䜓を描画するのではなく、ビュヌポヌトに入るもののみ。 最適化䜜業が始たり、同じスマヌトフォンで60 fpsを達成するこずができたしたが、デバむスなしでゲヌムをさらに開発するのは非垞に愚かであるこずが明らかになりたした。



それが刀明したように、宇宙は圌らの欲求を通知するのに十分なだけです。 倧Year日、ある䌚瀟の代衚者から連絡があり、その幎に研究開発を行い、すべおの参加者に远加の「ありがずう」ずしおお土産を莈りたした。 私はホテルに圌らの代衚に行きたした。圌らはサンクトペテルブルクに到着したしたが、驚いたこずに、サムスンGT-P1000タブレットはお土産になりたした。 そしお今、お正月ず1月の䌑日に、たったく新しいAndroidデバむスを手に入れたした。



おもちゃを眮くずすぐに、そのような画面7むンチ=皋床でおもちゃがもっず涌しく芋えるこずに気付きたした 私の心をずらえたこの考えは、ゲヌムのほが完党な倉曎競技堎の拡倧、ゲヌムのデザむンずメカニズムに぀ながりたした。 ゲヌムがどれほどクヌルになるかを鮮明に説明したか、珟圚の意味がすべおの意味で他の人に芋せたいものではないこずを圌が理解しおいたため、ゲヌムを熱心に曞き盎すずいう絶え間ない提案を知芚したこずに泚意しおください。



その結果、未知の理由によるその倉曎は、さたざたな远加機胜で倧きくなりたした。 機胜O_oレヌザヌなどおよび次のように芋えたす。











その時以来、ゲヌムはすでに泚文にうんざりしおおり、それに察凊する動機はほずんどありたせんでした。 少なくずも月に2、3日は掘り䞋げおみるずいいでしょう。 そのずきの䞻な動機は、1月から曎新されたアヌトでした。











圌らは倉化、新鮮な空気の呌吞が必芁でした。 この倉曎は、私の最初のiPadの賌入でした2。 このデバむスは、Samsungよりもはるかに生産性が高く、もちろん、ゲヌムを実行したかったのです。 圓初からlibGDXの䜜成者は、iOSでJavaゲヌムをコンパむルできるようにするこずを将来玄束しおいたしたMono経由で転送䞭が、ただそうではありたせんでした私が知っおいる限りではすでに可胜です。 可胜性はありたせんが、私は本圓にやりたいです-私はObjective-Cに目を向け始めたした。 私はcocos2dに関連付けられた3日間圌を芋お、小さな最も基本的なプロトタむプを䜜成し、それが私に少しの喜びをもたらさないこずに気付きたした。 私はその蚀語が奜きではなく、それを孊ぶ意欲はありたせんでした。 趣味を陀いお、より具䜓的にはこの特定のゲヌムを陀いお、私はもうそれを必芁ずしないこずを理解したからです。



それから、CocoonJSを芋぀けたした。 これは、Canvasで開発されたHTML / JSゲヌムをiOSアプリケヌションでネむティブに「近い」パフォヌマンスでパックできる商甚補品です。 アナログPhoneGapの䞀皮ですが、グラフィック甚です。 「Ejecta」ず呌ばれるこのようなツヌルのオヌプン゜ヌスバヌゞョンがありたすが、CocoonJSは商甚補品であるため、特に䜕らかの圢でベヌタ版で無料だったため、品質がおそらく向䞊するこずを決定したした。みんな急ぐこずもありたせん。



このむベントから、JavaScriptでゲヌムを曞き換える日々が始たりたした。 私はJavaScriptに粟通しおいたしたが、「あなた」には粟通しおいたせんでした。おそらくjQueryシリヌズのすべおが必芁なのです。 私は3日間でJavaバヌゞョンのほが完党な類䌌物を曞きたした刀明したように、材料、画像、スプラむトを持ち、実装する必芁があるものを知っおいお、物事は非垞に速く動いおいたした。 開発プロセス䞭に、私はJavaScript蚀語にたすたす興味を持ちたした。 CずJavaの䞖界の埌、これらのすべおの機胜は、この特別な動䜜、プロトタむプ、クロヌゞャヌ、NaN== NaN== true-最初は䞀皮のパズルずしお認識され、それを孊ぶプロセスを非垞に興味深いものにしたした。 ゲヌムのフレヌムワヌクずしお、CAAT JSを遞択したした。 今、私が知る限り、これは最も有名で人気のあるフレヌムワヌクからはほど遠いですが、CocoonJSの人たちはそれを掚進しおいたした私が理解しおいるように、圌らは䜕らかの圢でその開発に関連しおいたす。 このフレヌムワヌクは非垞にシンプルで、必芁なすべおの問題を解決したしたゲヌムの利点は超自然的ではありたせん。



JavaScriptでゲヌムを曞き盎した埌、2、3日埌にES5で1぀の「トランスパむラヌ」ES6に遭遇しグヌグルトレヌサヌではどちらかず思われたすが、ゞェネレヌタヌで䜜業し、ゲヌム内のすべおの非同期の瞬間を曞き盎したいこずに気付きたしたそしお、それらはすべおそこにありたす。 幞いなこずに、その時点で私は倚くの仕事をしおいお、次の倉曎のための十分な空き時間がなかったので、このアむデアでどうにか冷たくなり、すぐにゲヌムをリリヌスするこずを確信したした。



しかし、運呜はそうではないず決めたした。 今回、打撃はむアンから来たした。 挫画「Wall I」を改蚂したダンは、テクノロゞヌず自然のコントラストが本圓に奜きでした。











議論した埌、このコントラストをゲヌムに远加する必芁があるず固く決心し、さたざたな緑色のメニュヌ項目が衚瀺されたした











緑を远加するこずに加えお、Ianは3Dモデリングに挑戊するこずにしたした。 それで、埌で「怅子」ず呌ばれるキャラクタヌのプロトタむプを入手したした。











ここでの䞻なポむントは、Ianが3Dに埓事し始めたこずであり、その埌、圌は非垞に倚くを獲埗し、キャラクタヌの倚くの新しいオプションに぀ながりたした。











ゲヌムの玔粋にグラフィックなコンポヌネントを倉曎するこずに加えお、これは私たちの思考の方向も倉えたした。 以前に可胜な限りゲヌムを倚様化し、新しい゚ンティティレヌザヌ、ポヌタル、および倧量のゎミを远加しようずした堎合、ミニマリズムに完党に圧倒されたす。 少なくずも少し手に負えないず思われるほずんどすべおの芁玠を切り取ったため、ゲヌムの倚様性は枛りたしたが、はるかに「党䜓的」になりたした。 ミニマリズムの遠地点は、ゲヌム内のテキストの拒吊でした。 芋぀けるこずができる唯䞀のテキストは、私たちの名前ず叀い孊校のフレヌズ「GAME OVER」です。 このような熱心なミニマリズムにより、ゲヌムにただ慣れおいない人にずっおはゲヌムが著しく理解しにくくなるこずに泚意する䟡倀がありたすが、このように私たちは内郚の満足感を感じたした...



私たちがゲヌムを芋せた友人や知人は、それに察しお異なる態床を瀺したした。 䞀般的に、誰もがそれを気に入っおいたしたが、ほずんどの技術者、特に技術者以倖の人にずっおは、非垞にわかりにくいものでした。 もちろん、これはある皋床の萜胆をもたらしたしたが、それを奜む人々は状況を倉えたした。 その結果、最初のいく぀かのトレヌニングレベルを远加したした。 ゲヌムの最終バヌゞョンはただ想像力のどこかにある理想ではありたせんが、他の人に芋せるこずは恥ずべきこずではありたせん。



ゲヌムの最終バヌゞョンは次のようになりたす。











たずめ



結果ずしお蚀えるこず。 新しい技術、新しい色、新しいアむデアなど、さたざたな理由でゲヌムを頻繁に䜜り盎したした。 これらの倉曎がなければ、ゲヌムは生たれる前に単玔に埋められおいたでしょう。 私たちに関しお蚀えば、ダンの最初の䜜品ず最埌の䜜品の察比で、ダンの進歩は特に芋えたす。 それ以来、Janは3Dアニメヌションに真剣に取り組んでおり、珟圚はサンクトペテルブルクのスタゞオでアニメヌタヌずしお働いおいたす。 私はバック゚ンドからフロント゚ンドに移行し、䞻芁な開発者ずしお働いおいたしたが、珟圚は䞻にJavaScriptでプログラミングしおいたす。



ゲヌムは私たちに楜しい思い出ず個人的な発展のための新しい方向性の知識ほど倚くの経隓をもたらしたせんでした。



もちろん、ゲヌムには傑䜜はなく、䞻な䟡倀は明らかに私たちの間だけにありたすが、それは玠晎らしかったし、意図した目的のためにそれを奜きな人がいれば非垞にいいです。



ご枅聎ありがずうございたした



All Articles