Jewel-mmo開発日記

RubyでMMORPGを作る過程を記録する日記。 Yokohama.rb 発起人。
2015-12-18

『水を求めて〜蜃気楼に負けないゲーム開発〜』発表してきた

ニフティで行われたmBaaSユーザー発表会で発表してきました。

この話はオインクでようやく去年から自社ブランドのアプリ開発をスタートできて、 小さいチームでどうやってプロジェクトを成功させるかの試行錯誤を開発の立場からまとめてみた形。

もちろんまだまだ成功は遠くて日々変わらず試行錯誤中なんだけど、 MUJO, OLYM, 伝説の旅団を開発してリーリスしてその経験をひとつの形にまとめられたと思う。

とにかくゲーム開発は難しくって、その中でも「面白いゲーム」を作るために現実問題プロジェクトはどうやって日々開発にあたるべきかってところの話。技術的に解決しないといけない問題は多々あれど、それ以前に、どれだけあと戻りを許容する環境を作れるか、それをどれだけ素早くやれるかが何より大切じゃないだろうか。

過去、これとは程遠いプロジェクトをもちろん経験したし、そして蜃気楼を認められずに再出発できないプロジェクトの悲惨さも知ってる。

発表後「蜃気楼」についていろんな共感をもらえて、この蜃気楼現象ってゲーム開発に限らないより一般的なことなのかなーと思ったり。

あと今になって考えるとまず開発者の自由さがまずあって、この辺もまた大切なテーマだと思ったりした。

今回発表するにあたっていろいろ考えたわけだけど、今まであんまりしっくり来なかったアジャイルってキーワードも今改めて勉強してみたらしっくり来るかもなとか思った。

また今までいまいちよくわからなかった「インディーズ」というキーワードも、考えるほど、プロジェクトを維持しようと努力を続けるほど、自分たちがインディーズそのものなんだなあ思えてくるところもあって、今回の発表がもろもろ自分の考え方の変わり目になるかもなあっと思ったのでした。

2013-09-17

Ubuntuに新規ユーザを作ってrbenvをインストールしたメモ

サーバーがいまだにrvmで入れたruby 1.9だったので、rbevnにして2.0へ。

ユーザー作成

adduserで新規ユーザーを作る。

useraddとどっち使うのかとかいつも迷って違いを覚えられない。

Ubuntuの準備

sudo apt-get install git-core curl
sudo apt-get install libreadline-dev libssl-dev zlib1g-dev

rbenv

シェルはzshです。

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshenv
echo 'eval "$(rbenv init -)"' >> ~/.zshenv
exec $SHELL

ruby-build

いつもどうやって入れたか忘れちゃうのだけど今回は、

installing as an rbenv plugin.

git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build

Rubyのインストール

インストールするバージョンを確認。

rbenv install -l

インストール。

rbenv install 2.0.0-p247
rbenv rehash

使用するバージョンを指定。

rbenv global 2.0.0-p247
rbenv rehash
2013-04-19

『ガチャピース』公開テスト開始のお知らせ

さて、このブログはMMORPGを作るためにはじまったわけですが、 ゲームの開発を始めてから9年が過ぎ......このブログを読んでくれてる人は、もう当初の目的なんてとっくになくなってしまったと思っているかもしれません。

ですが、この9年間ずっと開発してました。

オンラインRPGを作るのが予想より大変で、必要なスキルを身につけるのに時間がかかっていただけです。

これを作るためにRubyを本格的に学習し始め、ブログをスタートし、勉強会に参加し、 Rubyを理解するために本を書き、勉強会も立ち上げました。

プログラミングの技術だけでなく、ゲームデザインの技術も身につけなければなりませんでした。 個人のリソースでオンラインRPGを作り上げるには、少しでも洗練されたゲームデザインが必須でした。 実はこれまで何度も実装に失敗しているのですが、これはプログラミングの技術不足のせいではなく、ゲーム仕様をまとめられなかったせいです。

ゲームの公開にこぎつけるためには最も小さいゲームルールが必要だということにすぐに気づきました。 それで、ゲームのルールを極限まで小さくし、それと同時に実装も極限まで小さくするということを第一のコンセプトにしました。

小さいことをコンセプトにするというのは初期の段階で決まりましたが、ゲームデザインと実装を小さくることには、どちらにも技術力が必要でした。考え続けて、試行錯誤を繰り返して、少しずつ技術力を高めるよりほかなかったです。本当に必要なものと不必要なものを見極められるようになるまで9年かかったようなものです。

ゲームデザインを洗練させるのには、ボードゲームが役立ちました。 ボードゲームを知ってから、自分の作ってきたデジタルゲームにどれだけ無駄があったか、そこにはデジタルゲームだからこそ許される甘えがあったことに気づきました。

デジタルだとパラメータとか状態とか無駄に持てちゃうんです。それに気づいてからは積極的にボードゲームに関わるようにしました。具体的に言うと自分でアナログゲームを作ってゲームマーケットに出展しました。出展には勉強会の運営やRubyKaigiで身につけてたノウハウが非常に役立ちました。 (ほんとにゲームマーケットはいい経験になります。それは作るだけじゃなくて売る立場の視点が持てるからです。)

とまあ、いろんなことをしてきたのですが、それらは全部ここにたどり着くためでした。何かを始めるときにやるかどうかの判断基準はこれでした。全部必要だったんです。

角谷さんのブログによれば、 8年前、第0回目のRails勉強会@東京でポジペでこのゲームの開発について発表した時、

「最後は君の強さと俊敏さが勝る」

と言ったようなのですが、確かに今でも作戦は全く変わってないです。まさに敏捷さで勝負しようと思ってます。 やっとスタートラインに立てました。どこまで勝負できるかはこれからです。

ゲームの内容について話を移すと、実際まだぜんぜん出来てません。絵がなかったりアイテムやジョブが極端に少なかったりします。開発度15%です。でも最低限の公開レベルには達してると思っています。ここから意見をもらいながら徐々に作っていきます。

実装は小さいです。3000行くらいです。小さいですがコアは出来てます。これ以上複雑にしないつもりです。実装が複雑になる仕様はカットです。例え面白そうでも取り入れません。実装とゲームデザインのバランスがとれるのは両方を1人でやっていることの強みですね。

今はまだプラットフォームが出来たにすきません。 今後はピースやジョブを増やしていきます。そしてプレイヤー同士が直接干渉し合うルールを組み込んでいこうと思ってます。 レベルデザインのスキルが要求されそうですが、レベルデザイン苦手なので身につけられるかはわかりません。でもだからこそ皆さんのアドバイスに期待してます。

今後ともよろしくお願いします。そして是非ゲームに参加してみてください!

http://gachapiece.com