Luaを学ぶ - コーディング講座
Luaを学ぶ - コーディング講座 — スマートフォンで20種類のミニゲームを作りながら学ぶLuaプログラミング
Luaを学ぶ - コーディング講座は、最初のprint()からメタテーブルやコルーチンまで学べる、無料のiOSおよびAndroid向けLuaプログラミングコースです。スマートフォン上でLua 5.3インタプリタが動作するため、内蔵Luaエディタにパソコンは必要ありません。Pong、Snake、Tower Defenseなど20種類のガイド付きミニゲームで、コードが本当に意図どおりに動くかを確認できます。40コース、159の短いレッスンをAI Mentorがサポートします。
- 価格
- 無料、Proへのアップグレード
- プラットフォーム
- iOSおよびAndroid
- 言語
- 22
- 年齢レーティング
- 4+
- 必要環境
- iOS 15.1以降
- App Store
- 4.3 ★ (13)


ゲームエンジンではなく、Luaコースです。
Luaを学ぶ - コーディング講座は、Luaそのものを教えるアプリであることを明確にしています。Robloxではなく、ゲームエンジンでもなく、Roblox Corporationとは提携していません。Robloxのスクリプトは、Luaを基に作られた言語であるLuauで記述されます。そのため、ここで練習する基礎は、Roblox Studioのスクリプトが出発点とするものと同じです。
概要
Luaを学ぶ - コーディング講座は、Luaプログラミングを学べる無料のiOSおよびAndroid向けアプリです。初心者(A1)から上級者(C1)までを対象とした40コースと159の短いレッスン、スマートフォン上でLua 5.3インタプリタを実行する内蔵Luaエディタ、20種類のガイド付きミニゲームプロジェクト、60のコーディングミッション、AI Mentorを備えています。Lua言語のプログラミングコースであり、ゲームエンジンではありません。また、Robloxとは提携していません。
アプリの内容
画面イメージ





