投稿

【RS外伝】戦闘画面実装

イメージ
こんばんは。
sadakです。

戦闘画面を実装中です。


新キャラクターの技師です。


まだまだ3キャラです。
リビルディング・サガほどたくさんのキャラクターを作れるかはわかりませんが、なるべく多くのキャラクターをつくりたいですね。

車輪の再発明について

イメージ
こんにちは。
sadakです。

新しいアプリ案がでないので
あいかわらずリビルディングサガ外伝をコツコツ実装中です。

リビルディングサガ外伝の実装をしてて
なんとなくおもったことを書きます。

プログラミングの世界(だけではないけど)には
「車輪の再発明をするな」という言葉があります。

既存のコード(orフレームワークが提供する機能)を
流用する方が安全でコストが少なくて済むから
同じような機能を再実装するな、ということです。

言葉自体は正しいし、いかにも「非レガシープログラマ」好みの内容だけど
・「その車輪」はバグってないか?
・「その車輪」はこれからやりたい機能要件を満たしているか?
 というところを確認せずに
「車輪の再発明をするな!」という言葉が独り歩きしている場合は要注意ですよね。

例えば、いま僕が実装しているRPGの戦闘ロジックですが
流用できる部分が80%ありますが、そのまま使おうとしたときに
いくつか機能要件を満たせないことがわかりました。
ソースコードの保守性は低いしバグもあり、「この車輪は再発明すべき」と判断しました。

流用できると踏んでいたのに、実は流用できなかったってことですね。
これがシゴトだったら、大変でした。
流用前提で見積もりしてスケジュールを決めた後に気が付いても
なかなかスケジュール変更はできませんので……。
(本当に自分のプロダクトでよかったです)


フレームワークなんかも、提供機能を使ってみたら
とあるエラーの場合だけ、既存と挙動が違っているなんてこともよくあります。
そんなときは一部をスクラッチ実装するんですが、そんなことを続けていると
フレームワーク提供機能とスクラッチ実装の混ぜ合った
複雑怪奇な代物ができていってしまいそうですね。


ところで、戦闘ロジックでは「車輪の再発明」をする、といってますが
そもそも自分のプロダクトの実装について考えてみると……
再発明しまくりです!

同じ処理の共通化を検討するくらいなら
同じ実装をコピペしまくるということはよくやります。

ノリノリの開発状態の場合は、とにかく動くものをつくりきって
そのあと冗長なコードをリファクタリングすればいいので
むしろ「車輪の再発明をしまくって」実装してますね。
共通化を考えるのってたのしくないので、スピード感ややる気がそがれていくんです。
むしろどんどん…

【ポケットローグ】ロシア語版をリリースしました

イメージ
こんにちは。
sadakです。



ロシア語版をリリースしました!

ただし、ちょっといくつかの英文が
まだ翻訳されていないので、近日完全版を出そうと思ってます。

昨年末は、リビルディングサガ外伝の
戦闘画面の開発をしていました。

システムの作り方を完全に1から作り直したんですが、やはりというか個人でやる上でドット絵の制作コストが大変です。

ちょっと、割と深く考えたのですが
真面目にRPGを作るとなると
もちろん既存のゲーム会社には敵わないし
そもそも個人で自主制作する上で
その方向性で良いのか?と。

ポケットローグを作ったのも
初期のアスキーで作られたローグをやりたかったけど、Googleplayになかったから。

リビルディングサガは、こういう昔ながらのRPGがなかったからです(まあ、後は最初につくるならRPGだろ!とか他にも理由はあるけど)

なので、リビルディングサガ外伝は
リビルディングサガのバージョンアップとして
作成するのはやめようと思います。

だすなら、リビルディングサガのシステムとドット絵と同じ物を使って、さくっとつくれるくらいにしようと。

せっかくたくさんドット絵を書いたり、マップもつくったりしたけど、仕方ないかな。。

【リビルディングサガ外伝】ドット絵キャラクターの絵柄

イメージ
こんにちは。
sadakです。

