Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed .DS_Store
Binary file not shown.
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.gltf filter=lfs diff=lfs merge=lfs -text
*.glb filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
4 changes: 4 additions & 0 deletions .github/workflows/godot-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,13 @@ on:
push:
branches:
- main
paths:
- 'game/**'
pull_request:
branches:
- main
paths:
- 'game/**'

# NOTE: If your `project.godot` is at the repository root, set `PROJECT_PATH` below to ".".

Expand Down
5 changes: 5 additions & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
public-hoist-pattern[]=@braintree/sanitize-url
public-hoist-pattern[]=dayjs
public-hoist-pattern[]=debug
public-hoist-pattern[]=cytoscape-cose-bilkent
public-hoist-pattern[]=cytoscape
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ See [`LICENSE`](./LICENSE) for full terms.

My attempt at making an MMO game using Godot and Bun.

> [!NOTE]
> I am looking for artists to help out with graphics & 3d art 🙂, email echoform@ramdta.com if interested
Packages:

- [backend](./backend) - (Bun) The authoritative server for the game. Manages player profiles, load balancing, and realtime
Expand Down
2 changes: 1 addition & 1 deletion backend/.gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.vitepress
.vitepress/cache

# dependencies (bun install)
node_modules
Expand Down
85 changes: 0 additions & 85 deletions backend/docs/markdown-examples.md

This file was deleted.

16 changes: 5 additions & 11 deletions backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@
"db:generate": "bunx drizzle-kit generate",
"db:migrate": "bun run scripts/migrate.ts",
"db:seed": "bun run scripts/seed.ts",
"codegen:asyncapi": "bun run scripts/asyncapi.ts",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs"
"codegen:asyncapi": "bun run scripts/asyncapi.ts"
},
"dependencies": {
"@hono/standard-validator": "^0.1.5",
Expand All @@ -28,7 +25,7 @@
"@scalar/hono-api-reference": "^0.9.22",
"date-fns": "^4.1.0",
"drizzle-orm": "^0.44.7",
"hono": "^4.10.2",
"hono": "^4.10.4",
"hono-openapi": "^1.1.0",
"nanoid": "^5.1.6",
"pino": "^10.1.0",
Expand All @@ -37,7 +34,7 @@
"zod-openapi": "^5.4.3"
},
"devDependencies": {
"@asyncapi/cli": "^4.0.0",
"@asyncapi/cli": "^4.1.0",
"@asyncapi/optimizer": "^1.0.4",
"@eslint/js": "^9.38.0",
"@trivago/prettier-plugin-sort-imports": "^5.2.2",
Expand All @@ -46,16 +43,13 @@
"bonjour-service": "^1.3.0",
"chalk": "^5.6.2",
"chalk-template": "^1.1.2",
"drizzle-kit": "^0.31.5",
"drizzle-kit": "^0.31.6",
"eslint": "^9.38.0",
"mermaid": "^11.12.0",
"npm-check-updates": "^19.1.1",
"npm-check-updates": "^19.1.2",
"prettier": "^3.6.2",
"typed-emitter": "^2.1.0",
"typescript": "^5.9.3",
"typescript-eslint": "^8.46.2",
"vitepress": "^1.6.4",
"vitepress-plugin-mermaid": "^2.0.17",
"zod-to-json-schema": "^3.24.6"
},
"packageManager": "bun@1.3.1"
Expand Down
59 changes: 36 additions & 23 deletions bun.lock

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.vitepress/cache
58 changes: 58 additions & 0 deletions docs/.vitepress/config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import { type DefaultTheme, defineConfig } from "vitepress";
import { withMermaid } from "vitepress-plugin-mermaid";

// https://vitepress.dev/reference/site-config
export default withMermaid({
title: "Echoform Authoritative Docs",
description:
"Technical documentation for the Echoform game authoritative server",
appearance: true,
lastUpdated: true,

themeConfig: {
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: "Game", link: "/game" },
{ text: "Backend Reference", link: "/backend-reference" },
],

sidebar: {
"/backend-reference": [
{
text: "Flows",
link: "/backend-reference/flows",
items: [
{
text: "Authentication",
link: "/backend-reference/flows/authentication",
},
],
},
],
"/game": [
{
text: "Game",
link: "/game",
items: [
{
text: "Story",
link: "/game/story",
},
{
text: "Music",
link: "/game/music",
},
],
}
],
},

socialLinks: [
{ icon: "github", link: "https://github.com/floffah/echoform" },
],

editLink: {
pattern: 'https://github.com/floffah/echoform/edit/main/docs/:path'
},
} as DefaultTheme.Config,
});
File renamed without changes.
1 change: 1 addition & 0 deletions docs/game/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
You can see an outline of the story [here](./story.html)
15 changes: 15 additions & 0 deletions docs/game/music.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Music

