Blender3D 기초

Godot 게임을 웹 브라우저용으로 내보내기: 내보내기 템플릿, 파일 크기, 한글 글꼴, 올리기 전 확인할 것

Godot 4.7.2로 만든 작은 비행 게임을 웹(HTML5)으로 내보낸 실제 기록으로, 내보내기 템플릿 준비, 웹에서만 쓰는 렌더러, 스레드 설정, 40 MB 가까운 파일 크기와 압축, 웹에서 한글이 네모로 깨지지 않게 글꼴을 넣는 법, 내 PC에서 브라우저로 시험하는 법을 정리합니다.

AZTechnology15분 읽기

한국어English

기준: Godot 4.7.2 stable(Windows), Godot 4.7 공식 문서(웹 내보내기, 글꼴). 2026년 11월 4일에 확인했습니다. 그림 1·3은 내보낸 웹 판을 실제로 실행한 화면이고, 그림 2는 내보낸 파일의 크기를 옮긴 도표입니다. 그림 1·3은 화면 없이 띄운 Chromium(소프트웨어 렌더)으로 찍어서, 그래픽카드를 쓰는 보통 브라우저와 그림자·색이 조금 다를 수 있습니다.

게임을 만들면 친구에게 보여 주고 싶어집니다. 실행 파일(.exe)을 보내면 받는 사람이 내려받아 설치해야 하고, 보안 경고도 뜹니다. 웹으로 내보내면 주소 하나만 보내면 됩니다. 받는 사람은 브라우저에서 바로 게임을 엽니다.

이 글은 Godot 4.7.2로 만든 작은 비행 게임 "협곡 돌파"를 웹으로 내보낸 기록을 바탕으로 씁니다. 처음 웹으로 내보내면 생각과 다른 곳이 몇 군데 있습니다. 화면을 그리는 방식이 바뀌고, 파일이 40 MB 가까이 되고, 한글이 네모로 깨질 수 있습니다. 하나씩 짚어 봅니다.

브라우저에서 실행한 비행 게임의 처음 화면. 협곡 사이 강 위의 전투기, 큰 제목 협곡 돌파, 부제, 방향키·W/S·Space·Shift·B 조작 안내 표, 아래에 Enter: 출격과 M: 발사대 켬, Esc: 끝내기 그림 1. 웹 판을 브라우저(Chromium)에서 연 처음 화면. 한글 제목과 안내가 넣은 글꼴로 보입니다 (브라우저 화면 캡처)

이 글을 마치면 아래를 할 수 있습니다.

  1. 웹 내보내기에 필요한 내보내기 템플릿을 준비합니다.
  2. 웹 판이 쓰는 렌더러와 스레드 설정을 확인합니다.
  3. 내보낸 파일 다섯 종류가 각각 무엇인지 구분합니다.
  4. 웹에서 한글이 보이도록 글꼴을 게임 안에 넣습니다.
  5. 내 PC에서 작은 서버를 띄워 브라우저로 시험합니다.

1. 웹으로 내보낸다는 것

Godot 게임을 웹으로 내보내면, 게임 엔진 자체가 WebAssembly(줄여서 wasm)라는 형태로 바뀌어 브라우저 안에서 돕니다. WebAssembly는 브라우저가 빠르게 실행할 수 있는 프로그램 꼴입니다. 집에서 쓰던 주방(Windows)을 통째로 푸드 트럭(브라우저)에 옮겨 싣는 것과 비슷합니다. 요리(게임)는 같지만, 트럭에 맞게 바뀌는 것이 생깁니다.

바뀌는 것데스크톱 판웹 판
화면 그리는 방식(렌더러)Forward+ 등 고를 수 있음Compatibility만(WebGL 2.0)
스레드여러 개4.3부터 기본은 하나
운영체제 글꼴빌려 쓸 수 있음못 씀
파일실행 파일 하나html·js·wasm·pck 등 여러 개
여는 법더블클릭웹 서버를 거쳐 브라우저로

아래 절은 이 표의 줄을 하나씩 다룹니다.

2. 내보내기 템플릿 준비

내보내기 템플릿(export template)은 플랫폼마다 미리 만들어 둔 엔진 판입니다. 내보내기는 이 템플릿에 우리 게임 데이터를 붙이는 일입니다. 빈 도시락통(템플릿)에 반찬(게임)을 담는 것과 같습니다. 그래서 템플릿이 없으면 내보내기 단추가 막힙니다.

따라 하기(공식 문서 기준):

  1. Godot 편집기에서 Editor ‣ Manage Export Templates를 엽니다.
  2. 지금 쓰는 판(예: 4.7.2.stable)에 맞는 템플릿을 받아 설치합니다. 편집기 판과 템플릿 판이 정확히 같아야 합니다.

