penspanic

๋งŒ๋“ค๊ณ  ์‹ถ์€ ๊ฒŒ ๋งŽ์•„์„œ ๋Š˜ ๋ญ”๊ฐ€๋ฅผ ์ง“๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
๋ณธ์—…์€ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ.

์—”์ง„ ๋…๋ฆฝ ํ’€์Šคํƒ ์˜คํ”ˆ์›”๋“œ ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„์›Œํฌ โ€” OFF

์—”์ง„ ๋…๋ฆฝ ํ’€์Šคํƒ ์˜คํ”ˆ์›”๋“œ ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„์›Œํฌ โ€” OFF

์—”์ง„์— ์ข…์†๋˜์ง€ ์•Š๋Š” ํ’€์Šคํƒ ์˜คํ”ˆ์›”๋“œ ๊ฒŒ์ž„ ํ”„๋ ˆ์ž„์›Œํฌ OFF(Open Field Framework) ์†Œ๊ฐœ. ๋ถ„์‚ฐ .NET ์„œ๋ฒ„, Three.js/WebGPU ์›น ํด๋ผ์ด์–ธํŠธ, ์›”๋“œ ์ €์ž‘ ํˆด๋ง๊นŒ์ง€ ํ•œ ๋ฒˆ์— ์ œ๊ณตํ•œ๋‹ค.

#OFF #Architecture #CSharp #Multiplay
์‹ค์‹œ๊ฐ„ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ๊ฒŒ์ž„ ์•„ํ‚คํ…์ฒ˜ ํšŒ๊ณ  โ€” ๋ฃจ๋‹ˆ์•„ ์›์ •๋Œ€ 5๋…„ ํ›„

์‹ค์‹œ๊ฐ„ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ๊ฒŒ์ž„ ์•„ํ‚คํ…์ฒ˜ ํšŒ๊ณ  โ€” ๋ฃจ๋‹ˆ์•„ ์›์ •๋Œ€ 5๋…„ ํ›„

๋ชจ๋ฐ”์ผ ์‹ค์‹œ๊ฐ„ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด ๊ฒŒ์ž„ ๋ฃจ๋‹ˆ์•„ ์›์ •๋Œ€์˜ ์„œ๋ฒ„ 5์ข… + ํด๋ผ์ด์–ธํŠธ 2์ข… ์ „์ฒด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์„ค๊ณ„ํ–ˆ๋˜ ๊ฒฝํ—˜. ์ปค์Šคํ…€ ECS, ์ปค๋งจ๋“œ ๋™๊ธฐํ™”, ๋ถ„์‚ฐ ์„œ๋ฒ„, ์žฌ์ ‘์† ์‹œ์Šคํ…œ๊นŒ์ง€ โ€” 5๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ ๊ทธ๋•Œ์˜ ๊ธฐ์ˆ  ํŒ๋‹จ๋“ค์„ ๋Œ์•„๋ณธ๋‹ค.

#Architecture #Retrospective #CSharp #Multiplay
C# Source Generator๋กœ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌํ•˜๊ธฐ โ€” Datra

C# Source Generator๋กœ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌํ•˜๊ธฐ โ€” Datra

CSVยทJSONยทYAML์„ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์—†์ด ํƒ€์ž… ์„ธ์ดํ”„ํ•˜๊ฒŒ ๋‹ค๋ฃจ๋Š” C# Source Generator ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ.

#Datra #CSharp #Unity #dotnet

C# ๋กœ์ง์„ TypeScript๋กœ ์˜ฎ๊ธฐ๋Š” transpiler๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค โ€” Mirrorgen

ํƒ€์ž…๋งŒ ์ƒ์„ฑํ•˜๋Š” codegen์œผ๋กœ๋Š” ๋ถ€์กฑํ–ˆ๋‹ค. C#์˜ ๋กœ์ง์„ byte-exactํ•œ TypeScript๋กœ ์˜ฎ๊ธฐ๊ณ , ๋‘ ๊ตฌํ˜„์ด ๊ฐ™์€ ๊ฐ’์„ ๋‚ด๋Š”์ง€ ์ž๋™ ๊ฒ€์ฆํ•˜๋Š” transpiler๋ฅผ ๋งŒ๋“ค์–ด OSS๋กœ ๋—๋‹ค.

