- 1 : 2026/04/27(月) 15:33:29.06 ID:GMSd2vTq0
Minecraftのサーバーは、16GBを超えるメモリを積んだPCで動かすのが当たり前になっている。そこに挑んだのが、Redditユーザー angelthebox(GitHub: 4ngel2769)氏の自作プロジェクト「Macerun」だ。16MBのフラッシュとOctal PSRAMを搭載したESP32-S3マイコン上で、Minecraft Java Edition 1.16.5のサーバーをベアメタルで動作させる。
特徴はJavaランタイムもLinuxカーネルも使わず、ソースコードはすべてC言語で記述されている点だ。FreeRTOS上で動作し、ネットワーク処理はlwIPの生TCPソケットを直接扱う。Minecraft Java版プロトコル754の制約されたサブセットを実装し、最大4名のプレイヤーが同時接続できる。
ワールドは事前生成ではなく、2Dバイオーム生成とバイリニア補間によるハイトマップをオンザフライで計算して送信する方式だ。プレイヤーによるブロック変更やインベントリは、ESP32のNVS(Non-Volatile Storage)パーティションに直接書き込む。
実装済みの機能は、サーバー接続、移動、ブロックの破壊と設置、2×2のインベントリ内クラフト、チャット、基本的な物理演算、体力と空腹の管理など。未実装はMobのスポーンとAI、3×3クラフトテーブル、チェストやかまどといったコンテナ、プレイヤー切断時のインベントリと座標の保存だ。
着想元は、PortalRunner氏がESP32向けに開発した同種プロジェクト「bareiron」。angelthebox氏は、bareironより機能は少ないがESP32-S3とFreeRTOS向けに一から書いた学習目的のプロジェクトだと説明している。ソースコードはGPL-3.0で公開され、ビルドにはESP-IDF v6.0.0が必要。機能追加のPull Requestも歓迎するとしている。
C言語自作のマイクラサーバー、ESP32-S3で動作 | FabScene(ファブシーン)angelthebox氏が、ESP32-S3マイコン上でMinecraft Java Edition 1.16.5のサーバーをベアメタルで動作させるプロジェクト「Macerun」を公開した。JavaランタイムもLinuxもなく、すべてC言語とFreeRTOSで実装されている。最大4名が同時接続可能。fabscene.com- 2 : 2026/04/27(月) 15:34:19.27 ID:1uYN9zOl0
- 糞beアホ過ぎワロタ
- 3 : 2026/04/27(月) 15:34:22.24 ID:GMSd2vTq0
- Hello worldの実行ファイルが1MB近くになる時点で気がつくべきだった
- 4 : 2026/04/27(月) 15:34:39.13 ID:kcOzIYwz0
- マイクラってクソみたいなグラフィックで15年ぐらい前のゲームだろ
最新PCでやる意味ある?
- 9 : 2026/04/27(月) 15:39:06.01 ID:H26S0BLU0
- >>4
最新スマホで5chをやるようなものだな - 18 : 2026/04/27(月) 15:54:35.27 ID:9QehZOKs0
- >>4
パワーがあればあるほど快適になるゲームだから - 5 : 2026/04/27(月) 15:35:30.81 ID:9nHBQgls0
- ver12辺りから格段に重くなるんだよな、でもこれサーバーの話だろ
- 6 : 2026/04/27(月) 15:36:06.39 ID:80BeBWha0
- 16Mとか 1.6Mでも多い
- 7 : 2026/04/27(月) 15:36:34.11 ID:H/LxpU+t0
- マイクラディーバレンタインか
- 8 : 2026/04/27(月) 15:37:03.32 ID:7pbBMy6H0
- Cだけは甘えアセンブラも加えろ
- 10 : 2026/04/27(月) 15:39:35.85 ID:FkWn/h5r0
- C言語プログラマーに最適化させるよりメモリ増設したほうが安い
- 11 : 2026/04/27(月) 15:39:39.29 ID:zrca07kK0
- 生成AIがマシン語を習得したらもっと凄いことになるのでは?
- 12 : 2026/04/27(月) 15:40:58.36 ID:wrwRch+tH
- オブジェクト指向じゃなくてJava使ってんのがそもそもの問題やろ
- 13 : 2026/04/27(月) 15:42:29.21 ID:eHIIXsU4H
- 1.6MB(?_?)
98NOTEや(´;ω;`) - 14 : 2026/04/27(月) 15:44:06.38 ID:6oKB04zv0
- Android(JAVAベース)とiPhone(ObjectiveCベース)のメモリ使用量と速度比べればわかるだろ
- 15 : 2026/04/27(月) 15:46:28.06 ID:HjGsHhQ90
- Codexで全部書き直せ
- 16 : 2026/04/27(月) 15:51:35.30 ID:zF51dKh90
- 最適化すりゃあまあそうかもな
マイクラレベルで注目されてるものじゃないと誰もやらんだけで - 17 : 2026/04/27(月) 15:53:50.08 ID:VNFfAfqN0
- そりゃそうでしょ
オブジェクト指向ってのはその名の通り開発側の都合なんだから
なんならCもやめてアセンブラで書いたら?
もっと効率良くなるよ - 19 : 2026/04/27(月) 15:56:14.00 ID:Ie9Ktz3Q0
- 元のマイクラを開発出来なかった時点でホルホルする権利はない
- 20 : 2026/04/27(月) 15:56:19.74 ID:XzXuyILGa
- やはりcの速さは魅力だよね
- 21 : 2026/04/27(月) 15:57:30.92 ID:5swBRPBM0
- cに書き換えただけでそんなに差が出るわけないだろ。
ガベコレがかなり溜まってからやるってなってただけじゃねーの - 31 : 2026/04/27(月) 16:15:53.76 ID:3Ap2W3HR0
- >>21
書き方次第だけどそれなりに差は出るよ - 33 : 2026/04/27(月) 16:17:15.47 ID:5swBRPBM0
- >>31
1000倍違うってよっぽどだぞ。
enumで済むところを全て文字列で持たせるくらいのアホコーディングしてもここまで差はつかんわ - 22 : 2026/04/27(月) 15:58:27.63 ID:waAgt8pJ0
- たりメーよ
いちいち構造体コピーして容量食うバカが悪い設計思想がない
- 23 : 2026/04/27(月) 15:59:01.09 ID:waAgt8pJ0
- いちいち値渡しする馬鹿
- 24 : 2026/04/27(月) 16:02:12.98 ID:3rJRzjx+0
- 同時接続数を4人にまで絞ればそりゃ軽くなるだろうよ
- 25 : 2026/04/27(月) 16:02:15.05 ID:S1i8/0d2H
- たぶん新しい言語で統一される時が来るよ
- 26 : 2026/04/27(月) 16:02:55.08 ID:VdhhupuCH
- 16Gってなんだよ
立方体とテクスチャだけのどこにそんな使うんだよ - 28 : 2026/04/27(月) 16:12:38.39 ID:Gv2odOT+0
- いやオブジェクト志向で作って変更に強い形にサーバーアプリを運用してみて運用がうまくいって用件が固定化した段階でC言語みたいなバカっ早いやつで書き直すのでいいでしょ。書き直すのをAIでやればいいし、サーバーアプリの外部仕様を自動テストに落とし込んでレベルダウンを防ぐとかありでは?
- 29 : 2026/04/27(月) 16:14:21.12 ID:uCmPC+L60
- 26年前の2chかよ
- 30 : 2026/04/27(月) 16:14:42.12 ID:io4PO1qL0
- 容量ほぼ画像だろ
- 32 : 2026/04/27(月) 16:16:33.28 ID:UhOwdFTs0
- Javaが出た当初から言われてたこと
JVMがクソなだけでオブジェクト指向とかそんなの関係ない - 34 : 2026/04/27(月) 16:17:42.78 ID:8p86+UvdH
- 開拓されてるマップの広さが違うとかそんな落ちだろ
- 35 : 2026/04/27(月) 16:19:27.14 ID:UhOwdFTs0
- そもそもJavaだから必ずしもオブジェクト指向ってわけでもないしな
staticおじさんはこの板でも話題になってたはず - 36 : 2026/04/27(月) 16:21:23.08 ID:gHIfW6uu0
- プログラム言語だけでそこまで変わるとは…
Javaひょっとして糞だったのか - 37 : 2026/04/27(月) 16:30:44.77 ID:AtTYhZup0
- Cに全部書き直せば速くなるのは当然
開発コストと保守性が跳ね上がるが
マイクラのサーバー、JavaからC言語に書き直したらメモリ消費量が16GBから16MBに激減。オブジェクト指向は愚かな考え
嫌儲




コメント