FAQ Page

PlayCast Alpha Release FAQ

PlayCast 0.9.2 - 6/2/2023

Welcome to the PlayCast.io Alpha release program.  Our highly dedicated team of engineers have been hard at work for the past two years to bring this amazing technology into existence.  We greatly appreciate all the support and feedback we can get on making it a great product.  

If you are ready to START, DOWNLOAD and INSTALL and skip 12 pages of notes: https://packages.playcast.io/Alpha/PlaycastBundle.exe

OR CONTINUE READING FOR OUR

  1. Intro to Playcast
  2. WARNINGS
  3. Known Bugs

Intro to Playcast

For those of you who have not participated in an Alpha program, in our particular case, the PlayCast server is consumer software that interacts strongly with users' personal desktops and games.  We feel that it's important to get early feedback on how users will experience our product.  In general an alpha release is;

  1. Mostly functionally complete
  2. Buggy
  3. UI is unfinished pending user testing

PlayCasting is the convergence of remote desktop sharing, video conferencing, streaming and gaming.

PlayCasting enables the transition from delivering applications as (insecure, hardware dependent) code to delivering them as interactive video.

  • PlayCasting provides a common way to deliver a highly interactive real-time video multicast of anything you use your computer for.
  • Since a PlayCast interactive stream is visible to all existing browsers, video conferencing and streaming tools (Like OBS), PlayCasters can create entirely new live streaming experiences and communities.
  • PlayCasting is clientless, which means PlayCasters can share their live streams with anyone on any device anywhere via any browser.
  • PlayCasting is cloudless (Peer-to-peer), which means that it is free and has very low latency.
  • PlayCasting is fast and operates at the OS driver level which enables it to capture live gaming and media viewing sessions.
  • PlayCast sessions include mouse, keyboard and game controller input streaming enabling total collaborative play and desktop use.

WARNING!

Please be advised that this alpha technology is a serious hazard to the security, stability and integrity of your PC.  It installs new Ring-0 software drivers that turn your computer into an interactive streaming video server at a very low-level in the Windows OS, and it exposes total remote control of your computer to anyone and everyone on the internet via a URL.  Do NOT install it on any computer you cannot afford to break. Do not install it on any computer with a camera and microphone where you are likely to be visible on camera nude (unless you’re into testing that sort of thing).  Do NOT share this alpha with anyone you love.  If you have kids who are gamers and spend too much time on their computers, ask them to try this.  That said, it works fine on our machines and has only bricked a couple under software development conditions.  If it fails to update itself to newer versions it will disable itself within six months. The installer automatically generates restore points… for whatever that’s worth… Whatever you do, don’t cross the streams, it will create a wormhole and shriek like a banshee!  Good luck and thank you for your sacrifice!

What is PlayCasting?

PlayCast Alpha UI

Please Test These Things

The purpose of releasing an alpha among a few discriminating users and testers is to get feedback on a narrow set of stability and usability questions.  In order to make this alpha test as productive as possible we have deliberately narrowed the UI scope down to limit users to a very clear set of testable use cases;

  1. Can you share and access your primary desktop reliably from any device via any browser?
  2. Can you reliably connect to your primary desktop via a variety of network conditions, firewalls, mobile connections, etc.
  3. Does your desktop work as you would expect via a browser?
  4. Can you reliably play your games, consume media and use your desktop via a browser?
  5. Can you co-play games like Minecraft Dungeons with 1-3 remote friends via mouse, keyboard, and gamepads?

The big questions we hope to answer from this exercise are;

  1. Does it reliably install, uninstall and update
  2. Does it generally work?
  3. Does it generally connect?
  4. Is it generally fast?

Installation Notes

  1. Create a Windows Guest account to PlayCast from the URL below.  (The final product will have options to do this automatically for PlayCasters)
  1. AFTER rebooting, install the PlayCast server (In Elevated Admin Mode).
  2. Log into your new “Visitor” account, launch the PlayCast client and stream!

Things we know are broken/incomplete

