Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Minecraft JavaのMODをSwiftで作る
Search
1mash0
September 13, 2026
Technology
400
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Minecraft JavaのMODをSwiftで作る
iOSDC Japan 2026
1mash0
September 13, 2026
Transcript
17 slides
Minecraft JavaのMODを Swiftで作る @1mash0̲ iOSDC Japan 2026 1
自己紹介 いますえ / 今末翔太 @1mash0̲ • 某SES企業所属 • iOS /
Flutterエンジニア • Minecraftを一番遊んでたのは Beta 1.8〜正式版1.8 2
宣伝 3
Saitama.swift #1 やります! • Saitama.swiftのcompass • 日時 • 場所 •
池袋、新宿などから何分とかの説明 4
本編 5
注意点 • 本発表および紹介するMODは、Minecraftの公式コンテンツではありませ ん。 Mojang および Microsoft から承認を受けておらず、関連性もありません。 https://www.minecraft.net/ja-jp/usage-guidelines https://www.minecraft.net/ja-jp/eula
• 今回作成したMODは、配布を目的としていません。 • 本発表で紹介する実装方法は、標準的なMOD開発方法ではありません。 6
きっかけ 7
WWDC25: Explore Swift and Java interoperability WWDC26: What's new in
Swift 8
swift-javaを使えばSwiftで MinecraftのMOD(の大部分)を作れるのでは WWDC25: Explore Swift and Java interoperability WWDC26: What's
new in Swift 9
本題 10
実際に作ってみた 環境 • Swift 6.3 • JDK 25 • Minecraft
Java Edition 26.1.2 • Fabric Loader 0.19.3 / Fabric API 0.155.2 • swift-java • Java → Swift:jextract • Swift → Java:wrap-java/SwiftJavaマクロ 11
実際に作ってみた 実装の構成 JavaからSwift SwiftからJava fabric.mod.json FabricHudWrappers.swift “entrypoints”: { “main”: [
"com.example.swift. SwiftJavaModFabric::initializeMod” ], … } @JavaInterface(“net.fabricmc.fabric.api.client.rendering.v1.hu d.HudElementRegistry”) struct FabricHudElementRegistry {} ↓ jextract生成コードを経由 extension JavaClass<FabricHudElementRegistry> { @JavaStaticMethod func addLast( _ id: Identifier?, _ element: FabricHudElement? ) } ↓ SwiftJavaModFabric.swift public func initializeMod() { ModItem.initialize() registerItemUseCallback() registerCreativeTabCallback() } SwiftJavaマクロでJava APIを宣言 SwiftJavaModFabric.swift let registryClass = try! JavaClass<FabricHudElementRegistry>() registryClass.addLast(hudId, element) 12
実際に作ってみた 13
実際に作ってみた ClockHud.swift import Foundation let time = Date.now.formatted( Date.FormatStyle() .hour(.defaultDigits(amPM:
.omitted)) .minute(.twoDigits) .second(.twoDigits) ) let padding: Int32 = 8 let x = graphics.guiWidth() - font.width(time) padding let y: Int32 = 8 graphics.text( font, time, x, y, -1, true ) 14
まとめ • MODの初期化、アイテム、HUDをSwiftで実装 • MOD固有の手書きJavaコードはゼロ • ほぼ全編でAIに相談(チャッピーいつもありがとう) 15
参考資料 • https://github.com/swiftlang/swift-java • https://developer.apple.com/videos/play/wwdc2025/307/ • https://developer.apple.com/videos/play/wwdc2026/262/ • https://docs.fabricmc.net/ •
https://github.com/FabricMC/fabric-loader/blob/0.19.3/src/main/java/net/fabricmc/loader/ impl/util/DefaultLanguageAdapter.java • https://github.com/FabricMC/fabric-example-mod • https://www.minecraft.net/ja-jp/usage-guidelines • https://www.minecraft.net/ja-jp/eula 16
進捗達成の動画 17
More Decks by 1mash0
See All by 1mash0
What's new in SwiftData + SwiftData Group Lab Recap
1mash0
0
60
AsyncStreamでマルチブロードキャストを実装する
1mash0
1
300
SwiftData: Dive into inheritance and schema migration - Swift愛好会スピンオフ WWDC25セッション要約会
1mash0
0
510
SwiftDataのカスタムデータストアを試してみた
1mash0
0
390
Other Decks in Technology
See All in Technology
GCASアップデート(202607-202610)
techniczna
1
250
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
5
320
[JAWS Festa 2026]一番いい仕事は、請求書に現れない / jawsfesta2026
sh_fk2
2
450
現場を動かすAIエージェント#2_製造業現場でのAI活用から見た、ハマる罠と実践知
kintotechdev
2
220
狙われているAPIの脆弱性!今こそ手をつけるべき根本的な対策とは?
nagix
0
110
ぼくのClaude Codeの使い方
falken
PRO
1
140
仕様と現実の間で落とし所を探るリモートMCPの認証・認可 — Sansanの認証基盤における課題と実践
sansantech
PRO
2
250
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
2
170
AWSを利用する上で知っておきたい名前解決の話 2026
nagisa53
5
3.4k
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
2
660
AI Agent 時代のデータ基盤: ClickHouse で実現する 超高速分析とコスト削減の両立
jozono
0
230
分析作業をどこまで任せるか自分で決められる AIネイティブBI『Golden Analytics』が 良さげな話 /golden-analytics-is-ai-native-bi
shinyaa31
0
140
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.7k
Practical Orchestrator
shlominoach
192
12k
Mobile First: as difficult as doing things right
swwweet
225
10k
AI: The stuff that nobody shows you
jnunemaker
PRO
11
1.3k
Intergalactic Javascript Robots from Outer Space
tanoku
273
28k
Typedesign – Prime Four
hannesfritz
42
3.2k
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
340
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Git: the NoSQL Database
bkeepers
PRO
433
67k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
370