Wednesday, December 15, 2021

Metroid Dread

Yeah, I got Metroid Dread.  Physical of course, I ain't no chump.  I got it late because reasons, deal with it.  Anyway, here's my thoughts.  Spoiler-free, in case you care about that.  As a bit of background, I'm incredibly used to how Super Metroid does things.

The overall gist of this game is as follows: Samus goes to the planet ZDR after receiving evidence that an X parasite exists on the planet.  Also on this planet are seven robots, called E.M.M.I., that have uber hax armor, and surprise, they're trying to hunt her down.  Samus gets stuck deep into the planet and needs to make her way back to her ship.  ...And then you gain control.

The graphics, music, and overall atmosphere are amazing.  The use of darkness lets the illuminated parts of level geometry and Samus' Power Suit really stand out.  I don't really recall any true bangers on the soundtrack, but it does fit the atmosphere very well, and they brought back the Green Brinstar BGM for a cutscene, which was a nice throwback.

Walljumps are somehow simultaneously better and worse at the same time.  And by "better" I mean "dumbed down".  You no longer need to press a direction to wall jump, just be in a spin jump next to a wall and press jump.  That's it.  The "worse" part is that they're still Fusion walljumps, so you can't single walljump.  Except you sorta can in some circumstances.  An upgrade you get early on that lets you climb the blue walls and hang from the blue ceilings doesn't have the "no single walljump" restriction on it.

The lack of single walljumping is sad, but it's a minor nitpick seeing as later upgrades make walljumping far less necessary, and even take precedence over walljumping.  Bomb jumping and infinite bomb jumps make their triumphant return, though.

Gonna say it now: this game is hard.  And in my eyes, not really in a good way.  Sure, things are challenging, but everything hits like a truck, even at the very beginning.  So you've managed to find six E-Tanks and are headed into a boss?  Congrats, you can get hit maybe seven times.  I've said it before, and I'll say it again: tedium is not challenge.  The challenge of a boss fight is figuring out its attack patterns and how best to deal with them, or when you can tank a hit to get some extra damage in.  But here, even glancing blows take ridiculous amounts of energy.

Movement and related techniques still feel incredibly satisfying to do and when you get a sequence of tight movement right, it looks amazing.  The game has puzzles you have to figure out how to use Speed Booster and shinesparks to complete in order to get 100% items, and they take full advantage of this.  They vary in difficulty, and you may not even recognize some of them as being puzzles because a bunch of the early ones feel pretty straightforward.  Most of them have multiple valid solutions, which was a nice touch.

However, later on you need to be familiar with a specific mechanic of shinesparking that I was not aware of coming in: if you shinespark into a slope, Samus reverts back to the Speed Booster state and you can store another shinespark to use later.  The only place in the game that this ever gets communicated to the player is a loading screen hint that has a very low chance of showing up.

I know the melee attack thing was added in the 3DS remake of Metroid 2, but... why is it necessary?  Samus isn't a melee character.  Sure, melee countering things gives you more drops, and sure, dash melee is nice; but the whole point of Samus having that arm cannon isn't so she can whack things with it.  It's so she can shoot things with it.  The melee counters just slow down gameplay outside of boss fights.  In boss fights, however, they're useful to end the fight faster, and in some cases, required to progress through the fight.

I feel like the controls could have been done slightly better.  I am by no means a fan of analog stick click actions, and this game has one for both analog sticks.  Speed Booster should've activated like it did in Super Metroid.

The game offers you the ability to place markers on the map, which is very nice in a game like this where you're going to want to return to an area later.  However, the markers are incredibly tiny on your minimap, making them very hard to see, and limiting their usefulness.

The new abilities are all really cool.  Flash Shift is great in boss fights, Phantom Cloak is essential to evading the E.M.M.I. until you gain the ability to destroy each one.  Pulse Radar is basically a better version of the X-Ray Scope.  Cross Bombs are a neat addition to the morph ball repertoire, they can blow up stuff vertically and horizontally from where you drop one.  They offer an easy way to bomb jump horizontally to cross gaps and groups of crumble blocks in morph ball tunnels as well.

A lot of the time, by the time the game's progression is giving you a major item, you've been hurting for that item for quite some time.  I have a love-hate relationship with this, because I liked how it handled reduced mobility in water before getting the Gravity Suit, where you gradually gain abilities that slightly increase your underwater capabilities (in addition to being useful elsewhere) before finally getting full movement.

However, one of the major item timings is questionable.  This game suffers from Fusion-style Convenient Debris™, wherein once you progress the story or do something to get through an area, the way back is blocked until you return with a new upgrade.  Most of the time, this new upgrade you need is Power Bombs.  To add insult to injury, you can collect Power Bombs well in advance of being granted them by the game's progression, but they remain an "unknown resource" and thus completely unusable.  Super Metroid wouldn't have done that.

"Super Metroid wouldn't have done that" was a phrase I echoed plenty of times during my playthrough.  This game took entirely too much from Metroid Fusion's playbook.

Is Metroid Dread a good game?  Absolutely.  100% worth picking up and playing yesterday.  Is it perfect?  No.  Is any game ever perfect?  No.  Is it as good as it could be?  No.  Is it better than Super Metroid?  No.  Is it better than Metroid Fusion?  Fuck yes.

