Monday, December 04, 2017

Advent of Code 2017 - SmartyStreets Sponsor Text

I just learned about the Advent of Code -- an event with a new short, fun programming puzzle published in each of the 24 days leading up to Christmas.

I noticed that primary event sponsor SmartyStreets has some cryptic text as their sponsor comment:

U2VuZGluZyBDaH Jpc3RtYXMgY2Fy ZHMgdG8gYmFkIG FkZHJlc3Nlcz8K

I won't spoil what it says here, but the only hint you should need to decode the text is that it is base64 encoded. (Also, automatic base64 decoder websites are readily available!)

Also, I'm publishing my C# Advent of Code 2017 solutions on GitHub. I'm generally aiming to optimize them for readability, rather than for minimum lines of code or fastest possible execution speed -- which is what I generally do as well when writing actual production code.  That being said, I have been pretty blown away by the impressive brevity of the solutions of some of the event leaderboard's top members!

Saturday, December 02, 2017

My Game of the Year awards: 2017

Starting with my personal Game of the Year for 2017, and continuing on with the rest of the top 10, these were my favorite games that I played for the first time this year! Originally posted on the Gamers with Jobs forums.

1. The Legend of Zelda: Breath of the Wild (Switch) - Bravely and brilliantly replaced the longstanding Zelda trope of "do a few large dungeons, get the Master Sword, do several more large dungeons" with a huge world that's really worth exploring. Exploring the wilderness and happening upon concealed shrines managed to re-evoke the feeling of discovery that I remember from playing the original NES Zelda as a kid!

2. Super Mario Odyssey (Switch) - Full of great surprises, beautiful art, fair challenges, and so many things to do. An even better iteration on the gameplay, level design, and themes of past Mario 3D titles (Mario 64, Galaxy, 3D Land) than I might have thought possible.

3. SteamWorld Dig 2 (PC) - Rolled into this directly after finishing SteamWorld Dig 1 for the first time, which turned out to be an excellent way to approach it, with the NPC Dorothy from the first game turning PC and searching for Rusty, the first game's hero gone missing. Solid digging gameplay with lots of fun character upgrades, both major and minor.

4. Blaster Master (2017) (Switch) - Blaster Master for the NES was one of my personal nostalgic favorites. A great update while still retaining the best parts of the original. Played through it twice, getting the fun surprise at the end of the second playthrough for 100%-ing the game up through the boss.

5. Mario + Rabbids Kingdom Battle (Switch) - Great tactical strategy game, minimizing the impact of luck on the gameplay, and building on the foundation laid by X-Com by introducing lots of neat new gameplay mechanics.

6. PPKP (iOS) - A simple yet interesting 1-on-1 brawler-type fighting game perfectly tailored to being played on a mobile phone. Manages to make a deep and rewarding combat and upgrade system out of only two in-game "buttons". App Store link.

7. Mario Kart 8 Deluxe (Switch) - My favorite racing game in a long time. I actually enjoy watching others play this almost as much as I enjoy playing myself; while just observing, I notice all of the beautiful graphics happening in the environment around the race track, whereas when I'm actually playing I tend to tunnel vision in on the race itself.

8. Metroid: Samus Returns (3DS) - A very cool stride forward in 2D Metroid games with the counter-attack and 360-degree free aiming systems, even though I think I may still prefer the elegant simplicity of the original Super Metriod (SNES) gameplay. Interesting to compare and contrast this Metroid 2 (Game Boy) remake with last year's indie take on the same, AM2R.

9. Cosmic Star Heroine (PC) - A 16-bit-style turn-based RPG in a sci-fi setting with an interesting new battle system. Steam link.

10. Fire Emblem Heroes (iOS) - A nicely simplified pocket implementation of the standard Fire Emblem gameplay. I enjoyed it when it came out, although I did lose interest fairly soon after reaching the level cap of 40, despite the new content and events periodically being released.

