Web開発からゲヌム開発ぞの移行方法

こんにちは、Habr ほが10幎半の間、Webサヌビスを䜜成および開発しおきたした。 あなたはそれらのいく぀かを知っおいるか、䜿甚の経隓を持っおいるか、情熱的に愛しおいる、たたは耇雑な感情を持っおいるかもしれたせんが、これは今ではありたせん。







そのため、2぀のWebサむトビルダヌが垂堎で知られおいたす。uCozずuKit、 90  以䞊の登録が独自のサむトの䜜成に倉換されなかった、少なくずも5 のオヌディ゚ンスを節玄したいずいう意欲、そしおゲヌム開発の経隓はありたせん。 Web業界に関するゲヌムのリリヌスに必芁なものではなかったわけではありたせんが...そうですね。







画像



曲がりくねった道の始たり



バック゚ンドおよび65675フロント゚ンドの59845行のコヌド。 2幎以䞊の開発、倱敗ずデッドロック、7぀のむンタヌフェヌスオプション。 倢の䞭でチヌムメンバヌの䞀人に䌚うのに長い時間がかかるかもしれたせんが、これはすべお私たちの背埌にありたす。







䞻にサむトビルダヌを扱っおいる人や䌚瀟が突然、 オンラむンマルチプレむダヌ戊略を採甚したしたそしお実際に採甚したした。 テヌマであっおもサむトずりェブマスタヌに぀いお







ある時点で、補品ずしおのuCozが時代遅れになり始めたこずに気付きたした。これがuKitを䜜成する動機の1぀でした。 すべおはうたくいきたすが、問題はより深く、その根源はどこにも行かず、人間の心理孊にあるこずが刀明したした。 どのサむトビルダヌに぀いお話すかは重芁ではありたせん-uKit、uCoz、Wix、Tilda、Jimdo、LPmotor名前を付けなかった同僚をすべお蚱しおください。数癟人です、みんな芚えおいたす、みんな倧奜きです。 倧倚数の登録ナヌザヌは決しおサむトを䜜成したせん 。 これは簡単に確認できる事実であり、登録数ボットなしのカりントず実際にサヌビスを受けおいるドメむン/アクティブクラむアントの数を比范するだけで十分です。







なぜそう ナヌザヌだけでなく、私たちが電話した答えを探しお、良い質問です。 明日だから 。 たたは来週。 すべおが明確で、すべおが䟿利ですが、ただ時間がありたせん。 ゞムに行くようなものです。







そのずき、簡単な考えが浮かびたした-私たちはすでにこれらの人々にお金を払っお、圌らを匕き付けたした。







「むンタヌネットプロゞェクトの䜜成に䜕らかの圢で関係しおいる人は誰でも、この経枈戊略の䞀環ずしおサむト管理を確実に行うべきだず思いたす。 ゲヌムが䜕かを教えるこずができるず蚀うのも䞍思議ではありたせん...これは、サむトチヌムの管理の原則ず倚くのサむトで䜜業する機胜のいく぀かを本圓に理解できる数少ないケヌスの1぀です。 そしお、この業界に突入しようずしおいる人たちにずっお、ゲヌムで提瀺されるメカニズムを研究するこずは必須です」



Dimry G.別名Dimok Runetりェブマスタヌ、ブロガヌの狭いサヌクルで悪名高い


誰もが自分でゲヌムを䜜りたいず思っおいたす。



誰も私を完党に信じおはいけたせんが、これは本圓に䞀番の前提条件ではありたせんでした。 歎史は䞖界ず同じくらい叀いですが。 「私はミュヌゞシャンです。ミュヌゞシャン向けのゲヌムを䜜ろう」、「ゲヌム開発者、ゲヌム開発者タむクヌンを䜜ろう」-特にむンディヌのゞャンルでは、こうしたおもちゃの䟋がたくさんありたす。







ずころで、Game Dev Tycoonは明らかな成功です。 これは、倚数のクロヌン、暎埒の開発によっお蚌明されおいたす。 プラットフォヌム。 私たちのゲヌムは根本的に異なりたす他のメカニズム、異なる蚭定が、Web Tycoonはほずんどの堎合それらず比范されたす。







画像



最初の痛み



決定が䞋され、ゲヌムを䜜りたす。 圌は導入郚でチヌムの経隓に぀いお曞きたした。さらに、圌らは進行䞭のプロゞェクトですでに忙しく、圌らから匕き離すのは䞍合理です。 それで䜕 そのため、仕事を専門家に任せる必芁がありたす。 これが私たちの最初の本圓の痛みでした。







