0コメント

【NekoyServer開発日記】x+1日目。過去の成果の確認と、以降の予定

実は初めてとなる「Nekoyama Server(仮名)」、「非合理的世界。(仮名)」というJava版で開発しているサーバー。

日記とかでチラッチラと記述したことがあったような気がするのだが、

恐らく初出はこの記事。引用すると、
とりあえず、Nekoyama Serverの開発は一時中断(spigotでも重すぎて動作しないのと、別途開発していたサーバーの方の開発に最近注力しているため)。
と記述してある。

AZI Serverというカテゴリがある通り、そっちをメイン開発路線に乗せていた。(いうてマイクラ鯖の開発自体最近まともにやっていなかったのだが。)しかし、進展があった。

まあ負荷がうんぬんかんぬんで放棄していたのだが、実は開発を中断する前に魔法武器の実行処理(メソッドみたいなもん)を「魔法武器を所持しているor実行判定が発生している時のみ呼び出す」という対策など、案外挫折する前に俺が何とか対策仕様としていたっぽいのだが、どのタイミングだったのか知らないがそのままAZI Serverの方の開発に移動してしまった。

(;^ω^)あれ?tuinityめっちゃ順調に動くんだけど。

しばらくプレイしてたけど、ちょっとこれで動かしてみようかな。。。
...(中略)
ps
AZI Serverもちゃんと開発はしてたんだけど、正直Nekoyama Server(仮名)の方が面白そうなんよな…

ただ、開発一時中止した理由が「負荷がありすぎて、まともにクライアントがプレイできない」だったから。

でも対策のやりようはまだまだあるし、もうちょい調整して、ひょっとしたらまた開発するかもしれない。

乞うご期待
という感じで、前におススメされていたTuinityを使ったら意外と順調に動いてしまったという。

そもそも、Bukkitの派生としてSpigotが生まれ、Spigotの派生としてPaperが生まれ、PaperのフォークとしてTuinity,Purpur,AirPlane等クラグインサーバーが乱立している時代。

PaperがSpigotよりコマンド関連の動作に弱く(※実比較による経験からの仮定)、Paper系は大したことないな、とか思ってたんだけど

フォークされたものが案外いいらしい。と気づき、Tuinity触ってるわけだ。

AirPlaneとかも近々触りたいとは思ってるけどね

ちなみに全部Bukkit系という扱いなので全てにおいてプラグインに互換性がある。便利だね



という訳で、開発段階のお話でもしよう。実は放置されっぱなしだが公式wikiも用意するつもりでいる。

2021-12-04_02.45.49.png
そもそもこのサーバーは「MMORPGサーバー」というコンセプトで開発している。要は、スキルシステムだとか魔法武器、敵キャラとか。

ステージを進むごとに敵が強くなり、自分を強くする。ってなサーバーにしたいな~と。
2021-12-04_02.54.27.png
2021-12-04_02.56.44.png

サーバーソフト換えたせいで高速移動がかなり抑制されてショボくなってるけど。魔法武器はこんな感じ。


2021-12-04_02.46.38.png
あと装備できるアクセサリーのガチャとか

2021-12-04_02.50.53.png
レベルアップ時にもらえるスキルポイントを割り振れる部屋

2021-12-04_02.46.08.png2021-12-04_02.46.20.png

とかとか。

進捗はこんな感じ。

今回は軽く紹介のみにしておこうかな。他は開発しながら紹介していこう

今後はステージの拡張、敵の追加、武器の追加、システム改善はメイン開発として、せっかくサーバーとして稼働させるのでスキルシステムなど一部をプラグインで実装したいなというところ。

あと、バグがちょくちょく見つかってるのでそっち対処していきたいかな

スクリーンショット 2021-12-04 040711.png
サーバーを停止させてワールドデータを保存させるときに、容量が大きすぎてエラー吐いて保存できないというね。

execute unless entityでエンティティを召喚させるコマンド、あれをいきなり読み込み範囲外のエリアにテレポートしてその場所で実行されると条件に引っかからずにエンティティが無限に召喚されてしまうらしい。それに今日気付いた。

ので、

〇エリア自体をスポーン地点の近くに移動させる
〇エリアにテレポートしたとき保全処置をする
〇エンティティの召喚自体をどうにかする

で考えてる。一応、それを考えてプラグインを使ってみてはどうだろうかとか考えてる訳ね。スキルシステムのエリアで、絶対座標を使ってるからエリアを移動させるとfunction結局書き直さないといけないから、それならプラグインとして新しく書き直したほうが早くね。ということで。

容量が大きすぎるのはEntityDataだね。ちなみに。

今回は以上。次はプラグイン作成に取り掛かりたいところDA

この記事へのコメント