Honorable Mentions: Puyo Puyo Tetris (Switch); Hollow Knight (PC); Snipperclips (Switch).

Previously: 2016 (GOTY: Stardew Valley). 2015 (GOTY: Super Mario Maker).

Friday, September 15, 2017

Quick Review: “Circle with Disney” home Internet filter

What it is: A device that filters adult and harmful websites for all devices on your home wi-fi network. Useful for households with kids.

circle-with-disney

It’s actually pretty small.

Setup: It was as easy as plugging the Circle into wall power and into my network router, then installing the Circle’s iOS app on my phone and going through a few straightforward prompts.

What it does: If your kids try to access the Internet outside of a range of hours you set, or attempt to visit a site that falls outside a set of “safe” site categories that you designate, they’ll get a “You’ve been filtered!” site on their device instead of the site they were trying to visit.  (They might instead get a general “connection error” message if they were using an app, such as Netflix, instead of a web browser.) You can also manually “pause” the Internet for your kids at any time!

For older kids and parents: You can designate each device in your house as belonging to a particular person, and then designate each person as belonging to a particular age group, e.g. “Young kids,” “teens,” or “adults.” Each group can be assigned their own time restrictions and permitted site categories.  You can also tell Circle to just ignore particular devices (such as printers).

Management: All settings are configured through the Circle’s smartphone app. I’ve found it to be easy-to-use. 

CircleSmartphoneApp

Disclaimer: Not my family!

Key benefit: Circle works on all devices that use your home wi-fi to connect to the Internet. It’s therefore better than, say, Internet-filtering software that runs on your computer, but necessarily leaves your other devices – game consoles, tablets, phones, smart TVs, and anything else – unfiltered.

Corresponding key drawback: Circle works only on devices that use your home wi-fi to connect to the Internet. So if your kids have phones with active service plans, they can bypass Circle just by turning off their wi-fi. They could also bring their device to a friend’s house, or connect to a neighbor’s open wi-fi network, if there is one.

Recommended? Recommended! Easy-to-use, effective, and having no ongoing subscription fee, Circle has proven to be a great solution over the six months or so that I’ve been using it at home.

Shop: Circle with Disney @ Amazon.com

Friday, August 04, 2017

Fix: Pokken Tournament controller wrong D-Pad behavior in Cosmic Star Heroine (and other Unity games?)

Symptoms

When using a Pokken Tournament controller (which is a 16-bit-style controller with a D-pad only, no analog sticks) with the game Cosmic Star Heroine in Steam on PC, the game recognizes the up/down D-pad inputs as left/right. For example, pressing Up on the controller moves the character in the game to the left.) The game doesn’t recognize the left/right D-pad inputs at all.

PokkenTournamentController-CosmicStarHeroine

(From research I’ve done, I suspect that this issue may also affect other games built using the Unity engine, and/or the D-pad inputs on other controllers.)

Workaround / Fix

Part 1: Enable Generic Gamepad Configuration Support in Steam

  1. Open Steam.
  2. In the Steam main window, in the View menu, select Settings.
  3. In the Settings window, select Controller (in the left pane), then click General Controller Settings.
  4. In the “Big Picture”-style Controller Settings window, check Generic Gamepad Configuration Support, then click Back.  (You may need to maximize the Controller Settings window to see the Back button near the bottom of that page.  Or, just close the window.)

Part 2: Set up controller configuration for Cosmic Star Heroine

Part 2A: Open the Steam Controller Configuration window for Cosmic Star Heroine.

  1. In Steam, select the Library pane.
  2. In your list of games, select Cosmic Star Heroine.
  3. Under “Links” on the right side of the window, click Controller Configuration.

Part 2B: Disable the Left Analog Stick input.

SteamControllerCongurationPokken

  1. In the Steam Controller Configuration window, click the box in the lower-left that points to the left analog stick on the picture of the controller.
  2. In the Style of Input dropdown, select None. 
  3. Click Back.