䜕よりもたず、開発のためによく開発されたゲヌム開発スタゞオを雇うために、正盎な詊みがなされたした。 幞いなこずに、ワヌクショップで同僚や友人から掚薊するこずができたした。 アむデアレベルでは、誰もがプロゞェクトを気に入っおおり、スタゞオはそのような仕事を匕き受ける準備ができおいたした。







埌で出䌚ったいく぀かのシナリオを以䞋に瀺したす。









2぀のスタゞオが最も安いdizの代金を支払った。 ドック。 非垞に膚倧な結果を受けたした。 倚くの䜜業が行われたしたが、質問はありたせん。 しかし、それは他のゲヌムに぀いおのすべおでした。 いいかもしれたせんが、違いたす。 説明のために、最高は人気がありたす「ロシア人が䜕をするにしおも、すべおがカラシニコフ突撃ラむフルであるこずがわかりたす。」 人々はそれに慣れおおり、よく知られ、よく発達したメカニックで、圌らに知られおいるゞャンルでそれをやりたいず思っおいたのは明らかだったので、圌らはdizで比ur的でした。 doc







ただし、シルバヌの裏地はありたせん。 スタゞオからスタゞオぞず繰り広げられるこの段階から、私たちは1぀、しかし非垞に貎重な名前を匕き出したした。 最初のコヌドはuWebmasterでしたゲヌムはWebマスタヌに関するもので、すべおをUずいう文字で呌び出すこずに慣れおいたす。 より明らかに関連性の高いオプションが提案されたした-Internet Tycoonは、その埌Web Tycoonに倉換されたした。







第二の痛み、自分でやる



スタゞオず䞀緒にたたは䞀緒に䜕もうたくいかないこずを認めなければならなかったずき、私たちは家を䜜るこずにしたした。 プロセスの基本的な人物であるゲヌムデザむナヌの長い遞択が始たりたす。 最初に類䌌のゞャンルに興味を持ち、必芁な胜力などを持っおいた人は、アむデアをキャッチしたす







これらのゲヌムデザむナヌである非垞に難しいトピックに぀いお、長い間お話ししたくありたせん。 必芁であり、dizを曞く必芁があるかどうか。 ドック。 ゲヌムデザむナヌが自分のゲヌムをプレむし、芖聎者ずコミュニケヌションを取り、マネヌゞャヌになる必芁がありたす。 これは非垞に独立した党䜓的な䌚話です。 私は䞀぀のこずを蚀いたす今日、党く異なる理由で、プロゞェクトずチヌムは4人のゲヌムデザむナヌ1人の埌茩を含むを生き残りたした。







募集はすべおの面で簡単ではありたせんでした。 長い間、唯䞀の代衚者は孀独なゲヌムディッシュでした䞊蚘の4぀のうちの1぀。 この䞻な理由は、かなり高い芁件を備えた「残留原理」です。 ぀たり、たず第䞀に、開発者はメむンプロゞェクトを必芁ずし、そこで圌らは非垞にうたく採甚されたした。 そしお、ゲヌムのtechdirは結晶化したせんでした。 もちろん、これはできたせん。 やるこずを決めた-それを行う。 しかし、私たちはこのレヌキに長い間行きたした。







techdirが぀いに登堎したずきでさえ、圌は長い間、圌自身のチヌムリヌダヌであり、アヌキテクトであり、完党なセットではパフォヌマヌでした。 スタッフのナンセンスハヌド修正。 本栌的なチヌムを結成するには、玄6か月かかりたした。 奇劙なこずに、奇劙なこずに、圌らはむラストレヌタヌを探しおいたした。 そしお突然、私たちのオフィスマネヌゞャヌが圌らになりたした。







ストヌリヌのこの郚分に䞀定の結果を芁玄するず、2幎前にゲヌムチヌムが本圓に機胜したず蚀えたす。 誰がむンタヌフェむスを描画し、誰がコヌドを曞くか、そしおスクラムさえも少し埌に玹介されたした。これはすでに䌚瀟党䜓で確立された慣行でした。







蚭蚈ずむンタヌフェヌス



次のようになりたす。







画像



ゲヌムずしおは珍しく、退屈で面癜くないずさえ蚀えたす。 しかし、これは意味のある遞択です。 䞀芋、ゲヌムずいうよりはWebポヌタルのように芋えたす。







奜きな人







画像



知り合いにスクリヌンショットを芋せお、「だからこれは管理パネルだ」、「ゲヌムではなく、誰かの統蚈だず思った」ずいうようなこずをよく耳にしたした。 私たちの聎衆である人々はすぐに倧隒ぎしたした。 圌らは挫画ではなく、本圓に本物の䜕かを望んでいたした。 おそらく、遞択したスタむルのために数人のカゞュアルなプレむダヌを倱うこずになるでしょうが、その簡朔さを信じおいたす。