There are an extensive set of bugs/feature requirements and unresolved UI issues that we are already aware of and are working on.  These are the major issues we are already aware of.

  1. User account authentication is not in the Alpha which means that if you share access to an administrator Windows account via PlayCasting it, anyone on the internet, anywhere could gain complete control over your computer.  If you want to test securely sharing your games with anyone, we recommend creating a Windows GUEST account and sharing that.  A Windows Guest account will not allow strangers to see your personal data, access your files or install software on your computer.
  2. We don’t support full touch UI on mobile yet.  You can connect a bluetooth mouse, keyboard and/or gamepad to a mobile device and expect that to work.
  3. We do not have complete keyboard isolation in the browser yet.  It’s possible to get into a weird or confusing state by clicking key combinations intended for your remote device that get interpreted by the local OS or browser itself.  Avoid use of the keyboard meta-keys, and keys that are not common between Windows and Mac desktops like the ESC key.  These challenges fall in the category of known UI issues we have plans to address.
  4. We have not tested PlayCasting with many games yet and many games have anti-cheat protections that might Interfere with PlayCasting. We would love to hear specifics of how the technology works with various games.
  5. The PlayCast Server operates in two media modes.  The first uses pure high level Windows API’s for media capture, the same API’s commonly used for video conferencing and remote desktop applications.  These modes do not work well for games but may be perfectly usable for other applications.  The second mode uses PlayCast’s proprietary drivers to achieve much faster lower level media control intended to work well with games and media applications. By default PlayCast uses its proprietary drivers.
  6. The PlayCast Server can stream from 3 different sources.  1) The desktop via ordinary video capture mode, 2) The primary desktop via PlayCast Shadowcam, 3) an Open Broadcast Studio Virtual Camera.  We recommend testing the use of the Shadowcam as it is the only driver that is aware of the Primary Windows Desktop and can reliably map mouse and keyboard input to it.
  7. We have not implemented a way for the PlayCast Host to recover control of their desktop when it is in active use by others.  We have a plan for that.
  8. The shadowcam UI only selects the active primary desktop.  While the virtual desktop camera selects an arbitrary display.  This is because the browser based desktop capture cannot identify the primary display automatically.  General display selection will be included in the beta release, the goal is to test the use of the Shadowcam with the primary desktop which all games launch to by default.

Known Hazards:

  • It’s not secure, don’t share access to a Windows admin account or leave one open unsupervised.  *Some security work has been done, player URL’s are cryptographically secured to be hard/impossible to web crawl.  Don’t be the first to test that security yet!  Run it in a GUEST account or don’t share an admin URL with anyone else.
  • The PlayCaster starts on reboot automatically.  Assume that if it’s PlayCasting before you reboot it will continue to PlayCast after a reboot.  A live PlayCast desktop has access to your camera and microphone, remember that when sharing your desktop with anyone else.  Anyone with an active URL could be listening/watching.  Again we have plans to secure all those issues with UI, but we want early feedback on the quality of the basic experience and functionality prior to that essential work being completed.

Things to look out for

  • A sense of increasing drag in responsiveness as you use it.
  • Increasing CPU or Memory consumption
  • Jumpy or stuttering video or input responsiveness.
  • 0-N mouse cursors on screen. Some games draw their own mouse cursor, others can let Windows draw it for them.  The client side browser application can also draw its own mouse cursor.  We often draw both mouse cursors together for latency testing because the gap between the two cursors provides a visual cue as to how much latency is in the stream.
  • The PlayCast virtual camera does not capture the Windows mouse cursor yet.
  • OBS provides a setting to capture or not capture the Windows mouse cursor.
  • The browser camera capture can sporadically capture the Windows mouse cursor when it’s not supposed to because Chrome has a bug.

We provide the user with manual settings for client side and server side mouse capture but we are still figuring out the best general automation policy.

  • Unusually high CPU or memory consumption.  The PlayCast Server should operate below 10% CPU utilization and consume <256MB of RAM.  *It consumes extra memory and CPU cycles to log everything it’s doing in real-time.  The logfiles playjector.json and playjector.csv can be found in the playjector.exe’s \logfiles folder.
  • Stuck keys.  There are circumstances where pairs of mouse or keyboard events may not get delivered together when a PlayCast session is abruptly severed.  We can add mediations to the PlayCaster to detect and recover from this situation but we first want to know under what conditions it happens.  For example if a player is holding the mouse button down when a connection is broken it may leave the PlayCast host with the mouse stuck down.  *If you experience a stuck key hit <ctrl-alt-del> to cause Windows to reset the Windows mouse and keyboard states.
  • Fuzzy video.  PlayCasting is basically an extreme form of interactive video conferencing.  The WebRTC video conferencing protocol we use in the browser was not designed for quite such aggressive use.  When a PlayCast session is first established it attempts to adaptively adjust the frame rate and resolution to achieve the best responsive visual quality possible given the available bandwidth.  There are circumstances where it makes poor life choices that the PlayCast server needs to detect and compensate for. An initial moment of fuzziness when a stream starts is expected, if it stays fuzzy let us know.
  • Games that don’t work.  Many games have anti-hacking or anti-cheat protections that will trigger when they detect foreign drivers.  Please report any games or applications that seem to exhibit unusual behavior when PlayCasting.  Microsoft has also seemingly adopted the recent practice of blacking out the desktop when you try to video DRM’d media on a desktop that is being captured, we’ve seen this with Netflix in a Chrome browser recently.
  • Connectivity issues of any kind.  It’s tricky to establish a low-latency P2P connection across a wide range of network conditions.  The browser is pretty good at it but its inner workings can be obscure.  The ideal is to establish a direct P2P Connection via a STUN server. Failing that, we fallback to a TURN server which relays video traffic through another computer.  Use of a TURN server is slower but more reliable across network configurations.  The shipping PlayCast product will use other nearby PlayCast servers as TURN servers to reduce latency and scale traffic but for the Alpha we are using one of our own TURN servers in the cloud.   https://www.100ms.live/blog/webrtc-turn-server