リビルディングサガ外伝のドット絵は
前回の20×20から32×32に増やそうと思ってます。

FF5などは24×16でキャラクターのドットを打っているので
それに合わせてこんなドット絵を作ってました。


ただ、このドット絵だと
どうもやはりFFっぽい。
あと、手足が短いので表現方法にも限りが出てきます。

個人的にはもっとスマートな、ロマサガ3のような
ドット絵が好きなのですが、あれは32×32には
収まりきらないので、ちょっと大変。

なので、32×32で
スマートとなるようドット絵を打ち直しています。



こんな感じで、ちょっとヒョロっとした
縦長なキャラクターにしようと思ってます。

幸いまだ3キャラくらいしかドットを
打っていないのでやり直しが効く感じです。

いま戦闘ロジックの見直しをしているんですが
戦闘用のマスタデータが従来の3つから6つくらいに増えそうです。
ただ、冗長なデータをまとめることができるので
全体のデータ量は減るはず。

今日は実装はなし。
設計とドット絵整備で終わりそうです。

【ポケットローグ】ロシア語版がでるかもしれません2

イメージ
こんにちは
sadakです。

ポケットローグのロシア語翻訳者さん(ウクライナ在住)から
アイテムデータのロシア語翻訳データを受領しました。

そのデータをアプリに取り込んでみた画像です。




ロシア語(キリル文字)は現在使用しているフォントだと全角文字です。
受領した説明文そのままだとウィンドウ内に入りきらなかったので
PaintクラスのsetTextScaleXを用いて、文字の大きさを縮小しています(0.4倍)

以下のような説明の長いアイテムは
説明文自体を減らしてもらう必要がありそうです。





実装の話ですが
Localeクラスに日本語や英語、イタリア語などの定数は定義されているのに
なんでロシア語はないんでしょうか。。

日本語の端末であるかを判定するために

Locale.getDefault().toString().equals(Locale.JAPANESE.toString())||
Locale.getDefault().toString().equals(Locale.JAPAN.toString())

こんな感じで判定しているんですが、ロシア語は

Locale.getDefault().toString().equals("ru_RU")

こんな感じで文字列を直接指定しないといけなさそう。。
なんかすごく不安な実装です…。良い方法はないものかな…。

今日はこれから、リビルディングサガ外伝を触ってみます。

最近、新作ゲーム案をいろいろと考えてて、以下の論文に巡り合いました。
植物を中心とする閉鎖生態系生命維持システムの構築および関連実験

非常に面白い論文でした。

破壊されてしまった宇宙船の生態系を
人間がすめるようになるまで戻す、みたいな
シムシティのようなゲームをつくってみたいなと思ったり。
既にそんなゲーム、ありそうですけどね。

【ポケットローグ】ポルトガル語版がでるかもしれません

こんにちは。
sadakです。

ポケットローグを更新しました。

だいぶ悩んだのですが
モンスターにやられた際に、ペナルティーなしで、一回だけコンティニュー出来るようにしました。

難易度の調整って難しいですよね。
ただ、やはりというか
大勢のユーザにプレイしてもらうと言うことを
第一義に考えた場合
オールドユーザーである自分とは
異なる価値観も受け入れざるを得ない、ということなのかもしれません。

とはいえ、大分プレイしやすくなったかも思いますので
是非、ポケットローグをプレイしてみてください。

さて。
前回はロシア語に翻訳されるかも?という話をしましたが
最近、ポルトガル語に翻訳するなどの話を来ています。
ブラジルのユーザからの提案で、ポルトガル語に翻訳したらもっとプレイしてくれるよ!といってくれたので
『俺はポルトガル語なんて話せないよ!』と
Google Playに書き込んだら
『よければやろうか?』
的なコメントをいただいてます。

まだどうなるかわからないんですが
もしかすると、ポルトガル語版もでるかもしれませんね。

ただ、少し前に
『英語の翻訳はダメダメだから、俺が訳し直してやるよ!』と
提案してくれたユーザさんからは
結局、翻訳してくれずに音信不通なので
やはり過度な期待は禁物というところでしょうね。