2022年12月20日火曜日

バグ報告しませう(´・ω・`)

パッチ制作に興味あるニンゲンは3%くらいしか居ないみたいでした(´・ω・`)
プログラミングは向き不向きあるし、やってみたいと思った人がやればいいと思う。
けれど、バグ報告は誰でもできます
だからバグ見つけたら積極的に報告して欲しいっていうのを前回話しました。
でも、ちゃんとしたバグ報告じゃないと逆に開発の邪魔になる場合があるので、それについて書きます。


この定食の主要成分

  • バグのないプログラムなんてない。誰でもミスはする。そもそも開発者はほとんどがアマチュア
  • バグ報告する人少なすぎ問題
  • バグ放置しても損するのはプレイヤー全員
  • ちゃんとしてないバグ報告はむしろ迷惑になる
  • それ本当にバグ?(誤報をなるべく避ける)
  • バグ報告は必要情報をしっかり書く

バグ報告の必要性

らんらんがシミュトランス始めたのは2018年の春で
当時のシミュトランスは本当にバグステンデッドだった(´・ω・`)

ダイアログ開くとクラッシュ、
電柱撤去するとクラッシュ
って具合に、不意打ちクラッシュで数十分の作業がパーになったりとか日常茶飯事

(´・ω・`)くそげ

そういうバグって開発元に報告するべきだよねって
そうすれば別のらんらんが数時間無駄にするが防げるのだし。

バグって単純なミスかプログラム作った人の想定外の事態が起こって発生する場合が多くて、
単純なミスって自分じゃ気が付きにくいわけじゃないですか。

前回言った通り開発の人達はアマチュアなので、助け合いで25年間続いてこれたわけ。
開発の人達は頑張ってメンテナンスしてきてるわけだけど、一般的にバグのないプログラムなんて無いって言われてます。
ましてアマチュア達がの趣味でやってるんだからね。

Simutransはまだバージョンアップ続いてるわけじゃないですか。
機能追加されるってことは新しいバグが増えてる可能性がある、というよりほぼ間違いなく増えます(´・ω・`)
それで開発の主要メンバー減ってるって前回らんらんが言ったんだけど、
泥版対応の時見てて思ったんだけど、やっぱ人減った影響大きくって
ジムトランスからシミュトランスに変更取り込んだら、うーんこれバグではってのいくつもありました(´・ω・`)
人減ったぶん、バグの洗い出しが遅かったり、漏らしたりが増えたんじゃないかなって。

それでバグ見つけるの大変で、偶然気が付いた人が報告するのが手っ取り早いところあるんです。
単純なミスでも他人なら気が付くことが多いし、
想定外のパターンだって、偶然誰かがそういう想定してないパターン発見してしまうことの方が多いわけ。
だから見つけたらその人が報告するって流れがあると、それによって多くの人が助かるんだよね。

らんらんはバグ報告は開発への投げ銭みたいなものだと思ってる。
その投資でSimutransは良くなるんだからね。バグ見つけたら投げ銭チャンスよ。

バグの事例

1.
Simutransって1タイルの中に最大255のオブジェクトしか配置できないんだけれど、
船とか飛行機とか一杯同じタイルに入れるじゃないですか。
それで偶然255以上入ってしまった時に、なんかバグが発生するとかいうのも、2年か3年くらい前にあったみたい。
そんなのも23年とか経って今さら見つかったりするわけ。

「お前がこのバグを発生させた一番乗りだ。おめでとう」

尊師がバグ報告した人にそう言ってたのが印象的で覚えてるんだよね。
もちろん報告したニンゲンは海外のニンゲンだったね。
日本はまた1番になれませんでした(´・ω・`)
また次頑張ろ?

2.
ジムトランスのバグをそのままシミュトランスにらんらんが取り込んだおかげで、バグ発生から10ヶ月ほど遅れてようやくらんらんもこのバグの存在に気が付いたのだけど

***.ja.tab読み込めるようにした際にja.***.tabが読み込めなくなった

っていうバグがジムトランスの123.0.1で発生してました。これ仕様じゃなくてバグね(´・ω・`)
それでggって見るとね、これをwikiやブログで仕様だと拡散してるニンゲンたちが居たみたい。

(´・ω・`)ちょっと待って。普通に考えてこれまでの互換性を棄ててそんな仕様にするってのは考えられないよ

尊師はそんな酷いことする人じゃありません!

そうだとしても文句くらい言いに行っていいのよ?遺憾砲も発射しなくなったらこの国は終わりよ

これで分かる通りね、みんなバグにちゃんと気付いてるのよ。報告しないと損するの自分達だよ?
それで投げ銭チャンスもらんらんに奪われました。
また次頑張ろ?


バグをバグと見分けられないようじゃただのクレーマーになるかもしれない

日本の有料ゲームの公式掲示板とか超カオスで開発の人も大変だなと思うのだけど、
営利目的でゲーム運営してるとこは、仕事でおちん○ん貰ってる担当のモデレータとか居るのに対して、
何回も言うけど、Simutransは有志が無料で対応してるのを思い出して?
わざわざ時間を割いて対応してくれてるのに、バグじゃない報告にも対応しないといけないと、ただの時間の浪費になって、そんなことばっかりだったら開発の人のやる気も下がっちゃうよ。

意外とちゃんとした報告ができてない人って多いので。
具体的に言うと、内容がこんな感じになってるも同然のバグ報告結構あるよ(´・ω・`)

