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
210
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
More Decks by 1mash0
See All by 1mash0
What's new in SwiftData + SwiftData Group Lab Recap
1mash0
0
57
AsyncStreamでマルチブロードキャストを実装する
1mash0
1
290
SwiftData: Dive into inheritance and schema migration - Swift愛好会スピンオフ WWDC25セッション要約会
1mash0
0
500
SwiftDataのカスタムデータストアを試してみた
1mash0
0
370
Other Decks in Technology
See All in Technology
The seven pitfalls of AI (revised version)
ufried
0
250
AI臭い文章とは何なのか
nasuvitz
38
79k
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
140
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
320
AI時代のAPI開発を加速する品質ガードレール / API Quality Guardrails in the AI Era
yokawasa
0
110
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
[2026 Oracle Technical Deep Dive] VMwareワークロードのOCI移行実践ガイド - OCVSでの継続利用からOCIコンピュートへの移行まで (2026年9月17日開催)
oracle4engineer
PRO
0
120
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
180
Incremental HTTP
kazuho
5
2k
Lambda MicroVMsが分からなすぎたので使い所を1から考えてみた
tsukuboshi
2
340
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
410
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
120
Featured
See All Featured
Optimising Largest Contentful Paint
csswizardry
37
4k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
320
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
600
Git: the NoSQL Database
bkeepers
PRO
433
67k
The agentic SEO stack - context over prompts
schlessera
0
950
Designing Experiences People Love
moore
143
24k
Making the Leap to Tech Lead
cromwellryan
135
10k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
350
A Modern Web Designer's Workflow
chriscoyier
699
190k
Building AI with AI
inesmontani
PRO
1
1.3k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Transcript
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