#dotnet #typescript #transpiler #Roslyn
OFF์— ํ–‰์„ฑ์„ ์–น๋‹ค โ€” Topology-Agnostic ์•„ํ‚คํ…์ฒ˜

OFF์— ํ–‰์„ฑ์„ ์–น๋‹ค โ€” Topology-Agnostic ์•„ํ‚คํ…์ฒ˜

๋ฌดํ•œ ํ‰๋ฉด ๋ถ„์‚ฐ ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ์˜€๋˜ OFF์— cube-sphere ํ–‰์„ฑ์„ ์–น์€ ์ด์•ผ๊ธฐ. ํ‰๋ฉด๋„ ๊ตฌ์ฒด๋„ ๊ฐ™์€ ์ฝ”์–ด ์œ„์—์„œ ๋„๋Š” ๊ตฌ์กฐ๋กœ ์–ด๋–ป๊ฒŒ ๋ฐ”๊ฟจ๋‚˜.

#OFF #Architecture #GameServer #Distributed
NuGet ํ”„๋ผ์ด๋น— ํŒจํ‚ค์ง€๋กœ .NET ์ฝ”๋“œ ๋ถ„๋ฆฌํ•˜๊ธฐ โ€” ๋ฉ€ํ‹ฐ ๋ ˆํฌ 9๊ฐœ ํ•จ์ •

NuGet ํ”„๋ผ์ด๋น— ํŒจํ‚ค์ง€๋กœ .NET ์ฝ”๋“œ ๋ถ„๋ฆฌํ•˜๊ธฐ โ€” ๋ฉ€ํ‹ฐ ๋ ˆํฌ 9๊ฐœ ํ•จ์ •

OFF๋ฅผ NuGet ํ”„๋ผ์ด๋น— ํŒจํ‚ค์ง€๋กœ ๋–ผ์–ด, ํ˜‘์—…์ž์—๊ฒŒ ํ”„๋ ˆ์ž„์›Œํฌยท์„œ๋ฒ„ ์†Œ์Šค๋ฅผ ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ ๋„ ํ’€์Šคํƒ dev ๋ฃจํ”„๋ฅผ ์œ ์ง€ํ•œ ๋ฉ€ํ‹ฐ ๋ ˆํฌ ๊ตฌ์กฐ์™€, ์˜ฎ๊ธฐ๋ฉด์„œ ๋ฐŸ์€ 9๊ฐœ์˜ ํ•จ์ •.

#OFF #Aethelgard #GameDev #DotNet

.NET ์„œ๋ฒ„ CPU ์ตœ์ ํ™” โ€” ํ‹ฑ๋‹น 0.6ms๋ฅผ 0.15ms๋กœ ์ค„์ด๊ธฐ

.NET ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ํ‹ฑ๋‹น ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ 0.598ms์—์„œ 0.151ms๋กœ. ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ๋ถ€ํ„ฐ ๋งŒ๋“ค๊ณ , ๋ณ‘๋ชฉ 4๊ฐœ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์žก์€ ์ด์•ผ๊ธฐ.

#Aethelgard #AI #Claude #GameDev

.NET ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์žก๊ธฐ โ€” dotnet-gcdump๋กœ ์•ˆ ๋ณด์ด๋Š” ํ• ๋‹น ํญํƒ„

.NET ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 2๋ถ„ ๋งŒ์— 136MB์—์„œ 14GB๋กœ ํญ์ฆํ–ˆ๋‹ค. dotnet-gcdump์™€ dotnet-counters๋กœ๋„ ์•ˆ ์žกํžˆ๋Š” ํ• ๋‹น ํญํƒ„์„ ์ถ”์ ํ•˜๊ณ , ๊ทธ ๊ณผ์ •์„ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์Šคํ‚ฌ๋กœ ๋งŒ๋“  ์ด์•ผ๊ธฐ.

#Aethelgard #AI #Claude #GameDev
self-hosted CI์— Claude Code ๊ตฌ๋… ๋ฌผ๋ฆฌ๊ธฐ โ€” PR ์ž๋™ ๋ถ„์„ยทํ…Œ์ŠคํŠธ ํŒŒ์ดํ”„๋ผ์ธ

self-hosted CI์— Claude Code ๊ตฌ๋… ๋ฌผ๋ฆฌ๊ธฐ โ€” PR ์ž๋™ ๋ถ„์„ยทํ…Œ์ŠคํŠธ ํŒŒ์ดํ”„๋ผ์ธ