圌は぀いに、このゲヌムは兞型的なゲヌム、フットボヌルマネヌゞャヌのように芋える必芁はないず確信したした。 シミュレヌタヌはあたり遊び心がないように芋えるかもしれたせんが、成功しおいたす。 これがゞャンルです。







遞択したスタむル内には、ビゞュアルのオプションがいく぀かありたした。 以䞋は、さたざたなデザむナヌのさたざたな゜リュヌションです。







画像



画像



画像



画像



画像



画像



AIを远加するずすべおが改善されたす



プレむダヌは化粧品が倧奜きです。 ただ実装しおいたせんが、写真からプレむダヌのアバタヌを生成する方法を既に孊習しおいたす。 最も興味深いこずに、これは、デヌタセットなしの機械孊習ずモデルトレヌニングに察する非垞に革新的な特定のアプロヌチで発生したす。







これは、アバタヌデザむナヌの芁玠から生成されたもので、プリズマの写真からは定型化されおいたせん。 そしお、品質の面で機械は人を打ち負かしたせんでしたが、結果によっお圌に远い぀きたした。







画像



技術自䜓には開発の蚈画がありたす。 このストヌリヌは、別の投皿に倀するものであるか、1぀ではありたせん。間違いなくHabréに掲茉されたす。 誰かが非垞にせっかちな堎合は、PMをノックしお、私たちはこれを個人的にプレむする機䌚を䞎えたす。







むングリッシュファヌスト、モバむルファヌスト



リリヌスに近付くほど、ゲヌムがモバむルデバむスに完党に適合しおいるこずに気付きたした。 デスクトップよりもさらに良い堎所。 同時に、テスト期間䞭、ブラりザプレヌダヌは芖聎者に非垞に喜んでくれたした。 圌らはゲヌムのチャットルヌムでアクティブなIT䌚話を行い、ゲヌムを自動化するボットを䜜成し、ドキュメント化されおいないAPIを遞びたした。







圓初、ゲヌムは珟圚ブラりザを䜿甚しおいるずいう考えで開発されたした。そこで、メカニズムをテストし、バランスをずっおから、組み蟌みAPIのおかげでネむティブアプリケヌションを収集したす。 珟実は調敎を行いたした。







この玠晎らしい蚈画には時間も予算もありたせんでした。 同時に、私たちが話したほずんどすべおの出版瀟は、䞻にモバむルに興味があり、モバむルがあればすぐに来おくれるず申し出たした。







私たちは劥協しなければなりたせんでした。なぜなら、Cordovaで数か月間iOSずAndroidのアプリケヌションを組み合わせたからです。 暙準ではないこずは明らかですが非垞にたずもですが、非垞に快適にプレむできたす。 そしお、仮説を「どのように進むか」を完党に正確にテストするこずができたす。







App Storeの問題



AppleずApp Storeでの節床により、少し苊劎したした。 最初は、動機付けの起草がありたした。「あなたはWebアプリケヌションです。 「AppleデバむスにはSafariがあり、Safariに䜏んでいたす。気にしないでください。」 しかし、私たちはそれに勝ちたした。







その埌、残念ながら、Appleの芁件により、人目を匕くゲヌム通貚Bitcoinの名前をWebcoinに倉曎する必芁がありたした。 公平に蚀えば、圌らは正しいです、間違いは確かに可胜です。 私たちにずっお感芚は同じではありたせんが。







ロヌカリれヌションに぀いおは、英語を話すオヌディ゚ンスで始める準備ができおいたす。 ただし、ロシア語を母囜語ずする垂堎で磚きをかけおテストする方が簡単で安䟡です。 したがっお、これたでのずころ私たちはロシアでのみ開始したしたが、1、2週間以内に、むングリッシュファヌストに戻る予定です。







技術的なポむント



ReactおよびReduxからVueおよびVuexぞの移行



私たちは今、可胜性のあるホリバヌの薄い氷の䞊を歩いおいるこずを理解しおいるので、私は私たちが䜕かを課したり䞻匵したりしないこずをすぐに予玄したす。 これは私たちの道、遞択の理由ず経隓の単なる説明です。







ゲヌムを䜜成するプロセスの最初の革呜は、非垞に゜フトではありたすが、ReactずReduxからVueずVuexぞの移行でした。







圓瀟では、ほが同じ技術スタックですべおの補品を開発しようずしおいたす。 これは䞻に蓄積された専門知識の問題であり、その堎合、開発チヌム間での簡単な移動です。 今日の基本NodeJS、React、MongoDB。







倧量のデヌタず接続を䜿甚しおゲヌムを䜜成するこずは、最初はNoSQLでは銬鹿げおいたした。 その結果、私たち党員が移行したのは1週間流血でしたが、最初に最初にしたこずです。







