hytopia 0.1.14 → 0.1.15
Sign up to get free protection for your applications and to get access to all the features.
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
|
}
|