--- category: Dev status: Final converted_at: 2026-04-28 --- # NDF (Neutral Data Format) ## ๐Ÿ“Œ Brief Summary NDF(Neutral Data Format)๋Š” EugenSystems๊ฐ€ ๊ฐœ๋ฐœํ•œ ๋…์ž์ ์ธ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด ๋ฐ ๋ฐ์ดํ„ฐ ํฌ๋งท์ž…๋‹ˆ๋‹ค [1]. [[WARNO|WARNO]]์˜ ๊ฒŒ์ž„ ๋™์ž‘๊ณผ ์œ ๋‹›์˜ ์„ธ๋ถ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, ๊ฒŒ์ž„ ์ฝ”๋“œ์™€ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์—„๊ฒฉํžˆ ๋ถ„๋ฆฌํ•˜์—ฌ ์ˆ˜์ฒœ ๊ฐœ์— ๋‹ฌํ•˜๋Š” ์†์„ฑ์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด๋Š” ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ '์œ ์ „์  ์ฒญ์‚ฌ์ง„' ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๊ฒŒ์ž„ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ˆ˜์ • ์—†์ด๋„ ์ •๊ตํ•œ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฐธ๋Ÿฐ์‹ฑ๊ณผ ๋ชจ๋”ฉ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ๋ฐ˜์ž…๋‹ˆ๋‹ค [1]. ## ๐Ÿ“– Core Content - **NDF์˜ ๊ตฌ์กฐ์™€ ๊ฐ์ฒด ์ง€ํ–ฅ์  ํŠน์„ฑ** NDF ํŒŒ์ผ์€ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ˜•์‹์„ ๋ ๋ฉฐ, ์ƒ์†๊ณผ ๋ชจ๋“ˆํ™”๊ฐ€ ๊ณ ๋„๋กœ ๋ฐœ๋‹ฌ๋œ ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ธ ํŠน์„ฑ์„ ์ง€๋‹ˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [1]. ๊ตฌ์กฐ์  ์„ค๊ณ„์˜ ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ, `UniteDescriptor.ndf` ํŒŒ์ผ ๋‚ด์˜ ๊ฐœ๋ณ„ ์œ ๋‹› ์—”ํ‹ฐํ‹ฐ๋Š” ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์™ธํ˜• ๋ชจ๋“ˆ(ApparenceModel), ๋ณด๊ธ‰ ๋ชจ๋“ˆ(TSupplyModuleDescriptor), ์ƒ์กด ๋ชจ๋“ˆ(THealthModuleDescriptor) ๋“ฑ ๋…๋ฆฝ์ ์ธ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋””์Šคํฌ๋ฆฝํ„ฐ(Descriptor)๋“ค์„ ์กฐ๋ฆฝํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ •๊ตํ•˜๊ฒŒ ๊ตฌ์ถ•๋ฉ๋‹ˆ๋‹ค [1]. - **์ฃผ์š” NDF ํŒŒ์ผ๊ณผ ๋‹ด๋‹น ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ์˜์—ญ** WARNO์˜ ๋ชจ๋“  ๋…ผ๋ฆฌ์  ์„ค๊ณ„๋Š” ์ˆ˜์ฒœ ๊ฐœ์˜ `.ndf` ํŒŒ์ผ์— ๋‚˜๋‰˜์–ด ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค [1, 2]. ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ํŒŒ์ผ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค: * `UniteDescriptor.ndf`: ์œ ๋‹›์˜ ๋ฌผ๋ฆฌ์  ๋ฐ ๊ธฐ์ˆ ์  ์†์„ฑ(๊ฐ€๊ฒฉ, ์‹œ์•ผ, ์ด๋™์„ฑ, ์€์‹ ๊ฐ’ ๋“ฑ)์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค [3, 4]. * `WeaponDescriptor.ndf`: ํฌํƒ‘ ํšŒ์ „ ์†๋„, ์กฐ์ค€ ์‹œ๊ฐ„ ๋“ฑ ๋ฌด๊ธฐ ์ฒด๊ณ„์˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค [3, 4]. * `Ammunition.ndf`: ์ฒ ๊ฐ‘ํƒ„(AP) ๊ด€ํ†ต๋ ฅ, ๊ณ ํญํƒ„(HE) ๋ฐ๋ฏธ์ง€, ์ œ์••๋ ฅ ๋“ฑ ํƒ„์•ฝ์˜ ๋ฌผ๋ฆฌ์  ํƒ€๊ฒฉ ๋กœ์ง์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [3, 4]. * `Divisions.ndf` ๋ฐ `DivisionRules.ndf`: ์‚ฌ๋‹จ ๋ฑ์„ ๊ตฌ์„ฑํ•  ๋•Œ ์ ์šฉ๋˜๋Š” ์นด๋“œ๋‹น ์œ ๋‹› ์ˆ˜์™€ ์ „๋žต์  ๊ฐ€์šฉ์„ฑ ๊ทœ์น™์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค [4, 5]. - **๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฐธ๋Ÿฐ์‹ฑ ๋ฐ ๋ชจ๋”ฉ์˜ ํ•ต์‹ฌ ๋™๋ ฅ** NDF ์‹œ์Šคํ…œ์ด ์ œ๊ณตํ•˜๋Š” ๊ณ ๋„์˜ ์œ ์—ฐ์„ฑ์€ WARNO ํŠน์œ ์˜ '๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ๋ฐธ๋Ÿฐ์‹ฑ(Data-Driven Balancing)'์„ ๊ฐ€๋Šฅ์ผ€ ํ•ฉ๋‹ˆ๋‹ค [4]. ๊ฐœ๋ฐœ์ž์™€ ๋ชจ๋”๋“ค์€ ์ผ๋ฐ˜์ ์ธ ํ…์ŠคํŠธ ํŽธ์ง‘๊ธฐ๋‚˜ ์ „์šฉ ๋„๊ตฌ(WME: Warno Mod Editor)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒŒ์ž„ ์†Œ์Šค์ฝ”๋“œ ๋ณ€ํ˜• ์—†์ด ์œ ๋‹› ์„ฑ๋Šฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ‰๊ฐ์ ์œผ๋กœ ํŠœ๋‹ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 5, 6]. ๋˜ํ•œ, `[[ndf-parse|ndf-parse]]`์™€ ๊ฐ™์€ Python ํŒจํ‚ค์ง€๋ฅผ ํ™œ์šฉํ•˜๋ฉด NDF ํŒŒ์ผ์„ ์ž๋™์œผ๋กœ ํŒŒ์‹ฑํ•˜๊ณ  ์ˆ˜์ • ์‚ฌํ•ญ์„ ์œ ํšจํ•œ NDF ์ฝ”๋“œ๋กœ ๋‹ค์‹œ ๊ธฐ๋กํ•˜๋Š” ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [7]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„€แ…ตแ„‡แ…กแ†ซ แ„‰แ…ฅแ†ฏแ„€แ…จ (Data-Driven Design)|๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์„ค๊ณ„(Data-Driven Design]], Iriszoom ์—”์ง„, [[WARNO แ„†แ…ฉแ„ƒแ…ตแ†ผ(Modding)|WARNO ๋ชจ๋”ฉ(Modding]] - **Projects/Contexts:** [[WARNO-DATA แ„‘แ…ณแ„…แ…ฉแ„Œแ…ฆแ†จแ„แ…ณ|WARNO-DATA ํ”„๋กœ์ ํŠธ]], ndf-parse ํŒจํ‚ค์ง€, [[Warno-Armory|Warno-Armory]] - **Contradictions/Notes:** [[Eugen Systems|Eugen Systems]]๋Š” ๊ณต์‹์ ์ธ ๋ชจ๋”ฉ ๋งค๋‰ด์–ผ๊ณผ `.ndf` ์ฐธ์กฐ ๊ฐ€์ด๋“œ๋ฅผ ํ†ตํ•ด ํŒŒ์ผ ํ˜•์‹์„ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์ˆ˜์ฒœ ๊ฐœ์˜ ํŒŒ์ผ์— ๋ถ„์‚ฐ๋œ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์†์„ฑ๊ฐ’์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…์€ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [2]. ์ด๋กœ ์ธํ•ด ์œ ์ € ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ฃผ๋„ํ•˜์—ฌ WARNO-DATA ์œ„ํ‚ค๋ฅผ ๊ฐœ์„คํ•˜๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์‹ฑํ•ด ์ˆจ๊ฒจ์ง„ ์Šคํƒฏ์„ ๋ณด์—ฌ์ฃผ๋Š” War-Yes, [[Warno-Armory|Warno-Armory]] ๋“ฑ์˜ ์„œ๋“œํŒŒํ‹ฐ ๋„๊ตฌ๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ๊ณต์‹ ๋ฌธ์„œ์˜ ๋นˆํ‹ˆ์„ ๋ฉ”์šฐ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [2, 8]. --- *Last updated: 2026-04-28*