Bonus Test Features:

OBS integration

Open Broadcast Studio can see and stream from PlayCast Virtual Shadow Cameras and PlayCast can see and stream from the OBS virtual camera. So PlayCasting and OBS can interoperate.  Feel free to play with it and give us feedback/ideas.  We are not shipping the 32 bit drivers with the Alpha but they enable 32bit applications like Zoom and Discord to directly interoperate with PlayCast as well.  The compatibility is interesting but we don’t want to distract folks with the slow gaming responsiveness you get when you try to play a game via Zoom or Discord using their slower video conferencing features. OBS is fast and interesting to mix with PlayCasting.


4-Player Co-play

You should be able to co-play with up to 4 remote connected players with gamepads and an unknown number of concurrent spectators.  We’re sure there will be issues as it has never been fully tested but we’d love to hear what people find when they try it.  Keep in mind that this experience is limited by the amount of upload bandwidth available to the PlayCast server.  

PlayCast streaming is presently ½ duplex meaning that it does not intelligently adapt to the display limitations of the viewing device.  The Alpha release is configured to send a 1080p stream at 60fps.  It will be full duplex by the Beta release.  We use OBS extensively to manually test various video streaming scenarios, you are welcome to test the same.

Players/Spectators and Side-Streaming

We’ve deliberately made the Alpha UI very basic to keep attention on core functionality, however notice the player profile includes icons intended to indicate whether or not each viewer has access to mouse/gamepad/or keyboard control. Anyone with one or more of those icons selected is an ACTIVE real-time player.  Viewers with none of those icons selected are “Spectators”.  Spectators do not get priority for the real-time video stream.  They could be getting lower resolution video and could be P2P side-streamed with other PlayCast Servers in the area to amplify viewership to a much larger scale than a single PlayCast server can support.  A “Spectator” may be watching live game play several seconds behind the actual feed, but if the PlayCast host activates the player by clicking on an input source, that player gets reconnected to a low-latency, high performance connection.  Switching between live-playing and spectating on a live video stream will be as simple as connecting a player to input.

For the Alpha we just want to know if input controls work well across multiple players, especially for gamepad enabled games where the host reserves control of the mouse and keyboard for themselves.  If the host does not reserve control of the mouse and keyboard, other players could prevent the host from controlling their own desktop.  You should be able to test sharing 4 gamepad slots among any number of connected spectators.

*P2P side-channel amplification of spectator traffic is not a feature of the Alpha.

Security in General

Why will PlayCasting be safe for consumers?  While security precautions are pretty loose for the alpha release, PlayCasting is based on a few core security principles:

  1. Don’t invent new security solutions, adopt proven ones.
  2. Serving video is much safer and more secure than serving web sites or downloadable games.
  3. PlayCasting from Microsoft secured user accounts provides well understood and widely adopted enterprise grade user and host security and privacy controls.  Games are very problematic to serve from inside VM’s but Windows provides a great security wrapper around DirectX enabled gaming via Windows Guest accounts. Microsoft hides access to guest accounts but they provide the best security for sharing a desktop remotely on the public internet.
  4. Browser related user security and privacy are well understood.  By not requiring a client application, PlayCast avoids introducing a wide range of new security concerns that would require careful hardening and security review before shipping.
  5. We use standard user account authentication and URL encryption solutions
  6. Minimize the “attack surface”.

To summarize:  The PlayCasters computer and privacy is secure because we adopt Windows account security.  The Players experience is secure because they are only consuming video via a trusted browser.  We use standard OAuth2, 2-factor security to secure user accounts and SHA256 encoded URL’s to ensure that publicly shared PlayCast URL’s aren’t discoverable by hackers.  The PlayCast stream is shared via SSL encrypted web protocol.  

