hytopia 0.1.14 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
@@ -31,27 +31,22 @@ With these resources, you can quickly build and share immersive, voxel-style mul
|
|
31
31
|
|
32
32
|
1. Install a compatible JavaScript runtime. We recommend you use [Bun](https://bun.sh/), but [Node.js](https://nodejs.org/) and [Deno](https://deno.com/) can work with additional configuration. All examples will be given using Bun.
|
33
33
|
|
34
|
-
2.
|
34
|
+
2. Create a new project directory somewhere on your machine and navigate into it.
|
35
35
|
```bash
|
36
|
-
|
36
|
+
mkdir my-project-directory && cd my-project-directory
|
37
37
|
```
|
38
38
|
|
39
|
-
3.
|
40
|
-
```bash
|
41
|
-
bun add hytopia
|
42
|
-
```
|
43
|
-
|
44
|
-
4. Initialize boilerplate. Copies assets and an index.ts game script into your project.
|
39
|
+
3. Initialize a hytopia project. Sets up package.json and all dependencies, copies assets and an index.ts game script into your project.
|
45
40
|
```bash
|
46
41
|
bunx hytopia init
|
47
42
|
```
|
48
43
|
|
49
|
-
|
44
|
+
3. Start the server, use --watch for hot reloads as you make changes.
|
50
45
|
```bash
|
51
46
|
bun --watch index.ts
|
52
47
|
```
|
53
48
|
|
54
|
-
|
49
|
+
4. Visit https://play.hytopia.com - when prompted, enter `localhost:8080` - this is the hostname of the local server you started in the previous step.
|
55
50
|
|
56
51
|
Once you're up and running, here's some other resources to go further:
|
57
52
|
- [Game Examples](./examples)
|
package/bin/scripts.js
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
#!/usr/bin/env node
|
2
2
|
|
3
|
+
const { execSync } = require('child_process');
|
3
4
|
const fs = require('fs');
|
4
5
|
const path = require('path');
|
5
|
-
const mkcert = require('mkcert');
|
6
6
|
|
7
7
|
(async () => {
|
8
8
|
const command = process.argv[2];
|
@@ -10,35 +10,23 @@ const mkcert = require('mkcert');
|
|
10
10
|
/**
|
11
11
|
* Init command
|
12
12
|
*
|
13
|
-
* Initializes a new HYTOPIA project.
|
13
|
+
* Initializes a new HYTOPIA project. Accepting an optional
|
14
|
+
* project name as an argument.
|
15
|
+
*
|
16
|
+
* @example
|
17
|
+
* `bunx hytopia init my-project-name`
|
14
18
|
*/
|
15
19
|
if (command === 'init') {
|
16
20
|
const srcDir = path.join(__dirname, '..', 'boilerplate');
|
17
21
|
const destDir = process.cwd();
|
18
|
-
|
22
|
+
|
23
|
+
// Initialize project
|
24
|
+
execSync('bun init --yes');
|
25
|
+
execSync('bun add hytopia');
|
26
|
+
|
19
27
|
// Copy boilerplate
|
20
28
|
console.log(`🖨️ Copying boilerplate to ${destDir}`);
|
21
29
|
fs.cpSync(srcDir, destDir, { recursive: true });
|
22
|
-
|
23
|
-
// Generate SSL cert and allow mkcert to auto handle CA/Cert setup
|
24
|
-
console.log(`🔒 Generating SSL cert for local development`);
|
25
|
-
const validity = 3650; // 10 years
|
26
|
-
const ca = await mkcert.createCA({
|
27
|
-
organization: 'HYTOPIA',
|
28
|
-
countryCode: 'US',
|
29
|
-
state: 'Washington',
|
30
|
-
locality: 'Seattle',
|
31
|
-
validity,
|
32
|
-
});
|
33
|
-
|
34
|
-
const cert = await mkcert.createCert({
|
35
|
-
ca: { key: ca.key, cert: ca.cert },
|
36
|
-
domains: ['localhost', '127.0.0.1'],
|
37
|
-
validity,
|
38
|
-
});
|
39
|
-
|
40
|
-
fs.writeFileSync(path.join(destDir, 'assets', 'certs', 'localhost.crt'), cert.cert);
|
41
|
-
fs.writeFileSync(path.join(destDir, 'assets', 'certs', 'localhost.key'), cert.key);
|
42
30
|
|
43
31
|
// Done, lfg!
|
44
32
|
console.log('🚀 Hytopia project initialized successfully!');
|
@@ -1,6 +1,11 @@
|
|
1
|
-
For local development
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
For local development self-signed certs are stored here.
|
2
|
+
The server when GameServer.instance.webServer.enableLocalSSL();
|
3
|
+
is used, will look for assets/certs/localhost.key and
|
4
|
+
assets/certs/localhost.cert and use those for SSL.
|
5
|
+
|
6
|
+
We use these self-signed certs to allow https://localhost
|
7
|
+
& wss://localhost support. Without this, play.hytopia.com
|
8
|
+
requires a bunch of funky browser flag workarounds in
|
9
|
+
order to connect to your local server. This is only used
|
10
|
+
for local development and will be ignored when your game
|
11
|
+
is deployed to HYTOPIA servers.
|
@@ -0,0 +1,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDRjCCAi6gAwIBAgIFOTEzNTIwDQYJKoZIhvcNAQELBQAwWDEQMA4GA1UEAxMH
|
3
|
+
SFlUT1BJQTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
|
4
|
+
BAcTB1NlYXR0bGUxEDAOBgNVBAoTB0hZVE9QSUEwHhcNMjQxMTEzMjIyMjEwWhcN
|
5
|
+
MzQxMTExMjIyMjEwWjAUMRIwEAYDVQQDEwlsb2NhbGhvc3QwggEiMA0GCSqGSIb3
|
6
|
+
DQEBAQUAA4IBDwAwggEKAoIBAQCo2i9L13+4KxvR9dxBeE3Xrj5WtoGFBwbUZkeV
|
7
|
+
3B8n+ehJ2LWD13sGvCuHvSDovbSOxLxqbESQzWBRVrmfJMR1qe+o7kd/SMaLHosC
|
8
|
+
2BWASn1oV9rGLktvd2Xs6xRf75cejzrr/OrNoTpICp3j1Z0Kd+73TuYyVFPfCbqH
|
9
|
+
N6mwS+yCmG2/w3sXwbOGymNuYpaPoD8XVcIhO7GPZsCVqqSKP2xsGF+oP5+Isma+
|
10
|
+
y3usNUnFnVW5ckk6SWWdxP9kuOW2xXoFFwj43STaE4OvXbTPCG7jowUpDH1aMvFA
|
11
|
+
ceXUfuaE7H8QfZqoUNu8jCb8LiqTL+uL5kHbl2kQ7sQCN9gjAgMBAAGjWzBZMAwG
|
12
|
+
A1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgWgMB0GA1UdJQQWMBQGCCsGAQUFBwMB
|
13
|
+
BggrBgEFBQcDAjAaBgNVHREEEzARgglsb2NhbGhvc3SHBH8AAAEwDQYJKoZIhvcN
|
14
|
+
AQELBQADggEBAHSINJsVuu11kmzx7/2yEiDSIQVzdzk/+hnx0iQt6rDy9ZNVdI8w
|
15
|
+
JOUYaPjxDFfZ5gaPqrlb0n248lBMdGrp6xmhbgXL8eWkXRDcR6kuYBQrQmFitg7G
|
16
|
+
KFFWnzCuQMLn5Mn6VA+sBf9n2LVaOQCci9jU0awRpaQTUNf894USjILo+PvbcUGU
|
17
|
+
XlMtqc1abkN4NehDdaXsxMwyPgUCPkN5X80s8hxx5NgzwtwDtoTYj/PBRBXBddA+
|
18
|
+
oN1rwkugWiTpIPU0wKb0ufLsq96I24UDQWd2jJGbD2W23Z0lwVz/Bq6uc4aOJn68
|
19
|
+
JbejJgFyF3/m6oFDxgqMnuV5q5olVZHAWL8=
|
20
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEowIBAAKCAQEAqNovS9d/uCsb0fXcQXhN164+VraBhQcG1GZHldwfJ/noSdi1
|
3
|
+
g9d7Brwrh70g6L20jsS8amxEkM1gUVa5nyTEdanvqO5Hf0jGix6LAtgVgEp9aFfa
|
4
|
+
xi5Lb3dl7OsUX++XHo866/zqzaE6SAqd49WdCnfu907mMlRT3wm6hzepsEvsgpht
|
5
|
+
v8N7F8GzhspjbmKWj6A/F1XCITuxj2bAlaqkij9sbBhfqD+fiLJmvst7rDVJxZ1V
|
6
|
+
uXJJOkllncT/ZLjltsV6BRcI+N0k2hODr120zwhu46MFKQx9WjLxQHHl1H7mhOx/
|
7
|
+
EH2aqFDbvIwm/C4qky/ri+ZB25dpEO7EAjfYIwIDAQABAoIBAA6dvGRbRiICEUlu
|
8
|
+
d99u84YM/jZxW+rQ/eVa6S1uvX+vYU0rJiNAftTJaxc35uZerYeCPjEUKCdEr+a6
|
9
|
+
lBzTiPIKgMVlwuiguxcF0NCxNcNCL3Ld0AFBtqPyeO82NjBLxBAQI/CTlxuvriTY
|
10
|
+
TmyPbCWg1h2wRbrrk8sFw5C638Rz2evbBfsUcTICr6QQa51YXgxawtew3Xy3aR3G
|
11
|
+
PPuS7zlvjJYDApQs3+nakEj3DnM2nz5oJNS2YEsMKQRhmNrhen6Ose5G0jf6F6up
|
12
|
+
8HVpN3XW01D7qVT1Og6Y5dE2EM/l3isKZWXif6CcFKoOy87z8HRMIoZJS62WtKtu
|
13
|
+
liBmYxkCgYEA4VDPtFAGnChCTGLVwo7MKmH6/KU5Qj2fuufGNw8jcW3H0Ea52OFC
|
14
|
+
qOGA9pRJVXCap7Wa7XCJXENLYWpSfB7H7GnhFLwHw7jAVB52DLDCdUnRv5fP3o8K
|
15
|
+
xEseMJQaJm95eFVfTETcnjDixWtIzNbXULQbGjF3AY74aFjc1fhc/yUCgYEAv9jj
|
16
|
+
Zrc+UzR0oi00Ip8O5C5Uvu2W35M+j2XoV/xPkX+Hcr12U40Gnc/rnzVp2lGTwNZS
|
17
|
+
ImQcjLEd31qLOy90F9lcaKvOfgcx0JvGEp5SdzQQaS3RJqn0xWLh1O4NMsiVbLNi
|
18
|
+
Zi5qFv7pW/DO174xSa7cMVE8qp8YHAOZdpcqm6cCgYB9FL2ZnetteTQE78E3NsrE
|
19
|
+
pIwPATIeQdOQkOaK3k6Qw57vUrQNYE//LODJAl0Ln21buQd+1MCMhZctRzbvTK8z
|
20
|
+
4TtgpVmyH7g1eouSU/Y/4nEcaYyuQr55ZjImSbGSsMPAN7SlxHytHPpnGj3Z6VKy
|
21
|
+
rKl3CwrDxLjGRL6j0jLeOQKBgBiu3xMoIGy0Iw16o2qQ7GmPTHgEOZUqbLImem5X
|
22
|
+
mCUwM00f80lsq51CUx540NW2CTyWVpr2JnYzk5RZIfDLejRXUvxknny4kEA2ypU6
|
23
|
+
qYGMwU/HBVHkLAn5XvT2a9xM0mzZ558d+ahbw8qAgRxg7BZ+2PW/bf7F2WRBUk1f
|
24
|
+
xauhAoGBALEspoxQozwohGQnP7EMF0/0JoKNpdNv0b0qCVvNiMo0+N297lI2mFQp
|
25
|
+
6xYlW/1l9afLokklF/J2IsyBrTCZoY7SaEk/lMMrQSyra+y0z71ogZ8A4ny9fxsj
|
26
|
+
0dDYJZGllL+3E/MQfd7k+KnOM/+A+cPoAnci76+L3vdkUb2P8SJk
|
27
|
+
-----END RSA PRIVATE KEY-----
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "hytopia",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.15",
|
4
4
|
"description": "The HYTOPIA SDK makes it easy for developers to create multiplayer games on the HYTOPIA platform using JavaScript or TypeScript.",
|
5
5
|
"main": "server.js",
|
6
6
|
"bin": {
|
@@ -46,8 +46,5 @@
|
|
46
46
|
"bugs": {
|
47
47
|
"url": "https://github.com/hytopiagg/sdk/issues"
|
48
48
|
},
|
49
|
-
"homepage": "https://github.com/hytopiagg/sdk#readme"
|
50
|
-
"dependencies": {
|
51
|
-
"mkcert": "^3.2.0"
|
52
|
-
}
|
49
|
+
"homepage": "https://github.com/hytopiagg/sdk#readme"
|
53
50
|
}
|