Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

【Unite Tokyo 2018】Unityの開発サイクルとバグへの取り組みについて

2,542 views

Published on

講演者:黒河 優介(ユニティ・テクノロジーズ・ジャパン合同会社)

こんな人におすすめ
・Unityのバグに遭遇し困った経験のある方
・Unityエンジンの開発自体に興味のある方

受講者が得られる知見
・Unityのバグに遭遇した時の対処方法
・開発に使用するUnityバージョン決定に役立つ知識

Published in: Technology

【Unite Tokyo 2018】Unityの開発サイクルとバグへの取り組みについて

  1. 1. Unityの開発サイクルとバグ修正への 取り組みについて 2018/5/9 講演者名 黒河 優介 ユニティ・テクノロジーズ・ジャパン合同会社 Enterprise Consulting Developer Relations Manager / Engineer
  2. 2. 黒河 優介 私自身はエンジン開発に関わっていません。 しかしサポートの立場として、開発チームにバグ修正依 頼をしたりバグの状況や修正されたバージョンがいつ 届くのかを確認してにお客様にお伝えしています。 今回は、そこで得た知見をこの場をお借りして発表しま す。 ユニティ・テクノロジーズ・ジャパン合同会社 Enterprise Consulting Developer Relations Manager / Engineer wotakuro wotakuro ykurokawa@unity3d.com
  3. 3. • Unity •
  4. 4. • Unity • Unity • Unity
  5. 5. Unity 3 • UnityEditor • Unity Project • Unity IAP / PostProcessingStack • Web • Unity Analytics / PerformanceReporting / Unity Connect
  6. 6. Unity • • Unity Editor •
  7. 7. Unity
  8. 8. Unity 3 • UnityEditor • Unity Project • Unity IAP / PostProcessingStack • Web • Unity Analytics / PerformanceReporting / Unity Connect 本講演では、UnityEditor自体の開発サイクルやバグへの取り組 みについてお話します。他二つについてはお話しません。
  9. 9. Unity
  10. 10. Unity • Unity •
  11. 11. Unity • • Unity 2017.1 • Unity 2017.2 • Unity 2017.4 (LTS Version) • Unity 2018.1 • • Unity 2018.2(β) ※2018/5/7 時点 LTS Versionについては後ほど説明します
  12. 12. Unity • Editor Mercurial • • Editor • trunk • 2017.1 / 2017.2 / 2017.3 / 2018.1 ※ 2017.3.0f3 – 2017.3.1f1
  13. 13. trunk unity 2018.2 unity 2018.1 unity 2017.3 βリリース等を機に trunkから分岐し、 別ブランチになります。 リリースごとにタグを打ちます
  14. 14. trunk unity 2018.2 unity 2018.1 unity 2017.3 (2) 各バージョンのブランチには直接コミットはされ ず、Pull Requestベースでの更新になります PullRequest PullRequest PullRequest
  15. 15. ※2017
  16. 16. 2017.3 Unity • Unity 2017.3 f p 2 • Unity 2017.3.0f3 2017.3.0p1 -> 2017.3.0p2 -> 2017.3.0p3 -> 2017.3.0p4 2017.3.1f1 • 2017.3.0f3 -> 2017.3.0p1 -> 2017.3.0p2 -> 2017.3.0p3 -> 2017.3.0p4 -> 2017.3.1f1 -> 2017.3.1p1 -> 2017.3.1p2 ..... •
  17. 17. p1 p2 p3 p4 2017.3.0f3 2017.3.1f1 2017.3.0f3に、p1~p4で修正されたもの を取り込んだのが 2017.3.1f1になります 2017.3 Unity
  18. 18. p1 p2 p3 p4 2017.3.0f3 2017.3.1f1 バグの修正対応を行っていきます QAでは修正項目がちゃんと修正され たかを重点的にチェックします 2017.3 Unity
  19. 19. p1 p2 p3 p4 2017.3.0f3 2017.3.1f1 この間は修正箇所以外の網羅的なQAを重 点的に行い、致命的な事が起きない限りは 基本的に新規バグ修正は行いません 2017.3 Unity
  20. 20. • • p • QA f 2017.3 Unity
  21. 21. 2018 LTS https://blogs.unity3d.com/jp/2018/04/09/new-plans-for-unity-releases-introducing-the-tech-and-long-term-support-lts-streams/
  22. 22. LTS(LongTermSupport)
  23. 23. Unity • 1 • Tech LTS • Tech • ( 201x.3 ) LTS 2 ※サポートを止めると言っても、ソフトウェアの更新が止まるのみで、利用自体は可能です。
  24. 24. Unity 5.3 5.3 2017.2 Unity 5.4 Unity 5.5 Unity 5.6 Unity 2017.1 Unity 2017.2 リリースしてからおよそ1年ほどの期間、どのバージョンに対しても バグ修正等の更新を行い、サポートしてきました
  25. 25. Unity 2017.4 (LTS) Unity 2018.1 Unity 2018.2 Unity 2018.3 Unity 2018.4 (LTS) Unity 2019.1 Unity 2017.3 Techストリーム LTSストリーム
  26. 26. Unity 2017.4 (LTS) Unity 2018.1 Unity 2018.2 Unity 2018.3 Unity 2018.4 (LTS) Unity 2019.1 Unity 2017.3 その年の最後にリリースしたバージョンがLTSへ昇格し、 以後24か月間バグ修正更新を行うサポートをします
  27. 27. Unity 2017.4 (LTS) Unity 2018.1 Unity 2018.2 Unity 2018.3 Unity 2018.4 (LTS) Unity 2019.1 その代わり、年の最後でないバージョンについては、 新しいバージョンがリリースされるのと同時に更新が 止まります。 Unity 2017.3
  28. 28. 2018.1.0f3 Unity 2017.4以降では、全てのリリースにfを付け、 網羅的なQAプロセスを経てからリリースするようになります Unity 2018.1.1f1 2018.1.2f1 2018.1.3f1
  29. 29. LTS FAQ Q 2017.3 2017.4 A 2017.3 Q A LTS 2017.4 / 2018.4 LTS 2018.3 ※2018.4 2018.3
  30. 30. • Unity • 2017.3 • 2017.3.0p4 2017.3.1f1 QA • 2017.4 QA • 2017.4 Unity LTS 2 • Unity 2017.4 Unity 2017.3
  31. 31. • Unity •
  32. 32. 1) 2) Unity 3) 4) TIPS
  33. 33. 1) • Unity Help -> Report a Bug... • ( ) • • • • Unity • ※参考:https://unity3d.com/jp/unity/qa/bug-reporting
  34. 34. 2) • Unity (Fogbugz) • QA • • Issue Tracker ※IssueTracker:https://issuetracker.unity3d.com/
  35. 35. Issue Tracker ※IssueTracker:https://issuetracker.unity3d.com/ • • • Issue VOTE
  36. 36. Issue Tracker VOTE ※IssueTracker:https://issuetracker.unity3d.com/ VOTE数は Unity アカウントに紐づき回数は 有限ですが、VOTEを取り下げれば回数が 復帰します。 ここで、Issueに対してVOTE出来ます。 VOTE数が多いと、Unityは優先的にIssueの 対応を行います
  37. 37. 3) • •
  38. 38. 1.機能を開発しているブランチで修正を 行います。
  39. 39. 2.バグレポートにある再現プロジェクトを手順通り 行い、問題が起こらなくなった事を確認します
  40. 40. 3.修正を確認後、最新版にマージしてもらうため プルリクエストを出します
  41. 41. 4.プルリクエストが承認されて、 修正が最新版に入りました。
  42. 42.
  43. 43. unity 2018.2 β unity 2018.1 unity 2017.4 1.最新版でバグの修正を行いました
  44. 44. unity 2018.2 β unity 2018.1 unity 2017.4 2.最新版でバグレポートの再現プロジェクト・ 手順で再現しなくなる事を確認します
  45. 45. unity 2018.2 β unity 2018.1 unity 2017.4 3.それぞれ各バージョンへ修正を 順次適用(可能な範囲内で)
  46. 46. unity 2018.2 β unity 2018.1 unity 2017.4 4.それぞれ各バージョンで再現プロ ジェクトと手順を確認し、問題が解決 したことを確認します
  47. 47. unity 2018.2 β unity 2018.1 unity 2017.4 5.最後に他のバグ修正と共にリリース され、皆様の元へお届けします リリース リリース リリース
  48. 48. Unity ※このような流れのため、報告されてからバグ修正まで時間を要します。 より確実な修正を行うため、このような手順となっております。
  49. 49. 4) TIPS • Issue Tracker • Issue ID • Regression ( / )
  50. 50. Issue Tracker • Active • Fixed • Postponed • Duplicate Issue • Not Reproducible Unity • Won’t Fix • By Design • Fix in Review :
  51. 51. Issue ID Release Note Issue Tracker Issue ID
  52. 52. Regression • • 2018.1.0f3 2018.1.1f1 • Unity bisect ( ) • •
  53. 53. bisect 2018.1.0f3 2018.1.1f1 「2018.1.0p1で発生しなかったバグが、2018.1.0p2で発生する」という場合に、その間のいずれかの 変更によってバグが発生したことになります。 どの変更が悪いかを確定するために、Unityではbisectで原因となった変更を特定する事が多いです 何らかの変更を 表します
  54. 54. bisect 2018.1.0f3 2018.1.1f1 まずは、「問題のなかったバージョン」「問題の起きたバージョン」 の中間地点でUnityEditor自体をビルドします。 このバージョンで起きるかどうかをチェックします。 調べた結果、問題は起きませんでした。
  55. 55. bisect 2018.1.0f3 2018.1.1f1 先ほどチェックして問題のなかったバージョンと、問題のあるバージョンの 中間地点をピックアップして再びチェックします。 このバージョンでは問題が発生しました。
  56. 56. bisect 2018.1.0f3 2018.1.1f1 再び問題のあるバージョンと、ないバージョンの中間をピックアップして調 査します。 このバージョンでも問題が発生しました。
  57. 57. bisect 2018.1.0f3 2018.1.1f1 直前のバージョンでは問題が起きていないのに、このバージョンで 起きているので、このバージョンで行った変更が悪さをしています
  58. 58. bisect • •
  59. 59. Unity
  60. 60. Unity ワークアラウンドで 回避可能? IssueTrackerに バグは登録済み? Unityバグ VOTEしてUnity側に困っている事を 伝えてください バグレポート対応へ ワークアラウンドで回避。 (今後の開発等のためにも、 後の処理もお願いします。) YES YES NO NO
  61. 61. Unity Unityのバージョンを 上げて解決する? バグレポート対応 (可能な限り)問題となっている部分を切り出して、 最小限のUnityプロジェクトを作成してください。 そして、Unityへバグレポートをお願いします。 Release Noteに該当Issueの番号で 修正があると思うので、Unity側で バグ修正が入っています。 バージョンを上げてください YES NO
  62. 62. 5.6.3f1 2017.4.0f1 UI 5.6.3f1 2017.4.0f1 ※
  63. 63. 5.6.3f1 問題となる箇所だけ 抜き出した最小プロジェクト です
  64. 64. 5.6.3f1 2017.4.0f1
  65. 65. Regression Unity 1) 5.6 -> 2017.4 2017.1.0f3 / 2017.2.0f3 / 2017.3.0f3 2) 2017.3.0f3 2017.3 2017.3.0p1 2017.3.1p4 3) 2017.3.1p1 -> 2017.3.1p2
  66. 66. • Unity Help -> Report a Bug... • ( ) • • • • Unity • ※参考:https://unity3d.com/jp/unity/qa/bug-reporting
  67. 67. 実際に書いてみたレポートです
  68. 68. バグの再現頻度や、起きる場所、連絡用のメール アドレス、バグを1行で簡単に説明します
  69. 69. 参考情報としてバグのタイトルから関連していそうな リンク一覧を表示してくれます
  70. 70. 1.実際にどういう問題が起こっているのかの説明 2.バグを再現するための手順の説明 (特定のプラットフォーム端末のみ起こる場合はその情報も併せて記載してください) ※英語で御願い致します
  71. 71. レポートに添付するファイルです。 問題を再現する最小プロジェクトファイルを添付します 今回は、説明用に画像ファイルも添付しました
  72. 72. expected result(2017.3.1p1/ 5.6.3f1) actual result(2017.3.1p2 / 2017.4.0f1) 左のように、望む結果 と実際の結果( expected result / actual result)の 二つの結果を一枚の画 像にまとめてレポート に添付しました
  73. 73. レポートに必要な情報がそろっていそうかを判別して バーで表示しています。 緑色になって問題なさそうなら Sendを押して送信します
  74. 74. レポート完了後に、入力した アドレス宛にメールが届きます。
  75. 75. その後しばらくすると、issueとして 登録されます。 ※Unity側で一旦編集して、個人や組織 を特定するような部分、再現プロジェ クトを省いた状態で掲載されます。
  76. 76. TIPS • β • Unity Unity / Unity • • •
  77. 77. Feedback feedback https://feedback.unity3d.com/ バグではないけれど、機能自体の追加 要望等は Feedbackにてお願いいたし ます。 ここでの要望は将来的な話となり、現 在リリースされるバージョンに機能が 入る事はありません。
  78. 78. • Unity • 2017.4 LTS 2 • Issue Tracker • • Unity
  79. 79. Thank you!

×