Skip to the content
soy-software

ソイソフトウェアではゲームやアプリを作ってます!

自分がやってる仕事って実は”Unityエンジニア“じゃないかもしれないという話。

クリーンアーキテクチャはゲーム開発に不向き説

以前から、界隈では「UnityでDIコンテナを使おう!クリーンアーキテクチャをやろう!」みたいな話がたびたび盛り上がっている。

私も、「そんなに素晴らしいなら使ってみたい」と思って勉強しようとするたびに、そもそものメリットがサッパリ理解できずに終わるのを繰り返してしまう。

本当にUnityでクリーンアーキテクチャをやるのは優れた方法なのだろうか?じゃあUnity公式のサンプルとかがベッタベタにUnityの普通の作り方になっててクリーンな設計が全然されてないのはなんでなん?

最近はこういう記事も見かけた。

ゲーム開発 に所謂なアプリケーション設計パターンをおいそれと適用するのは難しい

クリーンアーキテクチャというものはUIフレームワークとかWebのアーキテクチャから輸入されてきたもので、ゲーム開発の文脈とは本来無関係なものらしい。

こういう話を聞いてて思ったのは、どうやらクリーンアーキテクチャとか推してる人達自分のようなタイプのUnityエンジニアでは、想定している仕事の前提条件がまったく異なるんじゃないか?という事だ。

同じUnityエンジニアでも、彼らと私では、全然違う事をやってるのかもしれない。

クリーンアーキテクチャ勢は、おそらく、仕事はこういう風に進むものだと思っているはずだ。
・まず、誰かが事前に"完全"で"フィックス"された仕様書とか、要件定義を用意してくれている
・Unityエンジニアはその要件を見て、最初から完全な設計が行える
・クリーンな設計を考えて、あとはそれを実装すれば、仕事は終わり

シンプルでクリーンな世界観だ。よく知らないがWebとか業務アプリケーションの世界ではこういう感じなのかもしれない。

しかし、私が今までずっとUnityエンジニアとしてやってきた仕事ではまったく状況が異なる

そもそも、仕様書やら要件定義といったものは存在しない。クライアント(文字通りのクライアントや、あるいは会社の偉い人、上司)の願望(なんとなくこういう風にしたい的な雰囲気)だけが存在する。

別にクライアントに問題があるとか責めているわけでは無い。と言うのも、Unityを使って作るようなゲームやインタラクティブアプリは、事前に全ての要件を洗い出してください。なんて言ったところでそれは不可能である。実際にモックなりを作ってみて、アイデアに具体的な形を持たせて、クライアントにプレイさせてみて、そこで初めて「やっぱもっとこうして欲しい」という新しい要件が生まれ、次の日はそれを実装する。それの繰り返し。私が今までやって来たのはそういう仕事だった。

つまりそこにアプリの設計なんてものは存在しない。単にモックベースでのアイデアの実装を積み上げていくだけだ。

魔法のランプから出てくるランプの魔人のような存在だ。クライアントが願いを言えば、それを叶えてあげる。ひたすらそれの繰り返し。デザイナーの仕事にも似ているかもしれない。デザイナーは絵が描けないクライアントの代わりに要望をくみ取って手早く具体的な形に落とし込む仕事だ。(そして何度も繰り返される修正依頼と向き合う)

何となく良さげな話に聞こえるかもしれないが、実際は地獄に近い

昨日まではクライアントは"原神"みたいなゲーム(マルチプレイのアクションRPG)を作るって言ってたのに、今日になるとやっぱ"バトルロイヤル"にしたいとか言われてしまうのが私の仕事だ。

どこかの特定の会社とかを問題にしているわけでは無い。今までずっとあちこちでUnityエンジニアの仕事をしてきてどこでもそんな感じだった。だから、私はUnityエンジニアの仕事ってのはこういうもんだと思い込んでたわけだが、そうでもないという事なんだろうか。

もしかするとクリーン勢の方が一般的なエンジニア像なのかもしれない。

それなら、私は自分のようなタイプの仕事をクリーンなUnityエンジニアと区別して別の呼称で呼ぶことを提案したい。

Unityソルジャーというのはどうだろうか。地獄っぽさが出ていると思う。

ダーティな世界のUnityソルジャー

クリーン勢は「クリーンアーキテクチャを使うと機能追加仕様変更に強くなる」と言う。だったら、毎日クライアントの言う事がころころ変わるUnityソルジャーにとってもクリーンはありがたいのか?

とりすーぷさんのこちらのスライドを引用させてもらう。

こちらで例に出されているオニオンアーキテクチャで言うと、"変更に強い"と言っているのが何を指すかと言うと、"インフラストラクチャ層を差し替えるだけで機能を変更できる"という意味である。

スライドの実装例で言えば、ゲームデータのセーブ、ロードを行う時に、PlayerPrefsに保存してたのをJsonに保存するように差し替えができる。

これはあくまで例なので、そこにツッコんでもしょうがないけど、PlayerPrefsかJsonか、最終的にはどっちかに決まるだろうから、別に決め打ちでベタ書きでもいいんじゃね?とは思ってしまうけど。(だとしてもテストとかが書きやすいというメリットはまだある)

つまり、クリーンアーキテクチャが言う所の「変更に強い」というのは、とは言え"想定された範囲の想定された機能に限って"変更に強いという意味だと思う。設計自体が変更されない場合のみ。