템플릿 묶음에는 Windows, macOS, Linux, Android, iOS, 웹 판이 모두 들어 있어 큽니다. 협곡 돌파를 만들 때 받은 묶음은 1.2 GB였습니다. 그 가운데 Windows와 웹 판만 꺼내 템플릿 폴더(%APPDATA%\Godot\export_templates\4.7.2.stable\)에 넣어도 두 플랫폼 내보내기는 됐습니다. 디스크가 넉넉하면 편집기 창에서 받는 것이 가장 쉽습니다.

3. 렌더러와 스레드 설정

렌더러는 3D 장면을 화면 그림으로 바꾸는 엔진의 화가입니다. Godot에는 Forward+, Mobile, Compatibility 세 화가가 있는데, 웹에서 일할 수 있는 화가는 Compatibility 하나뿐입니다. 공식 문서는 웹 플랫폼이 WebGL 2.0을 쓰고 Forward+와 Mobile은 지원하지 않는다고 적습니다.

데스크톱용으로 Forward+를 쓰는 프로젝트도 웹으로 내보낼 수 있습니다. 프로젝트 설정에 웹 전용 렌더러를 따로 두면 됩니다. 협곡 돌파의 project.godot에는 이렇게 적혀 있습니다.

renderer/rendering_method="forward_plus"
renderer/rendering_method.web="gl_compatibility"

첫 줄은 데스크톱, 둘째 줄은 웹에서 쓸 렌더러입니다. 화가가 바뀌니 그림이 조금 달라집니다. 그림자, 빛 번짐, 안개 같은 효과가 데스크톱 판과 다르게 보일 수 있으니, 웹 판은 꼭 따로 열어 확인하세요.

스레드는 프로그램 안에서 동시에 일하는 일꾼 수입니다. 웹 판은 Godot 4.3부터 일꾼 하나(단일 스레드)가 기본입니다. 여러 일꾼(Thread Support 켬)을 쓰려면 게임을 올리는 서버가 아래 두 응답 머리글을 보내야 하고, 보안 연결(https)도 필요합니다.

Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp

서버 설정을 바꿀 수 없는 곳에 올린다면 기본값(꺼짐)을 그대로 두는 것이 안전합니다. 협곡 돌파도 꺼 둔 채(variant/thread_support=false) 내보냈습니다.

4. 내보내기와 나온 파일

따라 하기(편집기 단계는 공식 문서 기준):

  1. Project ‣ **Export…**를 엽니다.
  2. **Add…**에서 Web을 골라 웹 프리셋을 만듭니다.
  3. Export Path에 index.html로 끝나는 경로를 적습니다. 웹 판은 파일이 여러 개 나오므로 빈 폴더를 하나 만들어 그 안을 가리키세요.
  4. Export Project를 누릅니다.

같은 일을 명령줄로도 할 수 있습니다. 협곡 돌파는 아래처럼 편집기 창 없이 내보냈습니다. 프리셋 이름 "Web"은 2단계에서 만든 이름입니다.

Godot_v4.7.2-stable_win64_console.exe --headless --path game\topgun_flight --export-release "Web"

나온 폴더에는 아래 파일들이 생깁니다.

파일하는 일크기
index.html게임을 띄우는 웹 페이지5 KB
index.js엔진을 불러오는 시작 스크립트0.28 MB
index.wasm엔진 본체(WebAssembly)39.5 MB
index.pck우리 게임 데이터(장면·모델·소리·글꼴)2.84 MB
index.png 등시작 그림, 아이콘, 소리 처리 스크립트합쳐 약 0.05 MB

가로 막대 도표. index.wasm 39.5 MB, index.wasm gzip 뒤 10.1 MB, index.pck 2.84 MB, index.js 0.28 MB, 나머지 약 0.05 MB 그림 2. 협곡 돌파 웹 판의 파일 크기. 엔진 본체(wasm)가 대부분을 차지합니다 (도표)

눈여겨볼 점은 게임 데이터는 2.84 MB인데 엔진 본체가 39.5 MB라는 것입니다. 게임을 작게 만들어도 웹 판은 40 MB 가까이 됩니다. 엔진 전체가 함께 실려 가기 때문입니다.

5. 파일 크기 줄이기: 서버 압축

이 크기는 서버 압축으로 크게 줄어듭니다. 공식 문서는 gzip 압축이 WebAssembly 파일을 4분의 1쯤으로 줄인다고 안내합니다. 협곡 돌파의 index.wasm을 gzip(최고 압축)으로 줄여 보니 39.5 MB가 10.1 MB가 됐습니다. 4분의 1과 거의 같습니다. 반면 index.pck는 2.84 MB가 2.77 MB로 조금만 줄었습니다. 그림과 소리처럼 이미 압축된 데이터가 많아서입니다.

