Thank You OBS Developers

A quick thank you to the developers of OBS for adding the latest features in OBS Multiplatform 0.13.1. It was already a great platform, but with Studio Mode and video sources starting anew when going to a scene, it is near perfect for my use. All this by volunteers and for all three major OS platforms: Windows, Mac, and Linux! It is now extremely competitive against XSplit and competition among software devs always leads to better stuff for users!

They always say to use a little extra cable…..

They always say to use a little extra cable because you’re going to kick yourself in the butt if you’re short by an inch. But this is a bit ridiculous in terms of how much slack they have.

Cables on MD-175 and US-1
Cables on MD-175 and US-1

I believe that’s the cable for the traffic camera on this intersection. After seeing it a few days in a row during part of my commute, I just had to take a photo to share just how much slack they have here.

I'd noticed the cable hanging from the pool, I just noticed the spool as well....
I’d noticed the cable hanging from the pool, I just noticed the spool as well….

Snow Day

The other day I posted about how the upcoming snow storm had emptied Costco. Here are some photos from the day:

Snow levels on the Element halfway through the storm
Snow levels on the Element halfway through the storm

Scarlett had been dying for winter to get here so she could play in the snow:

The front loader that came to clear the snow turned our cul-de-sac into a roundabout:

Snow Roundabout
Snow Roundabout

January 2016 Video Games

Because I’ve staggered the publishing of new videos on Youtube, not all of them may be visible on the embeds in this blog post on the day it goes live. For example, I think I created 14 videos for Torchlight in January, but at the moment only 11 are live.

Torchlight (23 hours):

I decide to check out this spiritual successor to Diablo, having never played Diablo. It is a nice game to play after stressful day – just clicking on bad guys and traveling around without much thought.

XCOM: Enemy Unknown (really Enemy Within) (6 hours):

Having just finished Enemy Unknown, I didn’t think I’d want to play the Enemy Within expansion any time soon. But it adds enough new mechanics and missions to make it feel like a different game.

Civilization V (2 hours):

Dan and Dave have stepped up their turn-taking so we start to make some progress.

Civilization: Beyond Earth (2 hours):

I started up my second game in Beyond Earth. The first few turns were a bit blah – I don’t have as much affinity to Beyond Earth as I have to vanilla Civ – but eventually it became a classic “one more turn” game.

New Super Mario Bros (2 hours):

Scarlett and I start playing this game and hijinks immediately ensue.

Pixel Piracy (45 minutes):

It’s not for me, but at least I gave it a shot.

Botanicula (30 minutes):

The art style is great. The puzzles are crazy. The world is like an acid trip.

Cthulhu Saves the World (26 minutes):

I’m on the fence on whether I’m going to like this game or whether it’s being a bit too cheeky.

XCOM, Steam, and Linux

One of the great things about Steam and the internet is the cloud save. It means that you can go from computer to computer and, as long as it’s connected to the Internet, you can pick up your game where you left off. In my case, I have a Windows computer and a Linux computer both capable of running games from Steam. I wanted to see how well XCOM was ported to Linux so I launched it and didn’t have any of my saves! It turns out that the saves are in a folder called SaveData on Windows and savedata on Linux. (In the path: ~/.local/share/feral-interactive/XCOM/XEW – remove XEW if it’s not Enemy Within) Those aren’t the same thing in Linux. So you need to delete the folder savedata and then make a symlink to SaveData where the symlink is savedata. Once you do that it works perfectly. To give credit where it’s due, here’s the forum post where I fond the info.

GOG releases their version of Greenlight

GOG Games in Development
GOG Games in Development

I guess I shouldn’t be surprised that all the digital stores would move in this direction, but I was surprised to see that GOG has come out with their version of Greenlight: Games in Development.

At least I can get Greenlight-quality games with DRM-free and if it completely sucks, I can get a refund.

Setting up a Team Fortress 2 Server on CentOS 7

I used to have a Team Fortress 2 server on CentOS 6 with Virtual Box. Now that I’m using KVM/QEMU/Libvirt, I wanted to set up a new one. Also, Valve somewhat changed how they worked a few years ago and I wanted a clean slate. I started with a VM with 40GB. It’s not supposed to take that much, but I remember last time it took much more than the 10GB I’d given the VM and I don’t want to have to increase the disk size again.

The first thing I had to do was get the 32-bit libraries.

 # yum install ncompress libgcc.x86_64 libgcc.i686 glibc.i686 zlib.i686 ncurses-libs.i686

I added a user with

adduser gameserver

so that it wouldn’t run as root. I switched to that user. Then