Part 2C: Configure D-pad input to be treated as Left Analog Stick input.

  1. In the Steam Controller Configuration window, click the box in the lower-left-center that points to the D-pad on the picture of the controller.
  2. In the Style of Input dropdown, select “Joystick Move”.
  3. In the Output dropdown, select “Left Joystick”.
  4. Click Back.

Part 2D: Save and apply the changes.

  1. Click the Export Config button.
  2. Click the “Save new personal binding” button.
  3. Give your configuration a  name – I used “POKKEN” – and click Save.
  4. Close the Steam Controller Configuration window.

With this workaround, I’m finally able to play the 16-bit-era-like game Cosmic Star Heroine on my 16-bit-era-like, analog-stick-less Pokken Tournament gamepad controller!

Other Things I Tried, Unsuccessfully

I tried using the excellent JoyToKey to remap my controller’s D-pad presses to keyboard keys. Unfortunately, that didn’t work, as Cosmic Star Heroine then acted on both the remapped input and the original (and incorrect) D-pad input, such that pressing “Up” on the controller with my JoyToKey mappings active would result in my character moving diagonally up and left in the game.  (And as of the time of this post, Cosmic Star Heroine doesn’t have any option to just disable or ignore controller input altogether, or to remap controllers from in the game itself.)

I also couldn’t find any config files or registry keys to reconfigure or disable controller input.

Finally, searching and posting on the Cosmic Star Heroine forum on Steam didn’t yield any solutions.

Thursday, July 06, 2017

America’s National Parks and Net Neutrality

My family and I were fortunate enough this past month to be able to take an eighteen-day road trip to some of the United States’ incredible national parks and monuments, including Badlands, Devil’s Tower, Yellowstone, Grand Teton, and Mount Rushmore

My wife capturing the Badlands 

I’ve taken away from that trip an appreciation of the historical efforts by individuals like John Muir and Theodore Roosevelt to legally establish what has since been called “America’s best idea”: The preservation of these uniquely beautiful areas by inventing their designation as National Parks.  This protects them for the enjoyment of the public from ownership by corporations which might charge high prices for admission, or build tourist attractions right in among the natural wonders.

During the trip, a parallel with the “ownerless” national parks occurred to me: The World Wide Web.  In similar fashion to how anyone can visit and enjoy the national parks, the Web is also effectively a platform with no corporate owner, in that anyone can set up a new page or site without needing permission from a corporation.

One of the key reasons that the Web works so well is that Internet Service Providers – the companies like Comcast and Verizon that we pay for Internet connections – aren’t currently permitted (at least in the U.S.) to restrict access to certain websites.  For example, Comcast isn’t allowed to make a deal with Google to allow you to connect to the Google+ site for free, but charge you extra to allow you to connect to Facebook.  This principle is called net neutrality.

NetNeutralityTiers

Net neutrality is really important for the emergence of innovative new online services, too.  A new “like Netflix, but better!” startup business might very well have trouble even getting off the ground if Netflix itself could strike a deal with ISPs to greatly slow the Internet speed of new streaming video sites.

This all is relevant right now because the FCC is planning to significantly roll back net neutrality rules. This would open up actions like the above examples to ISP companies, which, understandably, will simply make whatever deals will generate the most profit.

Among ordinary citizens, one might expect that net neutrality should enjoy broad popular support across the political spectrum, both left and right -- and it does! After all, perhaps aside from ISP company executives, who wouldn’t want fast and unrestricted access to any website that they might choose to visit?

Next week on July 12, 2017, a great many websites are participating in an Internet-wide Day of Action to save net neutrality.  You can learn more and join the action here: https://www.battleforthenet.com/july12

I’m hoping that the July 12 day of action helps our congress, as well as the general public, an understanding that our unique, shared “natural resource” of the Internet deserves the same sort of legally-guaranteed protection of open access for all that our wonderful public national parks enjoy.