API๊ฐ€ ์•„๋‹Œ Claude Code ๊ตฌ๋…์„ self-hosted runner์— ๋ฌผ๋ ค, CI๊ฐ€ ๋Œ ๋•Œ๋งˆ๋‹ค ํ…Œ์ŠคํŠธ ์ž๋™ํ™”์™€ PR ๋ณ€๊ฒฝ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํŒŒ์ดํ”„๋ผ์ธ. AI์™€ ํ•จ๊ป˜ ์ฝ”๋”ฉํ•˜๋‹ˆ ํ…Œ์ŠคํŠธ๊ฐ€ ๋Š˜๊ณ , ํ…Œ์ŠคํŠธ๊ฐ€ ๋Š˜์œผ๋‹ˆ CI๊ฐ€ ํ•„์š”ํ•ด์ง„ ํ๋ฆ„์„ ์ •๋ฆฌํ–ˆ๋‹ค.

#Aethelgard #AI #Claude #GameDev

Chrome WebGPU ๋””๋ฒ„๊น…์„ AI์—๊ฒŒ ์‹œํ‚ค๋Š” ๋ฒ• โ€” MCP + Xcode CLI

Chrome DevTools MCP๋กœ AI๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•˜๊ฒŒ ํ•˜๊ณ , xctrace๋กœ Metal ๋ ˆ๋ฒจ๊นŒ์ง€ ๋‚ด๋ ค๊ฐ€๋Š” GPU ๋””๋ฒ„๊น… ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์ถ•๊ธฐ.

#WebGPU #AI #Chrome #MCP
AI์—๊ฒŒ ๊ฒŒ์ž„ ์›”๋“œ๋ฅผ ๋งŒ๋“ค๋ผ๊ณ  ์‹œ์ผฐ๋”๋‹ˆ โ€” AI-Driven Game Engine Development #1

AI์—๊ฒŒ ๊ฒŒ์ž„ ์›”๋“œ๋ฅผ ๋งŒ๋“ค๋ผ๊ณ  ์‹œ์ผฐ๋”๋‹ˆ โ€” AI-Driven Game Engine Development #1

AI๊ฐ€ ์›”๋“œ๋ฅผ ์ž์œจ์ ์œผ๋กœ ๋งŒ๋“ค๋ ค๋ฉด ๋ญ˜ ์ค€๋น„ํ•ด์•ผ ํ•˜๋Š”๊ฐ€. ๋„๊ตฌ๋ฅผ ์„ค๊ณ„ํ•˜๊ณ , ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฑฐ์น˜๊ณ , ๋ฒฝ ์—†๋Š” ๋ฏธ๋กœ์—์„œ ๊ตํ›ˆ์„ ์–ป๊ธฐ๊นŒ์ง€.

#OFF #AI #Claude #GameDev

Projects

์ง„ํ–‰ ์ค‘์ธ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ

OFF (Open Field Framework)

2024.01 โ€“ ์ง„ํ–‰ ์ค‘Active
๋Œ€๊ทœ๋ชจ ์˜คํ”ˆ ์›”๋“œ ๊ฒŒ์ž„์„ ์œ„ํ•œ ํ’€์Šคํƒ .NET ํ”„๋ ˆ์ž„์›Œํฌ. ์„œ๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ๋ง, WebGPU ๋ Œ๋”๋ง, JS ์Šคํฌ๋ฆฝํŒ…, AI ์›”๋“œ ์ƒ์„ฑ๊นŒ์ง€ โ€” ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ”๋กœ ๋ฐ๋ชจ ์‹คํ–‰ ๊ฐ€๋Šฅ.

Aethelgard

2026.03 โ€“ ์ง„ํ–‰ ์ค‘Active
์ค‘์„ธ ํŒํƒ€์ง€ ์˜คํ”ˆ์›”๋“œ MMO RPG. OFF ์œ„์—์„œ ๊ตฌํ˜„ํ•˜๋Š” ๋‘ ๋ฒˆ์งธ ๊ฒŒ์ž„ ํ”„๋กœ์ ํŠธ๋กœ, Blazor WebAssembly + Canvas 2D ์•„์ด์†Œ๋ฉ”ํŠธ๋ฆญ ๋ Œ๋”๋Ÿฌ์™€ GOAP ๊ธฐ๋ฐ˜ AI NPC๊ฐ€ ์„ธ๊ณ„๋ฅผ ์œ ์ง€ํ•œ๋‹ค. 1์ธ ์œ ์ง€๋ณด์ˆ˜ ๊ฐ€๋Šฅํ•œ ์„ค๊ณ„, ํ”Œ๋ ˆ์ด์–ด ์ฃผ๋„ ๊ฒฝ์ œ.