- [First Breaths](/music/first-breathing.pdf)

## Musical Identity
- Title Theme: “First Breaths” in E minor. A choral/symphonic piece that represents the player’s materialization.
- Leitmotif: Being developed as a core melody that will appear in multiple forms across the soundtrack (like Zelda’s Lullaby or Fi’s Theme). Built around modal tone (e.g., B♭ Dorian).
- Musical Themes:
- Breathlike trills to represent life awakening
- Memory represented through floating melodic fragments
- Each piece of music maps to an emotional state or story moment

## Artist Identity
- Music is released under the stage name: Morthen Vale
- Spotify/Bandcamp bio tone: cryptic, poetic, non-literal
26 changes: 26 additions & 0 deletions docs/game/story.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Echoform: World and Story Overview

## Summary

Echoform is a cozy, languageless MMO with spiritual and existential themes. The player controls a non-human entity known as an Echoform, a being constructed from memory strands and light, slowly forming in a half-lost world. The game’s story is delivered through visuals, music, environmental design, and motifs—without spoken or written language.

## Core Themes
- Reconnection: The world is still alive but fragmented—players restore connections.
- Becoming: The Echoform doesn’t start fully formed; it remembers itself into shape.
- Restoration (but not erasure): The world isn’t reborn—it is rediscovered and lived in again.
- Memory & Reflection: Strands of light represent memories, which influence how the world reshapes.

## The Echoform
- The player character is a translucent, non-human silhouette who awakens alone.
- The Echoform materializes from a fading tree at the center of a personal void island.
- Memory strands—thin glowing threads—extend from the Echoform, pulsing with movement.
- These strands represent the self forming as the world responds in subtle ways.
- Echoforms don’t talk, but can sense, observe, and cause emotional or light-based reactions.

## Visual Branding
- The world uses a dark, minimalistic visual language.
- Glowing memory strands or petals occasionally appear.
- Key visual elements:
- A lone tree stump in an infinite mirror void
- The Echoform as a transparent humanoid figure
- Silhouettes, soft gradients, sparse particle effects
11 changes: 7 additions & 4 deletions backend/docs/index.md → docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,13 @@ hero:
tagline: Technical documentation for the Echoform game authoritative server
actions:
- theme: brand
text: Reference
link: /reference
text: Backend Reference
link: /backend-reference
- theme: alt
text: API Examples
link: /api-examples
text: Game Documentation
link: /game
---

::: info
I am looking for artists to help out with graphics & 3d art 🙂, email echoform@ramdta.com if interested
:::
Binary file added docs/public/music/first-breathing.pdf
Binary file not shown.
Binary file modified game/assets/audio/First Breathing.mp3
Binary file not shown.
4 changes: 3 additions & 1 deletion game/models/player/eform.gltf

Large diffs are not rendered by default.

Binary file modified game/models/title_oak_tree/title_oak_tree.glb
Binary file not shown.
Binary file modified game/models/tree/Low_poly_artistic_mod_1029220550_texture.glb
Binary file not shown.
Binary file modified game/models/tree_stump/Low_poly_artistic_mod_1029212559_texture.glb
Binary file not shown.
22 changes: 19 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,27 @@
"backend",
"game"
],
"packageManager": "bun@1.3.0",
"type": "module",
"scripts": {
"docs:dev": "vitepress dev docs --shamefullyHoist",
"docs:build": "vitepress build docs --shamefullyHoist",
"docs:preview": "vitepress preview docs --shamefullyHoist"
Comment thread
Floffah marked this conversation as resolved.
Outdated
},
"packageManager": "bun@1.3.1",
"devDependencies": {
"turbo": "^2.5.8"
"mermaid": "^11.12.0",
"turbo": "^2.5.8",
"vitepress": "^1.6.4",
"vitepress-plugin-mermaid": "^2.0.17"
},
"patchedDependencies": {
"@node-rs/bcrypt@1.10.7": "patches/@node-rs%2Fbcrypt@1.10.7.patch"
"@node-rs/bcrypt@1.10.7": "patches/@node-rs%2Fbcrypt@1.10.7.patch"
},
"optionalDependencies": {
"@braintree/sanitize-url": "^7.1.1",
"cytoscape": "^3.33.1",
"cytoscape-cose-bilkent": "^4.1.0",
"dayjs": "^1.11.18",
"debug": "^4.4.3"
}
}