しかし、昨日まで原神を作っていたのに今日からフォトナを作るみたいな、Unityソルジャーが日々落とされる地獄みたいな壮大なちゃぶ台返しの変更には耐えられるはずが無いのである。

オニオンアーキテクチャはドメイン層については"事前に十分設計されていて絶対に変更が無い"事が前提になっている。もしドメイン層までも変更するとなれば、アプリケーション層、ドメイン層、インフラストラクチャ層の全てをゴミ箱にぶん投げて全部書き直すハメになる。しかもインフラストラクチャ層で差し替えが効くように色々用意したバリエーションを全部書き直すハメになるだけ、ベタ書きで書くより悲惨な事になる。

よって、Unityソルジャーから見るとクリーンアーキテクチャの旨味はまったく理解できない。無駄に面倒なだけである。

そもそもクリーン勢がUnityにクリーンアーキテクチャを持ち込もうなんて言い出したのは、Unityが余りにもダーティな作りに寛容すぎる仕組みだからだろう。

(まあその気持ちは分かる。私も他人が作ったUnityプロジェクトのシーンを開いてなんちゃらマネージャがズラッと並んでるのを見たら吐き気がしてくるから。自分が作ったとしてもそんな感じだけど、他人のだとオブジェクトの依存関係がまったく分からない。全てのオブジェクトが全てのオブジェクトから参照されてる可能性(N:N関係問題)があり、どれを消しても大丈夫なのかサッパリ分からない。だからシーン上のオブジェクトが増えるほど吐き気が増す。)

しかし、そもそもどうしてUnityがこういうダーティな作りになってるのか考えてみて欲しい。ハッキリ言って毎日仕様がコロコロ変わる(それ自体はしゃーない)ような中でゲーム開発を進めていくには、Unityソルジャーにはクリーンの真逆、ダーティアーキテクチャが求められるのだ。ダーティの果てに進捗が生まれると言っていい。

UnityはUnityソルジャーに寄り添った作りになっているという事。何でそうなってるのかって、多分、ゲーム業界ではソルジャー的な作り方が一般的なんだろうと思う。ゲーム業界からクリーン的な発想が生まれなかったのはそこだろう。

クリーンに向いているアプリとソルジャーに向いているアプリ

一概にUnityでクリーンアーキテクチャは全部無意味!なんて言うつもりは全然ない。Unityでもクリーンが刺さる場合はあると思う。

Unityを使っていても、ゲーム寄りのアプリじゃなくて、もっと業務用ツールとか普通のスマホアプリに近いアプリを作る場合がある。

Unityで作られたツールっぽいアプリと言うと、例えばバーチャルキャストとかバーチャルモーションキャプチャとか、ああいう感じのものが思いつく。

ゲームじゃ無くてツールなら、事前に完全な要件定義を行えるかもしれない。

この場合、オニオンアーキテクチャ的な作りも刺さると思う。例えばバーチャルモーションキャプチャでoscで通信する部分をudp通信に置き換えられたりできたら便利そうだよね。

逆にゲームであらかじめ完全な要件定義ができるなんて思ってるとしたら、それは無い。ゲームはイテレーション回数が面白さに直結すると言われている。イテレーションと言うのはビルドして実際に動かしてまた変更して...と言うのを繰り返すことだ。ゲームは開発中に毎日調整されている。常に仕様が変わってるという事だ。

あらかじめ完全に要件定義されているとしたら、イテレーション回数がゼロのゲームと言う事であり、それは間違いなくクソゲーになる(オリジナルゲームじゃ無くて既存のトランプとか麻雀をゲーム化する場合には事前に完全な要件定義が可能かも)

採用のミスマッチ問題

就職市場では、クリーン勢もソルジャー勢も、みんなひっくるめて”Unityエンジニア”と呼ばれている。(というかソルジャーというのは私が今勝手に作った用語だが)

企業がUnityエンジニアの募集を出すとき、クリーン勢を求めているのか、ソルジャー勢を求めているのかはハッキリ意識しておく必要があると思う。

例えばソルジャーを雇ったつもりでクリーン勢を雇ったとしよう。
そしてクライアントが雇った彼にお願いする「なんかキャラが16人くらいマルチ?できて、フォールガイズみたいな感じで試合する感じで。でもVRでフルボディトラッキングできちゃうみたいな」

こんなふわっとした要望でもソルジャーならダーティに対応してくれるかもしれないが、クリーン勢は「じゃあ設計するので要件定義をください」と言うかもしれない。たしかに要件は大事だ。マルチプレイって言っても16人上限でいいのか?もしフォールガイズみたいに60人まで参加できる事が必要ならPhotonCloudは選定できなくなったりするし。

でもクライアントは困ってしまう「要件...って言われても、実際モックみたいなので動いてるのを作って見せてもらわないと分かんないんだよね...」クリーン勢は言う「"そんなふわっとしたお願いだけで設計できるわけないじゃないですか!設計できなきゃ実装もできませんよ!"何言ってんですか!」

採用のミスマッチが生んだ悲劇だ。

まあ逆にクリーン勢を雇ったつもりでソルジャーを雇ってしまってもそれはそれで困ると思う。

Unityソルジャーの受難

Unityソルジャーは毎日クライアントに進捗を見せて、「う〜ん、せっかく作ってもらったけど、こうして実際見ると微妙だったからやっぱこうして欲しい」とか言われて作り直す日々を送ってる。穴を掘らされては埋めさせられる拷問に似ている