압축은 우리가 파일을 바꾸는 것이 아니라 올리는 곳이 해 줘야 합니다. 이삿짐을 진공 팩에 넣어 보내는 것처럼, 서버가 줄여 보내고 브라우저가 받아서 풉니다. 공식 문서의 호스팅 안내를 보면 GitHub Pages는 보낼 때 알아서 압축하고, itch.io는 압축하지 않습니다. 올릴 곳을 고를 때 이 차이를 보세요. 압축하지 않는 곳이면 처음 여는 사람이 40 MB를 그대로 받아야 합니다.

6. 한글 글꼴 넣기

웹 판에서 가장 흔히 놀라는 곳이 한글이 네모(□)로 나오는 것입니다. 까닭은 이렇습니다.

  • Godot의 기본 글꼴에는 한글 글자가 없습니다.
  • 데스크톱 판은 엔진이 운영체제의 글꼴을 대신 빌려 와서 한글을 보여 줍니다. 공식 문서는 이 기능으로 한중일 글자와 이모지를 따로 글꼴 없이 보여 줄 수 있다고 적습니다.
  • 그런데 운영체제 글꼴을 불러오는 기능은 Windows, macOS, Linux, Android, iOS에서만 됩니다. 웹은 목록에 없습니다.

그래서 데스크톱에서 잘 보이던 한글이 웹에서만 깨집니다. 빌려 쓸 이웃(운영체제)이 없으니, 글꼴을 게임 안에 직접 넣어야 합니다.

협곡 돌파는 무료 글꼴 Noto Sans KR Bold에서 자주 쓰는 한글 2,350자만 뽑아 424 KB짜리 글꼴 파일로 만들어 넣었습니다. 한글 전체를 담은 글꼴은 몇 MB가 되니, 쓰는 글자만 남기면 index.pck가 덜 커집니다. Noto Sans KR은 OFL(SIL Open Font License)이라 게임에 넣어 배포할 수 있습니다. 다른 글꼴을 쓸 때는 라이선스에 게임 안 배포가 허락되는지 먼저 보세요.

글꼴을 넣은 뒤에는 프로젝트 설정의 기본 글꼴이나 테마에 그 글꼴을 지정해, 모든 글자 칸이 그 글꼴을 쓰게 합니다. 그림 1의 제목과 조작 안내가 브라우저에서 깨지지 않고 나온 것이 이 덕분입니다.

7. 내 PC에서 브라우저로 시험하기

내보낸 index.html을 더블클릭해 열면 게임이 뜨지 않습니다. 웹 판은 웹 서버를 거쳐 열어야 합니다. 브라우저가 내 PC의 파일을 바로 열 때는 보안 때문에 wasm 같은 파일을 불러오는 일을 막기 때문입니다. 가게(서버) 계산대를 거쳐야 물건을 내주는 것과 같습니다.

따라 하기:

  1. Node.js가 깔린 PC라면, 내보낸 폴더에서 명령 창을 열고 아래를 입력합니다. 작은 시험용 서버가 뜹니다.

    npx http-server -p 4310 -c-1
    

    -p 4310은 주소의 번호(포트), -c-1은 브라우저가 옛 파일을 기억해 두지 않게 하는 값입니다. 다시 내보낸 뒤 바뀐 판이 바로 보입니다.

  2. 브라우저에서 http://127.0.0.1:4310/index.html을 엽니다.

  3. 처음에는 40 MB 가까운 파일을 받느라 시간이 걸립니다. 그림 1 같은 처음 화면이 나오면 성공입니다.

서버를 띄우는 다른 방법도 있습니다. 편집기의 내보내기 프리셋에서 Runnable을 켜 두면 편집기 오른쪽 위의 원격 실행 단추로 바로 브라우저 시험을 할 수 있다고 공식 문서는 안내합니다. 실제로 사람들에게 공개할 때는 시험용 서버가 아니라 정식 웹 호스팅(itch.io, GitHub Pages 같은 곳)에 올리세요.

브라우저 개발자 도구(F12)의 Console 탭을 열면 엔진이 시작하며 남긴 줄이 보입니다. 그림 1·3을 찍은 환경(화면 없이 띄운 Chromium)에서 협곡 돌파를 열었을 때는 이런 줄이 나왔습니다.

