Project Structure (Legacy, Korean) - refracta/NetHack-Webtiles GitHub Wiki
NetHack Webtiles
๋ณธ ํ๋ก์ ํธ์ ์ด์์ ๋ชฉํ๋ "DCSS Webtiles๋ณด๋ค ๋ ๋์ NetHack Webtiles๋ฅผ ๋ง๋๋ ๊ฒ"์ ๋๋ค. ํด๋น ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํ ๋จ๊ณ๋ณ ๋ชฉํ๋ ์๋์ ๊ฐ์ต๋๋ค.
ํ์ ๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ ๊ตฌํ๊ธฐ์ด์ ์ธ ์์ค์ ์น ํ๋ ์ด ๊ตฌํ๊ด์ ๊ธฐ๋ฅ ๊ตฌํ๊ฒ์๋ณ ์ฑํ / ๊ณต์ฉ ์ฑํ ๊ตฌํ๊ฐ์ธ RC ํ์ผ ์์ ๊ตฌํttyrec / dumplog / rcfiles ์น ๋ค์ด๋ก๋ ์ง์- ๋ชจ๋ ์ธํฐํ์ด์ค๋ฅผ ์น์์ ์ง์
- ์ธํฐํ์ด์ค ์์ฑ๋ ํฅ์
- ๋ชจ๋ฐ์ผ ํ๋ ์ด ์๋ฒฝ ์ง์
- ๋ฉ์ผ ๋ฐ๋ชฌ ์ง์
- dgamelaunch๋ฅผ ํตํ SSH/TELNET ํ๋ ์ด ์ง์
- ์ฌ๋์์ / ์ธ๋ทํต ์ง์
- NAO ๋ถ๊ฐ ๊ธฐ๋ฅ ํตํฉ (๋ญํน, ํต๊ณ)
ํ๋ก์ ํธ ์ ์ฒด ๊ตฌ์กฐ (์ํ ๋ฒ์ ๊ธฐ์ค)
Web Structure (Korean)
๋ณธ ํ๋ก์ ํธ์ ์น์ ์ต์ข ์ฌ์ฉ์์ ๋ทฐ ์ญํ์ ํ๋ ๋ถ๋ถ์ผ๋ก, WebSocket ํต์ ์ ํตํด Webtiles Server์์ ๊ฒ์ ๋ฐ์ดํฐ(์บ๋ฆญํฐ ์คํ , ํ์ผ ์ ๋ณด, ๊ธฐํ ์ธ๊ฒ์ ์ ๋ณด)๋ฅผ ๋ฐ์ ํ๋ฉด์ ํ์ํ๊ณ ์ฌ์ฉ์์ ์ ๋ ฅ์ Webtiles Server ์ ์กํ์ฌ Remote NetHack Play๊ฐ ๊ฐ๋ฅํ๊ฒ ํด์ค๋๋ค.
SiteUI, GameUI๋ฅผ ํธ๋ค๋ง ํ๋ ๋ถ๋ถ์ด ๋๋์ด์ ธ ์์ผ๋ฉฐ HTML5 Canvas & WebGL Framework์ธ Phaser๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ๋ถ๋ถ์ ๋ ๋๋งํ๊ณ ์์ต๋๋ค.
Webtiles Port Structure (Korean)
๋ทํต์ ๋ค์ํ ํ๊ฒฝ์ ํฌํ ์ ์ง์ํ๊ธฐ ์ํด์ ๋ทํต ๊ฒ์์ ๊ณตํต๋ ๋ถ๋ถ(๋ทํต ์ฝ์ด) ๋ถ๋ถ๊ณผ ํฌํ ์ฉ ์ฝ๋ ๋ถ๋ถ์ด ๋๋์ด์ ธ ์์ต๋๋ค.
๋ณธ ํ๋ก์ ํธ๋ ๊ฒ์ ํ๋ ์ด ๋ นํ๋ฅผ ์ํด ttyrec๋ฅผ ์ฌ์ฉํ๊ณ dgamelaunch๋ฅผ ํตํ ์๊ฒฉ ์ ํ๋ ์ด ์ง์์ ๊ตฌํํ๊ธฐ ์ํด NetHack์ tty ํฌํ ์ฝ๋์ ์น ํ๋ ์ด์ฉ ํ์ฅ ์ฝ๋(Unix Domain Socket์ ์ด์ฉํ Webtiles Server์์ ํต์ , ๊ฒ์ ๋ฐ์ดํฐ ์ถ์ถ ์ ์ก, ํค ์ ๋ ฅ ํธ๋ค๋ง)์ ์ฝ์ ํ์ฌ ๋ทํต ์ฝ์ด์ ์์ ์์ด win/webtiles ์ ํด๋น๋๋ ์น ํ์ผ์ฉ ๋ทํต ํฌํ ์ ๋ง๋ค๊ณ ์์ต๋๋ค.
NetHack Webtiles Port๋ JSON ํฌ๋งท์ผ๋ก(json-c ์ฌ์ฉ) Webtiles Server์ UDP UDS(Unix Domain Socket)์ผ๋ก ๋ฐ์ดํฐ ๊ตํ์ ํ๊ณ ์ด๋ฅผ ํตํด ๊ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ์ ์กํ๊ณ (Webtiles Port โ Webtiles Server โ User) ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ํค ์ ๋ ฅ์ ๊ฒ์์ ์ ์ฉํด์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
Webtiles Server Structure (Korean)
Webtiles Server๋ ์ผ์ข ์ ์ค๊ณ ์๋ฒ๋ก ์ฌ์ฉ์์ ์์ฒญ์ ๋ฐ์ ๊ฒ์์ ์์ํ๋ฉด ๋ทํต์ ์คํํ๊ณ ์คํ๋ ๋ทํต ์ธ์คํด์ค์ UDS ํต์ ์ ์๋ฆฝํฉ๋๋ค. UDS ํต์ ์์ ๊ฒ์ ๋ฐ์ดํฐ๋ ์ต์ข ์ ์ผ๋ก ์ฌ์ฉ์์๊ฒ WebSocket์ผ๋ก ์ ๋ฌ๋๊ฒ ๋๊ณ , WebSocket์ผ๋ก ๋ฐ์ ์ฌ์ฉ์์ ํค ์ ๋ ฅ ์์ฒญ์ ๋ค์ UDS ํต์ ์ ํตํด ๋ทํต ์ธ์คํด์ค์ ์ ๋ฌํฉ๋๋ค. Node.js ๊ธฐ๋ฐ์ผ๋ก HTTP, UDS, WebSocket ์ธ ์๋ฒ์ ๊ฒฐํฉ์ฒด์ ๋๋ค.
DCSS Webtiles์ Tornado ์น ์๋ฒ ๋ถ๋ถ๊ณผ ์ ์ฌํฉ๋๋ค
Project Folder Structure (Korean)
. - ํ๋ก์ ํธ ๋ฃจํธ ํด๋, Webtiles Server ์์ค, ํ๋ก์ ํธ ํด๋ ํฌํจ
archive - dumplogs, ttyrec, rcfiles๊ฐ ์ ์ฅ๋๋ ํด๋, nginx ๋๋ ํ ๋ฆฌ ๋ฆฌ์คํ ์ผ๋ก ์ ๊ณต๋จ
dev - ํ๋ก์ ํธ ๋น๋ ๋ฐ ์ ํธ ์ ์คํฌ๋ฆฝํธ
games - ๊ฒ์์ ์ปดํ์ผํ ๋น๋ ํ์ผ๊ณผ ์ธ์ด๋ธ๊ฐ ์ ์ฅ๋๋ ํด๋
sources - NetHack์ด clone๋๋ ํด๋
web - ์น ๊ด๋ จ
webtiles - sources์ clone๋ NetHack์ ๋ฎ์ด์์ธ Webtiles Port ์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ ํด๋