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
Portfolio
Search
Tanso
January 15, 2026
Programming
4
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Portfolio
Tanso
January 15, 2026
More Decks by Tanso
See All by Tanso
ポートフォリオ.pdf
tanso
1
14
ポートフォリオ
tanso
0
15
Other Decks in Programming
See All in Programming
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
1.9k
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
470
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
150
dRuby over BLE
makicamel
2
400
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
Contextとはなにか
chiroruxx
1
390
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
230
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
440
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
340
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
0
320
Featured
See All Featured
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
860
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
210
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
Why Our Code Smells
bkeepers
PRO
340
58k
Product Roadmaps are Hard
iamctodd
55
12k
Everyday Curiosity
cassininazir
0
250
Designing Experiences People Love
moore
143
24k
RailsConf 2023
tenderlove
30
1.5k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
380
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Transcript
PORTFOLIO
[email protected]
椎野 泰成 2026年度
椎野泰成(シイノ ヤスナリ) 大阪国際工科専門職大学 工科学部・デジタルエンタテインメント学科 ゲームプロデュースコース・プログラマー 趣味:ゲーム、アニメ、漫画、プログラミング、便利ソフト探し 特技:一つの物事に集中すること、サッカー、水泳 プロフィール 2026年度 メイン使用ツール ・Visual
Studio ・Visual Studio Code ・Unity ・Github ・Render Doc ・Cppcheck サブ使用ツール ・Maya ・Adobe Premiere Pro ・Adobe Photoshop ・Word ・Excel ・Power Point
レゴブロックで自分の中のストーリー を考え、遊んでいた 伝記に影響され、漫画やからくり人形 などを作っていた プロフィール 2026年度 私の強みは 好奇心旺盛で、日々成長できること 幼少期は好奇心のまま、 中学生になり、生きているのが苦しい時期にMinecraftに救われた
その後、FortniteやOverWatch2などを遊び、ゲームが大好きになった 新しい遊びを生み出すゲームを開発し、ゲームで誰かを救いたい、熱中してもらいたい! 誰かのためにモノづくりしたい!開発者を助けたい!と考えるように ゲームやゲームエンジンを開発するために必要な能力を自分で想像し、 分からないことがあっても調べ試行錯誤し、好奇心旺盛に日々取り組んでいます
将来のビジョン 2026年度 これまでの成長の流れ Javascriptを使用した ライブラリを使わない3Dゲーム開発 CUDAを使用した 3D描画アプリ開発 Unityを使用して Minecraftを部分的に再現 インターンでの
モデル表示アプリ開発 自身ですべての機能を作成した FPSゲーム開発 DirectX12を私用した チームでのゲーム開発 ゲームエンジン開発 段階を踏んで 成長し続けてきた
将来のビジョン 2026年度 将来のビジョン 以下の流れで成長していけたらと考えています。 実際の開発現場でゲーム側、ゲームエンジン側問わず技術力を日々向上させる ゲームを開発するためのゲームエンジンやツールの開発に携わり、先輩社員の方々から学ぶ 培った技術や経験により、ゲームエンジン、ツールを更に進化させる プロジェクトを進める経験もつみ、新しい遊びを生み出すゲームの開発を進め、 またゲームエンジンやツールの開発も引き続き行っていく
作品紹介 : Mono Forge 2026年度 Mono forge Game engine
作品紹介 : Mono Forge 2026年度 作品概要 タイトル:Mono Forge ゲームエンジン 概要:基盤部分にこだわった、Visual
Studioと連携して動作するゲームエンジン 制作時期、期間:2025年6月から6カ月程 開発人数:個人 完成度:70%(基盤部分は完成しているが、細部の機能をこれから開発していくため) できること:エンティティへコンポーネントを追加し、アセットやマテリアルを読み込み、コ ンポーネントへ適応、それらの状態をJSONに保存できます。 開発環境: OS - Windows11 IDE - Visual Studio 2022、Visual Studio Code 言語 - C++ 技術 - DirectX12 その他ツール - RenderDoc、Cppcheck
作品紹介 : Mono Forge 2026年度 制作目的 将来のゲームエンジン、ゲーム、その他ツール開発に必要となる設計力や技術を身につけるこ とを目的としています。 新しい遊びを生み出す面白いゲームは技術の発展により生まれやすいと考えています。 将来的に技術の発展から新しい遊ぶを生み出すゲームを開発するには、
技術をゲームに落とし込むゲームエンジンの進化も必要です。 ★なぜゲームエンジンなのか 技術を身に付け、面白いゲームを開発するために必要な環境を知り、 ゲームエンジンの基礎から開発してみることが必要と考え、実行に移しました。
作品紹介 : Mono Forge コンポーネント値変更画面 2026年度 アプリケーション画面 各種エディター操作画面 アセット読み込み画面 アセット使用画面
作品紹介 : Mono Forge 2026年度 ゲーム保存状態 各データの値から、セーブするたびに生成されるようにしています
サービス サブシステム コンポーネント リソースハンドル 処理の依頼状態 システム 依頼 確認 編集 こだわりポイント
: Mono Forge 2026年度 サービスによる設計 サービスとして機能を分離し、ECS(Entity Component System)でそれを利用した 拡張性、保守性、柔軟性のバランスが取れた設計にすることができました。 以下がそれぞれの役割です。 サブシステム:使いまわせる機能 サービス:処理の依頼からサブシステムを使用して処理を行う コンポーネント:サービス内リソースのハンドルと、処理を依頼するかの状態を持つ システム:コンポーネントの値を確認、編集し、サービスへ処理を依頼する
サービスは、以下の形で実装しました。 ・プロキシからコマンドリストとビューを作成 ・コマンドリスト(処理の依頼) ・ビュー(ハンドルなどからサービス内部データを取得) ・サービスの更新により、コマンドらを実行 これにより 2026年度 サービスの実装 プロキシクラス コマンドリスト、ビュー作成部分
コマンド実行部分 こだわりポイント : Mono Forge
以下を実現できました。 ・リソースがサービス内部からのみアクセスされるため、より安全に ・コマンドリストやビューからでのみメソッドを使用するため、可読性を上げれた ・処理を即時ではなくコマンドとしてまとめて実行するため、エラー管理を行いやすくできた 2026年度 サービスにより実現できたこと こだわりポイント : Mono Forge
エンティティ、コンポーネント、システムらは以下の形で実装しました。 またワールドもエンティティとコンポーネントを結びつけるものとして実装しました。 ・エンティティは世代付きID ・コンポーネントは初期化構造体を持つクラス ・ワールドはエンティティへコンポーネントを追加したり、特定のコンポーネントを持つ エンティティ群を取得できる ・ワールドを受け取り、コンポーネントを編集、サービスへ処理を依頼する 2026年度 ECSを設計 エンティティ
コンポーネント、システム こだわりポイント : Mono Forge
2026年度 コンポーネント、システムの実装 コンポーネント システム ワールド こだわりポイント : Mono Forge
2026年度 ワールドの実装 ワールド こだわりポイント : Mono Forge
2026年度 使用方法 エンティティにコンポーネントを追加また、取得する部分 特定のコンポーネントを持つエンティティらを取得する部分(View) 以上のように、すっきりとしたコードで開発できました。 また、コンポーネントはメモリプール内に配置しているため、Viewによるアクセスは高速です こだわりポイント : Mono Forge
2026年度 リフレクションを作成し使用 元はエンティティからコンポーネントを取得し、コード上で直接パラメータを入力し、 値を変更していました。 それを以下のようにリフレクションを作成、登録し、そのリフレクションを利用することで、 エディター上からコンポーネントの値を追加できるようにしました。 こだわりポイント : Mono Forge
2026年度 レンダーグラフの開発 描画処理らをパスとして分け、それらのパスの実行順序を決定し実行するレンダーグラフを作 成しました。パスの実行順序は、パスがどのリソースを読み込み、書き込むのかという情報か ら依存関係を構築、トポロジカルソートにより実行順序を決定しています。 これにより、描画処理の追加が容易なだけでなく、描画処理が増えてきても実行順序による問 題が起きることを未然に防いでいます。 レンダーグラフクラス トポロジカルソート部分 こだわりポイント
: Mono Forge
2026年度 リソースの使用方法宣言 パスがどのリソースを読み書きするのか、宣言している部分 ラムダ式を利用することで、柔軟性の高い設計にしています。 こだわりポイント : Mono Forge
2026年度 [例]描画結果 アルベド ノーマル アンビエント・オクルージョン シャドウマップ こだわりポイント : Mono Forge
2026年度 機能ごとにDLL化 各機能をそれぞれDLL化し、それぞれでGoogleテストを使用した単体テストを行うことで、 問題が機能にある場合、狭い影響範囲でデバッグを行えるようにしました。 これにより、スムーズに開発を進め、問題が出た場合や変更が発生した場合は、テストで試し ながら開発を進めました。 DLLプロジェクトら DLLエクスポート設定部分 単体テスト こだわりポイント
: Mono Forge
作品紹介 : Mono Forge 2026年度 苦労したこと ゲームでは多くの機能を使用するため、それらの機能が相互に依存しやすくなります。その依 存をどのようにして減らすか、機能を追加するたびに影響範囲が広がることをどのようにして 避けるかを考え設計することに苦労しました。 ★依存を減らすには以下などが必要
・単一責任原則を果たしたクラス設計 ・結合度が低くなるような関数設計 ・適切な単位での機能分割 ・単体テストをすることを想定した設計 ★これらを実行するために必要なコードの書き方 ・コードを見れば理解できるよう、十分なコメントや適切な命名 ・その状況に合う例外処理(戻り値で行うのか、Assertで行うのか) 以上を意識して開発するだけでなく、何度も試作⇒リファクタリングを繰り返し、改善してき ました。また、インターンを通じ実際の業務で使用されているゲームエンジンに触れ、どのよ うな設計になっているのか、どう使うのかなどを分析、見て学ぶことで、答えの一つと思える 設計を実現しました。
作品紹介 : Tomino 2026年度 Tomino
作品紹介 : Tomino 2026年度 作品概要 タイトル:Tomino 目的:チームでレトロゲームを今風にした面白いゲームを開発すること 概要:ドットイートゲームを3Dにし、スキルを使用したアクションで楽しむゲーム 制作時期、期間:2025年4月から合計5カ月程 開発人数:プログラマー2人、デザイナー3人、マネージャー1人のチーム
完成度:70%(チームで開発中であるため) 開発環境: OS - Windows11 IDE - Visual Studio 2022、Visual Studio Code 言語 - C++、技術 - DirectX12 その他ツール - RenderDoc、Cppcheck 制作目的 チームでのゲーム開発では何が必要なのか知り、それを身に付けること またどうすれば、面白いと言えるゲームになるのかチームで考え実装すること
作品紹介 : Tomino 2026年度 タイトル画面 アプリケーション画面 プレイ画面1 プレイ画面2 ゲームオーバー画面
AABBを登録 自身と隣接するEntityのみ取得 作品紹介 : Tomino 2026年度 こだわりポイント 大量のオブジェクト間の衝突判定を、 空間を格子状に区切って管理することで、高速で行えるようにしました
作品紹介 : Tomino 2026年度 苦労したこと プログラマーリーダーとして、チームメンバーへ適切に作業を分担することができず、作業速 度が遅く、どのようにすれば適切に分担できるのか悩み苦労していました。 ★原因の分析 なぜ適切に分担できていないのか、分析してみると各々の作業速度や、作業進捗の把握が 足りていないことが原因だと分かりました。
これにより 毎日簡単な報告をNotionに全員書き込むようにした また、報告を書いたことも報告するようにし、 お互いに報告を書くよう促しました。 ならどうするか 各々の作業速度、進捗を把握 作業を進める上での問題点も共有することで、 問題の解消もスムーズに進み、 作業効率を向上させることが出来ました。
作品紹介 : BalloonShooter 2026年度 Balloon Shooter
作品紹介 : BalloonShooter 2026年度 作品概要 タイトル:Balloon Shooter 目的:ゲームの基本的な機能を作成し、それらによりゲームが作れるか検証すること 概要:1人称視点で、空中にランダムな動きで浮遊する風船を撃ち落すゲーム 制作時期、期間:2025年6月から2か月程
開発人数:個人 完成度:100% 開発環境: OS - Windows11 IDE - Visual Studio 2022、Visual Studio Code 言語 - C++、技術 - DirectX12 その他ツール - RenderDoc、Cppcheck 制作目的 各ゲーム機能の開発を行い技術力を向上させるため また各機能を使用すれば、本当にゲームとして機能するかの検証
作品紹介 : BalloonShooter 2026年度 タイトル画面 アプリケーション画面 プレイ画面1 プレイ画面2 クリア画面
作品紹介 : BalloonShooter 2026年度 こだわりポイント Shared Mutexを使用し競合を避け、シーンの読み込みを非同期で行いました。 これにより、読み込み時アプリケーションがフリーズしないようにすることが出来ました。 非同期読み込み実行部分 競合回避した値設定部分
アセット読み込み部分
作品紹介 : BalloonShooter 2026年度 苦労したこと ゲームの開始から終了まで、しっかりと要素を作り切ることが最も苦労しました。 要素それぞれを作成する際、どのようにすれば効率的かつ、他の影響を受けずに作成できるか 悩んだ結果... UnityのようにPrefab化するべきと考え以下のように実装し、要素を効率よく作成できました。 Prefabインタフェース
各種Prefabクラス
作品紹介 : 簡易Minecraft 2026年度 簡易Minecraft
作品紹介 : 簡易Minecraft 2026年度 作品概要 タイトル:簡易Minecraft 目的:Unityでのゲーム開発方法を学ぶと同時に、マインクラフトの一部を再現してみること 概要:ワールドの徘徊と、ブロックの設置及び破壊をすることができるもの 制作時期、期間:2024年10月から2か月程 開発人数:個人
完成度:100% 開発環境: OS - Windows11 IDE - Unity、Visual Studio 2022、Visual Studio Code 言語 - C# 制作目的 Unityでの3Dゲーム開発の学習 また、ゲームを好きになったきっかけのゲームを、 ゲームエンジンを使用してある程度再現してみたかった
作品紹介 : 簡易Minecraft 2026年度 タイトル画面 アプリケーション画面 設定画面 プレイ画面1 プレイ画面2
大量のブロックを描画するために、ブロックそれぞれをGameObjectにしてしまうと、 ブロックごとに描画命令が行われてしまい、負荷に耐えられず画面が動きませんでした。 そこでComputeShaderを使用しながら、単一GameObjectに、 すべてのブロックの可視面を集めて作成した一つのメッシュを渡すことで描画しました。 これによりピクリとも動かなかったものがスムーズに描画できるようにしました。 作品紹介 : 簡易Minecraft 2026年度 こだわりポイント
単一メッシュ作成部分 メッシュ情報設定部分 単一メッシュ作成部分
作品紹介 : 簡易Minecraft 2026年度 苦労したこと 単一オブジェクトにすべてのメッシュを描画するなら、マインクラフトのように多くのブロッ クがある場合、どのようにテクスチャを割り当てれば良いのか分からず苦労しました。 今回は以下のプロセスでテクスチャを割り当てることが出来ました。 一つのメッシュには一つのテクスチャ画像が、UnityのMeshクラスになるため、 それなら一つのテクスチャ内に複数のブロックのテクスチャを配置して何とかするしかない
一つの画像で複数のテクスチャを使用できる手法を探したところ、 テクスチャアトラスと呼ばれる手法があることを知った ブロックのテクスチャらを一つの画像にまとめ、 ブロックのIDからUV座標を計算することで、 一つのメッシュで多くのブロックを描画できるようにした
2026年度 最後までご覧いただき 誠にありがとうございました 作品Githubリポジドリ:https://github.com/Tanso-mct/portfolio