Remaining security concerns:  There are a few, the major ones are securing the PlayCast API’s used by the client itself.  These are RESTful API’s that need to adhere to well documented principles of RESTful API security.  P2P streaming exposes PlayCasters to the risk of direct DDOS attacks.  Most major carriers are known to detect and absorb these to consumer IP addresses so we believe it will not be a serious problem.  We will require PlayCasters to use 2-factor OAuth2 authentication to share access to administrator accounts. We also plan to provide a mobile site for PlayCasters to remotely monitor and manage their PlayCast servers from their mobile devices. The architecture is exposed to malicious or phishing casters sharing content intended to trick users into engaging in dangerous online behavior.  Our plan is to own and moderate the discovery network so that such servers are not easily discoverable by the public.

Sharing multiple displays

We have that feature, we just don’t need to test it for the alpha.  Sharing multiple desktop displays across multiple desktop users introduces UI questions that we don’t need to address yet.  All games assume that they own control of the primary desktop display so we are just enabling that for the Alpha release.  *The desktop capture mode supported by browsers labeled “Desktop Capture” is not aware of the primary windows desktop and therefore cannot reliably map input devices to the primary display.  The PlayCast Shadowcam CAN do this.

What is the PlayJector.exe?

There are a set of 5 new Windows media drivers that enable PlayCasting to be possible.  These drivers fool Windows into thinking that a remote browser connection is providing the local hardware a game is running on.  Games don’t virtualize well, so we virtualize the drivers instead.  The PlayJector provides the interface between our low-level drivers and the remote browser.  You could think of it as owning a PC with a 1000mi long monitor, mouse, keyboard, gamepad, USB camera and microphone cables.

What about Latency?

Cloud streaming games have developed a bad reputation for latency problems dating back to some of the earliest failed efforts in this area (onLive). The PlayCast Alpha certainly has not fully addressed the challenges associated with achieving zero latency yet either.  Here’s what the alpha does now:

  1. Establishes a P2P connection if possible achieving ½ the latency of any cloud based solution.
  2. Uses low level ring-0 drivers to capture media as fast as technically possible.
  3. Enables P2P sharing from a local machine dramatically reducing the latency of cloud native gaming if you tend to use PlayCasting within 150 miles of your own home.

We can’t discuss our more advanced plans to overcome these challenges prior to getting our IP documented but suffice it to say that achieving a real-time zero latency streaming game experience is perfectly possible over substantial distances.  The low latency of modern multiplayer games is an illusion that has been designed into them.  Games that are not designed for streaming as video are not aware of the latency information they need to adapt to it.  It’s always a “bug” to stream a game as video that doesn’t know it’s being streamed. It’s like trying to enjoy a David Copperfied magic act from backstage.  It’s always been a bad idea.  PlayCasting is cool because it’s the lowest latency solution ever created for streaming games as video but it’s not perfect at it yet…

Give Feedback, tell us what you think

Email any thoughts, bugs or questions to support@playcast.io.  Please describe issues and reproduction conditions in as much detail as possible. We are shipping the PlayCast Alpha in debug mode which will generate extensive logging information in the \logfiles directory.  The playjector.json logfile contains a complete JSON script to playback a complete recording of all PlayCast (alpha) sessions with timestamps so if you have a reproducible problem, send us the logfiles and we can simulate exactly what happened on your machine.  The logfiles max out at 10MB and reset every new PlayCast session.

The PlayCast 1.0 Alpha release does have the capability to update itself remotely but, as this has never been previously tested in the wild, we have configured the alpha release to disable itself in six months if it has not been updated.  

Thank you for your support, happy PlayCasting!

Install now:  https://packages.playcast.io/Alpha/PlaycastBundle.exe

Known Bugs/Fixes

If your PlayCast App opens offscreen use your file explorer to find the file:

%appdata%\playcast-host\config.json, set X and Y to 0 and save.

If your remote mouse or keyboard input doesn't work, that may be a driver installation issue, let us know if you encounter that problem.

If Windows appears to crash or all of your screens black out, we’ve seen Windows do this in response to trying to view DRM’d media on a computer that is capturing video and we’ve seen it with games that have active anti-cheat protections.  If you encounter something like this, let us know if you were logged into any premium video services or playing a game when it happened.  

To share audio in the stream you must have speakers plugged into the desktop.

The Windows Remote Desktop Client and PlayJector may collide over keyboard input.

The client pages video tag has a 16:9 ratio, any displays configured with resolutions that are not 16:9 will not map mouse input correctly.  All video in this alpha release is being encoded at 1080p resolution and bilinear filtered.  Subsequent Alpha releases will become dynamic and adapt to a wider range of video configurations.