大抵の場合、スケジュールぎりぎりまで「ああでもない、こうでもない」みたいな段階から進まないで時間を費やす。そして残り時間が完全になくなってから、「じゃあもうこれでいいや」みたいな感じでようやく仕様がフィックスするのだ。

その時点でコードはグチャグチャの超ダーティ状態になっている。Unityソルジャーがいくらその時点でアプリを綺麗に作り直したいと言ったところで、そんな時間は与えられない。グチャグチャのプロトの叩き台がそのまま使われてリリースまで持っていくケースが多い(シーン名とかプロジェクト名が”test”とかだったりするけど結局そのまま使われる)Unityソルジャーは「こんな状態でリリースしちゃって後でどうなっても責任取れませんよ」と言うより他ない。

そしてリリース後は、アプリは運用チームに引き渡される。
そこで自分が作ったクソ過ぎるコードで悪評が立つ。Unityソルジャーは悲惨なコードの戦犯に仕立て上げられがちだ。何しろ開発中の地獄みたいな経緯を彼らは知らないから、書いたヤツだけがアホに見える。

歴史で例えると、義経が平家討伐ですごく活躍したけど、国を統治する段階になると英雄の存在が邪魔になって抹殺されてしまうような感じだろうか。

運用チームのクリーン勢が「俺ならもっとクリーンに作れるぜ!」とか言い出して作り直しを提案する。完成したアプリをクリーンアーキテクチャで作り直すのは容易な事だろう。なぜならリリースされたアプリ自体がそのまま完全な要件定義だからだ。

えてして、Unityエンジニアはエンジニアの枠の中で評価されがちだ。私が思うに、Unityソルジャーはエンジニアとは似てるようで全く異なる仕事であり、評価の軸も違ってしかるべきだと思うけど。

そういうわけで、アプリを焼き直しただけのクリーン勢が高い評価を獲得し、死ぬほど苦労してリリースまで持って行ったソルジャーの功績は貶められる。

まあこれは実話とかじゃなくて、そういう風になったらイヤだなという単なるストーリーだけど。

Unityエンジニアというのは実際には仕事内容が多彩過ぎて、正当に評価する事が結構難しいと思われる。

シェーダーはプロダクトの品質に直結しますし、
高品質かつ最適化されたシェーダーを実装するためには、
高度な数学的な知識やハードウェアに関する知識まで要求されるので、
エンジニアの専門スキルとしても高く評価されるべきだと思います。 https://t.co/AoLuRhGYGW

— がむ (@gam0022) January 11, 2021

Unity開発でシェーダのスキルは必須だと思うが、会社で自分を評価する上司がゲーム畑じゃなかったりしてシェーダに理解が無ければ、「シェーダ?よく分からんがエンジニアっぽく無い事してて怪しいから評価下げとこ」くらいに思ってしまうかもしれない。

Unityは何でも簡単にビジュアライゼーションできるところが注目されて、ゲームと関係ない他業種でも採用が広がってるが、他業種の会社だとますますちゃんと評価されるか分からない。(逆に不当に高く評価されちゃったりして)

私が何となく思う事だが、ゲームの自主開発とかの経験があるほどUnityソルジャーの素養があるような気がする。根性で試行錯誤してゼロからイチを生み出す力と言ったところだろうか。

そして、どうも会社が大きくなって安定してくるとソルジャーの存在は疎まれがちになるような気がする。
ソルジャーは究極的には会社でエンジニアをやるより自分自身のプロダクトを自主開発してくのが一番向いてるのかもしれない。

最後に念押ししておくが、私自身はUnityソルジャーの仕事が好きだ。クライアントの要望を聞きながらゼロベースで対話的にアプリを作り上げていく作業は苦しくもあるがそれなりに楽しい。それに加えて、できれば自分のソルジャーの仕事の正当な評価が得られる事を願うばかりだ。

[追記 21/01/20] twitterの反応

昨日書いたこの記事ですが、twitterで色々反応がありました。

一通り見ましたが、おもしろいなあ...と思ったのと、ためになるなあ...と思ったのと、あとUnityソルジャー多すぎだろ...と思いました。

色んな人の反応ツイートをまとめてみます。

会社員デザイナーだった頃、お偉いさんの企画会議の内容が「オクトパストラベラーをパクるか、ポケモンクエストをパクるか」程度だったと聞いて腰を抜かし、安易に死地に向かわせられるUnityソルジャー達の未来を憂いて泣いた

— POL POL ポルカー (@_polpota) January 19, 2021

マネジメントと体制ができてない状況を変える必要性を訴えるのでなくレッテル貼りして今の世界で完結するの良くない。今すぐ開発の手を止めてフロー構築にリソース割くべきだし少なくともクライアントに対して専門性を発揮すべきところでそれを持たない人間が応対しているという自覚を持ってもらいたい

— sabakichi|Yuki Kinoshita ✍︎ (@knshtyk) January 19, 2021

https://t.co/WFkxbMcmEE

地獄?感があってよい。
昔のSIで、日替わりDBって言われてる案件あったな。

あれ、何だったんだろ?
(客の気まぐれ、業務が分析できてないだけ、悪い妖精さんがいたずらしてる?)

— toshi_miura@ 手を洗いましたか? (@toshi_miura) January 19, 2021

確かにってなる / Unityソルジャーの憂鬱 https://t.co/U65fAQ12Je

