BeamNG.Earth
BeamNG.drive용 1:1 비율 실시간 지구, 실제 고도·위성 이미지·부동 원점·보조 서버에서 LOD 스트리밍
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Blindtest multijoueur en ligne, gratuit et sans compte : jusqu'à 12 joueurs avec leurs playlists Spotify, Deezer ou Apple Music. Next.js, Socket.io.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗🇬🇧 English | 🇫🇷 Français
Museek is a free online multiplayer music quiz (blind test), no account needed, for up to 12 players, using your own Spotify, Deezer or Apple Music playlists. Everyone brings a playlist, Museek shuffles the tracks together, and every player who recognises the artist or the title scores points.
🌐 Play online: https://museek.xiao-web.com/
📝 Technical write-up: Building a multiplayer music quiz where everyone brings their own playlist (Next.js + Socket.io)
| Lobby: settings and playlist | Round: type the artist and the title |
|---|---|
| Autocomplete | Answer reveal |
|---|---|
| Results |
|---|
The project is a monorepo:
music-blender/
├── backend/ # Node.js / Socket.io server
│ ├── scripts/ # Track extraction (Spotify, Deezer, Apple) and transliteration
│ ├── types/ # Game and socket event types
│ ├── tests/ # Tests (see "Tests" below)
│ ├── servor.ts # Main backend server entry point
│ └── package.json
├── frontend/ # Next.js application
│ ├── src/
│ │ ├── app/ # Next.js config (App Router): home `/`, `/mentions-et-politiques` page, sitemap, robots
│ │ ├── components/ # UI components (stepper, autocomplete, PWA, etc.)
│ │ ├── context/ # Contexts: game (GameContext) and language (LanguageContext)
│ │ ├── locales/ # Translation files (FR/EN)
│ │ ├── types/ # Client-side game types
│ │ ├── views/ # App views (Home, Lobby, Game, Results)
│ │ └── utils/ # Shared socket, game clock (gameClock), local storage
│ └── package.json
├── package.json # Global scripts
└── README.md # This file
backend/.env with process.loadEnvFile)Install the root dependencies first, then the frontend and backend ones:
# Install global dependencies (concurrently)
npm install
# Install backend dependencies
npm install --prefix backend
# Install frontend dependencies
npm install --prefix frontend
Create a .env file in the backend/ folder:
# backend/.env
PORT=4000
SPOTIFY_CLIENT_ID=your_spotify_client_id # optional (Spotify albums)
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret # optional (Spotify albums)
GROQ_API_KEY=your_groq_key # optional (romanisation)
GROQ_MODEL=qwen/qwen3.8-27b # optional, Groq model used
TRUST_PROXY=1 # optional, enable behind a reverse proxy
Per-IP limits (per minute, adjustable, default values): RATE_LIMIT_ROOMS=20 room creations, RATE_LIMIT_PLAYLISTS=60 playlist loads, RATE_LIMIT_BAD_JOINS=30 non-existent room codes tried, MAX_SOCKETS_PER_IP=50 simultaneous connections. Behind a reverse proxy (hosts such as Render, Hostinger…), set TRUST_PROXY=1: the server then reads the client address from X-Forwarded-For. Without it, all players share the proxy's address and therefore the same limits.
Note: to get your Spotify credentials, create an application on the Spotify Developer Dashboard.
By default the frontend connects to http://localhost:4000 in development mode. For production, you can create a .env.local file in the frontend/ folder:
# frontend/.env.local
NEXT_PUBLIC_SOCKET_URL=https://your-backend-server.com
From the project root, run:
npm run dev
This starts simultaneously:
Then open http://localhost:3000 in your browser to play!
The (backend) tests start their own server on port 4100, play games with real Socket.IO clients, then stop it:
npm test --prefix backend # all tests
npm test --prefix backend -- reset answers # only files whose name contains these words
SKIP_NETWORK=1 npm test --prefix backend # without the games that load a real Deezer playlist
They cover answers and scores, host rights and settings limits, player identity (no leak of the reconnection ID), disconnections and reconnections (including coming back from another app on mobile), game reset, the game clock functions, playlists mixing several scripts (Japanese, Chinese, Korean, Cyrillic…: international version of names and answer correction, with a real Spotify playlist in an end-to-end test), the allowed playlist links (protection against the server calling arbitrary addresses) and per-IP limits. The test server shortens the grace period from 5 minutes to 3 seconds (GRACE_PERIOD_MS). Frontend lint: npm run lint --prefix frontend.
The project follows a privacy-by-default principle:
/mentions-et-politiques).This game is an independent project and is neither affiliated with, sponsored by, nor endorsed by Spotify, Deezer or Apple Music. The associated titles, artists and visuals remain the exclusive property of their respective owners.
Code released under the ISC license. The trademarks and visuals of Spotify, Deezer and Apple Music, as well as the audio previews, remain the property of their respective owners and are not covered by this license. Third-party fonts and components: see THIRD_PARTY_NOTICES.md.