2019の20日目の記事です。私がプログラミングを始めたのは中学生の時だった。それほど裕福な家庭ではなかったが、作曲が趣味の母親が給与数ヶ月分を叩いてVAIOのデスクトップを買ってきた。当時、私はパソコンのことはよく分からなかったが「色んなことが出来る機械」と漠然なイメージを持っていたのを覚えている。無料」で検索しては手当たり次第遊んでいた。中学校には私と同じようにパソコンゲームに興じる友人が2人いた。俗に言うWeb1.0時代、無料で遊べるゲームは沢山あったが、私たちはブラウザだけで遊べるゲームにハマっていた。有名所であれば「箱庭諸島」や「バトルロワイヤル」といったゲームである。ページ遷移でゲームが進行する形式で、ユーザー同士の対戦やチャット等、プレイヤー間でコミュニケーションを取れる機能が組み込まれていることが多かった。そんな時代、私たちはVagoo(ヴァグー)というゲームに夢中になっていた。「うぇぶなげぇむ」という個人で運営されてるサイトにあったRPGだ(現在は閉鎖中)上記に並べたゲームに比べるとマイナーで、モンスターと戦ってストーリーを進めるというシンプルな作りだが、キャラメイク機能やモンスターをペットに出来る機能など、クオリティの高いゲームだった。索敵をするには一定時間待つ必要があり、その間ユーザーはゲーム内のチャットに集まる。ゲーム自体も面白かったが、そこで顔も知らない人達と夜通し会話をする体験が思春期の私にはとても刺激的で楽しかった。そのゲームはコピーレフト(オープンソース)として配布されていた。当時、GitHub等のリポジトリサービスは無く、zipファイルが直リンクで置かれているだけだった。これを動かせば自分だけのゲームが作れるかもしれない。動かし方を必死に調べた。CGI/Perlで組まれているプログラムだが、それを動かせる無料レンタルサーバーというのは中々無い時代だった。月数百円で運用出来るサーバーはあったが、中学生にはそれでもキツい。生まれて初めて「早く大人になりたい」という感情を抱いた。調べていく内に、自分のPCをWebサーバーに出来ることを知った。Serverを導入出来た。自分のPCで動いているVagooを見て、とても感動した。ソースコードの中身はよく分からないが"Vagoo"と書かれていた文字列を書き換えるとゲームタイトルが変わる。時間を設定していそうな数値を書き換えると索敵の待機時間が変わる。予測して、書き換えて、結果を確認する。この循環がとても楽しかった。この過程で条件分岐や反復処理、HTML/CSSなど基礎的な知識は身についた。冒頭に「プログラミングを始めたのは中学生の時」と書いたが、当時の私には「始めた」という感覚は無く、無意識でノートの端に描く落書きと似たような感覚だった。描けた落書きは人に見せたくなる。必死に調べながら、ポートを開放して、DNSを設定して、Webサーバとして稼働させて、友人に「ぼくのつくったVagoo」を見せて遊んでいた。遊んでいる最中、管理者画面へ入るパスワードがテキストファイルに記載されていて、ファイル名さえ知っていればアクセス出来る状態だということに気が付いた。ファイルのパーミッションを設定すれば良いだけだが「本家はどうなっているんだろう」と思って覗いてみるとアクセス出来てしまった。ゲーム内にはユーザー間のDMみたいな機能もあり、管理者画面に入るとそれも含め全ユーザーの情報を見ることが出来る。倫理観なんて無かった僕は友人に「あの人とDMしてたでしょw」と得意げに話してしまった。謝った後、運営者に脆弱性の報告をした。注)この行為は不正アクセス禁止法により処罰の対象となりますそういった経緯もあり「Vagoo2」の開発フェーズでテストプレイヤーに選ばれるぐらい僕は主要メンバーになっていた。年齢関係無く大人達の仲間に入れる。そんな、インターネット上で遊んだり創作したりする時間が、僕にとっての快楽となっていた。高校は偏差値の低い地元の工業高校へ進学した。どこでだったか忘れたが「ホームページ制作は云十万かかる」というのを見て、既にHTML/CSSぐらい書けるようになっていた僕は「ITは楽に稼げる」と思った。他教科の勉強は時間の無駄、ひたすらプログラミングの勉強をしたいと考え、受験勉強せずとも入れる、情報系の学科を選択した。プログラミングを学びたくて入学した高校に、プログラミングが出来る生徒はいなかった。それどころか、殆どの人はパソコンすら触ったことがなかった。地方の工業高校なんてそんなものだ。周りの友人達は夜通し遊びに興じていた。入学当初は時間を見つけては自宅でプログラミングをしていたが、次第にその行為を「恥ずかしい」と思うようになってきた。中学生の頃は「ゲーム」という共通の話題の中でプログラミングを行う事が出来たが、今はそれすら無い。何か作って見せても「遊びの誘いを断ってこんなもの作ってるなんて、気持ち悪い」と思われるかもしれない。いった恐怖心から僕は創作意欲を心の奥に閉じ込めるようになっていった。高校のプログラミングの授業は面白かった。ビット演算や論理演算などの基本的な内容だが、独学では中々踏み込まなかった所だったからだ。同級生からは「何故かプログラミングの授業だけ点数が良いやつ」と思われていた。勉強したいし、やっぱり何か作りたいという欲が常にあった高校生活だったので大学へ進学した。基本教科の勉強はろくにしていなかったのと、附属高校だった為、受験勉強せずとも入学できる同系列の大学へ行った。高校へ進学した時と同じ志望動機で大学を選択すれば、当然ながら周囲の環境も変わらない。何も出来ない(やらない)時間だけが過ぎるキャンパスライフだった。中学生時代に遊んだブラウザゲームは個人でも改造出来るレベルのものだったが今はどうなっているのだろう、と流行っているパソコンゲームを調べてみた。MMORPGと出会ってしまった。3Dで描画された世界を好きなだけ駆け巡り、他者と協力したり対戦できたりする。クリエイターとしての私は絶望した。クオリティが高過ぎて、とても一個人が足を踏み入れられる世界じゃない。ゲーマーとしての興奮は凄かった。私は夢中になり、ゲームをしながらご飯を食べ、パソコンの前で寝て、起きて、また世界を駆け回る。書くと私は進路を後悔しているように見えるかもしれないが、私は高校・大学ともに行って良かったと今でも思っている。遊び呆ける体験も思春期には必要な時間だ。心の奥底に何かが引っかかっている。その程度の違和感があり続けた、というだけの話だ。この違和感を解消できるチャンスは「卒業研究」だけだと思っていた。私は地元よりも就職活動の時期が早い東京で、早々に職を決めた。プログラミングの仕事なら何でも良い。それより卒業研究に励みたいと思っていた。「研究」より「制作」に近い研究室を意識的に選んだ。研究内容は「ゲームを作る」今の私にピッタリだった。研究室には僕の他にも数人の同期がいたが、プログラミングが出来るのは僕だけだった。この事象に違和感は持たなくなっていた。「企画やゲームの素材画像、論文等は全てやってくれ。代わりにプログラムは全部俺が書く」という役割分担にした。プログラミングをしたかった私にとっても、これが一番良い分担だった。半年間ぐらいだったと思う。朝から大学が施錠される23時まで、ひたすら研究室に籠ってプログラムを書いた。一人作業ではあったが、それは幸福な時間だった。世の中はiPhoneの登場に沸き立っている時期だったが、私たちの研究内容はガラケーのゲームだった。出来上がったものはとてもチープなゲームで、ダウンロードURLも公開したが、恐らく遊んだのは研究室のメンバーだけだろう。私は大学から推薦され電子情報通信学会の成績優秀賞を頂いた。推薦されれば必ず授与される「頑張ったで賞」みたいなものだが、そういった経験がなかった私には自信を与えてくれた。私は上京して社会人になった。就職活動を早く切り上げたい一心で選んだ企業は、中小のシステムエンジニアリングサービス会社で、大企業の開発プロジェクトへ派遣されて常駐するタイプの仕事だ。変わらず「何か作りたい」という漠然とした欲は持ち続けており、初任給でデスクトップ端末を買って開発環境を構築したが、何を作ればいいのか分からなくなっていた。絵を描くスキルの無い私がゲームを作ったところで、卒業研究以上にチープなものが出来上がるだけだろう。それを自分だけ遊ぶ?そんな虚しい趣味には興じれない。絵を描ける友人に「ゲーム開発しないか」と話を持ち掛けたことは何度もある。その度になぁなぁで終わっていた。ゲームの素材作成というのもまた、熱量のいる作業だし、社会人になって数年程度の若手だと私生活に割ける時間も少ない時代だった。仕事の方は割と順調だった。中小だが一次請けの案件が主で、二次請け三次請けのパートナー会社を管理する仕事だった。若手の頃にプログラマーとしての経験を積み、次第にチームやプロジェクトのリーダーとして管理職の経験を積む。私は保守案件のチームリーダーや、受託開発プロジェクトのNo2ポジション、オフショアという海外へ開発を委託する手法が流行った時期は中国の子会社へ赴任するなど、低学歴の私からすると派手な経歴が連なってきていた。私の中にあった「何かを作りたい」という欲求は、仕事を進める上での自動化ツール作成に置き換わっていた。これなら私が作ったものを誰かに使ってもらえる。代わりに、私生活は堕落しきっていた。創作欲は仕事で満たされてしまい、今あるスキルだけで仕事が成立するので独習などする必要も無い。スマホでソーシャルゲームをしたり、ギャンブルしたり、毎晩の様に酒を飲みに行ったりしていた。娯楽は身を削るレベルでハマった。仕事は順調だったが、違和感を感じていた。プログラミングをしたくて就いた会社で、プログラミングをさせてもらえなくなっていたからだ。「開発をしたい」と意を唱えたこともある。なし崩し的に管理職になっていく未来が見えていた。自分の生産性を上げることより、大勢を管理出来るスキルを磨く方が売り上げ的にも有利なことは明白だった。堕落していた私生活を矯正する為にも、私は転職して地元へ帰る決断をした。それが現職の会社となるのだが、30歳を超えた今でもプログラマーとして働けている。業種や会社の形態は前職と変わらない為、管理職になるべきという圧は感じるが、まぁ自由に働けるようになったと思う。中学生の頃からの夢だった「プログラミングで飯を食う」は達成された。それでも私の心にはモヤがかかっていた。キャリアパスを見据え、やりたい事だけやる生活を求め、年収を100万下げてまで転職した。やりたくない事を拒絶し続けた結果、そこには出来る事しか残っていなかった。技術の移り変わりがあるが、そこのキャッチアップも含め私には「作業」となっていた。中学生時代に抱いていた知的好奇心の煌めきを感じられなくなっていた。余談だがこの年、私は結婚した。人生のターニングポイントを迎えたことで今後の人生を具体的にイメージし始め、上記の様なことを考えていた気もする。東京にいた頃とは打って変わり、業務中にも暇が出来るぐらい余裕のある生活となっていた。私はよく技術記事投稿サイトQiitaを眺めるようになっていた。何かを調べるわけでもなく暇潰しだったのだが、徐々に引き込まれていった。Qiitaはトラブルシューティングや技術の紹介記事ばかりと思っていたが、この年は「個人でサービス立ち上げてみた/アプリを作ってみた」系の記事が多かったのだ。上記の記事もほんの一部で、この個人開発ブームを分析するような記事も出ていた。ワイの選ぶ2018年個人開発サイトBEST5【比較してみた】みんなが使っている個人開発(Webサービス)向けPaaS・ホスティングサービスまたQiitaでは、年末に各テーマに沿った技術記事を毎日誰かが投稿するアドベントカレンダーという企画がある。Calenderという、無駄に技術で遊ぶカレンダーの存在にも気が付いた。創作欲を閉じ込め続けていた私は、どの記事を読んでも心が躍った。世の中には個人で開発を楽しんでる人が沢山いる。私は製作者達のファンとなり、日々の活動も追いたいと思ってTwitterアカウントを作った。最初に交流を計ったのはQiitaのコメント欄だった。送信後は柄にもなく、相当舞い上がっていた。「失礼にあたらないか」「的外れな事言ってないか」などを気にして仕事に手が付かない。恋する乙女のような心模様だった。