幸せになりたいソーシャルゲーム系Webフロントエンドエンジニアが本気で考える HTML GUI ツール第一回
何か dis られっぱなしなのも癪に障るので、現在のソーシャルゲームでの Web フロントエンド開発を振り返りつつ、今後のソリューションやツールとしての HTML GUI ツールの可能性を本気で考えてみようの第1回。
簡単な自己紹介をするが、僕はソシャゲ開発に携わって3年になる。その前はソシャゲではなかったが俗に言われるガラケーから PC サイトまで多岐にわたる Web 開発に携わっていた。
ソシャゲの新規開発〜運用には5本、運用のみには3本のタイトルに関わった。幸か不幸か新規開発のチームに多く呼んでいただいて、自分で言うのも何だがその第一線で戦ってきたつもりだ。
ソシャゲの Web フロントエンド開発と言ってみたものの、そのワークフローや担当領域は所属会社によってかなり違うのではないかと思われる。
というのは、1社目では PSD のスライスや微調整からマークアップ, JavaScript までほぼ1人やっていたが、2社目の今ではほとんど JavaScript にしか触れなくなった。
それも踏まえつつ、昨今のソシャゲ Web フロントエンド開発では大体各社とも以下のような課題があるのではないかと思っている。
"スマートフォンへシフトしたことによるデザインのリッチ化に伴って、 HTML マークアップと CSS スタイリング工数の肥大化と伝統工芸化"
要するに、職人しか到達できない世界になってしまっていないだろうか?ということだ。
仮に、あなた自身やチームが上記の問題を抱えていないのであれば、ここから先を見る必要は無いし、どういうワークフローと人材で作業をしているのか是非教えてもらいたい。
HTML と CSS の表現力は年を追う毎にリッチなものへ進化してきた。そして、 Web ソーシャルゲームもその一途を辿っている。
例を挙げればキリがないが、グランブルーファンタジー, スカイロック, ダンジョンポッパー, ドリランドまおゆう, グリマス, ガールフレンド(仮), Lord of Knights とか適当に思いつく感じでそんなところだろうか。
上記の中でも例外はあるが、ガラケー時代から続く Mobile Web の系譜を受け継ぎつつも、いわゆるスマートフォンアプリを強く意識して Web サイトを制作するといったのが昨今の Web ソーシャルゲームだ。(すべてがすべてそうなっていると言うことではないし、そうなっていないからと言ってどうということではない)
こういったゲームのスタイルがどうやって構築されているか、というと
というような、知らない他人は手の付けようがないくらいの物体でできているはずだ。(あ、一応補足はしておくがその仕事自体を否定しているわけではないし、無駄だとも言っていない。僕も職人の1人ではあると思っているし、その力がなければできないのは確かだと思う。)
しかし、否定はしていないが、そんなマークアップとスタイリングはやりたい作業だろうか?
来る日も来る日も div ッターン div ッターン div ッターン とキーボードを叩き続けるのが僕らが望んだ未来だっただろうか?
絶対配置だらけの要素の px, % を整えるために生まれてきたんだろうか?
少なくとも、僕はそう思っていないし、自分だけでなくチームにとってももっと良いやり方を模索しなければいけない時期に来ていると考える。
僕ら Mobile Web は Flash という希望を失ってしまったし、昨今は Unity や Unreal Engine などのゲーム開発環境が Web へ進出してきている中で、 よりコンテンツの制作に集中できる 環境というものを目指すべきなのではないだろうか。
幸い、前述したとおりに Web ゲーム開発ではセマンティックなマークアップが求められない。(いや本来はすべきなんだろうが、ゲーム画面はそもそも文章でない場合は多いのでセマンティックを考えてたら SAN 値が上がって下がって死ぬ)
追記 2014/05/12
ブクマでご指摘頂いたとおり、 SAN 値が上がって → SAN 値が下がって の誤りでした
そもそも要素の配置やスタイリングは今も絶対配置や :before, :after だらけでできている。要するに、力でごり押ししても運用上破綻しなければ勝ちだ。
そう、運用上破綻しなければ、今すぐにでもすべての Web ソシャゲフロントエンドエンジニアがエディタを捨てて GUI で画面を作ってもいいのだ。
むしろ、画面を作る必要すらなくなるかもしれない。デザイナーがやればいいのだから。そうなったら仕事がなくなるし最高だ。霞でも食って生活していけばいい。
眠いのと怒りが冷めてきて筆の進みが遅くなったので一旦切るが、そんなツールの要件定義を次のエントリで行っていきたいと思う。