Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DojoCon2021-Siv3D
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryo Suzuki
December 18, 2021
Education
420
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
DojoCon2021-Siv3D
Ryo Suzuki
December 18, 2021
More Decks by Ryo Suzuki
See All by Ryo Suzuki
C++ MIX #9
cpp
4
5.4k
tfcon-2022-cpp
cpp
5
8.1k
JSSST2021-Siv3D
cpp
1
1k
CEDEC2020
cpp
54
46k
Other Decks in Education
See All in Education
0415
cbtlibrary
0
210
Πλουτοκρατία: Η Τυραννία του Μαμμωνά και η Μεταανθρώπινη Δουλεία
amethyst1
0
260
Course Review - Lecture 13 - Information Visualisation (4019538FNR)
signer
PRO
1
2.6k
[2026前期火5] 論理学(京都大学文学部 前期 第8回)「正規化定理の証明」
yatabe
0
150
共感から、つくる: 変わり続ける自分と、誰かのための創造
micknerd
1
380
2026年度春学期 統計学 第3回 クロス集計と感度・特異度,データの可視化 (2026. 4. 23)
akiraasano
PRO
0
150
2026年度春学期 統計学 第5回 分布をまとめるー記述統計量(平均・分散など) (2026. 5. 7)
akiraasano
PRO
0
140
SARA Annual Report 2025-26
sara2023
1
360
We部コミュニティスライド2026-04-24
junhat6
0
180
輻射安全管理系統2.0暨輻防e++學園平台說明會
aecrp
0
660
View Manipulation and Reduction - Lecture 9 - Information Visualisation (4019538FNR)
signer
PRO
1
2.7k
勾配ブースティングと決定木の話 / gradient boosting and decision trees
kaityo256
PRO
6
1.3k
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.2k
Rails Girls Zürich Keynote
gr2m
96
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
870
Test your architecture with Archunit
thirion
1
2.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
How to make the Groovebox
asonas
2
2.2k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
180
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Designing Experiences People Love
moore
143
24k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
590
Typedesign – Prime Four
hannesfritz
42
3.1k
Transcript
プログラミング研究と CoderDojo 鈴木 遼 (早稲田大学 / Siv3D) C++ ライブラリ「Siv3D」の開発と CoderDojo
でのワークショップ事例
プログラミングを楽しく簡単にする活動 1/4 小中高生の開発者に、開発費・技術メンタリングを支援する U-17 未踏ジュニアのメンター (2016~) 画像引用: https://jr.mitou.org/projects/
プログラミングを楽しく簡単にする活動 2/4 C++ プログラミングを学べる本の出版、Web サイトの運営 『冒険で学ぶ はじめてのプログラミング』 技術評論社 cppmap.github.io CEDEC
2020 での講演
プログラミングを楽しく簡単にする活動 3/4 C++ / Siv3D / Viscuit を使ったワークショップ 子ども~社会人へのオンライン個人レッスン CoderDojo
宜野湾 & 浦添
プログラミングを楽しく簡単にする活動 4/4 新しいプログラミングツールの開発と研究 Siv3D Siv3D for Kids Enrect
中・高・大学生 Siv3D ユーザの活躍 1/4 ゲームやメディアアートを制作 英語・中国語版も リリース 海外 YouTuber の
ゲーム実況も多数 画像引用: https://twitter.com/Shibaken_8128/status/1344967321454931969 https://twitter.com/r193333333/status/1377613363929247746 https://twitter.com/takara2314/status/1415649264085069829 https://www.freem.ne.jp/win/game/14167 https://www.freem.ne.jp/win/game/14961
中・高・大学生 Siv3D ユーザの活躍 2/4 十代のクリエータが Siv3D 作品でコンテスト入賞 PCN こどもプロコン 最優秀賞
日本ゲーム大賞 U-18 部門予選通過 学力向上アプリコンテスト デザイン部門賞 画像引用: https://pcn.club/contest/contest10.html https://youtu.be/J19GBAjeBH8 https://youtu.be/2eX_rN9E_hA
中・高・大学生 Siv3D ユーザの活躍 3/4 競技プログラミングで Siv3D を活用 高専プロコンでは 10 校以上が
Siv3D を使うプログラムで大会出場 競プロコンテストサイト AtCoder の C++ コースでも紹介 写真引用: https://www.cresco.co.jp/news/2021/09/13/210913_corp.html
中・高・大学生 Siv3D ユーザの活躍 4/4 十代のオープンソース開発者を育成 豆知識: Siv3D の最年少コミッタは 現在 CoderDojo
のメンター Siv3D 実装会の様子 (2019 年)
Siv3D って何? 1/2 C++ で楽しく簡単にゲームやアプリを作れるライブラリ # include <Siv3D.hpp> void Main()
{ Scene::SetBackground(ColorF{ 0.8, 0.9, 1.0 }); const Texture food{ U"🍿"_emoji }; const Texture bird{ U"🐥"_emoji }; while (System::Update()) { Circle{ Scene::Center(), 100 }.draw(); food.drawAt(Scene::Center()); bird.drawAt(Cursor::Pos()); } }
Siv3D って何? 2/2 2016 年からオープンソースで公開、直近 1 年間で 1 万ダウンロード Windows,
macOS, Linux, Web で動くアプリを無料で開発
世界でもっとも使われているプログラミング言語の 1 つ Windows (OS) Google Chrome (ブラウザ) Photoshop (写真編集ソフト)
Arduino (マイクロコンピュータ) Word, Excel (文書作成) Unreal Engine (ゲームエンジン) Minecraft (ゲーム) Google, YouTube, Amazon 自動運転・ロボット制御システム 金融取引システム C++ って何? 1/2
• コンピュータの性能を最大限に引き出すソフトウェアの開発が得意 • C++ プログラマは世界で 450 万人以上 • 世界中のパソコンやスマートフォン、ゲーム機や家電、企業や工場、 大学、研究所で動くソフトウェアの開発に使われる
• AtCoder や情報オリンピック、パソコン甲子園など 競技プログラミングの分野でも人気が高い C++ って何? 2/2
C++ のパワーを引き出す Siv3D 難易度が高い C++ を、短く & たくさんの機能を使えるよう強化 # include
<Siv3D.hpp> void Main() { Size brickSize{ 40, 20 }; double speed = 480.0; Vec2 ballVelocity{ 0, -speed }; Circle ball{ 400, 400, 8 }; Array<Rect> bricks; for (auto p : step(Size{ (Scene::Width() / brickSize.x), 5 })) bricks << Rect{ (p.x * brickSize.x), (60 + p.y * brickSize.y), brickSize }; while (System::Update()) { Rect paddle{ Arg::center(Cursor::Pos().x, 500), 60, 10 }; ball.moveBy(ballVelocity * Scene::DeltaTime()); for (auto it = bricks.begin(); it != bricks.end(); ++it) if (it->intersects(ball)) { (it->bottom().intersects(ball) || it->top().intersects(ball) ? ballVelocity.y : ballVelocity.x) *= -1; bricks.erase(it); break; } if (ball.y < 0 && ballVelocity.y < 0) ballVelocity.y *= -1; if ((ball.x < 0 && ballVelocity.x < 0) || (Scene::Width() < ball.x && 0 < ballVelocity.x)) ballVelocity.x *= -1; if (0 < ballVelocity.y && paddle.intersects(ball)) ballVelocity = Vec2{ (ball.x - paddle.center().x) * 10, -ballVelocity.y }.setLength(speed); for (const auto& brick : bricks) brick.stretched(-1).draw(HSV{ brick.y - 40 }); ball.draw(); paddle.draw(); } } C++ で自力で作ると 500 行ぐらいかかる Siv3D は 27 行
Siv3D for Kids って何? タッチ操作で Siv3D のゲームプログラムを改造できるプログラミング 体験ツール。パソコンに詳しい先生がいなくても楽しめるのが特長 これ自体も Siv3D
で作られてる
CoderDojo との関わり 1/4 • ソフトウェア研究では「どれだけ使われたか」も重要 • たくさんの人に使ってもらうことで改善も進む • 東京ではワークショップを開催しやすいが、それ以外では難しい (参加者やスタッフを集めるのが難しい、良い会場がわからない)
• 各地の高専・大学のコンピュータサークル、CoderDojo, プログラミング教室と連携して勉強会やワークショップを実施
CoderDojo との関わり 2/4 • といっても、いきなり知らない人に頼むのは難しい • IPA 未踏、U-17 未踏ジュニア、プログラミングイベント、 SNS
などで交流のある CoderDojo 関係者が何人かいた • 私のこういうツールを使って、こういうワークショップをしたいと 相談したら快諾してくれた • ありがとうございます!
CoderDojo との関わり 3/4 Siv3D Siv3D for Kids Enrect CoderDojo 金沢
CoderDojo 宜野湾 CoderDojo 浦添 Siv3D for Kids
CoderDojo との関わり 4/4 Siv3D Siv3D for Kids CoderDojo 静岡 CoderDojo
柏 Siv3D for Kids 写真引用: https://coderdojo-shizuoka.org/9th 写真はCoderDojo 柏提供
CoderDojo との連携で感じたこと • ローカルの人々に広くリーチし多くの参加者を集めることができた • 運営がこなれていて、スムーズにイベントを進められた • 学校など一般での開催と比べて、メンターのサポートが頼もしい • 好奇心が高く、新しい使い方やバグを発見するニンジャたち
パソコンの数や機種などの制約に注意 ワークショップ用の ノート PC を 自分でも16 台所有 アップデート 作業は大変 各地のコミュニティとの連携のために
1/3
現地のコミュニティの活動実績になるような形式に 各地のコミュニティとの連携のために 2/3
普段とは違うローカルの参加者を発掘する機会にしてもらう • C++ を学べる • 遠くの大学からゲストがやってくる • 親子で参加するイベント ローカルコミュニティの活動を外部の人に披露する機会にも •
ローカルの参加者が普段の活動や宣伝を発表する LT(ライトニング・トーク)タイムを設けることも 各地のコミュニティとの連携のために 3/3
プログラミングツールを研究する理由 • 生きている間に最大限すごい未来を見てみたい • そのためには、一人でも多くの人がコンピューターの力を活用し て、いろいろな分野を発展させていく必要がある • プログラミングツールの開発は、数万人~数百万人のソフトウェ ア開発者の生産性を底上げ、プログラミングに取り組む人を増や すことができる強力な手段
• Scratch など「道具」を使っての開発はしていても、 道具を作る人に出会う機会は少ない。視野が広がるきっかけに • 気になるツールの開発者・研究者に声をかけてみてください • 「受け入れ」を PR するのもあり?
• 双方にメリットのある WS デザインを考えましょう • プログラミングツール開発に携わる人が Dojo から生まれると嬉しい (おわりに) CoderDojo へのメッセージ