— ドフ (@incho15296) January 19, 2021

イット業界、どこの界隈にも黙示録的な世界観で戦うソルジャーがおるものなのですな。IT ひじかたの戦いは今日も続く : Unityソルジャーの憂鬱 https://t.co/5buy80zShu

— bori (@bori_jp) January 19, 2021

ゲーム開発者としての経験だと圧倒的にここでいうソルジャー側だなぁ
それこそUnityであるかは関係なく

クリーンに出来る余裕がある場合って初期の忙しくない時と後はもう手出しできないけどマスター出した後位じゃない?

Unityソルジャーの憂鬱 https://t.co/QH1ZfPYnTV

— Astrea (@lunaticgarden00) January 19, 2021

わかり味が深すぎるwww

Unityソルジャーの憂鬱 https://t.co/2Pseomj6p4

— カドゥー (@broken55) January 19, 2021

ビジネスアプリ開発もゲーム開発も経験してる立場から言うと、ビジネスアプリだからってコード書く前に仕様が完成してたりとか無いし、後から作り直しレベルのちゃぶ台返しが起こることは普通にあります(普通にあってはダメなんだけど現実的にはある)
Unityソルジャーの憂鬱 https://t.co/iaxqA0dLGs

— 土屋つかさ (@t_tutiya) January 19, 2021

> Unityが余りにもダーティな作りに寛容すぎる仕組みだから

ワカル...ゲームマネジャもインプットハンドラも関係が全部フラットだし、何よりオブジェクト間の参照関係が簡単につくれすぎてhas-a関係とか隠蔽なしに無法地帯化しちゃう...

Unityソルジャーの憂鬱 https://t.co/uLWaqMyfNZ

— Ayumu Nagamatsu (@ayumu_naga) January 19, 2021

アウトプットされたデータが最終目的のアプリケーションと、ユーザーの感情を操作することが主目的のゲームとでは勝手が違いすぎるだろうな。流用できることはあるかもしれないけどhttps://t.co/00fdaIdaAv

— defunty_jp (@defunty_jp) January 19, 2021

とても参考になる記事だった。
会社に所属してゲームを制作したことがないから、クリーン勢の評価が上がりソルジャーが貶められるというのは経験的にはわからないことだったけど、Unityのゲーム制作がゲームを発注していただいた方の「願望を叶える」形で進めるというのは正に自分の制作と同様だった。 https://t.co/4E3lc6sl4T

— やすだ (@yasuta2000) January 19, 2021

Unityソルジャーの憂鬱 https://t.co/GE4eK7LH16

そういう現場があるのはめちゃくちゃわかるけど、苦労を知っているからこそできる限りクリーンにしたくない?そのためにデザイナーだけじゃなく全員が体験を定義したり、要件を洗い出したりしていくべきだと思うけどなぁ。

— ヨッシャ/Yossha (@yoshino_alice2) January 19, 2021

ゲーム制作メテオになりがちなのが問題なんだけど、まあメテオになりがち・・・https://t.co/Daq12rDqVi

— 三上航人@CharacterBank (@_cbNand) January 19, 2021

Unity はやらないが、クリーンに憧れるソルジャーとしては共感しかない。https://t.co/W2kgi3Oh0s

— otsuka (@vajda) January 19, 2021

クリーンアーキテクチャかどうかは置いておいて、ソフトウェアを細いクラスに分割して開発しておくと、メテオが落ちても再利用できるクラスがたくさんあって助かるので、最近はもうやっぱりなるべくソースは綺麗に書きながらやろうねとしか思わないなぁ。Unityソルジャーは進歩をやめた人な気がする https://t.co/HqlNGtv41S

— puddingsoft (@puddingsoft) January 19, 2021

ダーティアーキテクチャがあってもいいと思う
Unityのアーキテクチャがアプリとかフロントの方に輸出されるのも面白そうhttps://t.co/m4ZKdQWBtx

— ふそやん (@azihsoyn) January 19, 2021

なかなか迫力がある記事だった

Unityソルジャーの憂鬱 https://t.co/W3n313wn4H

— doyaaaaaken (@doyaaaaaken) January 19, 2021

非常によく分かる。というか俺は筆者と対局的なプログラマ。Unityでクリーンアーキテクチャを推進し、コードカバレッジをオニオンの内側で100%切ろうものなら、絶対PR通さない、極右?組織の構成員。しかし、このブログ読んでると、絶対ゲームプログラマ嫌だわ。 https://t.co/4E8XthtzSc

— 美山千香士 (@chikashimiyama) January 19, 2021

Unityソルジャーというかゲーム開発系と受託開発系はみんなこんな感じでは。
仕様書?ケツを拭く紙にもなりゃしねぇってのによぉ!!!(仕様書を火炎放射器で燃やしながら)

— ンコ (@nicolai_twi) January 19, 2021

微妙にタイミング逃して寝そこねてしまい、「UnityがソルジャーならUnreal...マジシャン...?つまりUnrealのほうがカッコ良くない...?」みたいな恣意的な脳内バトルが繰り広げられてる

— 獏星(ばくすたー) / Megumi Baxter (@baku_dreameater) January 19, 2021

自分は以前からこの「ソルジャー」に相当する言葉として、「職人」を使っている。「エンジニア」と対立する言葉ではなく、スキルや素養として双方をどの範囲までカバーしているか、だと考えてる。案件毎にこれらそれぞれをどの程度求められるか、という解釈。(UnityやWeb以外でも言える話) https://t.co/TFelFsE8xP