Datra

2025.07 โ€“ ์ง„ํ–‰ ์ค‘Active
C# Source Generator ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ. CSV, JSON, YAML์„ ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ ์—†์ด ํƒ€์ž… ์„ธ์ดํ”„ํ•˜๊ฒŒ.

๋ชจ๋“  ํ”„๋กœ์ ํŠธ ๋ณด๊ธฐ

Career

Allm (2016โ€“2020)

ํฌ๋ฆฌํ‹ฐ์นด ์˜จ๋ผ์ธ, CAPSULEMON FIGHT!, ๋ฃจ๋‹ˆ์•„ ์›์ •๋Œ€(ํ”„๋กœ๊ทธ๋žจ ๋ฆฌ๋“œ). ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ํ’€์Šคํƒ.

์ž์„ธํžˆ ๋ณด๊ธฐ
  • ๋ฃจ๋‹ˆ์•„ ์›์ •๋Œ€ โ€” ํ”„๋กœ๊ทธ๋žจ ๋ฆฌ๋“œ. ์„œ๋ฒ„ 4์ข… + ํด๋ผ์ด์–ธํŠธ 2์ข… ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„
  • CAPSULEMON FIGHT! โ€” ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ๊ฐœ๋ฐœ, PVE ํ™•์žฅ, ๋ผ์ด๋ธŒ ์„œ๋น„์Šค
  • ํฌ๋ฆฌํ‹ฐ์นด ์˜จ๋ผ์ธ โ€” ํด๋ผ์ด์–ธํŠธ/์„œ๋ฒ„ ์ฝ˜ํ…์ธ  ๊ฐœ๋ฐœ, ๋ผ์ด๋ธŒ ์„œ๋น„์Šค

Nexon (2021โ€“2022)

๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์›”๋“œ โ€” Lua ์Šคํฌ๋ฆฝํŠธ ์—”์ง„, ์—๋””ํ„ฐ, ์ธํ…”๋ฆฌ์„ผ์Šค, API ๋ฆฌ๋“œ.

์ž์„ธํžˆ ๋ณด๊ธฐ
  • ๋ฉ”์ดํ”Œ์Šคํ† ๋ฆฌ ์›”๋“œ(Project MOD)์˜ Lua ์Šคํฌ๋ฆฝํŒ… ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ
  • ์ปค์Šคํ…€ Lua ์—๋””ํ„ฐ + ์ธํ…”๋ฆฌ์„ผ์Šค(์ž๋™์™„์„ฑ, ์ •์  ๋ถ„์„) ๊ฐœ๋ฐœ
  • API ๊ฐœ๋ฐœ ๋ฆฌ๋“œ

Unity Technologies (2022โ€“ํ˜„์žฌ)

Senior Software Engineer. ์—”์ง„ ๊ฐœ๋ฐœ, ์˜คํ”ˆ ์›”๋“œ ํ…Œํฌ ๋ฐ๋ชจ R&D, ๊ฒŒ์ž„์‚ฌ ์ตœ์ ํ™”/์ปจ์„คํŒ….

์ž์„ธํžˆ ๋ณด๊ธฐ
  • ์—”์ง„ ๊ฐœ๋ฐœ โ€” Graphics, DOTS ๋“ฑ ์ฝ”์–ด ์—”์ง„ ๋ฐ ๊ณต์‹ ํŒจํ‚ค์ง€ ๊ธฐ์—ฌ
  • ์˜คํ”ˆ ์›”๋“œ ํ…Œํฌ ๋ฐ๋ชจ โ€” DOTS, Netcode for Entities, World Streaming, CI/CD
  • ํ”„๋กœํŽ˜์…”๋„ ์„œ๋น„์Šค โ€” ๊ตญ๋‚ด์™ธ ๊ฒŒ์ž„์‚ฌ ๋Œ€์ƒ ์ตœ์ ํ™”, ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…, ์ปจ์„คํŒ