一种在虚拟空间中托管人类和 AI 的端到端解决方案,构建于 React、three.js 和 express/feathers 之上。
这个 repo 包括一个功能齐全的客户端、API 服务器、实时游戏服务器、游戏引擎和用于可扩展部署的 devops。选择您需要的或部署整个堆栈并开始在其上构建您的应用程序。
播放器装备支持 2D、3D 和 XR 交互
高性能ECS引擎
功能齐全的世界编辑器
完全联网的播放器控制器、物理、车辆和粒子
完全面向数据的设计
聊天、群组、派对和好友
WebRTC 上的语音和视频
使用电话号码或电子邮件即时登录
使用 Facebook、Google、Steam 和 Github 进行 OAuth 登录
用户管理、头像和库存
权威实时游戏服务器
使用 socket.io 进行可靠的消息传递和信号发送
使用 SCTP 数据通道进行快速、不可靠的消息传递
在 Typescript 中端到端构建
免费、开源、MIT 许可
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
启动和运行只需要几个步骤。支持 OSX / Linux / WSL2 for Windows
首先,确保您安装了NodeJS和npm(如果您正在使用它,请安装docker)。
安装你的依赖
cd path/to/xr3ngine
yarn install
mediasoup 出错?可选:https ://mediasoup.org/documentation/v3/mediasoup/installation/ 如果在 WSL2 上: sudo apt-get update ; sudo apt-get install build-essential
确保安装并运行了 mysql 数据库——我们推荐使用 Mariadb。我们提供了一个 docker 容器以便于设置:
cd scripts && sudo bash start-db.sh
这将创建一个名为 xr3ngine_db 的 mariadb 的 Docker 容器。您的机器上必须安装 docker 才能运行此脚本。如果您没有安装 Docker 并且不想安装它,则必须手动创建一个 MariaDB 服务器。
默认用户名是“server”,默认密码是“password”,默认数据库名称是“xr3ngine”,默认主机名是“127.0.0.1”,默认端口是“3306”。
打开一个新选项卡并以本地模式启动 Agones sidecar
cd scripts
sudo bash start-agones.sh
您还可以转到 vendor/agones/ 并运行
./sdk-server.linux.amd64 --local
如果您使用的是 Windows 机器,请运行
sdk-server.windows.amd64.exe --local
对于 Mac,运行
./sdk-server.darwin.amd64 --local
获取带有配置变量的 .env.local 文件。XR3ngine 的许多部分都使用环境变量进行配置。为简单起见,建议您.env.local
在 xr3ngine 的顶层创建一个名为的文件,并将所有 ENV_VAR 定义保存在<VAR_NAME>=<VALUE>
. 如果您正在积极从事此项目,请联系其中一位开发人员以获取包含所有开发设置和密钥的文件副本。
以数据库种子模式启动服务器
数据库中的多个表需要使用默认值作为种子。跑cd packages/server
,然后跑yarn dev-reinit-db
。几秒钟后,应该不会再有日志记录了。最后几行应该这样读: Executing (default): SELECT 'id', 'name', 'sceneId', 'locationSettingsId', 'slugifiedName', 'maxUsersPerInstance', 'createdAt', 'updatedAt' FROM 'location' AS 'location' WHERE ('location'.'id' = '98cbcc30-fd2d-11ea-bc7c-cd4cac9a8d61') AND 'location'.'id' IN ('98cbcc30-fd2d-11ea-bc7c-cd4cac9a8d61'); Seeded
至此,数据库已经播种。您可以使用 CTRL+C 关闭服务器。
打开两个单独的选项卡并启动服务器(非播种)和客户端在 /packages/server 中,运行sudo yarn dev
. 在另一个选项卡中,转到 /packages/client 并运行sudo yarn dev
.
在浏览器中,导航至https://127.0.0.1:3000/location/home 数据库播种过程会创建一个名为“test”的测试空位置。可以通过转到“ https://127.0.0.1:3000/location/home ”导航到它。如果您在连接到客户端、API 或游戏服务器时遇到错误,请参阅以下有关无效证书的部分。
如果你在 Windows 上,你可以使用 docker-compose 来启动 scripts/docker-compose.yml 文件,或者安装 mariadb 并从 docker-compose 或 .env.local 复制登录/密码和数据库名称——你将需要使用匹配的名称创建数据库,但您不需要填充它
./start-db.sh 只需要运行一次。如果 docker 镜像已停止,请使用以下命令重新启动它:
docker container start xr3ngine_db
酿造安装mysql
mysql_secure_installation 服务器密码
mysql -uroot -ppassword mysql -userver -ppassword
创建数据库 xr3ngine;创建由“密码”标识的用户“服务器”@“127.0.0.1”;将 xr3ngine.* 上的所有内容授予 'server'@'127.0.0.1';
显示数据库;
mysql.server 启动 mysql.server 停止
在撰写本文时,xr3ngine 包中提供的供本地使用的证书未得到充分签名。浏览器将抛出有关转到不安全页面的警告。您应该能够告诉浏览器忽略它,通常是通过单击某种“高级选项”按钮或链接,然后单击“无论如何都去那里”。
Chrome 有时不会在警告中显示可点击的选项。如果是这样,只需在该页面上键入badidea
或thisisunsafe
when。您无需将其输入地址栏或文本框,Chrome 只是被动地监听这些命令。
游戏服务器功能托管在本地环境中 127.0.0.1 以外的地址上。接受 127.0.0.1 的无效证书将不适用于此地址。同时按下打开 Chrome/Firefox 的开发控制台Ctrl+Shift+i
,然后转到控制台或网络选项卡。
如果您看到有关无法连接到诸如 之类的错误https://192.168.0.81/socket.io/?location=<foobar>
,请右键单击该 URL 并在新选项卡中将其打开。您应该再次收到有关无效证书的警告页面,并且您再次需要允许它。
确保您没有在端口 3306 上运行的另一个 mariadb 实例
lsof -i :3306
在 Linux 上,您还可以检查是否有任何进程正在端口 3306 上运行 sudo netstat -utlp | grep 3306
最后一列应该看起来像<ID>/<something
您可以使用以下命令终止任何正在运行的进程sudo kill <ID>
检查哪个进程正在使用端口 3030 并杀死
killall -9 node
OR
lsof -i :3030
kill -3 <proccessIDfromPreviousCommand>
As of this writing, there's a bug with the default seeded test location.
Go to /editor/projects and open the 'Test' project. Save the project, and
the error should go away.
尝试
yarn run dev-reinit-db // in server package
只需运行即可运行目录yarn test
中的所有测试test/
。
[/hidecontent]