プロジェクト設立のお話

2024/09/21 公開 (2024/10/12 更新)

このサイトでブログを書くのは初めてです~!自分で作ったプラットフォームに自分で書き込むのって、なんか変な感じがしますw

記念すべき1本目は、プロジェクトを設立した背景をお話しようと思います。

マイクラ自動化 (2019年~)

もう5年ほど前になるんですかね~りおさんとちょまどさん、つよつよエンジニアのお二人がマイクラを Python と Azure を使って自動化していたんですね。

これを見て私は「もしかして、マイクラとプログラミングってめっちゃ相性良いのでは?」と思い、色々と試し始めたのがきっかけです。

最初は CoreRCON というライブラリを使用して、遠隔操作でコマンドを実行するプログラムを作るところから始めました。当時、Qiitaで記事を書いていたのですが、そのときの画像を持ってきました。この例では湧きつぶしを自動化しています。

基本的な RCON の使い方はこんな感じで、非同期なメソッドが必要になります。

using CoreRCON;
using System.Net;

static async Task Command()
{
    var serveraddress = IPAddress.Parse("127.0.0.1");
    ushort port = 25575;
    var serverpass = "minecraft";
    //RCONインスタンス生成
    var connection = new RCON(serveraddress, port, serverpass);
    await connection.SendCommandAsync("time set 0");
}

で、このままでは マイクラのコマンドを知らないと、動かせないよなぁ と思い、私のほうでマイクラに特化したライブラリを作りました。それが MinecraftConnection です。

using MinecraftConnection;

string address = "127.0.0.1";
ushort port = 25575;
string pass = "minecraft";
MinecraftCommands command = new MinecraftCommands(address, port, pass);

command.TimeSet(0);

マイクラのコマンドを知らなくても書けるようになりますし、エディタにもよりますが補完機能も使えますね。

マイクラプログラミング領域を探る (2020年~)

当時は マイクラ × C# 領域を開拓している人があまりいなかったので、C# で色々できたら面白いよな~という軽い気持ちで色々手を付け始めました。これまでに色々やってきましたが、個人的に1番面白かったのが「花火づくり」です。

マイクラで花火を打ち上げようと思ったら、素材からクラフトする方法もありますが、

/summon firework_rocket ~ ~ ~ {"LifeTime":30,"FireworksItem":{"id":"firework_rocket","Count":1,"tag":{"Fireworks":{"Flight":2,"Explosions":[{"Type":2,"Flicker":1,"Trail":0,"Colors":[I;11743532],"FadeColors":[I;]}]}}}}

こんな長いコマンドを作らないといけないわけです。これをコマンドブロックに入れて動かすのもいいのですが、大変面倒です。そこで、反復処理や条件分岐、変数などが使えるプログラミングならもっと効率よく作れるのではないかと思い、花火用向けにライブラリを拡張しました。

Position pos = new Position(20, 64, 80); // 花火の座標を定義

Fireworks fw = new Fireworks() // 花火を定義
{
    LifeTime = 30,
    Type = FireworkType.Star,
    Colors = new List<FireworkColors> {FireworkColors.RED},
    Flicker = true
};

commands.SetOffFireworks(pos, fw);

結果、いろんな種類の花火を作れるようになりました。すごい!

ちなみに、数学 (フーリエ級数展開) を使って矩形波の近似も試してみたり・・。色々できますね。

花火を打ち上げるだけでも、プログラミングの様々なスキルを使います。となれば、そのスキルを習得できるような学習コースを作れたら、マイクラから気軽にプログラミングを学んでみよう(遊んでみよう)という人が増えるのかな~と。そんなことを思いつつ、ライブラリの使い方を含めた記事を公開してきました。

マイクラ × クラウドの可能性を探る (2021年~)

マイクラではマルチプレイができますが、サーバが必要ですよね。ということで、クラウド上でマイクラサーバを構築する手順もブログで紹介していました。ここで、マイクラとクラウドも色々できるのでは?と思って色々試していました。

  • Azure Virtual Machines でマイクラサーバ構築
  • Azure Functions を使って一定時間ごとに農作物回収
  • Azure Web Apps で自動化をWeb上で操作

試したものをブログにまとめたり、学生イベントで登壇したりと色々していた結果、様々な知見が蓄積されました。

このスライドにマイクラとクラウドでできることがまとまっています。これは卒業後の登壇イベントで発表した資料ですが、このサイト用に学習リソースとして加える予定です。

Webプラットフォームの開発 (2023年~)

いろんなところで活動していたこともあり、このプロジェクトでやってきたことを1箇所にまとめたいなと思うようになりました。以前からサイトはあったのですが、生のHTMLでコンテンツ追加していたので、かなり限界を感じていました。このサイト、実は手動で色々コードいじって反映していましたからね・・w

そこで、記事を管理できる管理用ページと閲覧者用のページを作ろうと思い、Web開発に入りました。実際に作ろうと思って着手し始めたのが2023年9月頃で、まずはデザイン周りなどをやりました。

デザインができてきたところで、技術選定やモデル設計などを進め、約1年ほどかかりましたが公開できました。UIまわりも scss を使用して1から作成したので、思ったより時間がかかってしまいましたが、いい勉強になりました。

開発周りの話についてはこのブログで色々発信していこうと思いますので、どうぞお楽しみに~

そして現在に至る

ということで、プロジェクト発足から現在 (2024年9月時点) までの活動をまとめました。まだまだやりたいことがたくさんありまして、マイルストーンもざっくりですが決めています。

今後、このプラットフォームを軸に マイクラプログラミングでできること を共有できたらいいなと思っています。ちなみに、Mod開発やアドオン開発などでも共有できそうなことがあれば、追加していく予定です。

たくのろじぃ

本プロジェクトの企画・運営担当。ChatGPTといっしょにWebサイトを立ち上げ、マイクラプログラミングに関する記事を執筆中。趣味は温泉旅行とプログラミング。