Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Minecraft with Code Project 概要
Search
たくのろじぃ / Takunology
August 04, 2021
Technology
0
6.6k
Minecraft with Code Project 概要
Minecraft with Code Project についての紹介スライドです。
Webサイト
https://www.mcwithcode.com/
たくのろじぃ / Takunology
August 04, 2021
Tweet
Share
More Decks by たくのろじぃ / Takunology
See All by たくのろじぃ / Takunology
家族のために ChatGPT と話せるLINE Bot を作った話
takunology
0
340
Minecraft を使った Azure の新しい学び方
takunology
2
1.2k
MLSA 卒業式&歓迎会!@Microsoft Base 代官山
takunology
0
140
マイクラ花火師入門
takunology
1
430
Ambassadors Meetup 2022
takunology
1
1.2k
MS Tech Camp #14 資料
takunology
0
240
ASP.NET Core と Azure Web Apps でできる!簡単 Web サイト作成&公開デモ
takunology
0
230
MinecraftConnection ライブラリによるマイクラプログラミング
takunology
0
410
Other Decks in Technology
See All in Technology
オブジェクト指向宗教史
tanakahisateru
14
12k
10分でわかるfreeeのQA
freee
0
260
OpenTelemetry実践 はじめの一歩
taxin
0
320
複数の LLM モデルを扱う上で直面した辛みまとめ
kazuyaseki
1
250
ハイパフォーマンスな組織をつくるための開発生産性の考え方 / developer-productivity-high-performer-link-and-motivation
lmi
3
270
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
1.2k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
12
3k
技育祭2024春 LT Finatextホールディングス
kevinrobot34
1
170
実務への応用例から考える 変更に強いオブジェクト指向設計 / 20240324-ooc2024
bengo4com
7
5.5k
データマネジメントを支える武器としてのメタデータ管理
10xinc
2
890
Cloud Friendly(?) Jenkins. How we failed to make Jenkins cloud native and what we learned?
onenashev
PRO
0
110
やっていきテスト
k6s4i53rx
0
160
Featured
See All Featured
Bash Introduction
62gerente
604
210k
Web development in the modern age
philhawksworth
201
10k
Why Our Code Smells
bkeepers
PRO
330
56k
Into the Great Unknown - MozCon
thekraken
10
830
Practical Orchestrator
shlominoach
180
9.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
14
1.3k
Become a Pro
speakerdeck
PRO
8
4.4k
How GitHub Uses GitHub to Build GitHub
holman
467
290k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
Happy Clients
brianwarren
91
6.3k
Robots, Beer and Maslow
schacon
PRO
154
7.9k
Transcript
Minecraft with Code Project 概要 たくのろじぃ / Takunology (Takumi Okawa)
@takunology_net Takunology Java版Minecraft を用いたプログラミング学習の支援とコンテンツ提供 2022/08/24 更新
2 自己紹介 大川 匠 (たくのろじぃ/Takunology) 日本大学理工学部 4年 / 元高専生 【趣味】
プログラミング / Minecraft / Azure で遊んだり、GitHub徘徊したり… 【好きな言語】 C#(最近は Windows App SDK / WinUI 3 まわりを触ったりしてます) 【主な活動】 • Minecraft with Code Project (2020/11/1~) • Microsoft Learn Student Ambassadors (2021/1/7~) • MinecraftConnection ライブラリ開発 (2021/7/1~) • classmall Kids マイクラプログラミング講師 (2022/7/6~) 【出版物 (Zenn にて公開中)】 • Azure × LINE Messaging API によるMinecraft 農業の自動化 (2021/3/8) • C#ではじめるマインクラフトプログラミング (2022/2/9) @takunology_net Takunology たくのろじぃのメモ部屋
目次 1. Gigaスクール構想とプログラミング教育 2. Minecraft によるプログラミング学習 3. Minecraft with Code
Project 4. Minecraft へのコマンド送信 5. MinecraftConnection 6. 実装例 7. プロジェクト紹介 3
1. Gigaスクール構想とプログラミング教育 4 Gigaスクール構想 学校でのICT教育を活用するため、生徒1人に1台ずつ端末を配布 • 生徒の反応を踏まえた双方向型の授業 • 1人1人の学習状況に応じた個別学習 •
意見交換を通じて多様な考え方を共有 ICT教育 ICTの活用によって、子供たちの力を最大限に引き出せるような学びを提供 • 調べ学習による情報の収集・整理・分析 • 文章作成やメディアを用いた表現・制作 • 各学校との連携や海外との遠隔教育(リモート授業) • 情報技術を活用することによる情報モラル教育 (リーフレット)GIGAスクール構想の実現へ (mext.go.jp) 参考:
1. Gigaスクール構想とプログラミング教育 5 プログラミング教育 プログラミング教育を通して、コンピュータの仕組みや活用方法を見いだせるようにする • コンピュータを用いた問題解決およびコンピュータの理解 • プログラミング的思考(処理の組み合わせ)の習得 •
コンピュータの活用による社会づくり 教育の情報化の手引き-追補版-(令和2年6月)第3章 (mext.go.jp) 参考: ビジュアルプログラミング 処理の書かれたブロックをつないでプログラムを作成していく • 理科:電気回路を模倣したプログラムの作成(例:距離が〇〇のとき点灯) • 数学:図形の描画や統計を行えるプログラムの作成 • 社会(総合):タッチパネル式の町案内表示板の作成 • 音楽:リズム・パターンの組み合わせによる作曲
2. Minecraft によるプログラミング学習 6 Minecraft の活用 Minecraft Education Edition にはプログラミング学習コースがある
エージェントをプログラムで動かすことで、ブロックを積み上げたりアイテムを運んだりすることができる → ビジュアルプログラミングによるプログラミング学習ができる! 海外では教材として取り入れられているが、日本ではあまり普及していない・・・
2. Minecraft によるプログラミング学習 7 Minecraft Education Edition を利用するには・・・? → Office
365 A3 / A5 サブスクリプションが必要(学校側で導入) Office 365 Education プランの比較 (microsoft.com)
2. Minecraft によるプログラミング学習 8 Minecraft Win10版 ではプログラミング学習は可能か・・・? → Code Connection
for Minecraft を使用するとプログラミングが可能(ただし学習コースはない) (Education Edition を有効にすると、元素記号の書かれたアイテムが使える)
2. Minecraft によるプログラミング学習 9 Java版Minecraft でプログラミング学習は可能か・・・? → 学習コースは用意されていないが、Mod開発やプラグイン開発を通してプログラミング(Java)は可能 しかし、どちらも初心者向けではなく経験者向けなので難易度が高い
ここまでのまとめと提案 10 Gigaスクール構想 + プログラミング教育 の普及 → 学生がコンピュータを扱う機会が増加 Minecraft Education
Edition での教育 → マイクラの世界でプログラミングができる Java版Minecraft でプログラミング学習できるコンテンツをつくる Java版Minecraft でプログラミング学習は・・・? → 学習コースは無く、初心者よりも経験者向けの内容(Mod開発 / プラグイン開発) 子供から大人まで人気の Minecraft ならば楽しく学習できそうだが・・・ → Minecraft Education Edition でプログラミング学習ができるのは一部の学生(団体)だけ → Win10版ならばプログラミング学習可能(ただし学習コースはないので書籍を買いましょう)
3. Minecraft with Code Project 11 Java版Minecraftを使用して、C#言語によるプログラミングを体験できるコンテンツを制作するプロジェクト マイクラ自動化 プログラミング入門
3. Minecraft with Code Project 12 マイクラで花火大会を実現するためのもう1つのプロジェクト : Fireworks Project
MS Tech Camp #17 後夜祭!より
C#言語でできることは多い 13 C#だけでWebアプリやデスクトップアプリ、モバイルアプリなどを作れるような環境が整ってきた → C#を習得できれば幅広くアプリ開発ができるようになる Cloud Web Desktop Mobile Gaming
IoT AI Azure ASP.NET Blazor .NET MAUI WPF/WinUI WinForms .NET MAUI Xamarin Unity ARM32 ARM64 ML.NET .NET for Apache Spark .NET 6 Common Base Libraries / APIs Infrastructure Runtime Components Compilers Languages 【参考】 https://devblogs.microsoft.com/dotnet/announcing-net-6/
Minecraft も加えたい 14 Minecraft も1つのプラットフォームとして .NET と結びつけたい → C#でできることを増やす 現在は
Java 版のみだが、可能であれば統合版や教育版にも広げていく Cloud Web Desktop Mobile Gaming IoT AI Azure ASP.NET Blazor .NET MAUI WPF/WinUI WinForms .NET MAUI Xamarin Unity ARM32 ARM64 ML.NET .NET for Apache Spark .NET 6 Common Base Libraries / APIs Infrastructure Runtime Components Compilers Languages Minecraft Java Edition Bedrock Edition Education Edition
4. Minecraft へのコマンド送信 15 TCP/IP ベースの通信プロトコルを用いて、サーバにコマンドを送る RCON (Remote Console) Login
Pass(Request ID) / Command / Command response で構成されている パケット Login pass Request ID Request ID connect ・ ・ ・ Command Response ・ ・ ・ close Minecraft へのコマンド送信はRCONプロトコルを使用する 参考:RCON - wiki.vg クライアント サーバ
5. MinecraftConnection 16 マイクラのコマンドを C# から送信することを可能にした、マイクラプログラミング向けライブラリ 2022年8月の時点では Version 2.0.1 です。
6. 実装例 17 MinecraftConnectionを使って花火を打ち上げるプログラムを作る例
6. 実装例 18 まず、プレイヤーの現在地(相対座標)を取得するには・・・ - /data get コマンドを実行してプレイヤーの情報を取得する - 取得できるデータは不要な文字列も含まれているので、正規表現を使って座標だけ抽出
- 座標は文字列型なので、型変換して算術演算ができるようにする ← CoreRCON を使った場合 ↓ MinecraftConnection を使った場合
6. 実装例 19 花火を打ち上げるには・・・ - /summon コマンドを使用してロケット花火を打ち上げる - ロケット花火を構成するデータが初見の人には何がなんだかわからないかも? /summon
firework_rocket ~20 ~ ~ {LifeTime:30,FireworksItem:{id:firework_rocket,Count:1,tag:{Fireworks:{Flight:2,Explo sions:[{Type:1,Flicker:0,Trail:0,Colors:[I;3887386],FadeColors:[I;2437522]}]}}}} 上記のコマンドをプログラムで定義する 作ったプログラムは再利用可能なので、コマンドを打ち直さなくても良い
7. プロジェクト紹介 20 Minecraft 自動化 MinecraftConnection を使用した C# プログラミング 建築や湧き潰しなどの実践的な活用方法について考える
Mod 開発 プログラミング学習 Fireworks Project Forge を用いた Java プログラミング オリジナルアイテムやツールの制作を通してMod開発を体験する Minecraft で C#プログラミングを学習する Minecraft で打ち上げ花火を楽しむ Minecraft with Code Project Minecraft とプログラミングで楽しく遊べるコンテンツ製作を目指す
ロードマップ 21 プログラミングをするための 「きっかけ」 と「技術」を支援 入門者 / 学生 初心者 経験者
Minecraft Education Edition / Scratch などの ビジュアルプログラミングを用いた学習 MinecraftConnection を用いた C#プログラミング学習 より高度なプログラミングの体験 マイクラ自動化 / Fireworks Project 社会人 / 経験者 業務や趣味でC#プログラミングができるようになる .NET / ASP.NET / Console / Unity(VR) / Mobile …
Minecraft with Code Project