— Shigeyuki Hirai / 平#重行 (@shigeyuki_hirai) January 19, 2021

Unityソルジャー1st セフィロス

— ❄️🍢Yanbor&Marbor☃️🥶 (@YanborAndMarbor) January 19, 2021

Unityソルジャーの話、まあねえ、という感じはある。ソルジャーとクリーン、対立概念ではないけれど、クリーン系が当たり前だと思ってるプログラマとの齟齬は激しいと思うし。https://t.co/mwmmVU4PD4

— たにみちの@BA-KU (@taninon) January 19, 2021

Unityソルジャーの憂鬱 – soy-software

ゲーム開発の色々な難しさが凄くまとまって、一気に読み進めてしまった。 https://t.co/Q6AA6DBLaB

— SHOSASA3 (@SHOSASA3) January 19, 2021

Unityソルジャーの話、仕様切るプランナー側に依存関係や設計に理解あると良いのだけど...インデックスコスト削って後々地獄に突っ込んでいく

— ぬこD (@NUKO_D) January 19, 2021

Unityソルジャーの話に関しては、筆者の怒りが先行しすぎているので感情的に怒りを当てると、怒りという同じステージで戦う羽目になる。
筆者なりに大変なことがあったんだなぁとヨシヨシしてあげたいですね。幸せになってほしい。

— 秋月なる@1y8m👶 (@naru_akitsuki) January 19, 2021

"Unityソルジャーは悲惨なコードの戦犯に仕立て上げられがちだ。何しろ開発中の地獄みたいな経緯を彼らは知らないから、書いたヤツだけがアホに見える。"

ぼくはUnityエンジニアじゃないけど胃が痛くなってくる。

Unityソルジャーの憂鬱 – soy-software https://t.co/yXG6Oo3ZRc

— めんたいこ (@kickbase) January 19, 2021

Unityソルジャーの話読んでちょっと安心した
拡張性を高めるためにあえてダーティーにしているのだ......

— TKG (@sakon_vr) January 19, 2021

Unityソルジャー

Unityジェネラル

Unityゴリラ

— アズマゴロー@新作ゲーム配信中 (@azumagoro) January 19, 2021

unityソルジャーの憂鬱とかいう記事が面白い。

— REGA Stream (@rega_stream) January 19, 2021

Unityソルジャーの憂鬱 https://t.co/sTX7NyjPFO
主語がデカい

— へっぽこ (@heppoko) January 19, 2021

Unityソルジャーとクリーンの間でわりと病んでる最近です。

— norio_shimizu (@norioshimizu1) January 19, 2021

Unityソルジャーの憂鬱 – soy-software https://t.co/plPyPjqHsD
この記事マジでもっと読まれるべきだし、バズってホテントリ入りすべきだと思う
社会がソフトウェアエンジニアに求めてるものはソルジャーの場合が殆ど

— ぜり (zeriyoshi) (@zeriyoshi) January 19, 2021

Unityソルジャー
全くもってこの通りなのよね
自分で作ってる分には楽しいんだけど https://t.co/wGQJKyudqs

— こばやん (@kobayan_darts) January 19, 2021

Unityソルジャーの記事読んだけど、ソルジャーというよりデモ開発部隊だよね。と思ったんだけど、デモを作らず駆け抜ける系のゲーム会社って結構あったりするのか。。。?

— oreno_dinner (@oreno_dinner) January 19, 2021

ワロタ。いやめちゃよく分かる内容だったんだけどw

Unityソルジャーの憂鬱 https://t.co/j1ZJcOJxSh

— you tanaka (@rettuce) January 19, 2021

Unityソルジャーの朝は早い。まずはUnityのバージョンの確認。複数の案件で、Unityバージョンを使い分ける彼の日課だ

— ずきゅ〜んたん (@ZuQ9Nn) January 19, 2021

ゲーム開発しかしていない人間なので、他業界のプログラマーさんとかと一緒になったとしても、互いに想定している意識が全く違うのだろうなぁと思う。
Unityソルジャーの憂鬱 https://t.co/WP3By6H11H

— Bard@ローグライトRPG制作中 (@Bardaxel) January 19, 2021

業務系も経験ある人間だけど、設計や構造、実装の手法についてはアプリの種類を問わず物ごとに向き不向きがある。完全な設計が行われるわけではない。スクラップ&ビルドについても、特に試験的な案件の場合は、ゲームでなくても発生する。 /
Unityソルジャーの憂鬱https://t.co/cTgHTM1eMZ

— めび🎃フリ素化・妹化済 (@mebi_nyan) January 19, 2021

Unityソルジャーが作るのはゲームの仕様書を補完する「デモ」みたいなものなので、仕様が決まった段階で一旦プログラム一式を捨てるのが理想なのだ。

— unagi (@UnagiHuman) January 19, 2021

誰かがほんの少し優しければ、あの子たちはUnityソルジャーにはならかっただろう。でも、そうはならなかった。ならなかったんだよロック。だからこの話はここでお終いなんだ。

— 司波達也 (@shiva_duke28) January 19, 2021

unityソルジャー、unityかどうか以前の問題で辛そうな記事だった

— Haramakoto (@xxxxMakoto) January 19, 2021

超(スーパー)エンジニアリング伝説 Unityソルジャーnmちゃん

