Moonlight Game Streaming

If you have read this blog for any period of time, then you have probably seen me extoll the virtues of Parsec for game streaming. If you have not, then a quick 500ft view is that my world works a little different than your average gamer. I have one beefy but aging gaming machine upstairs, but I also spend a lot of time downstairs on my laptop. Said laptop is old enough that it is long beyond any useful ability to play games on it with its GeForce 960M graphics card in it. However I mitigate this fact by streaming games from my upstairs machine to the laptop over my local area network. I’ve been doing this since 2018 with pretty solid success after having tried a few other options that never quite panned out. There are however a bunch of things that you just sort of take for granted while using Parsec.
First off the connection is going to have intermittent lag causing the audio and controls to have what I can only describe as a “hiccup” where the audio drags for a moment and controls go a little wonky. If this happens at the wrong time it could mean a death, so I find I kinda play accordingly as to not press my luck. The other problem is that the video can artifact something fierce if there is a large amount of movement going on with the screen. For example if a game has rain… prepare for a pixelated mess until you get indoors. I found this particularly bad in Minecraft for some reason, making it extremely hard to play if there was rain or snow happening on screen. These are all things that I have just sort of dealt with because it was the price of entry for being able to play games on my laptop remotely. The challenge however is that over the last year these have seemingly gotten worse. I know with the pandemic, Parsec has been selling its services heavily not just as a game streaming platform but as a super duper terminal services client. No matter how much I tell the client to directly connect to machines on my network, there is still a remote connection overhead of the client dialing home in order to locate the box it is attempting to connect to. This overhead seems to have gotten worse causing the audio/visual hiccups to come more often. I’ve done everything that I can think of to try and remove issues from the chain… but the end result is that I am less likely to play “serious” games from my laptop leading me to spend way more time at my desktop… which is also doubling as my work computer in the time for remote work.
I am not sure exactly what lead me to stumble onto Moonlight last night, but stumble onto it I did. I remember hearing about this project at one point in the past but never actually getting around to testing it out. Effectively Moonlight is an open source client that takes advantage of the Nvidia Gamestream tools built into GeForce Experience and the Shield infrastructure to allow you to stream games to lots of different platforms. Officially Moonlight has the following clients:
  • Windows
  • MacOS
  • Linux
  • Steam Link
  • Raspberry Pi and other SBCs
  • iOS and Apple TV
  • Android
  • Amazon FireOS
  • Google ChromeOS
  • PlayStation Vita (homebrew)
Essentially it supports all of the platforms that Parsec does with a few more thrown into the mix. For awhile I had been contemplating trying to build a set top box that would let me stream Parsec to a television but never got around to it. Moonlight however apparently just straight up natively supports the Android TV box that I already own. I will have to hook up a controller to it and test this out more closely to determine how well it works.
One of the challenges with Moonlight is that it is quite a bit more fiddly than Parsec. Essentially Parsec involves setting up an account, installing the client on two machines and then adding one as a host and then you are up and running pretty quickly. Moonlight requires you to have GeForce Experience installed on the host machine and then going into the client under the Shield section and toggling on Gamestream (which requires a GTX 650 or newer graphics card). If you are an AMD graphics card user, it requires more fiddling and apparently the OpenStream platform installed on your host machine. After you have Gamestream turned on, your machine should be findable as host in any Moonlight client that is installed on your network. There is a handshake that requires you to have access to both machines that is reminiscent of bluetooth pairing. When you attempt to connect the first time with Moonlight on a new platform it will show a short code and that code will have to be entered on your host machine in order to verify access.
From there you will be presented with a list of the games that GeForce Experience thinks you have installed on your machine. You might have to manually add games if they don’t show up, or just do what I did and configure a windows app to open… which effectively allows me desktop access to the machine. I did MSTSC.exe because it seemed fitting given that is the Remote Desktop client, but you could just as easily configure it to open Notepad.exe because the end result is it giving you access to the desktop. From there it works just like a normal remote desktop session and you can launch any games you might have on your host system. The individual game shortcuts seem to work pretty well as it will connect you and then automagically launch that specific game.
net stop NvContainerLocalSystem && net start NvContainerLocalSystem
I did end up needing to create a batch file with the above command in order to sort of “reset” the system if anything goes south on the host machine. This is essentially the equivalent of going into GeForce Experience and toggling on and off Gamestream. The default key combination for disconnecting from a Moonlight session is shift+alt+clt+q. However this morning while trying to take screenshots of how the Moonlight process worked, I stranded a session forcing me to run the batch file to disconnect and restore things back to normal. I did notice one of the pieces that did not get restored was my audio settings, so I had to go in and manually flip things back to speakers. Again Moonlight is way more fiddly than using Parsec which more or less just works.
Another thing that I encountered last night is when I first attempted to connect in remote desktop mode, I ended up getting a 4k window with a tiny 1080p window up in the corner. After some googling and messing about I found that I needed to go into the Nvidia Control Panel and change the Desktop Scaling settings. Since I run in native 4k mode while at the machine it doesn’t really do anything, but while remotely connected it takes the 1080p version of the desktop and blows it up full screen granting me easier access to it.
So at this point you are asking yourself… Bel why the hell would you go through this much trouble when you yourself have admitted that Parsec just works easier? Because running Moonlight was the best version of remote game streaming that I have ever experienced. Like I have long said that Parsec when it is working well is like sitting at the machine and controlling the games… but that is a lie. Even when it is working best, there are always some telltale signs in games that I am connected remotely and streaming. Last night while playing through Moonlight it legitimately did feel like I was upstairs playing at the keyboard when instead I was down on my laptop. I played a bunch of different games last night but at some point during the evening I started playing Generation Zero. The above screenshot is taken from the laptop of the game client running over Moonlight and there is no artifacting going on in the rain.
I played quite a bit of Outriders as well and it was so smooth and responsive. Like I think I had just gotten used to the subtle lag that Parsec added to the gameplay experience and don’t get me wrong… Parsec was better than anything I had tried up to that point. Moonlight was just a whole other level of smoothness and I think I could even probably do competitive modes in Destiny 2 through this connection. I remember it lagging three times during the entire night and even then it was only for a second before immediately returning control. I am not sure if Nvidia Gamestreaming has something built in to handle this, but it felt like the game just paused for a second before giving me access again rather than the game continuing running in the background and then having to deal with overcorrection by my character continuing along whatever path they were moving before the lag.
As much as I have loved Parsec these last three years, I think I might have a new main squeeze. As I said before these screenshots were grabbed via Fraps that just happened to be running on the laptop since I used to use that for game capture. Parsec does this thing where it intercepts a number of buttons and keeps them from being intercepted on the client machine, which is what stops voice chat from working but this also stopped me from capturing screenshots of what the Parsec client looked like performance wise. So unfortunately I don’t have any good examples of it artifacting out on me, but I am hopeful that maybe just maybe I can get voice chat working once again while on my laptop downstairs. This has been a huge source of disconnection for me because so often when I am just wanting to chill out I am on the laptop which prevents me from using it. I will of course keep sharing my thoughts as I get used to Moonlight. I want to try a number of the other platforms like streaming games from my phone with the client. I will obviously report my findings in later posts. The post Moonlight Game Streaming appeared first on Tales of the Aggronaut.

