Skip to content

About

Play 3DXChat on your phone, from anywhere. By KingColossus.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

3DX Remote Play logo

3DX Remote Play

Play 3DXChat on your phone, from anywhere.
The game keeps running on your PC. Your phone becomes the screen and the controls.

Download MIT license Windows 10 and 11


📱 How does it work?

  1. Install 3DX Remote Play on the PC you play on: grab the setup from the latest release.
  2. Turn on Allow Remote Play and press Show pairing code.
  3. Scan the code with your phone's camera and tap Start playing.

Next time, just open the page you saved. It works on Wi-Fi and on mobile data, with nothing to install on the phone and nothing to set up on your router.

On iPhone: for full screen, tap Share → Add to Home Screen before you start, then open 3DX Play from your Home Screen. The pairing link works only once.

🎮 Controls

On your phone In the game
Tap Walk there, or click
Drag Turn the camera
Hold, then drag Move sliders and windows
Pinch Zoom
💬 Chat with your phone's keyboard
📷 Switch camera
☰ Game menu
🔍 Magnifier for small buttons
🔊 Sound on or off
⏻ End the session

🔒 Private by design

  • Only the game. Your phone sees the 3DXChat window and hears the game's sound. Nothing else on your PC.
  • Only game controls. A phone can click inside the game, chat, and use a keyboard and controller made for it. No Windows, Alt or Ctrl keys, so no Alt+Tab, and all input stops the moment the game isn't in front.
  • One phone, and only you. Making a pairing link takes Windows Hello on your PC. The link works once, for 15 minutes, and the phone that opens it makes a passkey. Every new connection then takes Face ID or your passcode, and your PC checks it itself. A lost phone can't connect without them, and a stolen link or key gets nothing.
  • Encrypted end to end. Picture, sound and controls are encrypted between your PC and your phone. They go straight between the two when they can, and through a Cloudflare relay when they can't. Cloudflare only ever sees sealed data.
  • You'll know. Your PC shows a notification whenever a phone connects, and a red dot on the tray icon for as long as it stays connected.
  • Nothing about you. No accounts, no analytics, no tracking, and the relay stores nothing. The only record of your sessions is a short log on your own PC. Your IP address does reach Cloudflare, which runs the page and the relay, as with any website.

💡 Good to know

  • Keep the PC on, signed in and unlocked. While Remote Play is on, the PC won't go to sleep.
  • 3DXChat has to be open, or start it from your phone once it has run on this PC.
  • Closing the window keeps Remote Play running in the tray. Open with Windows makes the PC ready again after a restart.
  • It works with a VPN on, on your PC or your phone.
  • The picture is set to Balanced, at most about 0.7 GB an hour. Pick Data saver (about 0.3 GB) or Best (about 1.8 GB) on your phone, which also shows how much the session has used. No picture is sent while your phone is locked or in another app.
  • Your phone can hide the game on your PC, and the app hides it by itself a minute after your phone leaves if nobody's at the PC. You can turn that off. Hiding pauses the picture until you bring the game back.
  • Your phone types into whichever chat box is active in the game, so tap the one you want first.
  • If your phone won't connect, the page shows which step it's on, and the app writes what happened to remote_play.log in %APPDATA%\com.kingcolossus.remoteplay. It holds no addresses or keys, and it stays on your PC.
  • Windows may say the app is from an unknown publisher: click More info, then Run anyway.
  • If the app ever freezes, it restarts itself in the tray within about half a minute and tells you, and your phone reconnects by itself.
  • The app keeps itself up to date. It checks GitHub every few hours and only accepts updates signed with a key that never leaves the maintainer's PC. An update waiting when the app starts goes in straight away, and one found later waits for you to choose Restart to update from the tray icon.
🛠️ For developers
  • src/: the app's window and the host that runs WebRTC.
  • src-tauri/: the native side: finding the game, game-only sound, and the input rules in remote_input.rs.
  • shared/: the protocol both ends speak.
  • phone/: the phone page (Cloudflare Pages) and the relay (a Worker with a Durable Object).
npm install
npm run tauri dev       # run the app
npm test                # protocol, controls, relay and host tests
npm run tauri build     # the installer
npm run deploy:phone    # the phone page and the relay

TURN. Some mobile carriers and VPNs block direct connections, so a copy of the page needs its own relay. Create a TURN key (not an SFU app) under Realtime in the Cloudflare dashboard, then set it on the Pages project:

npx wrangler pages secret put TURN_KEY_ID --project-name 3dx-play
npx wrangler pages secret put TURN_KEY_TOKEN --project-name 3dx-play

Releasing. Push a v* tag, then run scripts\sign-release.ps1 v1.2.3 on the PC with the signing key. Until then the release exists but the app won't update to it. The key must never go on GitHub. A copy of this app needs its own key: npx tauri signer generate, and its public half in src-tauri/tauri.conf.json.

Moving the phone page. Its address is in shared/remotePlay.ts (PLAY_ORIGIN), the connect-src of src-tauri/tauri.conf.json and phone/web/public/_headers.


By KingColossus · MIT License

About

Play 3DXChat on your phone, from anywhere. By KingColossus.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages