JavaScript is required
Blog About

Godot导出游戏到网页,本地运行和Netlify部署实践

2024/01/08
4 mins read
See this issue
# 游戏
Back

今天尝试把自己跟着写的游戏 demo 打包到web平台,记录一下过程 。

在线体验地址

B站的游戏制作教程

# 打包web

首先是打开导出对话框 项目 -> 导出… -> 添加… -> Web 这时候会提示缺少模板,可以在线下载,也可以从文件中打开,网络不好的话就只能官网下载 image

# 本地运行

导出准备做好后就可以直接选择导出路径后导出了,导出后直接打开会直接报错,必须要在服务器环境中打开

Error The following features required to run Godot projects on the Web are missing: Cross Origin Isolation - Check web server configuration (send correct headers) SharedArrayBuffer - Check web server configuration (send correct headers)

而且在服务器端必须配置一些跨域隔离配置,需要本地启动一个web服务器来运行,然后google了一下,使用python来实现本地运行,代码很少贴在下面

#!/usr/bin/env python3
from http import server  # Python 3


class MyHTTPRequestHandler(server.SimpleHTTPRequestHandler):

    def end_headers(self):
        self.send_my_headers()
        server.SimpleHTTPRequestHandler.end_headers(self)

    def send_my_headers(self):
        self.send_header("Access-Control-Allow-Origin", "*")
        self.send_header("Cross-Origin-Embedder-Policy", "require-corp")
        self.send_header("Cross-Origin-Opener-Policy", "same-origin")


if __name__ == '__main__':
    server.test(HandlerClass=MyHTTPRequestHandler)

然后将脚本放到游戏文件夹下运行,打开localhost:8000

python server.py

# 部署到netlify

已netlify为例,将我们的web游戏部署到netlify站点 image **同样,我们也会服务器header的配置问题,通过查看文档得知需要在上传的文件夹中添加一个_headers文件,内容添加如下

/*
  Access-Control-Allow-Origin: *
  Cross-Origin-Opener-Policy: same-origin
  Cross-Origin-Embedder-Policy: require-corp

这样问题就解决了。线上部署正常运行https://godot-fox.netlify.app/