This repo is a work in progress and is currently my personal thing. Feel free to fork or ask questions about it, but expect things to change drastically.
This is a highly opinionated monorepo for game dev using web tech.
The stack is:
Svelte
for frontend (https://svelte.dev)Bun
for backend (https://bun.sh)MongoDB
for database (https://www.mongodb.com)nvm use
npm install
npm run dev
touch .env
and add:
PORT=1337
CORS_ORIGIN=*
NODE_ENV=development
MONGO_CONNECT=mongodb://wsadmin:qwe123@localhost:27017
SUPPORT_EMAIL_PASSWORD=<password>
PASSWORD_RESET_HASH=<custom_hash>
cd svelte-game-server
npm install
npm run dev
Global styling is done like so: :global(.anElement .anotherElement.anotherElement)
. It has to do with how Svelte is applying their automatic classes for scoping. It might be possible to skip the extra .anotherElement
in the future. Skipping it now makes development
and production
run differentiating CSS.
.env (development) & .env.production (production)
are injected into src/constants/ENV_VARS.js
. Trying to parse import.meta.X
won't work in Svelte files, due to vite crashing when there is CSS in the files that they parse.
This repo utilizes sveltekit-autoimport
(https://github.com/yuanchuan/sveltekit-autoimport) hence some .svelte
and .js
imports seem to magically appear out of nowhere. See vite.config.js
to see what's going on. For const { someStoreProperty } = STORES
to work properly, a bunch of code has been abstracted into /src/store
for ease of use.