人生

やっていきましょう

328日目

何か新しいことに挑戦したとき、まったく未知のトラブルに遭遇するとそれだけで何も考えられなくなる。その後自分には解決できないと判断して問題から距離を取る。だが本当に解決できないのか、といえばあながちそうではないかもしれない。未知の状況に面食らって適切な判断ができていないだけで、冷静になればまったくの不可能ではないという結論に至ることもしばしばある。今日はそういう問題に直面した。

開発中のゲームでミニゲームを作ろうと考えた。大方考えられる限りのミニゲームは実装し尽くしてしまい、かといって今までのものを使いまわすのは気が引けたので、何か新しいものを考えようということになった。初めは何も思いつかなかったが、そういえばタイピングゲームを作っていないことを思い作ることにした。

いくつかのコモンイベント(ウディタ内で使えるイベント形式の1つ)は専門サイトからダウンロードすることができる。有志が生み出した完成度の高いイベントを拝借し、自分のゲームにそっくりそのまま持ち込むことができる。当然タイピングゲームのイベントも誰かが作っていた。だがどういうわけか、自分でイチから作ってみたくなり、自前のイベントを作ることにした。

自分が今日愕然としたのは、はじめまったく手がつけられなかったということだ。何をどうすれば完成といえるのかも分からなかった。

とりあえずイベントの開始と同時にプレイヤーは画面に出されたお題をタイピングして、制限時間内に一定数の問題を解けたらクリア、という方針は漠然と見通すことができた。

だがそれはたかだかプレイヤーの視点にすぎなかった。そもそも「問題文や解答欄、入力システムはどのように画面に表示するのか」、「制限時間のタイマー設定はどのようにすればいいのか」が分からない。問題文というのはただ文だけでなく、文章の枠も同時にピクチャとして出力する必要がある。解答欄および入力システムは、それとは別の操作を行って同時に表示する必要がある。そしてタイマーは、タイマーなるものが初めから存在しているわけではない。タイマーというものは、ある要望に応じてただ「生み出された」ものである。だからタイマーを使えばいい、ではなく、タイマーと呼べるものを自力で生み出さなければならない。そう考えるととてつもなく難しい課題に思えた。

自分で考えても埒が明かないのでインターネットで検索した。そしてタイマーを作っている人のイベントを参考にして、ようやく自前のタイマーを作ることができた。そのまま模倣したのではなく、ちゃんと構造を理解しようと努めた。それでようやく完成した。

知ってみればそんなことと思える単純な構造だったが、自分から思いつくのは相当難しいことばかりだった。そこに自分はショックを受けた。自分はタイマーがどのように動いているか、ということを考えたこともなかった。数値のみを操作するだけでタイマーの機能を再現するとはどういうことかということを考えたことがなかった。タイマーが今まで当たり前のようにあったから気づかなかったが、本来そこには無いはずのものだった。タイマーは誰かの創意工夫によってのみ生み出され、ただそこにあった。

今回自分はエンジニアのような考え方をするのがほとんど苦手だということを思い知らされた。だがそれ以上に今日学んだのは、自分にはできないという線引きの妥当性を少しでも疑ってみることで、前進できる部分があるということだった。自分には手に負えない問題だと早々に諦めて投げ出そうとしたとき、分からないの上に分からないが重なって、適切な判断ができていなかった。分からないの上に分からないが乗っかっているのなら、まず何が分からないかを明らかにし、その上で何が分からないかを確認すればよかった。そうしたひとつひとつの細部の点検を経ることで、自分がどうすればいいのか段々と分かってくる。

本当につまらないことかもしれない。たかがタイマーの作り方でこれほど騒ぐことではないとは思う。だがそうかと分かった瞬間、自分のストレスが一気に吹っ飛んで少しうれしくなった。こうした素朴な感情は最近抱いた事が無かったので、記録にとどめておきたかった。