BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Squishi.
A very small sushi bar where everything wobbles. Soft mochi animals order nigiri. Each ticket carries a photo of the plate they want. You make it across four stations, each with its own camera angle, and get scored on how close you got. At the end of a shift your best plates can go up on a shared wall next to everyone else's.
The game runs in the browser. The only server part is the wall: one small function that stores plate photos and a board of best shifts. There are no accounts, no analytics and no cookies. The wall keeps only the name a player types and their plate photos.README 전문 보기 ↗A very small sushi bar where everything wobbles. Soft mochi animals order nigiri. Each ticket carries a photo of the plate they want. You make it across four stations, each with its own camera angle, and get scored on how close you got. At the end of a shift your best plates can go up on a shared wall next to everyone else's.
The game runs in the browser. The only server part is the wall: one small function that stores plate photos and a board of best shifts. There are no accounts, no analytics and no cookies. The wall keeps only the name a player types and their plate photos.
| Station | Angle | What you do |
|---|---|---|
| 01 Counter 受付 | Eye level, across the bar | A guest hops in and pins an order ticket with a photo of the plate they want. Take the order. Poke the guest if you like. |
| 02 Rice 酢飯 | Over the rice tub | Hold to scoop, let go inside the green band. Then hold to press and let go in the green, three times. Press too hard and the rice squashes flat. Onigiri are made here too: scoop, pick the filling, press it into a triangle and tap to wrap the nori. |
| 03 Knife 包丁 | Low, along the cutting board | Swipe down through the fish block along the dashed guide. Angle and thickness are scored. Salmon and tuna want a 45° cut, egg a straight one. |
| 04 Build 盛付 | Three quarters, over the serving board | Tap the rice for wasabi (one tap per dab), drag a slice onto the rice, then add the toppings on the ticket. Serve. |
| 05 Stove コンロ | Close over the pot or the pan (stages 6 to 10) | Udon, gyoza, ramen and takoyaki, step by step. See The stove below. |
The guest eats it and reacts. Every bite goes somewhere: nigiri, roll pieces, gyoza and takoyaki are lifted off the board one at a time and carried in an arc into the guest's mouth; an onigiri is held up to the mouth and bitten down in three; noodles are slurped, a few strands at a time rising out of the bowl into the mouth while the nest thins strand by strand, the toppings go between slurps and the broth goes down. Nothing shrinks in place or sinks through its dish. Each plate is scored on its three steps (rice, cut and build for sushi; boil, broth and toppings for noodles; batter, turning and toppings for takoyaki; and so on) and the wait. A plate is only as good as its weakest step: steps at 0.8 or better cost nothing extra, but one ruined step (burnt takoyaki, barely any batter, a mangled cut) pulls the whole plate down. Tips follow the score. The guest's comment is about the dish in front of them and the step that went worst, and says which way it went: firm or soggy noodles, pale or burnt gyoza, too much wasabi or none, a missing topping by name. Only a plate with nothing wrong on it gets praise.
Every step gets a grade stamped where the work happened: Perfect!, Great!, OK or Oops!, with a few words on why ("Too hard", "Right in the middle"). Each grade has its own sound.
The guests are round little animals in the spirit of Animal Crossing villagers, each with their own look:
Each one has a big, round soft-body head that squashes and wobbles, on a small round body in a patterned shirt with sleeves, round paws, little feet and a tail. At the counter they sit with their paws on the ledge. They wave when poked, throw both arms up at a great plate, hold their paws to their mouths while eating and tap a paw when they get impatient. A soft ink outline goes around every part.
Faces are painted textures swapped per expression (src/sushi/faces.js):
Pochi, the shiba sous chef, sits on the counter in a chef's toque and a red neckerchief. He greets each guest, cheers good plates and sweats over bad ones. The chef is a cat: a paw cups the rice when you scoop and presses it on the mat.
The Sushi book on the title screen is the bar's field guide, and it fills in as you play.
The photos come from the same photo booth as the tickets. They are rendered the first time the book opens and kept for the session. The book is saved with your progress in the browser.
At the end of a shift, the summary shows today's plate photos. Type a name and post: your three best plates go up on the wall, and the shift goes on a board ranked by tips. The wall is also on the title screen.
api/gallery.js is a Vercel function. It needs a Redis REST store: add Upstash for Redis (or Vercel KV) to the project in the Vercel dashboard under Storage. That sets KV_REST_API_URL and KV_REST_API_TOKEN (or UPSTASH_REDIS_REST_URL and UPSTASH_REDIS_REST_TOKEN).npm run dev and npm run preview serve the same API from memory, so the wall works locally with no setup. It resets when the server restarts.._'-. Photos are small JPEG data URLs (320 by 200, under 60 KB). Six posts per visitor per minute. The newest 48 plates and the best 100 shifts are kept.Ten stages, each with its own menu and a new dish to learn:
| Stage | Name | What's new |
|---|---|---|
| 1 | First shift | Salmon nigiri only. Learn the counter. |
| 2 | Tuna day | Tuna, sesame and scallion. |
| 3 | Onigiri | Ume and salmon rice balls: fill, shape, wrap. |
| 4 | Rolls | Hosomaki with cucumber or tuna. |
| 5 | Sweet and glazed | Tamago in a nori belt, glazed unagi, ikura, salmon rolls. |
| 6 | Udon | Kitsune and tempura udon at the stove. |
| 7 | Gyoza | Fill, pleat and fry. Rush hour arrives. |
| 8 | Ramen | Shoyu and tonkotsu ramen with all the toppings. |
| 9 | Takoyaki | Pour, turn and top six octopus balls. |
| 10 | Grand night | The whole menu, two nigiri a plate and a long rush. |
Orders come from a shuffled menu bag for the stage, so the same dish never comes twice in a row, and the stage's new dish is always the first order. Each stage has three star goals in tips, shown on its intro card. All ten stages are open for now so testers can jump to any of them. Stars and best tips show on the level select. Progress is kept in the browser.
The left end of the counter has a little two-burner stove: a pot of water for noodles, an iron pan for gyoza (swapped for a takoyaki iron on takoyaki orders), a donburi in front of the pot and a folding board in front of the pan. The camera closes in on whichever dish the ticket asks for. Every step is graded, Cooking Mama style.
Udon (kitsune with fried tofu, or tempura with a shrimp):
Gyoza (three to a plate):
Ramen (shoyu or tonkotsu) runs like udon with thin, wavy yellow noodles and a rich broth, topped with chashu, naruto, menma, a marinated egg, nori and scallion.
Takoyaki (six to a boat):
Finished dishes slide down the counter onto the serving board for the guest. The stove sits far enough back that the bowl and the folding board clear the pot, the pan and the stove body. Takoyaki toppings belong to each ball, so a ball leaves the boat fully dressed. Their score card reads Boil, Dashi (or Broth) and Toppings; Filling, Pleats and Frying; or Batter, Turning and Toppings. Onigiri read Rice, Filling and Wrap.
A roll order runs its own little chain:
The six pieces then stand up on the serving board, cut face up. The cut faces are drawn by a shader: nori rim, packed rice grains, then the filling (cucumber with its seeds, tuna or salmon).
First-time cues stay inside what is already on screen. Pochi's hint bubble names each step, and if you pause for a moment a paw shows where and how to touch. On a computer the hints say click and drag, and for steps the Space bar can do (scooping, pressing, pouring, tapping the pot, taking an order) a small Space key sits at the start of the hint, sinking slowly for a hold or tapping for a tap. The cues step back as you learn: the Space key retires after a few presses, and the paw waits longer once you have done a good few things. This is remembered in the browser.
Keys: 1 to 5 switch stations; hold Space to scoop and press; Esc pauses (resume, restart the day or quit to the title). The pause button in the top bar does the same on phones.
The ticket ticks off each request as you go: wasabi and ikura show a count (Wasabi 2/3, Ikura 4/5), toppings turn green when added, and a 済 stamp lands when a piece matches. In the build station the tools switch to the next thing the ticket needs on their own, and a "!" marks the ones still missing. Guests lose patience on game time, so pausing or switching tabs costs nothing. Record makes a 6 second clip of the screen with the bar's name, the day, tips and the last plate's stars. Photo saves a PNG.
Rendering goes through a post chain (src/sushi/stage.js):
Lighting aims for a bright, toy-like look:
The animals carry a shader rim light: a soft cream glow along the edges that face the sky, toned down on white fur so the panda and bunny do not blow out. Each one sits on a soft contact shadow that shrinks and fades as it hops. The guest at the counter casts a soft one onto the ledge where their paws rest.
Quality tiers (high, medium, low, minimal):
low, unknown ones on medium, big desktop GPUs on high.?tier=low forces a tier.Keeping it smooth:
Feedback while you play:
The bar has its own lo-fi band, written live in Web Audio (src/sushi/music.js). No track is downloaded, so there is nothing to license and nothing to fetch.
A loading screen shows straight away, before any game script arrives. It has a mochi you can poke (it squishes, says "boing!" and counts your squishes), a real progress bar and a rotating gameplay tip.
Behind it the game compiles only what the title camera can see, a dozen meshes at a time with a frame in between, so the loading screen stays alive and the bar shows real progress. The game loop does not draw while this runs, so no time goes to frames nobody sees. Then one frame runs through the post chain and the title comes up.
While the title is showing, the stations off camera and one of every dish compile in the background, a few at a time so the title never freezes. If you press start before that is done, the button fills up as a progress bar ("Warming the plates 60%") and the stage opens by itself when it is ready.
The game is built to be played sideways on a phone:
The UI is drawn like a cozy cooking game rather than a web page:
All icons are hand-written SVG in src/sushi/icons.js. Nothing is loaded from outside.
Every texture is a shader driven by 3D coordinates baked into each piece (src/sushi/glsl.js), so a cut face shows the grain that was inside the block:
Fish blocks and slices are rounded outlines, extruded with soft bevels and then smoothed, so nothing has a hard edge.
Rice, fish, blocks and customers are all soft bodies on one shared simulation (src/jelly.js). Rice forming and fish draping over rice are shape changes the simulation wobbles through.
Ticket pictures and served-plate photos come from a photo booth (src/sushi/booth.js) that renders small stills on the main renderer between frames.
index.html the bar
src/sushi/config.js layout, camera angles, days, scoring, every tuning number
src/sushi/game.js flow, customers, serving, input, capture, quality
src/sushi/stations.js counter, rice, knife and build stations
src/sushi/food.js rice, fish blocks and slices, toppings, nigiri pieces, nori belts
src/sushi/maki.js rolls: sheet, rolling, log, cut pieces, cut-face shader
src/sushi/hot.js stove, udon bowl, noodles, toppings, gyoza that fold and brown
src/sushi/stove.js the stove station: udon and gyoza steps
src/sushi/critters.js chibi animal guests, the sous chef, the chef's paw
src/sushi/faces.js painted eyes, brows, mouths, blush and emotes
src/sushi/booth.js ticket pictures and plate photos
src/sushi/wall.js the wall: posting, loading, local fallback
src/sushi/ui.js HUD, tickets, cards, the wall and the Sushi book
src/sushi/icons.js the UI's SVG icons
src/sushi/set.js counter, curtain, lanterns, sign, tub, boards, bowls, knife
api/gallery.js Vercel function for the wall
server/gallery-core.js the wall's storage logic, shared with the dev server
src/sushi/glsl.js generated food and wood textures
src/sushi/orders.js order generation and scoring
src/jelly.js the soft body simulation
src/meshutils.js subdivision and vertex ordering for soft meshes
src/record.js clip recording and sharing
src/audio.js Web Audio sound
src/config.js soft body, sound and recording numbers
npm install
npm run dev
Open the printed URL. On a phone on the same network, use the Network URL Vite prints.
npm run build # static site in dist/
npm run preview # serve dist/ locally to check it
dist/ is a plain static folder with relative paths, so it works at a domain root or in a subfolder. vercel.json pins the build settings, so a Vercel import needs no setup.
npm run build, output directory dist. For the shared wall, add Upstash for Redis under Storage (see The wall above). Other hosts serve the game without the wall's server part, so the wall falls back to each player's own shifts.npm run build, publish directory dist. Or drag dist/ onto the Netlify dashboard.dist/.Game numbers live in src/sushi/config.js: layout, camera angles, days, scoring, rush, favourites, guests and dishes. The soft body feel (SIM.spring, SIM.damping, SIM.coupling, SIM.pressure) is in src/config.js.
Debug URL flags: ?tier=low forces a quality tier, ?fixed turns off automatic quality changes, ?debug exposes the game as window.game.
src/fonts/: Titan One (display and numbers), Noto Serif JP (the shop sign and stamps) and M PLUS Rounded 1c (the game UI). All are under the SIL Open Font License; the license texts sit next to the files. Noto Serif JP is subset to the 70 or so characters the bar uses (13 KB), and M PLUS Rounded to Latin, kana and the UI's kanji.