コース
Luaコースの内容
40コース、159の短いレッスンを収録しています。コース名はアプリ独自のリストに基づいており、最初のスクリプトから他のプログラムへのLuaの組み込みまで学べます。
Welcome to LuaとLua Basics
Luaとは何か、どこで実行できるかを学び、変数、型、演算子、数値、mathライブラリへと進みます。
制御フロー、関数、テーブル
if、elseif、else、while、repeat-until、forループ、複数の戻り値とvarargs、さらに配列、辞書、レコードとして使うテーブルを学びます。
文字列、メタテーブル、エラー処理
stringライブラリとパターンマッチング、__indexや__addなどのメタテーブルとメタメソッド、pcallとxpcallによるエラーハンドリングを学びます。
モジュール、コルーチン、オブジェクト指向Lua
モジュールとrequire、resumeとyieldを使ったコルーチン、メタテーブルを基盤とするクラスと継承を学びます。
クロージャ、イテレーター、ゲームロジック
クロージャとupvalues、カスタムイテレーターとジェネレーター、イベントシステムやゲームの動作に使うLuaスクリプティングを学びます。
Game Development with LÖVE
LÖVEフレームワークとLuaで2Dゲームを作りながら、bustedを使ったユニットテストも学べます。
Lua Beyond Games
Redisスクリプティング、Neovimプラグイン、LuaSocketによるネットワーク通信、OpenRestyを使ったNginx内のLuaを学びます。
Advanced Lua
メモリ管理と弱いテーブル、CへのLuaの組み込み、LuaJITのパフォーマンスとFFI、サンドボックス化、ドメイン固有言語の構築を学びます。
使い方
レッスンの進め方
レッスンは短く、毎回、自分でコードを書いて実行するところまで行います。レッスンそのものにはインターネット接続が必要です。
短いレッスンを受ける
コースを開いて1つのレッスンを読みます。数段落の理論と、レッスンのコードボックスにある例を通じて、たとえばlocal変数が1つのブロック内に値を保持し、プログラムの残りの部分には影響を与えない仕組みを学びます。
エディタで自分のLuaを実行する
コードエディタはスマートフォン上でスクリプトを即座に実行し、わかりやすいエラーメッセージを表示するため、入力ミスもすぐに見つかります。Luaチートシート、クイズ、フラッシュカード復習で、覚えておくべき知識を身につけられます。
ゲームを段階的に作る
ゲームプロジェクトでは、各ステップで数行のコードを書き、アプリがゲームの動作を確認します。ボールが動くか、スコアが増えるかといった点をチェックします。行き詰まったときは、ヒントを見たり解答を表示したりできます。
内容
アプリの内容
40
A1からC1までのコース
変数や制御フローから、クロージャ、メタテーブル、コルーチン、CへのLuaの組み込み、LuaJITまでを扱う159の短いレッスンです。
20
ガイド付きミニゲーム
Pong、Snake、Flappy、Brick Breaker、Space Shooter、Maze Escape、Tower Defenseなどを、1ステップずつ確認しながら作成します。
Lua 5.3
スマートフォン上のインタプリタ
パソコンもセットアップも必要なく、内蔵エディタでLuaを書いて実行できます。
60
コーディングミッション
簡単なものから難しいものまで、XPを獲得できるミッションを用意しています。さらに、簡易シミュレーターでRoblox風のスクリプトパターンを練習できる、3つのobbyスタイルのコースもあります。
AI
AI Mentor
レッスンやエラーメッセージについて質問すると、わかりやすい説明を受けられます。無料アカウントでは、レッスン中に1日3回までAIに質問できます。
毎日
World Coding Challenge
毎日3回、世界中のユーザーが参加するラウンドを開催します。連続記録、XP、進捗トラッキングで、 नियमित的な練習を続けられます。
背景
Luaは何に使われますか? 初めて学ぶプログラミング言語として適していますか?
Luaは、ほかのプログラムに組み込んで使うために設計された、小さく高速なスクリプト言語です。そのため、多くのゲームのスクリプト層、LÖVE(Love2D)2Dゲームフレームワーク、Neovimのプラグイン、Redisのスクリプト、組み込みデバイスなどで使われています。構文は簡潔で読みやすく、核となる考え方も少ないため、初めて学ぶ言語として親しみやすいでしょう。ただし、単一のデータ構造や、オブジェクト指向コードを独自の方法で記述する仕組みについては、偶然ではなく意識して学ぶ価値があります。
テーブル唯一のデータ構造
Luaには、配列、辞書、レコードそれぞれに独立した型はありません。テーブルがその3つすべての役割を担うため、リスト、キーと値のマップ、後から作るオブジェクトを、ひとつの考え方で扱えます。実際のLuaコードを読めるようになるには、テーブルに慣れることが大部分を占めます。
メタテーブルとメタメソッドLuaでオブジェクトを扱う方法
組み込みのclassキーワードの代わりに、Luaではテーブルに別のテーブルを持たせ、そのテーブルによって、インデックスでアクセスしたとき、値を追加したとき、または表示したときの振る舞いを決められます。オブジェクト指向プログラミング、継承、演算子オーバーロードは、すべてこのひとつの仕組みから構築されます。
コルーチン意図的に関数を一時停止する
コルーチンは、途中で停止して制御を返し、後から停止した場所から再開できる関数です。ゲームでは、ほかの処理をすべて止めることなく数フレーム待機するカットシーンや敵の動作を、自然にスクリプト化できます。
LuaとLuau関連していますが、同一ではありません
LuauはLuaから派生した言語で、Robloxで使われており、型注釈などの追加機能があります。変数、ループ、関数、テーブルはどちらでも同じように動作するため、Luaの基礎はそのまま活かせます。Luau固有の機能は、その上に重ねて学べます。
適しています
向いている方・向いていない方
次のような方におすすめです
- Luaプログラミングを最初から学びたい方。コードを書く前に、すべての概念を解説してほしい方
- リファレンスを読むよりも、小さなゲームを完成させながら学びたい方
- Robloxで遊んでいて、パソコンでRoblox Studioを開く前に、スクリプトの背後にある言語を理解したい方
- LÖVE、Neovim、Redis、組み込みツールのためにLuaが必要な方
- 1日の中に短い空き時間があり、その時間に収まるレッスンを好む方
次のような方には適していません
- ゲームエンジンやRoblox Studioの代替品を期待している方:これは言語コースです
- レッスンをオフラインで受ける必要がある方:レッスンにはインターネット接続が必要です
- すべて無料で使いたい方:最初のコース、3つのゲームプロジェクト、2つのミッションは無料で、無料版には広告が表示されます
- すでに毎日Luaを書いていて、リファレンスマニュアルを求めている方
ご質問
よくある質問
スマートフォンでLuaプログラミングを学ぶ最適な方法は何ですか?
すぐに実行できる短いレッスンは、スマートフォンでの学習に適しています。Luaを学ぶ - コーディング講座には、40コースと159レッスン、デバイス上でLua 5.3インタープリターを実行できる内蔵エディター、コードをステップごとに確認する20のミニゲームがあります。iOSとAndroidで無料で始められます。
このアプリでLuaを学ぶのにパソコンは必要ですか?
いいえ。Luaインタープリターはスマートフォン上で動作するため、何もインストールせずに内蔵エディターでコードを書いて実行できます。後からLÖVEフレームワークを使ったりNeovimプラグインを書いたりする際にはパソコンが便利になります。これらについてはコースで解説しますが、実行するにはデスクトップ環境が必要です。
Luaを学ぶ - コーディング講座はRobloxと同じものですか?
いいえ。これはLuaプログラミングコースであり、Roblox Corporationが制作、推奨、提携しているものではありません。RobloxのスクリプトはLuaを基盤とする言語Luauを使用するため、ここで学ぶ変数、ループ、関数、テーブルの知識は応用できます。準備として、簡略化されたシミュレーターでRoblox風のパターンを練習する、obbyスタイルのトラックを3つ用意しています。
Luaは最初に学ぶ言語として簡単ですか?
Luaは小規模な言語の一つで、構文が簡潔で、主なデータ構造もテーブル一つです。そのため、最初に覚えることが少なくて済みます。難しい部分は、メタテーブルやコルーチンなど、後半で登場します。Luaを学ぶ - コーディング講座では、40コースをA1からC1までの順に構成し、こうした概念が基礎の後に登場するようにしています。
どのようなミニゲームを作れますか?
Pong、Snake、Flappy、Brick Breaker、Space Shooter、Maze Escape、Tower Defenseなど、20のガイド付きゲームプロジェクトがあります。各ステップで数行のコードを書き、ボールが動く、スコアが増えるといったゲームの動作を確認します。行き詰まったときは、ヒントまたは完全な解答を利用できます。
ゲーム以外では、Luaは何に使われますか?
Luaは、多くのプログラムにスクリプティング層として組み込まれています。ゲームロジックやLÖVEゲーム以外にも、Neovimプラグイン、Redisスクリプト、組み込みツール、OpenRestyを介したWebサーバーに使われています。Luaを学ぶ - コーディング講座の上級コースでは、これらをすべて取り上げます。
AI Mentorはどのように役立ちますか?
レッスンやエラーメッセージの意味が分からないときは、AI Mentorに質問して分かりやすい説明を受けられます。無料アカウントではレッスン内で1日3回までAIに質問でき、Proでは回数制限がなくなり、AIレッスンジェネレーターとAIコードレビューも利用できます。
Luaを学ぶ - コーディング講座は無料ですか?
アプリはApp StoreとGoogle Playから無料でダウンロードできます。無料版には最初のコース、コードエディター、3つのゲームプロジェクト、2つのミッション、クイズ、チートシートが含まれ、広告が表示されます。週額、月額、年額のサブスクリプションとして提供されるProでは、すべてのコース、20のゲームプロジェクトすべて、60のミッション、無制限のAI Mentor、証明書付きの最終試験、広告なしの環境が利用可能になります。
オフラインで動作しますか?
Luaインタープリターはスマートフォン上で動作しますが、レッスンにはインターネット接続が必要です。Luaを学ぶ - コーディング講座は、オンラインでレッスンを読み終えた直後にコードを実行できる学習体験を想定して設計されています。
対応している言語とデバイスを教えてください。
Luaを学ぶ - コーディング講座は、iOS 15.1以降を搭載したiPhoneとAndroidで動作し、インターフェースは22言語に対応しています。レーティングは4+です。
CoddyKitのその他のアプリ
iOS および Androidで利用できます。