Godot Engine v4.7.2.stable.official
OpenGL API OpenGL ES 3.0 (WebGL 2.0 (OpenGL ES 3.0 Chromium)) - Compatibility
Build configuration: Emscripten 4.0.20, single-threaded, no GDExtension support.

둘째 줄에서 Compatibility 렌더러(3절), 셋째 줄에서 단일 스레드(3절)로 돈다는 것을 확인할 수 있습니다. 화면이 안 뜰 때도 이 탭에 원인이 빨간 글자로 나오니 먼저 보세요.

브라우저의 게임 화면. 전투기가 협곡 벽에 부딪혀 가운데에 빨간 글자 벽에 부딪혔다와 Enter: 다시 하기, T: 처음 화면, 아래쪽 속도 막대와 플레어 점 넷, 오른쪽 고도 막대 그림 3. 처음 화면에서 Enter를 누른 뒤 조종하지 않고 두었을 때. 실패 안내 글자와 속도·고도 막대 같은 화면 표시가 웹 판에서도 그대로 나옵니다 (브라우저 화면 캡처)

8. 올리기 전에 확인할 것

확인할 것까닭
웹 판을 직접 열어 한 판 끝까지 해 보기렌더러가 달라 보이는 모습과 속도가 데스크톱과 다름
한글이 모두 보이는지운영체제 글꼴을 못 빌림(6절)
처음 받는 크기압축 없이 40 MB 가까움. 올릴 곳의 압축 여부 확인(5절)
느린 PC·노트북에서 한 번협곡 돌파도 웹 판에서 끊김(렉)이 있다는 의견이 있었음
소리브라우저는 사용자가 한 번 누르기 전에는 소리를 막는 경우가 많음. 처음 화면에서 키를 누르게 하면 자연스러움

협곡 돌파의 웹 판은 한글은 깨지지 않았지만 데스크톱 판보다 끊김이 있었습니다. 원인은 아직 따로 재지 않았습니다. 짐작 가는 곳은 렌더러가 바뀐 것, 먼 거리까지 그리는 그림자, 프레임마다 다시 그리는 화면 표시 같은 것들이라, 웹 판에서는 그림자 거리와 효과를 줄인 설정을 따로 두는 것이 다음 할 일입니다. 웹으로 낼 게임이라면 처음부터 가벼운 장면으로 계획하세요. 게임 범위를 작게 잡는 법은 첫 게임 범위 정하기에 있습니다.

연습 문제

  1. 여러분 프로젝트의 project.godot를 메모장으로 열어 rendering_method가 몇 줄 있는지, 웹 전용 줄이 있는지 적어 보세요.
  2. 웹으로 내보낸 폴더에서 가장 큰 파일과 두 번째로 큰 파일이 무엇인지 확인합니다.
  3. 글자 칸 하나에 한글을 넣고 웹으로 내보내, 글꼴을 넣기 전과 뒤에 어떻게 보이는지 견주어 보세요.

자주 하는 실수와 해결

증상원인해결
Export Project 단추가 눌리지 않는다내보내기 템플릿이 없거나 판이 다름Manage Export Templates에서 편집기와 같은 판 설치
index.html을 열면 아무것도 안 뜬다파일을 직접 열었음작은 웹 서버를 띄워 http:// 주소로 열기(7절)
한글이 네모로 나온다웹은 운영체제 글꼴을 못 빌림한글 글꼴을 게임에 넣고 기본 글꼴로 지정(6절)
데스크톱과 그림이 다르다웹은 Compatibility 렌더러웹 판을 따로 보고 효과를 맞춤(3절)
스레드를 켰더니 게임이 안 뜬다서버가 COOP·COEP 머리글을 안 보냄스레드를 끄거나, 머리글을 보내는 곳에 올림(3절)
처음 여는 데 너무 오래 걸린다40 MB를 압축 없이 받음압축해 주는 곳에 올리기(5절)

한 줄 정리

템플릿은 편집기와 같은 판, 웹은 Compatibility·단일 스레드, 엔진 본체가 40 MB라 압축하는 곳에, 한글 글꼴은 게임 안에, 시험은 작은 서버로.

Blender에서 만든 모델을 Godot로 옮기는 법은 Blender 모델을 Godot로 옮기기에, 1인 개발 전체 흐름은 1인 게임 개발 지도에 있습니다.

참고 자료

KEEP EXPLORING

다음으로 읽어보세요

세로 영상 정지 화면 열 장을 두 줄로 늘어놓은 그림. 단발머리 캐릭터의 그림 한 장, 와이어, 색 입히기, 고치기 카드, 뼈대, 손 흔들기, 검 뽑아 베기, 납도, 마지막 미소, 위쪽에 번호 붙은 단계 글자Blender
3D 기초14분 읽기