途䞭でReactからVueに倉わったのはなぜですか



新しいゲヌムデザむナヌの登堎により、ゲヌムの䞭心的な仕組みが倉わり、ゲヌム内のほずんどのむンタヌフェむスが倧幅に倉曎されたした。 新しいメカニズムはVueで迅速にプロトタむプ化されたした。この遞択の基準は、技術を導入するための䜎しきい倀でした。 同じ時期に、トラフィックの成長、利益、゚ネルギヌのベクタヌシステムを思い぀いお導入し始めたした。 それ以前は、デヌタを時間内に曞き蟌むだけでしたが、倉化の速床には圱響したせんでした。







最初は、ReactずずもにReduxを䜿甚したした。 スプレッドは非垞に急速に成長したした。ゲヌム内のWebサむトでのナヌザヌアクションごずに新しい゚ントリが䜜成されたした。 したがっお、ストヌリヌ党䜓が倉異し、ゲッタヌが再集蚈され、結果ずしおトラフィックず利益の耇雑な蚈算が行われたした。これはすべお非垞に遅くなりたした。 もちろん、MobXを䜿甚しお蚈算のロゞックをやり盎すこずもできたすが、この瞬間はセンタヌメカニクスの重倧な倉曎ず䞀臎したした。 たたは星が䞀臎したした。 圌らが耇数の関係者を぀ないでReduxの問題を解決しようずしたずころ、Vuexではすべおが箱から出しお機胜し、䞍必芁なゞェスチャヌなしで任意の数のサブモゞュヌルに分割されたした。







Vueの構文シュガヌず柔軟性は、本圓に「ヒット」したす。 たずえば、珟圚、コンポヌネントの倀を定期的に曎新するために、蚈算されたプロパティの代わりに







foo() { return bar + baz; }
      
      





曞きたす







 foo() { return (this.oneTick, bar + baz); }
      
      





プロパティthis.oneTickには小さな魔法が隠されおいたす。これはリアクティブで、1秒間に1回曎新され、匏bar + bazの結果が倉わるずコンポヌネントがレンダリングされたす。







デヌタベヌスの移行



バック゚ンドから、1぀の小さな移行ず1぀の倧きな移行がありたした。 最初は、プロゞェクトはMySQLで行われたした。 それは迅速だったので、単玔にリレヌやその他の喜びが必芁だず考えたした。 少し成熟した埌、かなり簡単にPostgreSQLに切り替えたした。





より広範で耇雑なのは、MongoDBぞの移行です。 この決定は、容易なスケヌラビリティず比范的高いパフォヌマンスによるものでした。 ORMの存圚にも関わらず、2番目の移動ではさらに倚くの問題がありたした。 しかし、暙準のReplicaSetずAutoFailOverのセットアップには1時間しかかかりたせんでした。







出版瀟に぀いお䞀蚀



そもそも、圌らを埅っおいたす。 これたでのずころ、Mail.Ruだけが自信を持っお私たちを信じおいたす。 同僚に感謝したす。 ブラりザヌのバヌゞョンがどのようにオヌディ゚ンスに届くのか、すぐにわかりたす。







スマヌトブックやポッドキャストでは、出版瀟はリリヌス段階ではなく、途䞭に来る必芁があるず蚀っおいたす。 11月にDevGammに行くなど、事前に話し始めたした。







私たちは䜕を期埅しおいたした







「はい、わかりたした、これをやり盎しおください。ここに私たちず専門知識がありたす」







私たちが埗たもの







「それはクヌルで、新鮮で暙準的ではない、興味深い蚭定ですが、どのように始めれば収益化のテクニックがありたすか」







画像



䞀般的に、理論は私たちを倱敗させたした。 これがなぜ起こったのかを理解しようずするず、答えは次のようになりたした。







私の意芋では、非暙準はそれほど倚くありたせんが、よく知っおいるず蚀いたす。







党䜓ずしお、ゲヌム開発者は私たちに前向きに反応しおいたす。 垂堎は、次の「ドラゎンを殺す」ず「城を埁服する」にうんざりしおいるこずがわかりたす。 これは、内郚からの人々の歪んだ認識かもしれたせんが。







ファむナル



そのようなずげのある曲がった道で、私たちは柔らかい昌食に来たした。 これは、勝者が刀断されない堎合ではなく、ただ勝利ずは蚀えたせん。 そのため、フィヌドバックや質問に察するコメントをお埅ちしおいたす。 すべおに迅速に察応したす







あなたが協力を提䟛する準備ができおいるなら、私たちはそれを怜蚎する準備ができおいたす。








All Articles