Mixtape Mondays: Push Me Punch You

Hey Friends! It is that time again, time for another MixTape. I have managed to do this three weeks in a row which is pretty great for me. I have this bad habit of starting a series and then just wandering away like a bored toddler. For anyone who might be tuning in for the first time to this spectacle, I missed the era of building custom mixtapes for friends. Since you are all my friends I am now building custom mixtapes for you my audience. The idea is to put a number of songs together in a way that the combination is more than any of the constituent parts. The challenge however is how to make this actually work for the digital age. The answer to that is that I am doing this largely on Spotify and also including a YouTube Playlist as a backup. I greatly favor Spotify however because it allows me to make some nonsense custom artwork, but I guess you are going to see that anyway if you are reading this blog post. I also try and come up with a good name for the mix to sort of set the tone. Occasionally these are pretentious nonsense and others like this morning are just pretty straight forward.

Push Me Punch You

One of the things that I love is a music that has a cohesive nature but no real cohesive name. This music is referred to as punk, post-hardcore, indie rock, garage rock, alternative or just the very boring and generic “rock”. Whatever the case it is music with a slight edge but that isn’t super hard about it. This is probably the mixtape of the series that I probably listen to the most because it most represents the general state of what I want to hear in a song. I attempt to parade some b side cuts and maybe some bands doing things that you might not expect from them. This is technically the second mixtape that I created in this sequence but I wanted to try and space things out a bit since the first one also had a little bit of an edge to it.
  • Bull In The Heather – Sonic Youth
  • Mistaken for Strangers – The National
  • Bulldog Front – Fugazi
  • Somebody to Shove – Soul Asylum
  • Head Injury – Soundgarden
  • Been Caught Stealing – Jane’s Addiction
  • Backwoods – Red Hot Chili Peppers
  • Relatin’ Dudes To Jazz – fIREHOSE
  • Out There – Dinosaur Jr.
  • Cut – The Cure
  • Jessie – Paw
  • Nearly Lost You – Screaming Trees
  • Ana Ng – They Might Be Giants
  • Hey Now – The Regrettes
  • Sunday Morning Coming Down – Me First and the Gimme Gimmes

Spotify

YouTube

I hope you enjoy it and drop me a line below with your thoughts. Also what the hell do YOU call this brand of music? I mostly just call it Punk even though it isn’t the sort of Johnny Rotten/Exploited/Safety pin as a nose ring era that the term generally evokes. The post Mixtape Mondays: Push Me Punch You appeared first on Tales of the Aggronaut.

AggroChat #344 – Teapot of Relaxation

Featuring:  Ammo, Ashgar, Belghast, Grace, Kodra, Tamrielo and Thalen
Hey Folks!  Tonight we are back with what ended up being a pretty topic heavy show.  Pretty sure Grace is recovering this week after the stress of last week and having to be first in the host announcement order.  Genshin Impact has added player housing and Ammo talks about the “Serenitea Pot” which is confusing as hell to listen to if you have no clue what is being said.  From there Kodra and Thalen talk about their experiences with little ones and Pokemon Snap.  Bel talks about Returnal, a game that is a mishmash of Hades, Nier, Metroidvania and a little bit of Dark Souls thrown in for good measure.  From there we talk about Star Trek Discovery and a broader discussion about various Trek shows.  Finally Kodra shares some of his experiences pugging content in Elder Scrolls Online.

Topics Discussed:

  • Ash is a Furry
  • Housing in Genshin Impact
  • Pokemon Snap
  • Returnal on PS5
  • Star Trek Discovery
  • Pugging in Elder Scrolls Online
The post AggroChat #344 – Teapot of Relaxation appeared first on Tales of the Aggronaut.