自分の手でMMORPGを作成する方法。 ゆっくり、難しい、面白い

こんにちは、habrahabr! 私の名前はYegor Kuryanovichです。いくつかのインターネットプロジェクト、 KyuubiIdeinikから私を覚えているかもしれません。 そして多分あなたは私の他の努力について聞いた。 今日、私はここ数年で何をしてきたかをお話ししたいと思います。







あなたはゲームが好きですよね? KDPVで表示されるものはFAR7と呼ばれます 。 少しわかりやすくするために、若い人たちはそれをスペースレンジャーと比較し、年上の人たちはStarControl2を覚えており、すでに筋金入りのゲーマーは常にエリートについて語っていると言います。 これが宇宙のブラウザであることに同意しましょう。 ゲームでは、スターシステム間を移動し、取引し、戦い、さまざまなミッションを完了することができます。



ゲーム全体は私によってゼロから書かれただけであり、HTML5スタックの機能を示すデモとして使用できます。 技術に関するすべての詳細と、インディーズプロジェクトの開発の難しさは、あなたを待っています。



受賞歴






3年間の開発で、このゲームはいくつかの競技会に登場しました。 彼女は、Mozilla CorporationのGAME_ONコンテストで最高のテクノロジー、およびベラルーシのハイテクパークで開催されたIT-JUMP 2012コンテストで最高のゲームプロジェクトを受賞しました。





建築


私はまだプログラマーなので、プロジェクトのアーキテクチャから始めます。



システムのコアは、Perl / Catalystで記述されたWebアプリケーション、Perl / AnyEventのライフシミュレーションデーモン(ちなみにLaplaceと呼びます)、および別個のSockJSベースのWebSocketサーバーで構成されています。



さらに、作業をサポートするための膨大な数のユーティリティ、ウォッチャー、および補助デーモンがあります。 コンテンツの管理、追加、さまざまなメトリックの追跡のための特別な管理パネルもあります。



さまざまなオプションを試してみたので、私はこれを、運命とユーザーの打撃に対して最も効果的で耐性があるものとして選択しました。 サーバーがhabra効果に耐えることを心から願っています。アーキテクチャと間違えられなかったと言っても安全です。



クライアントはMooTools + JxLibを実行し、CAATjsはレンダリングに使用されます。これにより、ゲームをモバイルプラットフォーム用のネイティブアプリケーションにコンパイルできます。 残念なことに、クライアント部分を開発するとき、私は1つの大きな間違いを犯しました-すべての初心者開発者のように、私は自分のエンジンを書きました。 言い訳はありますが、開発の開始時点では、そのようなエンジンは原則として存在していませんでした。 HTML5にはゲームよりも多くのゲームエンジンがあり、可能な限り開発しました。







インディは不幸の道


さて、今少し歌詞。 スタートアップの人生はコーヒーの匂い、Macbookの端にあるカリフォルニアの太陽の反射、高層ビルの100階まで寛大なビジネスエンジェルと一緒に連れて行く同じエレベーターのピッチエレベーターだけではないことをご存じだと思います。



スタートアップの人生は、主に地獄のような労働と絶望から成り立っています。 彼、つまり私がコーヒーを飲んでいる場合、夜に数時間だけ仕事をします。 太陽は彼自身のMacbookや彼自身にめったに触れない-スタートアップは一日中働いている:夜明け、正午、日没、そして数時間後に再び夜明けがあったとしても。 おそらく、スピーチ、拍手、寛大なチェックも忘れてください-ベンチャーファンドのディレクターの会議の前に話すことはめったにありません。 1日に何百万人もの人々、つまり私のプロジェクト-のWebサイトを訪問した後、





そして、私は文句を言っていません。 できるだけ長くゲームを独立させ、より多くの利益を得るだけでなく、実験して改善できるようにしたかったので、私は意識的に苦しみの道を選びました。 結局のところ、インディーゲームはそもそもクールなはずですよね?



すべてを支払う必要があります。 実装された願いは、最大の支払いを必要とし、大規模なプロジェクトに数百万ドルを持っていない場合、あなたはあなたの快適さと時間で支払う必要があります。 多くの人がゲームを作りたいと思っていますが、そのような代価を払ってくれる人はあまりいません。



私たち3人は始まりましたが、開発の最初の年の終わりまでに、私は放っておかれました。 他の人はこのペースに耐えられなかっただけで、私は彼らを非難しません。 彼らはクールですが、何をすべきか-スタートアップの道は皆のためではありませんでした。 大規模なプロジェクトを開始したいが、「仕事の後の1日2時間の自由時間」のために、1日20時間かかり、別の機能を終了するのではなく、熱意が眠りたいという欲求に溢れることに備えてください。 数週間のうちに、あらゆる種類の共同設立者、パートナー、将来のCEO、およびサービスステーションが「ある程度」自分で想像できるようになります。







しかし、開発は遅かれ早かれ実を結ぶようになります。請求プロバイダーは契約を締結するための手紙を受け取り、ログインフォームはプレーヤーを入れ始め、魂のないNPCは巨大な宇宙で退屈で孤独ではなくなります。 これは、オープンベータテストまたはMBTと呼ばれます。



MBTは物事に関する新しい視点を提供し、MBTは継続することをお勧めします。 MBTのおかげで、20時間の勤務時間が再び楽しくなり、各レビューはプロジェクトをもう少し完成させるのに役立ちます。



そして、すべてのユーザー、彼の友人、妻、そしてFAR7に行った祖母でさえ、私を大いにサポートしてくれます。 長い3年が経ちましたが、その道筋はまだまだ先のことです。私たちの目の前には、人生、ダンジョン(宇宙空間で想像してみてください!)、戦場、新しいコンテンツ、その他多くの素晴らしいものを模倣するクールなシステムがあります。



スタートアップの道は、彼のプロジェクトが開始されたときに報われます。 そして、あなたの友人たちが、私の労働と多くの人々の実に命を吹き込むのを手伝ってほしい。 宇宙のオープンスペースで皆さんにお会いしたいです!







ところで、プロジェクトの作業中に、私はHabréについてお話ししたい多くのトピックを蓄積しました。 ハブロフスク市民自身が、次のように見たい投稿を選択することをお勧めします。



All Articles