mkdir hlserver && cd hlserver
for the directory to install from.
 wget http://media.steampowered.com/installer/steamcmd_linux.tar.gz

to get the files.


tar zxf steamcmd_linux.tar.gz

to untar it. The next step was to create a SteamCMD script. They say to call it it tf2_ds.txt and put this in there:

login anonymous
force_install_dir ./tf2
app_update 232250
quit

After that we make the update script. It needs to have

#!/bin/sh
./steamcmd.sh +runscript tf2_ds.txt

Afterwards, make it executable with:

chmod +x update.sh

When you run it, it’ll grab the files needed for TF2. Something like 6GB at the moment. If you get “Success! App ‘232250’ fully installed.”, then you got it all. Yay!

Next create the server config:

cd ~/hlserver/tf2/tf/cfg && nano server.cfg

And here’s the minimum you need in there:

hostname "Your_Server's_Name"
rcon_password "Your_Rcon_Password"
sv_contact "admin@yourdomain.com"
mp_timelimit "30"

The Windows Server Setup page has a more fully-featured one you can copy and edit as you see fit. Finally create a little script so that you don’t need to remember the whole server command every time:

cd ~/hlserver/ && nano tf.sh

And fill that with:

#!/bin/sh
tf2/srcds_run -console -game tf -nohltv +sv_pure 1 +map ctf_2fort +maxplayers 24

The final thing is fixing the firewall.

do this:

firewall-cmd --zone=public --add-port=27015/tcp --permanent
firewall-cmd --zone=public --add-port=27015/udp --permanent
firewall-cmd --zone=public --add-port=27005/udp --permanent
firewall-cmd --zone=public --add-port=27020/udp --permanent
firewall-cmd --zone=public --add-port=26901/udp --permanent
firewall-cmd --reload

The Linux server page also tells you how to make a systemd service so that it restarts if it crashes or loses power.

So run tf.sh and you can connect to it! Here I am connecting to my server:

Of course there’s a lot more configuration you can do to edit the motd and other things, but that’s the basics.

Host to Guest Comms on KVM

So, the current solution for bridging with KVM/QEMU/Libvirt involves macvtap. This allows your VM to be seen by computers on the network which is key if you want to, say, run a server or DNS on a VM. However, there’s a catch – the host can’t reach the VM. Sometimes this doesn’t matter and sometimes it does. For example, if the guest is running DNS and you want the host to be able to use it for DNS, this is an issue. There is another way to do it, but it involves ditching Network Manager. I actually like Network Manager. So what am I to do?

Well, there are two solutions. One is to use a routed mode network. This causes the host to behave like a router and creates a subnet behind the host so if all your real computers are 192.168.1.x, the VMs would be 192.168.2.x. (Doesn’t have to be 2) For many scenarios this is the cleanest and most correct way to do this. However, it requires your real router to support static routes and it may break compatibility with consumer hardware that expects everything in a home to be on one subnet – eg networked printers, DLNA, etc.

The other solution is presented on the libvirt wiki as the “Less Painful Solution” for getting around macvtap. You create an isolated network (which you usually only do when you are testing and want to make sure that all the network traffic you’re observing comes from the VMs on said isolated network. Then you give your VM a second network interface that connects to this isolated network. You use THIS interface for host/guest communications. The part it doesn’t mention on the wiki that I plan to test as part of this blog post is to then add that entry to the Host’s /etc/hosts file so that it overrides DNS and the host is none-the-wiser that it’s not accessing it via the DNS which would be the address that the Host can’t use.

So, let’s give it a shot. I’m going to use the GUI for my first go-around.

Virt-manager - Isolated Network 1
Virt-manager – Isolated Network 1
Virt-manager - Isolated Network 2 - pick the subnet and if you're going to enable DHCP
Virt-manager – Isolated Network 2 – pick the subnet and if you’re going to enable DHCP

Step 3 is IPv6…skipping that….

Virt-manager - Isolated Network 4 - pick isolated
Virt-manager – Isolated Network 4 – pick isolated

Open the VM you want to add it to:

Virt-manager - Isolated Network -Adding the NIC
Virt-manager – Isolated Network -Adding the NIC

Run the VM and see if it took….

Virt-manager - Isolated Network - checking that it got a new IP address
Virt-manager – Isolated Network – checking that it got a new IP address

It appears that it did. So let’s see if I can SSH to it now:

Virt-manager - Isolated Network - checking SSH
Virt-manager – Isolated Network – checking SSH

OK, it all seems to be in order. Good, good. I also confirmed that adding it to the /etc/hosts file allows it to override what’s in DNS. So, there you go! That’s one solution if you want host to guest comms with KVM/QEMU/Libvirt.