Sunday, September 11, 2016

Shovel Knight

I had some Bing Rewards points burning a hole in my pocket, so went out on a limb and got Shovel Knight. It's a tribute to old NES-style games, incorporating elements of a bunch of them, most notably Duck Tales, Mega Man, and Zelda 2. I was a little hesitant about the 8-bits(ish) graphics - I mean, I was happy about that in Mega Man 9 and 10, but that's because they were building off the nostalgia of the original Mega Man games. Shovel Knight is a new thing. But as I played the first level, I had to admit it was pretty delightful. The feel is familiar, but the game is quite original. And when I was done, I found myself humming the first level tune. I knew I had chosen correctly.

The virtues of Shovel Knight are extolled all over the place on the Internet, but here's what I liked about it:
  • It's challenging, but not unreasonable. There is no concept of extra lives - you can restart from the last checkpoint as many times as you want. (You do lose money when you lose a life, but you can get it back if you make it back to the spot where you perished.) The only catch is that if you do back out of a level, the game forgets everything that happened while you were there (good or bad).
  • In the few situations where I felt like a particular challenge was totally hopeless, the answer wasn't "keep trying" or even "look it up". It was to obtain and use a particular item. That is the correct answer.
  • There are three or four really good, catchy tunes. Too many games these days have "mood music" that contributes to the feel but doesn't really help make the game or the situation memorable.
  • There's some pretty amusing humor stuff going on
  • The hero is pretty likeable. He's blue like Mega Man, noble like Link, etc.
