はじめに
TechTrain でメンターをしている @hashikei です。
ゲームネイティブエンジニアとして、ゲームエンジニアを目指しているユーザーのサポートをしています。
私は普段、社内外問わず勉強会としてライブコーディングを行う機会が多く、主にUnityを使って90分でゲームをつくっています。
制作するゲームジャンルとしては、例えば音ゲーや15パズルなど、様々です。
今回はライブコーディングを行ううえで、私が実践していることや、感じているメリットをご紹介します。
また本記事の内容は、あくまで私の私見であり、一般的なライブコーディングとは異なる部分があるかもしれませんがご了承ください。
ライブコーディングとは
まずはじめに、ライブコーディングとはどういうものかを説明します。
ライブコーディングとは、簡単にいうと 「リアルタイムでプログラミングしている姿を参加者(他人)が見る」 というイベントです。
(もちろんプログラミング以外にも、イラストレーターのライブペインティングなど、職種ごとに様々な種類があります)
ライブコーディングをご存じない方は、以下のリンク先から私がライブコーディングを行なっている姿が見られますので、もしよろしければ少しご覧になって頂けると雰囲気が掴みやすいかと思います。
https://note.com/techbowl/n/n4a5b305d5f74
ちなみに私はいつも参加者に「映画を見にきたくらいの感覚で気楽にご覧ください」と言っています。
私としては、それくらいカジュアルにライブコーディングを見て欲しいと考えています。
(人によっては勉強会に対して気構えてしまうタイプの方がいらっしゃいますが、ライブコーディングはそういった精神的負担が少ないイベントだと思っています)
ライブコーディングの流れ
私がライブコーディングをする際の流れをご紹介します。
- 最初に「何をつくるのか」という全体のゴールを示す
- ゴールに必要な要素を分解し、次に行うアクションの中間目標として示す
- 例えば音ゲーの場合、以下のような ゴール/要素 となります
- ゴール: 音ゲーのインゲーム部分を作成する
- 要素: ノーツが流れてくる、タイミングよく叩いたらノーツが消える、タイミングに合わせてスコアが加算される、コンボが加算される、タイミングに合わせてPERFECTなどのテキストを表示する、ノーツを流すために譜面をロードする、BGM・SEが再生される
- 例えば音ゲーの場合、以下のような ゴール/要素 となります
- 分解した要素を順番に実装していく
- コーディング中は、今何をしているのかを定期的に口に出す(場合によっては解説する)
- 参加者からの質問は積極的に拾ってその場で回答する
- その場で解決しないと、すぐに作業が進行しまうため
ライブコーディングの準備
次に、ライブコーディングを行うまでの準備についてご紹介します。
- 何をつくるかを考える(時間内で収まりそうなもの)
- あらかじめ軽く実装してハマりどころがないかを確認する
- スムーズに実装できたり、ハマりどころが解決できれば、当日もある程度スムーズに進行できます
- 実装の流れをイメージトレーニングする
- ここは人によるでしょうが、私はリハーサルまではしません(事前実装とイメトレがリハーサル代わり)
-
ぶっつけ本番はダメ
- 実体験ですが、大概予期せぬ問題が発生して時間内に収められなくなります
ライブコーディングのメリット
自分が行う場合のメリットと、参加する場合のメリットに分けてご紹介します。
自分が行う場合のメリット
- アウトプットが増える
- 短時間で成果物をアウトプットするため、時間に対して得られる経験値が多い
- 他者に見られながらコーディングすることで、程よい緊張感とアドレナリンが出て、気持ちが引き締まる
- コーディングしながら他者に解説をするため、人に伝える力が鍛えられる
- 制限時間があるため、短時間に取捨選択を迫られることが多く、判断力が鍛えられる
参加する場合のメリット
-
他者がコーディングする際の暗黙知を知れる
- 個人的にはこれが一番大きなメリットだと感じています
- ここでいう暗黙知とは、例えば「エラーが発生した時の解決方法(思考や検索、対応など)」や「ショートカットキーの使い方」など、大小問わず様々な明文化されていない個人のノウハウのことです
- 特に「実装時の思考」や「デバッグ方法」などを知れるのはかなり大きなメリットだと思います(優劣ではなく、単純に自分と違う考え方を知れるという意味です)
- ゲームの場合、つくったことがなくてもゲーム制作の流れを知ることができる
- 勉強会より精神的ハードルが低い(まるで映画を見るような感覚で)
まとめ
ライブコーディングは、行う側も参加する側も双方に大きなメリットがあります。
私も過去10回以上ライブコーディングを行ってきましたが、回を重ねるごとに自分が成長していることを実感してきました。
前述の通りですが、特に 暗黙知の共有 ができることが本当に大きなメリットだと感じていて、これは内容の優劣ではなく、単純に自分と違うエンジニアを知ることで、自身の引き出しや視野を広げる大きな糧となり得ます。
もしライブコーディングに興味が出てきたら、まずは友人と一緒にもくもく会を開催するようなノリで試してみるのもよいかもしれません。
例えば友人の前で30分〜1時間くらいで簡単なライブコーディングを行うなど、それだけでもきっと得られるものは大きいでしょう。
そして最後に宣伝です。
私はTechTrainでゲームネイティブエンジニアとしてメンターをしています。
もしゲーム制作をしていて相談したい相手がいないという方がいましたら、お気軽にご相談ください。
あるいはライブコーディングを実際に見てみたい方がいましたら、お気軽にお問い合わせください。
つくってほしいゲームジャンルを添えて頂ければ、90分以内に実装できる範囲でつくりますのでw
それでは、良いライブコーディングライフを!