kengonakajima

富山に住むプログラマー

kengonakajima

富山に住むプログラマー

マガジン

  • Genesis開発ログ

    サンドボックスMMORPG "Genesis" の開発の現状を知ることができます。

最近の記事

Dynmapを軽くしたい その4

SpigotAPIを使ってMODプラグインを作り、PaperMCにつっこんで、プレイヤーの足元のブロックを全部ログして、それをWebGLで読み込んで表示、まで進捗した。プレイヤーがあるいた跡が見える。 一部抜けているのは、砂とか土とかの一部のブロックしか描画できないからである。 1ブロックあたり20バイト(位置がXYZで4バイトづつ12バイト、ブロックIDが4バイト、ブロックのデータが4バイト) で履歴をファイルに保存しておいて、プラグインがWebサーバになってHTTPで

    • Dynmapを軽くしたい その3

      WebGL側が、立方体、平面2枚を直交させた草とか苗、マイクラのJSONで記述されたモデルファイルを読んで柵を表示できるようになった。ので、最低限の地図を描画できそうだ。  水が重要だが、なめらかな高さデータをWebGL側で生成するのはめんどくさいので、サーバーから地形データを持ってきてからやることにする。 なので次はSpigotAPIを使うサーバー側の実装にとりかかる。 サーバーにおけるストレージの量を最小にしたいので、プレイヤーが見た表面だけを最小限のデータ量で

      • Dynmapを軽くしたい その2

        Dynmapを軽くしたいので、ちょっとWebGLのコードを書いたり計算をしたりしたら、設計が少し進んだ。 以下のDynmapの地図は、512x512の範囲を表示している。右の方にちょっとゴミが残っていたり、地形が壊れ気味なのはPaperサーバの操作ミスでできたもので関係はない。 Dynmapは拡大縮小ができる。2倍づつ縮小でき、以下は、2回縮小したもの。 以下はさらに2回縮小したもの。縮尺は、512の16倍になっているので、画面の上下いっぱいでは、512x16=8192

        • Dynmapを軽くしたい

          Java版のマイクラサーバーで欠かせないのがDynmapである。Dynmapは大量のメモリとCPUを消費して大量のPNG画像をサーバに保存する。Dynmapは、1GBぐらいのチャンクデータ(anvil, .mcaリージョンファイル)に対して、10GB以上の画像を生成する。画像のレンダリング自体もゲーム処理よりも重いので問題だが、それ以上にストレージの容量消費が大きいので、結局、安いサーバーを使う場合は、すごく狭い範囲(2048とか)だけしか地図を表示できないってことになる。個

        Dynmapを軽くしたい その4

        マガジン

        • Genesis開発ログ
          4本

        記事

          サンドボックス無限タワー

          Genesis世界の全体構造と初期状態について考える。 X,Z方向はマイクラと同じように無限に生成するが、Y方向はタワーになっている。タワーは256とか512セルの高さの空間をもった階層になっており、プレイヤーは岩盤に穴をあけて下の階層にものを落とすことができる。 一番上の階層には、巨大な溶岩と水とタネのタンクがある。XZ方向に拡張するときには、自動的にタンクも生成される。タンクに穴をあけてパイプやコンベアなどの何らかの自動的にずっと運び続ける手段を立体的に構築し、そ

          サンドボックス無限タワー

          Genesisゲーム内容案その1

          ボツにするかも、しないかも。でも、かなり手応えのある案だ。 一言でいうと「MMO砂遊び」、あるいは「MMOメンガースポンジ建造競争」かもしれない。 上の写真は、ぼくのSpigotサーバーで作業中の高さ243のガラスメンガースポンジ建造中の写真で、進捗状況は30%ぐらいである。いまは作業は止めている。メンガースポンジについては、以下を参照。 ガラススポンジは、建造中のスポンジにモブが沸かないので、湧き潰しを全面にする必要がなく、とても安全に作業ができるのが良い点である。

          Genesisゲーム内容案その1

          MMORPGとは何か?

          少しだけコードが進捗した。写真はGenesisの最初の太陽と岩盤の描画テストが動作した。何年か前に作ったゲームからのコピペなのだけど。 ---- 10年ほど昔、オリジナルのMMORPGを開発・運営して利益を上げている企業の社長で、自身もMMORPGの廃プレイヤーである社長と話した時のことを、いつも思い出す。 MMORPGの定義として、ほかのビデオゲームとの違いに必要なものをひとつだけに絞るとしたら何か? という話題になった。彼は、MMORPGとは、 「何年もかかる

          MMORPGとは何か?

          Genesis

          Genesisとは、いまひとりで(個人的に)作っているサンドボックスMMORPGの仮称です。Genesisはいわゆるマイクラライクなゲームで、世界に1個だけワールドが存在し、それを全プレイヤーが共有するMMORPGです。近いうちにプレイできる何かを公開予定です。 更新作業をやりすくするために今はWebGL2上に実装しています。大量に落ちてくる砂が岩盤の上に積もる動きのテスト: このゲームは完成を目指していません。突然開発が止まったり、また再開したりすることもありそうです。