「子供のゲーム」がソフトウェア開発の方法をどのように変えたか 私はMinecraftが2009年にリリースされたことを覚えています。私はちょうど明るいニューメディアの学位を卒業し、ゲーム開発の夢を追いかけてきました。私の生涯は私の前にあり、それは信じられないほどエキサイティングでした。この新しい学位を持って、私はシアトルに飛び出し、適切な仕事を見つけ、夜や週末に宿題のプレッシャーなしで新しく見つけた自由を楽しんでいました。 私はSteamのSourceエンジンを使って、EndorphinやEuphoriaのようなツールやフレームワークについて見つけたすべての記事を読み、利用可能なすべての主要なゲームニュースレターにサブスクリプトしました。 現実世界を構築するために、これらのツールを持っているのはいつだろうか?」と、それを完全に拒否した。 仮想レゴ 16年後には、いくつかの転職、海外移転、家を買って売る、美しい妻と2人の素晴らしい子供たち、人生は混乱したが、それは良かった。その後、ある日、息子が学校から家に帰って来て話し合った...あなたはそれを推測しました。Minecraft 私は常に私の子供たちの趣味に興味を示すために努力しています。 だから、数週間の Minecraft について聞いた後、これがまだ「何か」であるというショックから回復した後、私はそれを試してみることにしました. 私はXbox Game Pass で残された数週間で無料でゲームを試してみましたが、それからそれを購入したので、私たちはプレイを続けることができます. 私は彼らのウェブサイトからBedrockサーバーホスティングファイルをダウンロードし、一緒にプレイするために私たちのサーバーをセットアップしました. そして一緒に、私たちはこの厳しい世界でかなり印象的な生存を得ました. ある夜、私は誰もが寝た後、オフィスに向かって遊びに行き、私たちのベースについて改善したいさまざまなものの一覧を作り始めた(私は子供たちがログインしたときに一緒に冒険ができるように、夜にほとんどのビルを作るのが好きです)。 簡潔に言えば、私が積極的に取り組んでいたプロジェクトがスクリーンに浮かび上がり、私の前にある問題がその日の初めから私の記憶に動き出したように、私は瞬時にゲームへの欲求から分散しました。ほとんどのエンジニアと同様に、私は一日の終わりに未完成の仕事を残すために苦労しました。 Minecraftはただのエンジニアリングで、かっこいい、ブロックな楽園に包まれている。 Minecraftはただのエンジニアリングで、かっこいい、ブロックな楽園に包まれている。 First Impressions Can Lie 第一印象はウソをつく 私たちは皆、「あなたはたった一つの第一印象を得る」という言葉を聞いたことがあり、私はしばしばその欠点を見つけました。私は、第一印象が一度しか起こらないという単純な理由で、この言葉は十分に真実であることを知っています。 それは多くのシナリオで真実であるかもしれないが、私は、誰かについて彼らの意見を明確にし、色づけるのを助けるために二度と印象を許さないほど頑固な人が、あなたの人生で望まない人であると主張する。 私のキャリアの初めに、私は最初に圧倒的に見えたプロジェクトを手渡されました。このタスクは、複数の通貨を介して金融データを処理し、計算の層が恐ろしく、過度に複雑だったと感じました。 しかし、私が掘り下げたとき、私は、データの摂取段階で重いリフトのほとんどが起こったことを発見しました. 正しいシステムが置かれるときに数学自体は単純なものとなりました. 変数データを回収し、整理するためのツールを構築することで、最終的な解決策は、すべてを結びつけるクリーンな計算機のほんのわずかでした. 最初に不可能に見えたことは、私が取り組んできた最も単純でエレガントなエンジニアリングソリューションの1つになった。 それは、今、私がこのゲームを子供の遊びとして放棄したすべての年前のことを思い出させますが、数年後には、それは素晴らしい芸術作品であり、素晴らしい楽しみがたくさんあることを発見します。私は今、世界を構築するために何百時間も費やしてきましたが、それは素晴らしい思い出です:あなたは常にあなたの最初の印象を信頼することはできません。 仕事のプロジェクトはしばしばこのように始まります:圧倒的で、騒がしく、不確実です。しかし、あなたが基礎を築いたら、汚れの避難所にファークライトとサプライヤーを置くように、不可能なことが管理可能なものに簡素化されます、安全さえあります。 Building Incrementally Minecraftをプレイした人なら誰でも、ゲームの最初の数分は私たち全員にとって同じであることを知っています。 You have to punch a tree. 私はそれが笑えるように聞こえることを知っています、だから私は意図的にその線を独りで置いています。 木を叩かなければならない。 木を叩かなければならない。 Minecraftでは、最初にゲームを開始したとき、あなたが裸の手で収集できる非常に限られたリソースがあります:砂、汚れ、木は明らかな例のいくつかであり、木は多くのものに不可欠です。 木を叩かなければならない。 You have to punch a tree. あなたは、木のいくつかを落とすまで、できるだけ長くその木を叩きます。その後、いくつかの木を落とします。その後、いくつかの木を落とします! その後、あなたはこの木で工事セクションに移り、あなたは板を作ります。その後、あなたは、これらの板を持って、あなたは工事のテーブルを作ります。あなたは、あなたがEnder Dragonを打ち負かし、あなたのElytraを集め、ゲーム(少なくともストーリー)を完了するまで、より複雑にこのループを続けます。 同様に、ゾンビ、骨格、クモ、魔女の夜間の群れから避難所を構築するには、一度に1つのブロックを置く必要があります。もちろん、いくつかのモードは過去(ほぼ)20年間にわたり発生しましたが、ヴァニラでは、一度に1つのブロックです。 興味深いことに、このプロセスはしばしばソフトウェアを構築する最良の方法です。 別のプロジェクトでは、私は不可能な期限を与えられました。私がそれを目標にすると、仕事は現実的に2ヶ月かかりますが、チームはわずか2週間で何かを働く必要があります。 私はプロジェクトをより小さく、独立した機能の「チャンク」に分割し、それぞれ1日か2日で提供できるようになりました。その後、チームが最初に望む機能を選択し、依存性と妥協を明確に指摘しました。 Minecraftでは、誰もダイヤモンドの、魔法のツール、または広大な城で始まらない。あなたは木を叩き始める。それからあなたは板を作る。それからスタック。それからツール。ブロックごとに、あなたはあなたの避難所、あなたの基地、あなたの世界を構築します。 ソフトウェアは違います. あなたは1日で完璧な、磨かれた製品を発送することはできません. しかし、あなたが物事を壊すことについて規律を持っている場合: 1つの機能、1つの機能、1つの「ブロック」を一度に。 最初の木を叩くしかない。 You just have to punch that first tree. Collaboration Without Demolition 私が上記で述べたように、私は誰もが眠っているときに夜に建てることが大好きです。子供たちは週末にログインし、前夜に私が建てたものを見るのが大好きで、それから世界への追加を完了しました。 私は、もちろん、これらのエリアのための計画を持っていたので、私は調整しなければなりません。夜にログインし、彼らが建てたものを破壊することはできません。 だから私はそれらと働く方法を見つける必要があります。私は森を少し薄め、そして最悪のモンスターを遠ざけるためにいくつかの標識と光を追加するかもしれない。私はドックと港の周りに赤石の引き渡し橋を追加するので、それは私たちの小さなダンジー以外のもののために準備ができているように見えます。 モンスター 私たちエンジニアは毎日同じ前提に従っています。私たちのほとんどは単一の製品で共同作業しており、これは互いのコードと絶え間なく相互作用していることを意味します。 私はかつて、それぞれの開発者が異なるビジネスユニットをサポートする環境で働いていました。私たちはよく同じような問題を解決しましたが、プロジェクト間でコードをコピーする代わりに、混乱した編集や脆弱なソリューションを引き起こした代わりに、私たちはより良いアプローチを採用しました。誰かが何か役に立つものを構築するたびに、私たちはそれを他の誰かが統合できる小さなサービスに変えました。 このようにして、お互いのコードに踏み込むことなく、清潔で維持可能なソリューションを持っていました。時間の経過とともに、この考え方は破壊することなく協力の文化を構築しました:すでに機能しているものを破ることなくソリューションを共有しました。 Minecraftでは、子供たちのビルドをバルドー化し、自分の「マスタープラン」を世界に押し付けることができますが、彼らにとってはあまり面白くないし、もはや私たちの世界ではありません。 ソフトウェアは同じように機能します. あなたは他人が書いたものを分解したり、それと一緒に作業したり、それを改善したり、より強力なものに折りたてることができます. それはチームが成長し、コードベースが健全であり、すべての人の貢献が痕跡を残します。 結局のところ、それが港であろうと、幽霊の森であろうと、共有されたコードベースであろうと、目標は建造することではない。 ワールド:It's to Build 世界 わたし わたしたち Keep Building ビデオゲームをエンジニアリングのガイドと呼ぶことはストレッチのように聞こえるかもしれませんが、そうではありません。Minecraftとエンジニアリングの両方で、私たちは同じように前進します:一度に一歩ずつ、混沌を何か意味のあるものに形作ることによって。そのリズムは単にコードやブロックに適用されません。 Chaos は銀の Jira プレートで私たちに提示され、少なくとも一部のユーザーにとっては世界を変えることができるものにそれを組織するよう求められています。 Chaos は銀の Jira プレートで私たちに提示され、少なくとも一部のユーザーにとっては世界を変えることができるものにそれを組織するよう求められています。 それは恐ろしいように聞こえるかもしれませんが、あなたはすでにあなたの人生と趣味の中で毎日これを行っています;あなたはソフトウェア開発に同じ考え方を持ち込む必要があります。 私のAIの実験は、Minecraftで始まったような感じでした。次回は、AIの世界で木を叩くのを感じることをシェアします。 (当初は Substack に掲載されていた。 ) https://halexmorph.substack.com/p/the-incremental-mindset