And if you're still on the fence, there's a demo on the eShop, so you can get a little "try before you buy" action.

Tuesday, November 2, 2021

Sandwich Bros. of Wisconsin Cheeseburgers

I had a hankerin' for a frozen hamburger and saw these in the freezer section.  My thought was "oh cool, a poor man's bierock!", and that it had just been sliced in half for show on the label.  I soon found out that this is not the case, what they tout as "6 sandwiches" is really "6 half-sandwiches".

They also say they're made with "real cheese", but they actually contain American pasteurized processed plastic cheese food product instead.  Don't try to convince me it's real cheese, it's not made the same way real cheese is made.

The directions tell you to place it "cheese" side up, wrapped in a paper towel, on a plate before microwaving it.  However, it's down to luck whether or not you can tell which side is the "cheese" side.  On some of the ones in my box it was obvious; on others the bread stuck out too far and curled over.  On the one I happened to pick first, I had to gently peel the bread back a bit to see where the "cheese" was.

As far as the microwave directions go, they actually tell you what wattage microwave they used when developing them, so that's good.  Way too many companies omit that basic information.

After microwaving (the directions are for a 1100 watt microwave, mine is 1200 watts) the bread comes out tough, which is sad, and only the beginning of the depression.  After biting in, I noted a distinct lack of flavor.  There's clearly food in my mouth and I'm eating it, but I'm not really enjoying it because it doesn't taste like anything.

So, to offer some constructive criticism, here's some ways they could be made better:
  1. Don't slice them in half to sell three of them as "6 sandwiches".
  2. Use real cheddar cheese and not that fake shit.
  3. Make the hamburger patty actually have flavor.
  4. Failing any of that, drop the price from $6 to $3 to better reflect the contents of the package.
Seriously, on that last point, I thought I was paying $1 per burger and getting a pretty good deal, but in reality I paid $2 per burger and was incredibly disappointed.  Re-read the second sentence of the first paragraph of this post for why I thought this.

The worst part: After the initial disappointment, I still had five more half-burgers to eat.  As I ate them over the course of the next week, I added mustard to each one just before eating to at least add some flavor.  It wasn't a fluke with the first one, all I ever tasted was the mustard.  It's not impossible to make a frozen burger with flavor, White Castle does it quite well.

The verdict: avoid.  They have other products which I didn't try, and I don't know if I ever will.  Mostly because I value being physically fit, but also, this wasn't a good first impression.

Wednesday, October 20, 2021

I got back into Guild Wars 1

I don't seem to be alone in this either, through my travels I've seen a number of people saying "haven't played in years, how's this thing work again?" in chat.

It's still mostly desolate, but there are definitely more players online now than there were a few years ago.  Everyone's playing with hero parties from the looks of things, but... whatever.

That said, what the hell am I going to do in a number-of-years-old online RPG that I've already played to death?

Well, to start with, realize that there's still a lot I haven't done.  What follows (after the break) is a list of tasks for my latest gaming project.

Finally.

Sorrow's Furnace was added to Guild Wars all the way back in 2005.  I've had the quest To Sorrow's Furnace in my Ranger's quest log since it was added.

Today, I finally finished that quest.  Now I can go on to The Final Assault and get him his Black Moa Chick.
Oh yeah, I'm playing Guild Wars again.  I actually started playing again back in 2020, just didn't post anything about it until now.

Edit (later this same day): Well, that was fast.  Finished The Final Assault and got my Black Moa Chick.

Sunday, July 4, 2021

JavaScript's Symbol.toPrimitive confuses me

JavaScript has all these built-in Symbols that can be used for various meta-programming tasks.  Symbol.toPrimitive is a method on your object that gets called by the JavaScript engine when it needs to convert that object to a primitive value.  It works by passing a string-valued hint to this function, this hint can be "number", "string", or "default".

Implementing it is quite easy.  Just switch() on the hint and define your preferred logic for the three hints in their respective cases.

The confusing part is that JavaScript doesn't seem to have much in the way of logic behind what it chooses to pass for the hint.  Initially, "number" and "string" seem obvious and the source of confusion is "what the hell do I do when it passes "default"?", but quickly the source of confusion becomes "I would have expected it to pass literally anything other than "default" in this case!".

To illustrate this, here's an example:
class MyClass { [Symbol.toPrimitive]( hint ) { switch( hint ) { case "number": return 42; case "string": return "meaning of life"; case "default": return "the two best words in the English language"; } } } var a = new MyClass(); console.log( +a ); // Hint: number; logs 42 console.log( a + 27 ); // Hint: default; logs "the two best words in the English language27" console.log( a + "" ); // Hint: default; logs "the two best words in the English language" console.log( `${a}` ); // Hint: string; logs "meaning of life"
Unary plus getting the hint "number" is all well and good.  The template string converting a to a string and therefore getting the hint "string" is just fine and dandy.  That's also the only case I know of where JavaScript provides the hint "string".

What makes absolutely zero sense, however, are the other two.  When adding with a number, I would expect it to provide the hint "number", but instead we get "default".  Adding with a string also produces the hint "default" when I would have expected "string".

So uh... what the fuck?

In case this is a browser thing, I'm using Pale Moon 28.17.  I haven't updated to 29.* because it introduces breaking changes to my setup that I haven't resolved yet.