WebエンジニアからRobloxクリエイターになる
前書き
はじめまして、こんにちは!
ambrでRobloxクリエイターかつサーバーサイドエンジニアをしているhoshino(Facebook)です。
弊社もAdvent Calendarをやるとのことだったので、私もRobloxとキャリアのお話で参加します。
本記事では、技術的な内容を中心に、WebエンジニアとRobloxクリエイターという一見かけ離れた仕事が、意外と近いところにあるよ!といった話をします。
以下のような方には特に楽しんでいただけるのではないかと思います!
- Robloxクリエイターになりたいけどスキルセットの違いが不安なWebエンジニア
- そもそもRobloxクリエイターとはなんぞや?と思っている人
上記に当てはまらない人も、ちょっとでも気になった方はぜひご覧いただけますと幸いですm(_ _)m
自己紹介
まずは自己紹介です。全部書くと長くなるので、本記事に関係のある部分のみざっくりご紹介します。
-
新卒〜Robloxクリエイターになるまで
- Webサービスの開発に従事
- 技術スタック
- TypeScript/C#/AWS等のパブリッククラウド
-
Robloxクリエイターとして
- Robloxエクスペリエンスの開発に従事
- 技術スタック
- Luau/Roblox Studio
上述の通り、私自身がWebエンジニアからRobloxクリエイターになった人間です。
本記事は、私の体験に基づき書かれています。
(その他のことについては、また別の記事でご紹介できればと思います!)
Roblox & Robloxクリエイターとは?
自己紹介を読んで、Robloxとは?と思った方も多いと思います。
Robloxとは、公式サイトによれば「遊びを通してみなさんをつなぐ世界規模のプラットフォーム」です!
デイリーアクティブユーザー8,990万人を抱える世界最大規模のメタバースで、ユーザーが自由にエクスペリエンスと呼ばれるワールドをアップロードできるのが特徴の1つです。
エクスペリエンスでできることはかなり自由度が高く、ゲームをアップロードできる、といっても間違いではないです。
Robloxクリエイターの開発の仕事は、このエクスペリエンスを作ることになります!
本題: WebエンジニアからRobloxクリエイターになる
さて、ここからが本題です。
前書きのとおりですが、WebエンジニアからRobloxクリエイターになる際に感じた技術的な類似性について紹介します!
本記事では、以下の3点について触れていこうと思います!
- 言語
- パッケージマネージャー & ツールチェインマネージャー
- エディタ
言語
Roblox開発では、Luauという言語を使って開発します。
察しの良い方は名前からお気づきかもしれませんが、Luaを拡張した言語で、最も特筆すべきポイントはLuaにany型を持つ型付けを導入したところです。
ここでは、any型とは、任意の型として扱える型とご理解いただいてよいです。
Luau公式の解説を以下に引用しましょう。
any
is just likeunknown
, except that it allows itself to be used as an arbitrary type without further checks or annotations. Essentially, it’s an opt-out from the type system entirely.
local x: any = 5
local y: string = x -- no type errors here!
TypeScriptも、同じくany型を持つ言語です。
TypeScriptはWeb開発でよく使われるので、LuauとTypeScriptのこの類似性を、Web開発とRoblox開発の1つ目の類似性としましょう!
TypeScript経験者の方はこれで言語に対する不安がなくなりましたね!
実際のところ、TypeScriptを書いたことがある人であれば、Luauはかなりさっくり習得できると思います。強すぎる癖もなく、使いやすい言語です。
また、TypeScriptからLuauへのトランスパイラもいくつか存在しています。
最初のうちはこれらを使うのもいいかもですね!
そして、TypeScriptでない言語で開発していた方にも朗報です!
TypeScriptやLuauの型システムはざっくりいうと動的型付けと静的型付けのいいとこ取りをした型付けです。
上述の通りLuau自体も癖が多くない言語のため、動的 or 静的型付き言語で開発していた方も、さくっと習得できるのではないかと思います。
パッケージマネージャー & ツールチェインマネージャー
Webエンジニア開発だと、諸々の管理にパッケージマネージャー & ツールチェインマネージャーを使うこともあるでしょう。
私自身も使っていましたし、使うことで各種環境構築が非常に快適になります。
Roblox開発においても、便利なサードパーティ製マネージャーを使うこともできます。
それを使うことで、快適に開発環境構築ができるようになります。
これを2つ目の類似性としましょう!
ここでは個別のマネージャの使い方は説明しませんが、いくつかご紹介のみいたします。
エディタ
Web開発では、VS Code、Vimなどの好みのエディタを使って開発することが多いと思います。
また、環境によっては言語ごとにIDEを使い分けることもあるでしょう。
Roblox開発では、標準ではRoblox Studioに内蔵されたIDEを使います。
言語ごとにIDEを使い分けることに慣れている人なら、これを使うのも1つの選択です。
しかし、自分の使い慣れたIDEを使って開発したいこともあるでしょう。
Robloxでは最近、これが可能になりました!これで、エディタもWeb開発と合わせることができましたね!
また、Rojoという拡張機能を使うことで、ソースコードをエクスペリエンスから切り離して、Git等で管理することもできます。本記事では詳細な使い方は説明しませんが、上記のaftmanからも導入できます。
その他、VS CodeなどではLuau言語向けの拡張機能も提供されており、快適な環境を構築可能です。
本記事ではご紹介に留めますが、いつかは環境構築記事も執筆できればと思います!
- おすすめエディタ拡張(主にVS Code向け)
後書き
ここまで読んでいただきありがとうございます!
Web開発とRoblox開発、意外と似てるところが多いと思っていただけましたでしょうか?
本記事が、これからRobloxクリエイターを目指す方の精神的な後押しになれたら幸いです。
(技術的な後押しとなるような記事は近い内に……!)
宣伝
ambrでは、Robloxクリエイターを積極募集中です!
本記事を読んで、Robloxクリエイターに興味を持った方は、よろしければ採用ページもご覧いただけますと幸いです。
Discussion