And not only that, but the game has a free downloadable "second quest" kind of thing called Plague of Shadows, where you play the game again as Plague Knight, one of the villains of the main game. The plot is kind of adorable - Plage Knight is trying to concoct the Ultimate Potion so his assistant Mona will like him. (At one point you can learn to dance. This doesn't affect the game at all, but if you try to do it near Mona, you just end up twiddling your fingers nervously. Poor Plague Knight.)

The gameplay is completely different - Plague Knight fights with bombs instead of a shovel, and the power-ups can be used to configure those bombs at any time. It turns out being easier I think, but it's still challenging - really it feels like a completely different game.

Saturday, July 9, 2016

Super Mario 3D Land

I got Super Mario 3D Land for Father's Day. For context, the last Mario game I bought or owned was Super Mario 64. (I have played a couple in-between though.) It was a bit of an internal struggle between that and New Super Mario Bros. 2 (Not to be confused with Super Mario Bros. 2). NSMB2 seemed more classic-Mario-y, but 3D Land seemed to do a better job of justifying my purchase of a 3DS, plus a friend had told me that he liked 3D World better than New Super Mario Bros U (sequels to both games in consideration). In the end, I went with 3D Land since reviews said it was longer, and it seemed to be a direct sequel to Mario 3 and 64, whereas NSMB2 seems to be a sequel to the other "New" games.

I'm very happy with my choice. It's not go-explore-stuff-y like Mario 64, but it definitely has a Mario-y feel - the enemies, platforms, and obstacles all translate well to 3D. And while you can play the game in 2D mode, I found it to be very difficult; the 3D capability of the console is a huge benefit in this case. The game started out pretty easy, but by the castle in World 5 it had gotten quite challenging. I did beat all of the levels without using the P-wing or white leaf cheats. Replayability was nice too - I had heard that there were "Special World" levels, but I didn't realize that half the game takes place after you beat it. (That was also a chance to revisit some of the gimmicks that had only shown up in one or two levels so far, like the colored platforms that appear and disappear in time with the music.) And while those levels were very challenging, I didn't have to go farming for power-ups or extra lives until the last three levels. (At that point, I beat 1-3 several times in order to get a Super Leaf, which makes most challenges much more manageable.)

Sunday, June 19, 2016

Weird Products & Offers

More odd stuff I've run across:

Good thing my wife spotted this, because I hate it when my power failure runs out of power:

This one seems to have a way to moderate drainage by absorbing light!

And finally, for those of you who need style help and/or companionship:

Wednesday, June 8, 2016

Election 2016 :(

Curse.
Curse curse curse curse curse.

Here's the deal: I am not a fan of Hillary Clinton; I'm in favor of supporting the constitution and not putting huge amounts of power in the hands of a few people (i.e. executive orders and court rulings that ignore Congress). Not to mention the whole abortion thing, etc. But somehow - I haven't fully figured out how yet - the person running against her is Donald Trump. Like just about everyone else, I thought it was a joke at first. And honestly I didn't know that much about the guy. But at this point it's pretty clear that he doesn't have the moral character to deserve a political office.

That creates an interesting dilemma. (Not for liberals, of course - I'm sure they're loving this.) You don't want to vote for Trump. But you don't want Clinton in power. It seems that most of the Republican leaders are deciding that they have to keep Clinton out of office at any cost, and so they are endorsing Trump, even while they condemn his racist, sexist, and otherwise disrespectful comments. No doubt they hope that they can sway him, to convince him that he needs to tone things down in order to attract a broader voting base. And obviously a lot of voters are behind this.

I can't do it. As much as I don't want Clinton to be president, I can't be a part of someone like Trump getting there either. And that's not to say he wouldn't do less damage - I honestly don't know what he'd do. I kind of doubt that he'd really attempt most of what he has suggested he would. But at this point, I'm not sure it even matters. Even if I agreed with Trump on every issue (which of course I don't), I still wouldn't vote for him, because again, I think that there's a bar you have to set on morality, and he doesn't meet it. In fact, it seems to me that the only value Trump has is that he wants to feel like a winner. If that's the case, then he'd do anything to feel like he's winning. Anything. At least Hillary Clinton is clearly self-centered and cares about her image. That's not respectable, but it's predictable.

So some will accuse me of helping Clinton win. And they are probably right - I am sure that lots of conservatives will feel the same as I do, while most liberals will happily pick Clinton over Trump. But you can't set your priorities such that you will keep a particular person out of office "at any cost". Those costs can become very high. It's too high this time. I'm not sure who I'll vote for, but I'm sure they won't win. But if Trump somehow manages to become president, and if he is as destructive as it seems he could be, I'll be able to say that I had no part in it.

But still, curse.

That bathroom law thing

It's embarrassing that we have to even talk about who should go into which bathroom, but apparently we do. There's a lot of that talk going around, and it seems to me that most of it misses the point. The problem with trying to redefine genders with respect to bathrooms is not with the folks who believe they're of a different gender than they are. (I don't like the term "transgender" because it implies that gender is a changeable thing, which is not true. Even aside from any religious doctrine, science tells us that much. And if you think about it, trying to argue otherwise just ends up propagating a bunch of harmful stereotypes about how men and women should think and feel. But that's a different topic.)

The problem is the other folks, who can very easily pass themselves off as transgender. Here's the thing. Nearly all perpetrators of sexual abuse and harassment are male. (Biologically male.) And nearly all victims are female. Segregating bathrooms and locker rooms by biological gender separates the perpetrators from the victims in situations where abuse is likely to occur. By definition, that has to reduce the number of abuses. If a man can say he's a woman and go into the women's locker room, and if it's not PC (or even legal) for women to boot him out on sight, you have to assume that the dregs of society will do that.

People argue that said segregation shouldn't be required because there are already laws against that kind of abuse. But that misses the point - those laws only provide protection after abuse has already happened. With the "new way", women aren't allowed to protect themselves until they have already been abused. How is that acceptable to anyone?

Of course, proponents of the change point to the feelings of the transgender folks as the point of the new policies. Their feelings are certainly important, and it's certainly important to be respectful. However, the real cause of their discomfort is a lot deeper than which bathroom they are in; it is rooted in gender identity. To use what some might call an extreme example: Imagine that I were to sincerely consider myself a Native American. Let's say I tried to drop in on a ceremony of some tribe. They might look at me strangely. Depending on the situation, they might not even let me in. This would presumably make me feel uncomfortable. But the root cause of my discomfort would be my own incorrect sense of racial identity, not their reaction. I am not a Native American, and believing myself to be one would be guaranteed to cause discomfort. Anyone concerned with helping me feel better would begin by helping me understand the real meaning of the term and that it doesn't apply to me.

I realize that this sounds like it's begging the question, since the definition of gender is part of the issue. But it's really not. Because comfort aside, the issue of protection is very much connected with "gender at birth". And as I see it, as important as it is to respect the feelings of people with gender identity issues, protecting women and girls is far more important.

Sunday, May 29, 2016

Fairune

I beat this Android game app called Fairune yesterday. There's actually a 3DS version (which has some extra stuff), but the app was free so I went with that.

It's worth mentioning for a couple of reasons. First, it was pretty cool. It's a simplistic adventure game, in which battle takes place by simply touching enemies. If they're too strong, you'll take damage and bounce off. If they're weaker than you, they'll be defeated but give you no experience. If they're evenly matched or a bit stronger, you'll defeat them and take some damage yourself, and you'll gain experience points, which eventually raise the amount of health you have and allow you to fight stronger monsters. It's mostly a puzzle game, where you find items and figure out how to use them to advance. It has retro-style graphics and sound, and amusing-looking enemies.

The second reason is that my daughter is a huge fan. She doesn't like video games in general, but this one is fairly adorable. I think the narrator at the start hooked her with this proclamation: "Even monsters won't attack girls in cute dresses!" What's not to like?

There were a few times I had to look up what to do online. None of these situations were necessarily unreasonable, but you really have to pay attention to the pixel art to catch some of the clues. The boss battles gave me trouble also. It would have been much easier on the 3DS (i.e. with a real controller); it was hard to have precise timing with the onscreen buttons. But it was pretty satisfying when I beat it.

Please don't ask how you're supposed to pronounce the title.

Non-stupid dragon rider travel algorithm

I'm not a fan of Eragon - see the Books page for details. One (not the largest) of my complaints involves a moment where a couple of people (or maybe three) have a horse to carry their baggage, and of course they're traveling with a dragon. Since the dragon can't carry everyone, they decide to walk from one town to a distant one.

Stupid.

Of course the most straightforward thing would be for the dragon to carry one person (or however much she can carry) in one trip, then return for the next load, and so forth. Presumably a dragon could make several trips between towns in less time than it could take a person to walk. But for some reason I found myself thinking a little harder about this - specifically, how to optimize things for the shortest possible trip.

I started with a few constraints, which may or may not be valid in the book, but that's fine. For the sake of simplicity, let's say that on a given trip the dragon can carry one human, or all of the luggage, or the horse. (Granted, the horse would weigh more than two humans, so the dragon should be able to carry them both, but maybe the humans don't feel comfortable being dangled by just one set of claws or something. Or maybe the dragon can't carry the horse, but that makes this problem less interesting.) Another possible constraint is to ensure that you don't leave the luggage or the horse unattended. If it's okay to leave the luggage alone, and if there are two humans, then we have a fairly simple way of shortening the time even more:

  1. The dragon carries the luggage to the end point. At the same time, one human starts off on the horse while the other starts walking.
  2. When the dragon drops off the luggage, it returns to pick up the walking human. 
  3. The dragon drops the human off with the luggage and returns for the horse. (By this time, the horse and remaining human have covered a lot of distance, so the dragon doesn't have nearly as far to go.)
  4. The dragon drops off the horse and goes back for the final human.

We can optimize things a little further, because at step 3, the dragon doesn't have to carry the human all the way to the luggage - just close enough that the human can reach it before the final trip is over.
It might be possible to advance things even further,  if we can assume that extra trips for the dragon are offset by less time spent with a human on foot. At step 3, the dragon drops the first human off at an even farther distance from the end. Then at step 4, the dragon carries the horse from the second person to the first, then goes back for the second person. This way, more time is spent with the slowest traveler on horseback rather than walking. Like I said, this might (depending on relative speeds and distances) offset the need for some extra partial trips for the dragon.

Things get even more complex if we add the constraint that the luggage must always be in the company of a human or dragon. (Maybe there are lots of thieves around.) In this case, the luggage becomes the limiting factor. Again, assuming two humans:

  1. The dragon takes human #1 far ahead, but not quite to the goal. The human starts walking. At the same time, the other human begins walking the the laden horse.
  2. The dragon takes the luggage to human #1's position. That human must now stop. But human #2 can now ride the horse and move faster.
  3. The dragon takes the horse to human #1, who can now move. Human #2 continues on foot.
  4. The dragon takes human #2 very near the end point
  5. The dragon takes the luggage to the end point, arriving at the same time as human #2. Human #1 can now ride.
  6. The dragon takes the horse to the end point. (Unfortunately, the horse's extra speed is now wasted.)
  7. The dragon takes human #1 to the end point.
Again, we might be able to optimize this by having the drop-off point for the luggage at step 5 some distance from the end point. That way human #2 can continue with the horse and luggage while the dragon goes back for human #1. But this would also mean that the human is stationary in-between receiving the luggage and receiving the horse, which might offset this. Of course, adding a third person would really free things up and allow the horse to continue running right up until the end, similar to the first scenario. (Although of course that would also add additional trips.)

You'll notice that I've left the math out of this completely, which is why it's not possible to come up with a definitive optimal solution. I guess this would be a good interview question if math were relevant. Maybe someday I'll write a program to simulate the situation - it would be pretty cool to have little icons representing the different elements and let you tell the dragon which thing to pick up and when to drop off. In the meantime, though, please don't make stupid choices like walking somewhere you're in a hurry to get to when there's fast and free transportation available.