— nmちゃん (@nmch1222) January 19, 2021

それofそれって感じだった😇

なんか色々思うことがあるから書き留めたいと思ったけど、複合的な要素が多くて、全部整理したら記事が一つ書ける規模になっちゃいそう…。https://t.co/VseNcVvRzp

— じぇしか / Jessica (@jscmla1118) January 19, 2021

Unityソルジャーはインゲームとアウトゲームだと考え方違う派。アウトゲームはクリーンに、インゲームはまあ頑張れ。

— 鉄 (@tetsujp84) January 19, 2021

unityソルジャーのやつ、めっちゃわかる

— zakopro (@game_zakopro) January 19, 2021

前のプロジェクションマッピングとかの仕事もUnityではなかったけどソルジャー的な仕事の仕方だったけど,でもその要求ならこの機能こう書いたら汎用性出るなとか考えてやれてたからベタ書きは回避してた.Unityでは難しいのかもしれないけど結局やる側が余裕を持ってる取り組むかどうかだと思う.

— rtENTe (@rtENTe_Zs0I) January 19, 2021

Unityソルジャー2年目です

— らうじぃ (@Rauziii) January 19, 2021

...Unityソルジャーはコードを綺麗に書くのを放棄しているという方向に話を持ってくのは酷だけど少しずつでもコードを綺麗に書く癖は付けていきたい 1人で作るゲームではないと思うので...
完全に1人でやってても後々誰だよこのクソコード!ってなるし

— 雅藤大佐 (@Colonel_GTU) January 19, 2021

Unityソルジャーの憂鬱 https://t.co/gF1Bv73vfP
わかりみ深すぎる(ΦωΦ)

— IZUNA@Vショタ狐 (@mizuki_izuna) January 19, 2021

Unityソルジャーだったけど成果物を破壊しながら新しいものを作っていく都合「今は評価できるものがありません(破壊済)」みたいな状況になって昇給に繋がりにくいデメリットを感じて、Unityエンジニアに転向しました😓

ソルジャーも楽しいけど、評価とか気にしなくていい個人でやればいいかなと😊 https://t.co/o4ZENbAU0P

— 天神いな@Unityエンジニア (@ina_amagami) January 19, 2021

(HC)
言うて、イベントで雇われるワールドクリエイターもUnityソルジャーみたいなとこあるし

— ハツェ / hatuxe (@kohu_vr) January 19, 2021

UnityソルジャーとUnityエンジニアの間には、エンジニアとプランナーの間にある溝より深い溝がある気がするな

— GoldenDuck (@Duck2Golden) January 19, 2021

Unityソルジャー クラス1stじゃん

— クレウス@2077年と2080年 をプレイ中 (@kleus_balut) January 19, 2021

わかるなぁ... "Unityエンジニア" だと業務内容に幅が広すぎるので、採用も評価も難しいよなぁ...と思って読んでいたら、最後に自分が登場して驚いた😲 https://t.co/LiHVJnBbbr

— がむ (@gam0022) January 19, 2021

クリームアーキとか「わかるけど、それゲーム開発でやるとちゃぶ台返してで死ぬし、ちゃぶ台返しがほとんどない開発なんてありえない」って思ってるからUnityソルジャーの憂鬱はいつものオイラの話だわさ(ΦωΦ)
今のVR開発でも同じこと起きてるけど(ΦωΦ)

— IZUNA@Vショタ狐 (@mizuki_izuna) January 19, 2021

例えば、インゲームの開発にクリーンアーキテクチャーは相性が悪い上に時間がかかると思うけど、
必要十分な抽象化や依存関係を単一方向にするくらいなら、時間はかからないと思うので、Unityソルジャーであっても無意識に実践してほしいですかね。

— がむ (@gam0022) January 19, 2021

unityソルジャーが大変なのはunityコマンダーの命令が的確ではないからなのでは...🤔

— けもみみおーこく (@kemomimi_oukoku) January 19, 2021

Unityソルジャーの字面カッコいいな
ファンタジー風職業にあてはめたら自分はUnityスミス(鍛冶屋)になるのかな

— ケットシーウェア🌳Arbor3の人 (@caitsithware) January 19, 2021

ゲーム制作には時間が与えられず毎日無茶な仕様変更が飛んでくるのは当たり前、みたいな話はおかしいと思うし広めるべきではないよ
どこ行っても同じだよみたいなプランナーの口車に乗せられている感じがバリバリする

— 飛駒タオル (@towel_funnel) January 19, 2021

Unityソルジャー話、なんとなく見えている範囲として「クリーンを超速で作り直せるようにすればいい」みたいな嵐が海の向こうに見える

— ようてん (@youten_redo) January 19, 2021

色々な無理解によって書かれた記事だ...... / アーキテクチャの目標はドメインを描画や通信から独立させること。RPG で移動シーンと戦闘シーンを別個に実装するのと同じ位に当たり前だと思ふけど / "Unityソルジャーの憂鬱 – soy-software" https://t.co/kVP6juCB3o

— まじかんと (@tnacigam) January 19, 2021

それofそれって感じだった😇

なんか色々思うことがあるから書き留めたいと思ったけど、複合的な要素が多くて、全部整理したら記事が一つ書ける規模になっちゃいそう…。https://t.co/VseNcVvRzp

— じぇしか / Jessica (@jscmla1118) January 19, 2021

