Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Minecraft with Code Project 概要

Minecraft with Code Project 概要

Minecraft with Code Project についての紹介スライドです。
Webサイト https://www.mcwithcode.com/

More Decks by たくのろじぃ / Takunology

Other Decks in Technology

Transcript

  1. Minecraft with Code Project 概要
    たくのろじぃ / Takunology (Takumi Okawa)
    @takunology_net
    Takunology
    Java版Minecraft を用いたプログラミング学習の支援とコンテンツ提供
    2022/08/24 更新

    View Slide

  2. 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 たくのろじぃのメモ部屋

    View Slide

  3. 目次
    1. Gigaスクール構想とプログラミング教育
    2. Minecraft によるプログラミング学習
    3. Minecraft with Code Project
    4. Minecraft へのコマンド送信
    5. MinecraftConnection
    6. 実装例
    7. プロジェクト紹介
    3

    View Slide

  4. 1. Gigaスクール構想とプログラミング教育
    4
    Gigaスクール構想 学校でのICT教育を活用するため、生徒1人に1台ずつ端末を配布
    • 生徒の反応を踏まえた双方向型の授業
    • 1人1人の学習状況に応じた個別学習
    • 意見交換を通じて多様な考え方を共有
    ICT教育 ICTの活用によって、子供たちの力を最大限に引き出せるような学びを提供
    • 調べ学習による情報の収集・整理・分析
    • 文章作成やメディアを用いた表現・制作
    • 各学校との連携や海外との遠隔教育(リモート授業)
    • 情報技術を活用することによる情報モラル教育
    (リーフレット)GIGAスクール構想の実現へ (mext.go.jp)
    参考:

    View Slide

  5. 1. Gigaスクール構想とプログラミング教育
    5
    プログラミング教育 プログラミング教育を通して、コンピュータの仕組みや活用方法を見いだせるようにする
    • コンピュータを用いた問題解決およびコンピュータの理解
    • プログラミング的思考(処理の組み合わせ)の習得
    • コンピュータの活用による社会づくり
    教育の情報化の手引き-追補版-(令和2年6月)第3章 (mext.go.jp)
    参考:
    ビジュアルプログラミング 処理の書かれたブロックをつないでプログラムを作成していく
    • 理科:電気回路を模倣したプログラムの作成(例:距離が〇〇のとき点灯)
    • 数学:図形の描画や統計を行えるプログラムの作成
    • 社会(総合):タッチパネル式の町案内表示板の作成
    • 音楽:リズム・パターンの組み合わせによる作曲

    View Slide

  6. 2. Minecraft によるプログラミング学習
    6
    Minecraft の活用 Minecraft Education Edition にはプログラミング学習コースがある
    エージェントをプログラムで動かすことで、ブロックを積み上げたりアイテムを運んだりすることができる
    → ビジュアルプログラミングによるプログラミング学習ができる!
    海外では教材として取り入れられているが、日本ではあまり普及していない・・・

    View Slide

  7. 2. Minecraft によるプログラミング学習
    7
    Minecraft Education Edition を利用するには・・・?
    → Office 365 A3 / A5 サブスクリプションが必要(学校側で導入)
    Office 365 Education プランの比較 (microsoft.com)

    View Slide

  8. 2. Minecraft によるプログラミング学習
    8
    Minecraft Win10版 ではプログラミング学習は可能か・・・?
    → Code Connection for Minecraft を使用するとプログラミングが可能(ただし学習コースはない)
    (Education Edition を有効にすると、元素記号の書かれたアイテムが使える)

    View Slide

  9. 2. Minecraft によるプログラミング学習
    9
    Java版Minecraft でプログラミング学習は可能か・・・?
    → 学習コースは用意されていないが、Mod開発やプラグイン開発を通してプログラミング(Java)は可能
    しかし、どちらも初心者向けではなく経験者向けなので難易度が高い

    View Slide

  10. ここまでのまとめと提案
    10
    Gigaスクール構想 + プログラミング教育 の普及 → 学生がコンピュータを扱う機会が増加
    Minecraft Education Edition での教育 → マイクラの世界でプログラミングができる
    Java版Minecraft でプログラミング学習できるコンテンツをつくる
    Java版Minecraft でプログラミング学習は・・・?
    → 学習コースは無く、初心者よりも経験者向けの内容(Mod開発 / プラグイン開発)
    子供から大人まで人気の Minecraft ならば楽しく学習できそうだが・・・
    → Minecraft Education Edition でプログラミング学習ができるのは一部の学生(団体)だけ
    → Win10版ならばプログラミング学習可能(ただし学習コースはないので書籍を買いましょう)

    View Slide

  11. 3. Minecraft with Code Project
    11
    Java版Minecraftを使用して、C#言語によるプログラミングを体験できるコンテンツを制作するプロジェクト
    マイクラ自動化 プログラミング入門

    View Slide

  12. 3. Minecraft with Code Project
    12
    マイクラで花火大会を実現するためのもう1つのプロジェクト : Fireworks Project
    MS Tech Camp #17 後夜祭!より

    View Slide

  13. 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/

    View Slide

  14. 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

    View Slide

  15. 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
    クライアント サーバ

    View Slide

  16. 5. MinecraftConnection
    16
    マイクラのコマンドを C# から送信することを可能にした、マイクラプログラミング向けライブラリ
    2022年8月の時点では Version 2.0.1 です。

    View Slide

  17. 6. 実装例
    17
    MinecraftConnectionを使って花火を打ち上げるプログラムを作る例

    View Slide

  18. 6. 実装例
    18
    まず、プレイヤーの現在地(相対座標)を取得するには・・・
    - /data get コマンドを実行してプレイヤーの情報を取得する
    - 取得できるデータは不要な文字列も含まれているので、正規表現を使って座標だけ抽出
    - 座標は文字列型なので、型変換して算術演算ができるようにする
    ← CoreRCON を使った場合
    ↓ MinecraftConnection を使った場合

    View Slide

  19. 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]}]}}}}
    上記のコマンドをプログラムで定義する
    作ったプログラムは再利用可能なので、コマンドを打ち直さなくても良い

    View Slide

  20. 7. プロジェクト紹介
    20
    Minecraft 自動化
    MinecraftConnection を使用した C# プログラミング
    建築や湧き潰しなどの実践的な活用方法について考える
    Mod 開発
    プログラミング学習
    Fireworks Project
    Forge を用いた Java プログラミング
    オリジナルアイテムやツールの制作を通してMod開発を体験する
    Minecraft で C#プログラミングを学習する
    Minecraft で打ち上げ花火を楽しむ
    Minecraft with Code Project Minecraft とプログラミングで楽しく遊べるコンテンツ製作を目指す

    View Slide

  21. ロードマップ
    21
    プログラミングをするための 「きっかけ」 と「技術」を支援
    入門者 / 学生
    初心者
    経験者
    Minecraft Education Edition / Scratch などの
    ビジュアルプログラミングを用いた学習
    MinecraftConnection を用いた C#プログラミング学習
    より高度なプログラミングの体験
    マイクラ自動化 / Fireworks Project
    社会人 / 経験者
    業務や趣味でC#プログラミングができるようになる
    .NET / ASP.NET / Console / Unity(VR) / Mobile …

    View Slide

  22. Minecraft with Code Project

    View Slide