文系人間が25歳でゲーム開発に目覚めた話
「プログラミング?なにそれまずそう」と思っていた人間が、25歳という微妙な年齢で突如開発に目覚め、職場でやばいやつ扱いされるまでのビフォーアフター的な思い出話です。(この間わずか2年ほど)
------------------------------------------------------------------------------
------------------------------------------------------------------------------
こんばんは。3度目のnoteです。(定型文化)
これまでの2回は「持病」について書いてきましたが、
今日はちょっと趣味の話をしようと思います。
2年前くらいに「ゲーム開発沼」にどっぷりはまるまでの当時のことを書いてみます。
何故これを書こうと思ったかと言いますと、
プログラミングの敷居がとにかく高すぎる(特に文系)
と、未だに思うからです。
もし、
「プログラミングに興味があるけど、情報系は全く分からない」
「まず、何から始めればいいのかわからない」
「wi-fiすらなんとなく接続してるのに、プログラミングなんて出来ない」
「どうせ天才が書いてる文章なんだろ、俺には無理無理」
と思っている方がいたら、是非読んで欲しいです。
これは高校1年生の数学すらまともに出来ない、
ひょっとしたら文系ですらない頭の悪い人間が、
ExcelVBAでRPGを作り、Unity開発を毎日続けるようになるまでの話です。
0.読む前の注意事項
①頭が悪いと言っておいて申し訳ないのですが、私はある程度の論理耐性があるようです。具体的にはエクセルの関数が一通り使えるレベル(if, vlookup, andやorなどの関数が難なく理解できる)程度です。あ、あとエクセルも大好きでした。
→もし「if関数が物凄く苦手、全然理解できない」という方がいらっしゃったら、この記事はあまり共感を得られないかもしれません。
②具体的な技術指南はありません。あくまでも「こういう経緯で好きになった」という思い出を書きます。
③ごめんなさい。デザインパターンとかよく知りません。そんな独学レベルです。ごめんなさいごめんなさい。プロの人たちごめんなさい。
④フェイクはないけど、昔のことなので矛盾があれば申し訳ない…
1.【Before】取り組む前の状況
まず、私の経歴(どれだけ頭が悪いか)からお話します。
私は小学生の頃から学校が嫌いで、
中学生の頃はついに学校に行かなくなり、
「ひとまず卒業できる高校」にいった、まあ一般的に残念な人間です。
学校に行かなくなってからは、まともに授業に出ていませんし、
高校では2年間かけて数Ⅰを履修する有様。
それでも大学に行きたかったので、塾で数A、数Ⅱを教えて貰いましたが、
いま覚えているのは「PとCの書き方が面白いのと、logは階乗の逆」であることだけです。(色々ごめん……)
大学では心理学を専攻していました。
統計学は少し齧っていましたが、基本的にPCでぽちっとするだけでしたし、
『SAS』という統計のソフトウェアを使っていたとはいえ、
コードは完全にコピペで運用していた(というか、SASに打ち込んでいるものがプログラムだなんてよく知らなかった)ので、
ほぼほぼ、情報分野のごちゃごちゃとは無縁に生活していたし、
まあ、ここまで読んでわかると思うのですが「頭が悪い人間」でした。
そして。
ここに書くべき重要なことがもう1つあります。
私は今でこそ、毎日せっせとゲームを開発したり
職場で「ああ、エクセルマクロやばい人ね」と知らない人から言われたり
開発三昧の日々を送っていますが、
実は……なんと。
私は「プログラミング」と聞くと一瞬でやる気を失う生き物でした。
……結構これ、今の私しか知らない人に言うと驚かれます。
別に、プログラミングで挫折したことがあるとか、
C言語に親を殺されたとかいう事情があるわけでもなく。
あの時は漠然と「とにかく嫌」だったんですよね。
それが例え、ほんの少しエディタを開いてコードを丸コピするだけでも、
「これ猛烈に面白そう! 作ってみたい!」と思っても、
いざプログラミングが必要とわかれば
「ちっ、プログラミングかよ」と、乱暴にブラウザを閉じる。
そんなプログラミングアレルギーにかかっていたのでした。
ただね。
追々書きますが、一生懸命開発してきた結論として、
アレルギーでいることはもったいない!!
と、今では本気の本気の本気で思います。
あぁ、なんで高校のときから始めなかったんだ! と思いますしね。
だから、もし「絶対無理」と思っていても、
2,3回チャレンジして欲しいなー! と思っています。
(何故2,3回なのかは追々……)
それではここから本題です。さらっとAfterを確認して、
こんな人間がプログラミングにハマるまでの紆余曲折を聞いてください!
2.【After】現在の状況
◇仕事面(エクセルVBA)
・事務職だが、VBAでマクロを組むお仕事をすることもある。というかそこの実績が決め手になって転職が成功したっぽい。
・まだ大したマクロは組んでいないはずなのだが、何故か「エクセルの人」としての地位が確立している。
・VBAベーシックなら多分ノー勉でとれる。
◇趣味面(Unity等。2次創作ゲーム開発)
・初めての作品として、VBAでRPGを開発した。プレイ時間6,7時間のボリュームで、開発期間は9カ月ほど。
・次の作品として、Unityでノベルゲームを開発した。プレイ時間4時間くらいのボリュームで、開発期間は3カ月ほど。
・現在、UnityでVBA作品のリメイクを行っている。作り始めて15カ月目くらいで、プレイ時間は500時間くらいになればいいと思っている。夢は大きくなくてはならないと思っている。
・全てぼっちで行っている。いいもん、ぼっち開発は最高なんだもんね。
↑1作目(1年目)
↑2作目(2年目くらい)
↑3作目(2年目から作り始めて進行中)
◇現在のゲーム開発状況(外部サイト:進捗ノート)
https://shinchoku.net/notes/3092
3.【4年前】きっかけ
ここまでさんざん「プログラミングは難しくないよ」と書いてきたので、
さぞ、楽しいプログラミングライフを送ってきたのだろう!
と、お思いのことかもしれません。
残念、そう甘くもなかったんだよなぁ^p^
私がプログラミングに興味をもったきっかけは、漠然としたものでした。
ずばり、「なんとなく気になったから」……です。
約4年前、私はニート生活(※)をしていて、
とにかく暇を持て余していたんですよね。
次の職探しに向けて、資格の勉強をちょこちょこやっていた時期で、
さらにプログラミングが義務教育化された、なんて話題もあがっていた頃でした。
こりゃあ、プログラミング出来ないと小学生に笑われるぞww
そんな、適当なノリで「ちょっとやってみるか!」と思ったのが、
本当に最初のきっかけです。
もちろんプログラミング自体は、すごく苦手意識を持っていましたが、
「小学生でもできるんだから、絶対私にもできる」
って、ふと思ったんですよね。
ゲームが大好きだったり、エクセルの関数が得意だったりしたこともあり、なんとかなるだろうって思ってたんですよ。
まあその時、躁(≒無敵モード)だったからかもしれません。要は私の中で確変が起きていたようなものです。
翌日早速、知り合いの情報系男子にそのことを話してみました。
「挑戦してみたいんだけど、どうすればいいのかわからなくて」といった切り口だったと思います。すると、
「昔専門学校で使っていた教材を貸してあげる」
と、ニートにはなんとも有難い申し出が! もう、これ幸い!とお願いするしかないですよね。そうしたら、すぐに持ってきていただけると。
で、さらに翌日お会いした彼から受け取ったのは、
……割と古めのC言語の教材だったんですよねえ。
おおっ、C言語! 聞いたことあるぞ!
やっぱプログラミングといえばC言語とJavaだよね!
「どんな言語がいいかわからなかったけど、これが一番詳しく書いてあると思ったから」という言葉に、うんうんと聞き流しながら、
これで私もプログラマーとしての一歩を踏み出したぞぉー!!
と、うっきうきで帰ったのを覚えています。
これから大変な思いをするとは全く知らずに……
※ニート生活中(療養中)の話はまさにこの記事の話
4.【4年前】挫折
はい、勿論開始1時間で挫折しましたw まずは言い訳させてください。
まず、他の人から言わせると「C言語は難しい」らしい。
なんでも「融通が利かなくてとっても不便」なのだとか。
そんなのしらねえわ!!
じゃあなんでそんなにメジャーなの?
なんでC言語って言葉だけ独り歩きしてるの!?(古いからだと思う)
※ちなみに「何故C言語を勧められたのか」問題ですが、これはその方が現役プログラマーでなく、さらに30~40代くらいの方だったからかも? と推測しています。その方が専門学校に行っていたころは、今よりもっとC言語がメジャーだったのかなあ……という理由だと思っているのですが、どうでしょう。わかりません。すみません。
※ちなみにちなみに、借りた本に関しては、さすが専門学校の本! といった、基本から応用まで幅広く取りそろえた辞書みたいな本 でした。間違いなく、独学向けではなかったと思います^p^でもそれも仕方ない。
とどのつまり、私のリサーチ不足です。
言語なんて英語と中国語みたいな違いかなあと思っていたので。
いやあ、早速頭の悪さが露呈していますねー! どうなるんでしょうね!
ただ、ここで言いたいのはそんな言い訳ではないんです。
今思えば、当時のプログラミング学習、
決定的に「間違っていたこと」があったんです。
これが一番言いたかった。
実は私、その時、
パソコンを使わずに勉強していたんですよね。
は? プログラミングの勉強だろ??
と思った人、仰る通りでございます;;;;
すみません、ここからは「当たり前だろ」ということをわざわざ文章に書いていきますが、
「本当に何も知らない初心者で、やってしまう方もいるかもしれない」と思ってのnoteなので、ぜひ愚かな人間の思考回路を見学していくつもりで見ていってください。
5.【1回目の挑戦】挫折の背景
実は私、意外と資格をたくさんもっています。
簿記やITパスポート、
ちょっと変わり種だと、心理学検定特1級とかいう
どこにも使い道がないものまで。
ゲーム感覚で取るのが楽しくて、1年に1資格を目標にしていたほどです。
その勉強方法というのが、「テキストをノートに写していく」というもの。
その勉強方法が良いか悪いかは置いておいて、
とりあえず「私はこれで資格をとってきた」という成功体験がインプットされていたわけです。
つまり、今回もこれでイケる!! と、無条件に思っていたんですね。
ところがどっこい……
この勉強法、プログラミングに関しては全く歯がたたなかったんですよ…(当たり前だ!!!)。
というより、いずれPCで色々と動かそうと言う気持ちはあったんですが、
やはりまずは理論! と、テキストとノートを開く癖があって、
不運なことにテキストも文章が主だったものですから、
一生懸命写しながら「完璧に理解しようとしていた」んですね。
それはそれで上手くいく人もいるのかもしれないけれど、
当時の私のような「まだ情報系に耐性のない人」はまず無理かなと……
そもそも現時点でも「完璧か」といわれると怪しいです。
「Aというコードを書けば、Bのように動く」ということは知っていますが、
「では何故Aを書けばBと動くのか、PCの何がどう動いているのか」 という根本的なところは正直わかりませんし、
ガチガチのエンジニアにならない限りわかる必要もないと思っています。
※ただしこの辺りは、開発のレベル感によって意見が全く違うと思います。業務改善のためにVBAをちょこっとやりたいとか、ふざけたゲームを作りたいレベルの人間の意見です。
しかし、その間違いに気づくのはもっと後。
1時間やって何も理解できずに、
「やっぱり私にプログラミングは無理なんだ」と、
ますますアレルギーは重症化し、最初のチャレンジは幕を閉じたのでした。
6.【2年前】VBAとの出会い編
2年後……時は過ぎ、私も就職をし。
その頃はとある中小企業の事務職として、人事系の仕事をしていました。
(時期的には、上に掲載したnoteの続きになる)
当時はもう、プログラミングを純粋に面白そうだと思うこともなく、
IT企業に入社したのも、たまたま条件が合致しただけで、特別な意味はありません。
プログラミングを勉強しようとしていたことも、
ましてや挫折したことなんて忘れかけていた頃です。
だからなのでしょうか……
そうだ、プログラミングしてみっか^p^(暇だし)
と、私、超適当なノリでプログラミングに再挑戦することにしたんですよね…(頭悪すぎか?)。
というのも、実はこの頃、ちょっと気になるものがありました。
たまたま知った、「エクセルVBA」という代物。
実はC言語をやる前に1度調べていて、でも当時は難しいサイトばかりで。
秒速で「コレ、エクセル、チガウ」と諦めていたのですが…
エクセルには、プログラミングが不要な「マクロ機能」があります。
もちろん私も愛用していて、こりゃあ便利だ!と思っていました。
そしてエクセルVBA……聞けば、このマクロを複雑化できるらしい。
人事の仕事には繰り返しの仕事が多く、
「も、もしかしてこの作業もワンクリックで出来るようになるの!?」
と、ザ・怠惰人間の私には物凄く魅力的に映ったわけです。
アレルギーどこいったのよ? って感じのノリですが、
当然、再挑戦に至るまで、ある程度の葛藤はありました。
ただ、「面倒な作業がなくなるかもしれない」というのと、
「すると、ひょっとしたら昇給額も弾むかもしれない……」という欲には
アレルギーも屈服したらしく^p^
完全にダメ元でしたが、少し期待をもって始めた再挑戦でした。
そして結論から言うと、
この2度目のプログラミングへの挑戦は、
大・大・大成功でした。
ここで再挑戦しなかったら、人生どうなっていたことやら。
仕事も効率化でき、何よりプログラミングへのアレルギーが消失し、
みるみるうちに開発大好き人間になったんです。
そしてVBAでRPGを作ると言う暴挙にでるというわけですね。
7.【2回目の挑戦】完成イメージを持とう
成功のポイントとなったのは、以下の3つだと考えています。
・適切な教材に巡り合えた
・「パソコンで実際に作業する」がきちんとできた
・「完成イメージを持って作業する」ができた
まず、当時使用した教材が……こちら!
これ、本当に当時の私にピッタリで。
①プログラミングアレルギーなので、つまらないとすぐ投げ出す → なんと漫画形式。しかも無料で読める、ストーリーも結構好き。
②プログラミングは何もわからないので、難しい言葉を並べられてもわからない → 初心者がVBA及びプログラミングを学んでいくストーリー。過不足ない説明と図解でとってもわかりやすい。
③とにかく業務改善につなげたい → 具体的な業務改善例があり、何がどんな風に役立つのかイメージがつきやすい。
という具合に、もう最高の教材だったんですよ;;;(ステマじゃないよ)
ちょうど紹介されていた業務改善例が「今したいこと」と重なっており、
思わず書きたくなる感じが、偶然にも手を動かす結果になった(=ノートを使わずに勉強できた)のも良かったです。
そしてこの章で話したいのは、「完成イメージをもつのって、大事だよね」ということ。
「何故この教材が良かったか」「何故うまくいったか」の最大の理由が、ここにあると思います。
1回目の挑戦は、確かに難しい言語や間違った勉強法を選択してしまったことも失敗の原因でしたが、
正しく勉強したところで、作りたいものがなければすぐに挫折していたと思います。
プログラミングの目的・ゴールは、「プログラミングが出来るようになること」ではなく「作りたいものを作ること」です。
当たり前のことかもしれませんが、私は「特にプログラミングはその色が濃い」と感じています。
何故かというと、自由度が高すぎるからです。
作りたいもの・やりたいことを絞らないといつまでたっても終わらず、
最終的に挫折します。
それに加えて、
プログラミングは、実際に動かすときがいちばん面白い!
最初はテキストを表示させるだけでも感動ものですが、
自分が「作りたい!」と思っていたものだとなおさら感極まります。
ご褒美は大きい方がいい。
そういう意味でも、「作りたいものが既にあった」というのはかなり大きなポイントでした。
8.【そして沼へ……】ゲーム開発にハマった話
そんなこんなで、
「え?w VBAなんでも出来るじゃんw やばww」
と、私は順調に業務改善マクロを量産していました。
上司にも驚かれつつ褒められ、ぐんぐんと成長していた時期だと思います。
一方、
私はプライベートでひとつだけ、ずっと悩んでいたことがありました。
「友達の誕生日プレゼント、どうしよう」
という、些細かつ重要な問題です。(いきなり話題変わってごめん)
私は人の誕生日を祝うのが大好きです。
直近で交流がある人の誕生日は必ずお祝いしたいと思うし、
手作りのプレゼントを渡すときもあります。
中でも今回悩んでいる誕生日プレゼントの人は、
毎年、特に凝ったプレゼントを渡して驚かせるのが私も楽しみで、
随分前から案を練って制作しているうちのひとりでした。
当時悩んでいた時期は、6月。
その人の誕生日は、4月でした。
一見おかしく見えるでしょうが、私にとってはそれほど前から考えるべき、いわば「今年は何を作ってくるか試されている」相手なのです。
しかし、よくよく考えると、
そんなに悩むほどのことでしょうか。だって、
「VBAにハマっている」
「凝ったプレゼントを作りたい」
つまりこれはもう、
VBAで凝ったプレゼントを作るしかないのでは?
なんでも出来るVBAがあるんです、
10ヵ月もあれば、友人の大好きなゲームだって作れてしまうのでは??
それが、私の「ゲーム開発沼」にハマるきっかけでした。
色々おかしすぎる。
で、私は結局、それからの9カ月を「職場でも、家でもVBA開発」という環境で過ごすことになったわけです。
これまで全然、プログラミングのプの字も知らなかった人間が、ですよ。
人生どうなるかわかりませんよね。
ゲーム開発はとにかく面白く、
モノづくりが比較的好きな私には合っていたようでした。
イラスト、音楽、シナリオと、様々なジャンルの創作にチャレンジするきっかけになりましたし、
「キャラクターが喋る、動く」という、まさに命を吹き込んでいるという感覚が感動的で、寝食を忘れるほどに夢中になりました。
とは言え、開発はうまくいかないことも多く。
当然やりたいことの幅も広がるので、簡単な処理だけでは済まなくなってきます。
絶妙に難しいゲームを作って忘れられない誕生日にしてやりたいという強大なモチベーションが存在していなければ、
いくらVBAにハマっていたとはいえ、無事完成まで辿り着くことは出来なかったでしょう。
こうして私は、奇跡のように沼に引きずり込まれていったというわけです…(完)。
※VBAゲームは意外にも好評で、終わらせるのも惜しかったので続編を作ることになりました。これ以上はさすがにVBAだけだとキツいので、ゲーム開発に有利なUnityに切り替えて今に至ります。
9.終わりに
上にも書きましたが、正直ここまでハマれたのは奇跡としかいいようがないだろうと思っています。
ですが、
「めちゃくちゃな経歴の人間が、プログラムを書けるようになった」
「ゲーム開発はなかったとしても、仕事でVBAを使えるようになった」
「あんなにプログラミングアレルギーだった人間が、できるようになった」
というのは紛れもない事実です。
こんな経緯があった私だからこそ、改めて思います。
プログラミングの敷居がとにかく高すぎる(特に文系)、と。
もっとフランクでカジュアルなものでいいじゃん!って思います。
私は、いち開発者として「プログラミングを必要以上に難しく見せない」ように心掛けています。
説明の際に突然カタカナ語を使わないとか、具体例を出すとか。
こんなに便利でさくっと作れちゃうものなんだよ! ということをアピールしたくて。
私の難しそうな発言を見て「難しそうだな」と引かれてしまうとあまりにももったいないですもんね。
だから、まだやったことないよって人には是非チャレンジして欲しいし、
もしアレルギーの人が居たら、とりあえず1つの選択として、
「プログラミングもアリ!」ということが伝われば幸いです。
これにて私からは以上です。長々と見て頂きありがとうございました。
それではみなさま、素敵なプログラミングライフをお送りください^p^!
この記事が気に入ったらサポートをしてみませんか?