はい!(超いい内容だと思う)
> 仕様書やら要件定義といったものは存在しない~
> アプリを綺麗に作り直したいと言ったところで、そんな時間は与えられない。
> Unityが余りにもダーティな作りに寛容すぎる
> エンジニアとは似てるようで全く異なる仕事 https://t.co/DnVGMllYT0

— XJINE (@XJINE) January 19, 2021

言いたいことはとても分かる…ただ開発の途中でソルジャーな設計からクリーンに変えないと最終的に開発効率が大変なことになる(気がする https://t.co/KflP7ijdKt

— 少佐@Neetpia-新作企画中 (@__syousa__) January 19, 2021

unityに限らず、思い当たる節が多いな。 https://t.co/WXM2Iue2Qy

— ざと (@zato1234) January 19, 2021

わかりみの極みだった https://t.co/ty3nIL90O5

— teppe- (@NegiToro113) January 19, 2021

読んだけど、滅茶苦茶わかる・・・・・・・・・・・ https://t.co/dgJnDFNEFj

— bekotaizi(ベコタイジ)@IndieGameDev (@bekotaizi) January 19, 2021

わかる...
多分この「クリーン勢」がなぜ生まれるかというと新卒でunityをずっと触っててもアウトゲームしか触ってなくて、新規開発のインゲームをやらせてくれる機会自体与えられてない人が20代だと多数派だからではないだろうか https://t.co/bPyMzW9Xln

— ジョニー@JGS開発室 (@JGS_Developer) January 19, 2021

自分はソルジャーの世界からエンジニアの世界に来た人間なのでわかりみがすごい。どっちもプログラマなんだけど、禁書目録と超電磁砲くらい違う(故に交差するところでドンパチ起きる)。 https://t.co/elG5aRS7Hk

— こまっまくま (@troubear) January 19, 2021

半分まで読んだけど分かりみが強い https://t.co/Y4HfDo3hYO

— ヤマト (@minotarow) January 19, 2021

とても参考になる記事だった。
会社に所属してゲームを制作したことがないから、クリーン勢の評価が上がりソルジャーが貶められるというのは経験的にはわからないことだったけど、Unityのゲーム制作がゲームを発注していただいた方の「願望を叶える」形で進めるというのは正に自分の制作と同様だった。 https://t.co/4E3lc6sl4T

— やすだ (@yasuta2000) January 19, 2021

Unityソルジャー
全くもってこの通りなのよね
自分で作ってる分には楽しいんだけど https://t.co/wGQJKyudqs

— こばやん (@kobayan_darts) January 19, 2021
https://twitter.com/toRisouP/status/1351397247032856577

20年前からソルジャーの仕事は何も変わらない感じがする https://t.co/xPR3v1Eqsz

— しらいはかせ #VRStudioLab (@o_ob) January 19, 2021

流れてきてなるほどねぇ・・・と読んでたら突然バーチャルモーションキャプチャーが登場して吹き出してしまった。
クリーンに作ったら良さそうですけどばもきゃのコードは死ぬほどダーティです。でも動いてるしみんな使えてるのです。 https://t.co/wiHifLqwPD

— あきら☎︎🗾@VMC0.49r1/f1❗ (@sh_akira) January 19, 2021

自分は以前からこの「ソルジャー」に相当する言葉として、「職人」を使っている。「エンジニア」と対立する言葉ではなく、スキルや素養として双方をどの範囲までカバーしているか、だと考えてる。案件毎にこれらそれぞれをどの程度求められるか、という解釈。(UnityやWeb以外でも言える話) https://t.co/TFelFsE8xP

— Shigeyuki Hirai / 平#重行 (@shigeyuki_hirai) January 19, 2021

わかりみしか無くて、思い出されたアレコレで吐き気を催すやーつ。ヴォエ
対応してくれるエンジニアやモデラーやモーショナーの人達は本当ありがたかったよなあ(遠い目) https://t.co/qpWt6PN4dP

— mimochizuki (@mimochizuki) January 19, 2021

そんな世界だから生きられるエンジニアもいる^_^ https://t.co/N2Qfcz9QrK

— stategotool (@stategotool) January 19, 2021

とりあえず主語がクソデカすぎるので「クリーンアーキテクチャはゲーム開発に不向き説」ではなく「クリーンアーキテクチャが不向きなゲーム開発の現場もある説」くらいの書き出しのがよかったのではないか https://t.co/cO3jfvnUhV

— notargs (@notargs) January 19, 2021

僕がウェブデザインの授業で他人に修正を頼まれたコードを見てるとどこがどうなってるのか一目で分からなくて辛いのと同じ感じか

僕は出来るなら綺麗に作りたいからまあ特に思うことはないけど...自分にやりやすいようにやればいいじゃん、と。 https://t.co/n8Jo6EFjAy

— 燃料/Fuel (@FuelSan) January 19, 2021

業務、Webシステムが本業なのでゲームほどは試行錯誤しないと思うのだけど、先を見越して拡張のことまで考えて作ったシステムが、全く想定しなかった無茶な仕様追加のリクエストで七転八倒しながら書き直すとか割とよくあるんで辛い。 https://t.co/2xJUbWHEpv

— ROBA (@vjroba) January 19, 2021

たしかに会社のUnityチームはそんな働き方してる🤔 https://t.co/Q4ACRpj5I6

— honeplus (@honeplus) January 19, 2021

う、うううう https://t.co/6Ea8k7ddc0

— yamauchi, (@Yamauchi_Ryoga) January 19, 2021

Unityソルジャーだったけど成果物を破壊しながら新しいものを作っていく都合「今は評価できるものがありません(破壊済)」みたいな状況になって昇給に繋がりにくいデメリットを感じて、Unityエンジニアに転向しました😓

ソルジャーも楽しいけど、評価とか気にしなくていい個人でやればいいかなと😊 https://t.co/o4ZENbAU0P

— 天神いな@Unityエンジニア (@ina_amagami) January 19, 2021

どっちも実務やったことないけど、そうなんだろうなと思う https://t.co/lajwzIAUSX

— ヨシヲ(13歳ちくわ少女) (@yoshio_will) January 19, 2021

分かりみが深い...今やってるの完全にソルジャーだなぁ https://t.co/XfoPLS6Pqs

— くろねこ🐈ゲーム開発 (@kuronekoieko) January 19, 2021

皆通る道だよね、という感想。
ドメイン駆動設計はゲームプログラマも理解しておく価値があるけど、各レイヤーの必要性や固くするかの判断は「そのコードの寿命は何日〜何年だ?」がわかる経験が必要。 https://t.co/fqAS29pOAY

— がるがり (@Dr_Garugari) January 19, 2021

ソルジャーさん達ほど現場を経験してないですが、この通りで( ゚∀゚) アハハハハノヽノヽノ \ / \ / \
「ダーティな作りに寛容すぎる仕組み」だからこそ、私のようなデザイン畑の人間でも実装できてしまうわけですが… https://t.co/RLz34qLkXR

— よーへんサンチーム🌒Vよーへん建設 (@361Yohen) January 19, 2021

分かりみあり過ぎて草w https://t.co/fS5kjF0pFN

— GoldenDuck (@Duck2Golden) January 19, 2021

クリーンアーキテクチャかどうかは置いておいて、ソフトウェアを細いクラスに分割して開発しておくと、メテオが落ちても再利用できるクラスがたくさんあって助かるので、最近はもうやっぱりなるべくソースは綺麗に書きながらやろうねとしか思わないなぁ。Unityソルジャーは進歩をやめた人な気がする https://t.co/HqlNGtv41S

— puddingsoft (@puddingsoft) January 19, 2021

同感です!!!Unityのゲーム開発の世界にクリーンアーキテクチャを持ってくるのは、石を砕くのに木を切るノコギリを使うよなものです。

ゲームにあったアーキテクチャを作るべきです。もう一度言いますがクリーンアーキテクチャとかDDDをゲーム開発に持って来んな! https://t.co/KDL4s5fIV9

— やまもん-山田元康@経営xエンジニアリング (@MotoyasuYamada) January 19, 2021

ソルジャーになりたい今は歩兵レベル https://t.co/4DKaGs7LSx

— TYD (@tydfactory) January 19, 2021

クライアントのレベルによる。 https://t.co/35NFlvE90S

— S_fu_jin_o/スパ狂残党 (@sapo_sin_f) January 19, 2021

マンション建ててる途中に「東京ドームに変更してください」と言われたらどんな設計論でも太刀打ちできないなという気持ちになりました。 https://t.co/qkwzJ39H9d

— かおる (@kao_bee) January 19, 2021

これは、互いに訓練しないとできないスキルだなあ。自分はどちらかというとエンジニア寄りの世界で生きている自覚があるが、クライアントの要求を素早く実現する世界観で生きたことがあまりないのを、個人的には割と危険視していたりします https://t.co/RkCdkNIOWj

— 情報 (@FMS_Cat) January 19, 2021

ソルジャー生活が辛くなって他業種(組込み)に移ったら、かなり鍛え上げられてたおかげで少々の仕様変更ではびくともしなかった思い出w
そしていつの間にかまたゲームに戻ってきてソルジャーやってたり。 https://t.co/ynTaX36nuV

— Masashi Haraki/原木 正志 (@m_haraki) January 19, 2021

自分はどちらかというとプロトタイプを積み上げていくようなソルジャー的な開発が性にあっているんだけど、個人開発にとどめておこう。
クリーンアーキテクチャーは実務で学びつつ行なっている。良い設計を学ぶとプロトタイプの積み上げ開発でも活かせるようになるので、両方やって損はないと思う。 https://t.co/r3OmOOgyji

— ほっとフクロウ(作っちゃうおじさん) (@hothukurou) January 19, 2021

どういう技術経歴の人なんだろう。
OS、ドライバ、サーバー、ネットワーク、アプリ、今はゲーム。ほぼ全てやって来た身としては仕様書が無いというのはありえない。

ゲームの世界に来てから、周りにそういう見識が欠落している人が多いのは理解できるけど、それを正にすると保守できない品質になる。 https://t.co/GYKLyqyTy8

— gameart (@ganeart1) January 19, 2021

別にUnityでのオニオンアーキテクチャ全否定はしてませんが。

— 海行プログラム (@kaigyoPG) January 21, 2021

umiyuki

2021年1月19日

ブログ

Comments are closed.

Text widget

These widgets are displayed because you haven't added any widgets of your own yet. You can do so at Appearance> Widgets in the WordPress settings.

アーカイブ

© 2025 soy-software — Powered by WordPress

Theme by Anders NorenUp ↑

AltStyle によって変換されたページ (->オリジナル) /