(1) 開発ちゃんさぁ、バグ見つけちゃったんだけど知りたい~?(チラッチラッ

(2) よく分からないけどこんな感じのバグあるよ。どうやったか分からないけど。

(3) めちゃくちゃな設定にしたらバグった(笑)

(4) 俺っちこれ絶対バグだと思うんだけどー?(仕様です)


どういうことって言うと、

(1) 最初から全部書いておいてって思うやつ(´・ω・`)
 最初に全然必要なこと書いてなくて、これだけ言われても何もできないよって。
 この場合、開発側から質問し返して、やり取りが何回も発生することになるんだけど
 最初から必要なこと全部書いておけば、2レスで済む話だったり。

 英語でのやり取りって超面倒でしょ?らんらんも英語大嫌いだし。
 そういうやり取りを回避するためにも最初にしっかりした報告しておいたほうが、両者が得なんだよね。


(2) 曖昧な情報は開発者を混乱させるだけ。基本相手にされません。
 開発者の誰も、本当かどうか分からない事にわざわざ時間割いて徒労になりたくないし。
 ここで言いたいのは、バグを確実に再現できる方法を提示しましょうってこと。

(3) 挙動がおかしいぞって言うから、やりとりをしていくうちに変なとこ弄ってましたってパターン結構見ました。 
 そういう人に限って、そういう設定弄ったってことを最初に言わないんだよね(´・ω・`)
 それ判明しただけまだマシで、無駄な事に延々付きあったりってこともあります。
 心当たりがあることは最初から全部話して?

(4) これは超ありがちで仕方ない部分もあるのだけど、Simutransって設定とか仕様とか複雑で
 把握しきれてない内容多いと思うんで、バグだって主張できる根拠をちゃんと見つけましょう。

 例えばバグ事例の2番ね。ja.tabバグ。

 update historyに英語で

CHG: lang files are loaded if their name is *XX.tab or XX*.tab. The first is preferred to avoid confusion by name like ja-taken.tab

 って書いてあるのよ。
 この記述だとどっちでも翻訳できるよって言ってるんだよね、新しいフォーマットを優先するって言ってるだけで。

 みんな開発の人達を信頼しすぎてる部分あると思う。機能追加とバグ修正の繰り返しで開発は進んでて、
 さっきも言ったけど開発者減ってるからバグ発見と修正が弱くなってる部分あると思う。
 だからこういう"これはバグだ"っていう根拠が見つかったら、それを大義名分にして乗り込んでって、
 Simutrans貢献度ポインヨなり尊師の親愛度ポイントを稼いでください。


  あと先日、simutrans wikiに載ってる信号の画像の定義の説明がおかしいと言ってるニンゲンが居て、
 「コード見たらすぐに分かると思いますが?」なんて言ってきた人が居たけれど
 実機の動作が正解だからね?
 コード見ただけですぐ分かって、しかもそれが確実ってのなら、バグ作る人なんて最初から居ません。
 ましてニンゲンは間違える生き物なんだから。
 ちゃんと確認して、根拠に基づいてバグって言わないと、ただのクレーマーになります。
 ずっと昔から書かれてることを疑うんだから、それなりの根拠に基づいて言ってると思ったので、
 らんらんも色々調べてから、えっ正しいんだけど?(´・ω・`)って言ってるわけで、
 最初からちゃんと確認してくれてれば、らんらんもそのこと確認するのに無駄な時間使ってないわけですよ。
 (´・ω・`)はあまじ


バグ報告の前に 

・最新版本体でチェックして、そのバグ解決されてないか確認して?

⇒ナイトリー版では対応済みかもしれないよ。

・同じバグが報告がされてないか、簡単にチェックして?
⇒スレッド乱立は迷惑です
シミュトランスはバグが山積みになってるけど2ページ分くらいは軽くタイトルをチェックして欲しい

・もし報告済みのスレッドがあったら、確認して補足できる情報があったら追加報告して?


バグ報告の書き方 

ウィンドウのここの表示がおかしい、みたいな一目で分かるバグは説明だけで問題ないよ。
ちょっと分かりにくいのはスクショ貼った方が、英語で説明する手間も省略できるよ。

ゲーム内動作についてのバグは、

(1) 確実なバグの再現手順を明記する
バグを発見したらセーブして似たような操作をやってみて、それが再現できるか確かめてみる。
適当にバニラのpakset使って新規マップで同じ操作して確認するのがベター。
これで再現できると確実な再現性がある。

バグが再現できるようならセーブをロードして再度やってみる
シミュトランスでバニラの場合、それで再現できるならsveファイルを提出

新しいマップやpaksetがdemo.sveを持ってる場合はそれを使って
バグを引き起こせる手順を実行してみて、バグが再現できるならその手順を書く。


(2) またはそれを確認できるセーブを提出する
基本的にシミュトランスはバニラでプレイすることを前提としているので、セーブ提出が手っ取り早い。
クラッシュじゃなければバグってる時にとりあえずセーブする。
クラッシュするバグはその直前でセーブ。その後のクラッシュを起こすまでの手順を書く。


それでバグ報告って英語でやらなきゃいけないんだよね。
日本語のフォーラムもあるみたいなんだけど、見て分かる通り既に廃墟で開発者は見てません
投稿するだけ無駄よー。代わりにそこから報告拾って持って行け?
そのバグのこと一番知ってる見つけた本人じゃないと質問来たら返信できないよ?だから自分でやってね。

日本の英語教育って最低なので、そのせいでみんならんらんみたいに英語が嫌いだと思う。
一応それについての説明も別の記事に書いておいたので、バグ投稿の際の参考にしてね。


(´・ω・`)See you next dish!

0 件のコメント:

コメントを投稿

路線の「各駅待機状況表示」の改良について考える #その4

 フォーラムに新たに報告されたバグに対応したり 色々平行作業したり躓いたりあったけど、とりあえず進捗状況(´・ω・`) 本当はExtendedに提出しないでおこうと思っていた機能を、ある程度は提出することにした。 理由は (1) Extended バージョン15.0のために、UI...