Blender 렌더를 쇼츠용 세로 영상으로: 9:16 해상도, 카메라 Sensor Fit, 글자 자리 비우기, MP4 출력

가로로 만든 Blender 장면을 유튜브 쇼츠용 1080×1920 세로 영상으로 다시 렌더할 때 바꿀 해상도, 세로로 돌리면 양옆이 잘리는 카메라 Sensor Fit, 위아래 글자 자리를 비우는 구도, MP4 출력 설정을, 19초짜리 캐릭터 쇼츠를 만든 실제 기록과 함께 정리합니다.

도표. 왼쪽 파란 선으로 나뉜 공(Polygon mesh), 가운데 빨간 점 수백 개로 채운 원(Point cloud), 오른쪽 주황색 흐린 타원 여러 개가 겹친 원(3D Gaussians)Blender
3D 기초12분 읽기

3D 가우시안 스플래팅 쉽게: 사진 여러 장으로 장면을 만드는 기술과 폴리곤 메시와 다른 점

사진 여러 장으로 실제 장소를 3D로 다시 만드는 3D 가우시안 스플래팅(3DGS)을, 2023년 원 논문이 밝힌 다섯 단계와 가우시안 하나가 가진 다섯 가지 값으로 풀어 보고, 폴리곤 메시와 무엇이 다른지, 2026년에 glTF 표준 확장으로 비준된 것이 무슨 뜻인지 정리합니다.

Blender 5.2.1의 File 메뉴에서 Export 하위 메뉴를 열어 FBX, glTF 2.0, Universal Scene Description, Wavefront (.obj), STL 같은 형식 목록이 보이는 화면 (Blender 화면 캡처)Blender
3D 기초24분 읽기

3D 프로그램 지도 2026: Blender·Maya·3ds Max·Cinema 4D·ZBrush·Houdini·Substance·Plasticity는 각각 언제 쓰나

많이 쓰는 3D 프로그램 여덟 개가 각각 어떤 일을 잘하는지, 최신 판과 값 구조(무료·구독·영구 구매), 운영체제를 한 장의 지도와 표로 정리하고, 처음 시작할 때 무엇을 고르면 되는지 설명합니다.

Godot 실행 화면. 하늘과 갈색 땅 위에 초록 받침과 흰 탑, 빨간 지붕, 흰 날개 네 개가 달린 로우폴리 풍차가 서 있음 (Godot 실행 화면 캡처)Blender
3D 기초18분 읽기

Blender 모델을 Godot 4.7로 옮기기: glTF 내보내기부터 재질·애니메이션 확인까지

Blender 5.2에서 만든 작은 풍차 모델을 glTF(.glb) 파일 하나로 내보내 Godot 4.7.2 프로젝트에 넣고, 가져오기 설정과 장면 배치, 빛·하늘, 날개 회전 애니메이션 재생, 실행까지 따라 합니다. 크기가 100배로 커지는 흔한 실수도 실제 화면으로 보여 줍니다.

Unreal Engine 5.8 편집기 뷰포트. 밝은 바닥 위에 나무 상자, 통, 빨간 화살표 표지판으로 된 소품 묶음이 두 벌 놓여 있고, 앞쪽 묶음의 통은 흰색, 뒤쪽 묶음의 통은 어두운 금속색, 왼쪽 아래에 X·Y·Z 축 표시Blender
3D 기초19분 읽기

Blender 장면을 Unreal Engine 5.8로 옮기기: FBX·USD 내보내기와 크기·축·재질 확인

Blender 5.2에서 만든 소품 장면을 FBX와 USD 두 가지로 내보내 Unreal Engine 5.8에 가져오고, 크기(미터와 센티미터), 축(앞쪽 방향), 기준점, 재질, 스무딩 경고가 실제로 어떻게 들어오는지 확인합니다.

Godot 4.7.2 편집기. 가운데 3D 화면에 초록 바닥 위 빨간 원통과 흰 상자, 왼쪽 씬 트리에 Main, Ground, Cup, Box, Sun, Camera3D, 아래 오른쪽에 4.7.2.stableBlender
3D 기초15분 읽기

게임 엔진 고르기 2026: Godot 4.7·Unity 6.6·Unreal 5.8, Blender 사용자 입장에서 비교

Blender로 3D를 만드는 사람이 게임 엔진을 처음 고를 때 볼 기준을 정리합니다. Godot, Unity, Unreal의 최신 판, 값 구조, 쓰는 언어, Blender와 잇는 법을 공식 자료로 비교하고, 8 GB 노트북에서 Godot와 Unreal을 실제로 켜 본 화면을 함께 보여 줍니다.