header image

Two's Compliment

2024-07-19 18:42:11UTC

Two's Complement is the most common way computers encode signed integers internally. This is done to solve two main problems: 1) We can avoid duplicate representations of the value 0. 2) It means no additional logic is required to subtract numbers beyond having an addition operator.

The first issue we need to consider with signed integers is how to represent a negative value. All of our data in a computer is just a series of 0s and 1s. If we imagine our computer can operate over 1 byte at a time, then our values would be 8 bits wide which we can represent as bbbbbbbb where b equals either a 0 or a 1. Thus, 00000000 could equal 1 and 11111111 could equal 256. However, we're going to want a representation of 0 so let's instead just start counting at 0 by subtracting 1. Thus, 00000000 = 0 and 11111111 = 255.

0 through 255 certainly doesn't contain any negative values. How shall we denote a number as negative? One way to do this would be to designate one of our bits as a "sign" bit. This is known as a signed magnitude representation. We could say our most significant bit (MSB) denotes sign rather than magnitude. So, 00000000 = 0 but 11111111 no longer equals 255. The MSB is 1, which means the number is negative. However, we've now used up one of our bits in denoting sign. So, we're only left with 7 bits to denote magnitude. 2^7 = 128. Thus, 11111111 = -128. This also means that 01111111 = 128.

If we take a closer look at the values we have with our representation, we'll spot an anomaly. We have 128 values in the positive direction and 128 values in the negative direction. That is a sum of 256 different values which makes sense because we have an 8-bit value. However, let's think about this on a smaller scale and use slightly different wording. How many integer values are represented by the inclusive set of -2 through 2? If we use our math from before, we'd get 2 + 2 = 4. But this isn't true. If we count the integers in our set, we get -2, -1, 0, 1, and 2. That's five different values. So, in our byte representation, we're missing the value 0, just like we were with our range from 1-256. Let's examine the set of 3-bit values with signed magnitude representation:

000 = +1

001 = +2

010 = +3

011 = +4

100 = -1

101 = -2

110 = -3

111 = -4

Sure enough, we're missing 0. Let's fix that the way we did before by starting our count at 0 instead of 1:

000 = +0

001 = +1

010 = +2

011 = +3

100 = -0

101 = -1

110 = -2

111 = -3

This is where we discover our first problem. We have a +0 and a -0. This doesn't make any sense. We need to get rid of one of these zeroes.

Let's table that problem for a minute and talk about our second problem: avoiding additional logic beyond addition. We can leverage equivalence classes. A byte is 8 bits. 2^8 = 256, so we'll use a modulus of 256. Modular arithmetic allows us to move in two different directions when we perform operations. If you imagine a clock, adding 4 hours to 11 o'clock results in it being 3 o'clock. 11 + 4 = 3. However, 11 - 8 = 3 as well. So, we can restate subtraction as an addition operation in the opposite direction. Precisely: y - x = y + (m - x) where m is our modulus, x is the value we wish to subtract, and y is the value we're subtracting from. To put it succinctly, y - x = y + (x with inverted digits). Let's take a look at a small example:

For reference, modulus 5 values starting at 0 and adding one are 0 -> 1 -> 2 -> 3 -> 4 -> 0 -> ...

We want to subtract 431mod5 - 133mod5. We can restate this as addition by inverting the digits of 133mod5. The inverse of a digit is how much further you must travel along the "clock" to get back to zero. So, with a modulus of 5, the inverse of 1 is 4. The inverse of 3 is 2. That means we can rewrite our subtraction as 431mod5 + 422mod5. You should try this exercise on paper by performing both the subtraction and the addition. You will see that you indeed get the same answer for both: 303mod5.

This solves our second problem but we still haven't solved the problem of +0 and -0. That's where our Two's Compliment encoding comes in. As before, our MSB is going to represent a negative sign. Unlike before, this is not going to be arbitrary. Instead, we're going to associate a weight to the MSB and that weight is going to be -2^(x-1) where x is the number of bits in our value. This means that instead of 11111111 being our most negative value, 10000000 is going to be our most negative value. 01111111 will represent our most positive value. But what we're going to do for our positive values is simply subtract 1. That way, we get rid of one of our zeroes. So, 01111111 = 2^(x-1) - 1. You'll see why we took the 0 from the positive side instead of the negative side in a moment.

Now we have a range of -128 through 127, including 0. We've defined 10000000 as our most negative value. So, in our representation, if 10000000 is our most negative value, then 11111111 should be our least negative value, which is -1. If we add 1 to that value, our sum should equal 0.

11111111 + 00000001 = 00000000

Observe that what has happened is that all of the bits have flipped and we've added 1. If we flip the bits of 11111111 we get 00000000. We then add 1 to get 00000001. 00000001 is the Two's Compliment of 11111111. The Two's Compliment of 01011100 is 10100100; 10100011 + 00000001 = 10100100.

By removing 0 from the positive side, we get these nice properties where 11111111 + 1 = 0. We also ensure that the sign is retained. It will always flip which we want because subtracting a number is the same as adding the inverse of that number.

So, for any value of bits, the Two's Compliment will be the value where the original bits have been flipped and 1 has been added to that result. You can then add the Two's Compliment to another value to effectively perform subtraction of the original value.

x - y = x + (Two's Compliment of y)



Why Kingmaking is Objectionable

2024-05-02 13:53:33UTC

Kingmaking is the action of a game agent in which they play in such a way that they increase an opponent's payoffs while disregarding their own payoffs.

Suppose a game with three equally competing teams of four players each. Now, suppose one player on one team decides to work against their team's best interest. The game's design and balance has been disturbed. The game is designed and balanced for three equal competitors all vying to win. However, at least one of those competitors has an additional, undue opponent (from within its own ranks, as it happens)

We can distill this further. Suppose a game with three equally competing teams of four players each. Now, suppose all four players of a single team decide to work against their own best interest. The game's design and balance has been disturbed. The game is designed and balanced for three equal competitors all vying to win. However, at least one of those competitors has an additional, undue opponent.

We can distill this to its furthest. Suppose a game with three equally competing teams of one player each. Now, suppose one of those teams decides to work against their own best interest. The game's design and balance has been disturbed. The game is designed and balanced for three equal competitors all vying to win. However, at least one of those competitors has an additional, undue opponent.

As tabletop gaming has grown, there has grown an audience who thinks kingmaking is acceptable. These folks generally come in two camps:

  • The hyper-competitive. These are folks who think bullying players in order to ensure favorable outcomes for themselves in future games is a strategy.
  • The non-competitive. These are folks who play games as a way to pass the time. They are unconcerned with the objective of a game and often find objectives, rules, and restrictions to be anxiety-inducing. They just want a proxy for hanging out with friends in a bar, going to the movies, or gardening.

Both groups ruin games. This is because games are designed and balanced with two primary conceits: that players are trying to win and that the entirety of the game is defined within the rules. That is to say: a game's intent is to provide limitations (rules) through which players navigate in order to maximize their own payoffs (winning). Moreover, a game starts and stops when the rules dictate they do and do not carry over to behaviors outside of that scope. When player are contemptuous of these two conceits, games very quickly break down. Balance often gets thrown out of the window and entire genres (e.g., negotiation games) simply stop working.

Kingmakers are often inconsistent with their viewpoint. Many kingmakers would consider collusion in a tournament to be objectionable and unsportsmanlike. However, that is precisely what kingmaking is. "Throwing" a game is a pejorative for kingmaking. Yet many kingmakers don't view themselves as throwers of games. They are.

18xx designer J. C. Lawrence suggests a superset of rules on top of any game in order to prevent kingmaking:

  • "The only things to be imported to a game are the player's abilities and the only things exported are the results. Each new game is a blank slate."
  • "Always maximise your ranking, maximise your delta from the players behind you and minimise your delta from the players ahead of you. This is the definition of 'playing to win'."
  • "There is nothing that is off-limits within the game in the attempt to win. It is your obligation and duty as a player to exploit that fact without restraint."
  • "Everything in every game is personal, but only until the game ends. Then there is nothing but the results and the blank slate begins anew."
  • "Opposing players are your mortal enemies: They are following the above rules as well."


Alternate Reality Games

2023-10-11 19:35:48UTC

The Alternate Reality Game (ARG) is one of my absolute favorite genres of game. It has largely vanished due to various issues and boy, do I miss them. I have participated in a number of ARGs and trace their lineage all the way back to 1979. All of the following pictures are from my own collection, where applicable.

I think ARGs can be best described as transmedia role-playing puzzle games. The core of the game is solving puzzles. You solve these puzzles often by playing the role of an investigator, government agent, treasure hunter, or an every day Joe who got caught up in a conspiracy. You typically will begin to solve these puzzles via the game's primary interface. Often, this is a computer. These puzzles are interesting for three reasons: they tend to be some of the hardest puzzles you'll find in gaming, they often require cooperation with other players, and they are often transmedia in nature.

ARGs break the boundaries of their primary interface. If the game presents itself as a video game, you may find yourself visting websites and real world locations outside of the game. You may find yourself sending and receiving phone calls in the real world. You may discover a video on YouTube or a person on Facebook which are, in fact, deliberate parts of the game but seem like any other YouTube video or Facebook profile. This is the "alternate reality" nature of the genre. You're playing a game that is pretending to be something more in the real world. Things in everyday life become part of the fiction and the story.

Masquerade by Kit Williams, 1979
Masquerade by Kit Williams, 1979

I got my feet wet with this type of game in elementary school. From the school library, I checked out a book titled Masquerade written by Kit Williams. The book was written in 1979 and was very upfront with its premise: the book itself is a puzzle. Your job as the reader is to solve the puzzle, travel to some real world location, and find the treasure. What an alluring premise.

I was captivated by this book as a child. Its solution was well out of my skill set at the time but just the idea that I was holding a book which was actually a game, and that game extended in to the real world, was absolutely marvelous.

Untitled book by Kit Williams, 1984
Untitled book by Kit Williams, 1984

Kit Williams would go on to create another one of these books in 1984. The book had no title. The goal of this game was to discover what the title was.

These books don't involve role play and aren't really transmedia. However, the idea of an everyday object being more than it appears was a seminal step toward the development of ARGs. Moreover, the fact that the prize of Masquerade required travel, and that the prize of the untitled book required sending something in the physical mail, are hints at the media boundary-breaking that ARGs would require.

Swordquest: Fireworld
Swordquest: Fireworld

In 1982, Atari would release the first of four games in a series called Swordquest for the Atari VCS/2600. This first game, Swordquest: Earthworld, would come with a comic which explained the story of the game. However, the comic was also a clever element of the game itself.

The video game portion of Swordquest was an adventure game where the player would move from room to room and overcome both action-oriented and adventure-oriented challenges. Eventually, the player would reach rooms which provided numbers. These numbers were references to pages in the comic. On those pages were hidden words. Those hidden words, in turn, would point to further puzzles in the comic which would culminate in the player submitting a solution by mail to Atari. Winners would be invited to Atari HQ to compete in a special version of the game. The winner of that would then be invited back to compete against the winners of the three other games: Fireworld, Waterworld, and Airworld and crown (literally) a single champion. Due to financial troubles, Atari would cancel the Swordquest series without releasing Airworld. The contests as originally intended would end after the Fireworld championship. However, Digital Eclipse would develop and release Airworld as part of Atari 50: The Anniversary Celebration in 2022 (How wonderful!)

Swordquest is missing the element of role-play but the transmedia angle was a clear stepping stone toward the modern ARG.

The Stone
The Stone

In 1997, I would have my first experience with an ARG-like game as (barely) an adult. The Stone was released as a little, virtually non-descript plastic pyramid. I saw it on a table in a department store. It was $20. Intrigued, I bought it, opened it, and found a stone with six symbols printed on it, along with a small document which led me to a website. That stone would be the password I would need to create an account and play the game. This blew my mind.

The puzzles were laid out as tiny little planar cut-outs of a large cube. You would click one of the outer-most puzzles, solve it, and then more puzzles on the inside would unlock. Each face of the the cube was a different category of puzzle. Some puzzles relied on other people. Some puzzles relied on another player who had your partner stone. The solutions of some puzzles acted as clues to solve physically connected puzzles deeper down the cube. The goal of the game was to solve the cube and discover the truth of the "Enigma."

Almost all of the solutions to the puzzles in The Stone required outside research. While this outside research was generally legitimate (as opposed to fabrications masquerading as legitimate real-world information), it was still very unique for its time. The idea of having to use the real world to facilitate your game play really set the early foundation for ARGs. You would do outside research, pool resources with fellow players, and once you started getting toward the center of the cube, there was even real world travel involved.

Majestic
Majestic

EA would release Majestic in 2001. This is the game that most would probably consider to be the first modern ARG. The game would often require you to send and receive phone calls, AIM messages, e-mails, and had real-world yet fabricated websites which were part of the game.

Majestic was absolutely wild to me. You could receive an e-mail from an in-game character telling you they'd call you tomorrow at 4:00pm. You could then expect a real world phone call the following day at 4:00pm. Hell, when you started playing the game, the game would report that the game had stopped! However, it would then suggest there was a conspiracy afoot and you were now entangled in it.

Unfortunately, Majestic was intended to be a service game. Due to Majestic's poor initial sales, the game never got a second season. However, this game had puzzles, had a wide array of media it was played with, and put you in the role of someone caught up in a deep conspiracy. These are the hallmarks of a modern ARG.

Missing: Since January
Missing: Since January

2004 would see the release of Missing: Since January, released by The Adventure Company. This was much like Majestic but real-world interactions were more instantaneous. You wouldn't have to wait until tomorrow to receive an e-mail. The e-mail would come the instant you were expecting a response (If I remember correctly, there was exactly one exception to this in the game)

As an aside, this game stood out to me not just as a great game but I remember it being a really well made Flash game. It came on a CD but the game ran SWF files and was written in ActionScript. It was the first time I was convinced that Flash could really make some magic happen.

One really fun aspect of Missing: Since January is in the presention of the box. A pair of reporters go missing. Their employer receives a mysterious CD in the mail regarding the disappearance of the pair. Being unable to decipher the CD, the employer decides to release the CD to the public, in the hope that the public can help. The game box was designed to look like a missing poster, complete with a seemingly unrelated URL reading, "More Information: www.jackandkaren.info"

I played Missing: Since January with a friend. We sat in front of the screen together and played through the entire game. We would exchange information and ideas during the day and play the game once a week at night. It's one of the most memorable game experiences I've ever had. A pure joy.

I Love Bees
I Love Bees

2004 would also see the release of perhaps the most famous ARG, I Love Bees. This was a free ARG and required no installation of special software. A bee-keeping site was obstensibly hacked and the owner was asking for help. Players soon began to figure out that this was some sort of game and it led players all over the Internet.

I Love Bees is notable for two things. First, the sophistication of the puzzles. I Love Bees would have players looking at webpage markup, encoding & decoding strings, and many more puzzles that were well above the level of sophistication seen in games like Missing or Majestic. These were really hard puzzles. These were meant to feel real. These were meant for you to collaborate with fellow players.

The other thing I Love Bees is notable for is being a marketing campaign for the release of Halo 2. The wild success of I Love Bees would kick off a flurry of copycat ARGs which also served as marketing campaigns. Most of those would never quite match the appeal of I Love Bees, though.

The Black Watchmen
The Black Watchmen

In 2015, Alice & Smith would release The Black Watchmen (TBW) TBW is by far my favorite ARG. TBW was a dedicated game rather than a marketing campaign. However, it was a tie-in with the MMORPG: The Secret World.

In TBW, you played as an agent of The Black Watchmen, a government organization tasked with protecting the public from paranormal events. TBW really took the transmedia approach to a whole new level. There were websites, phone calls with actual actors on the other end of the line, YouTube videos, phony Facebook accounts, real world events, and even live streams with real world game events using actual players.

To facilitate this, Alice & Smith devised a "clearance level" mechanism. This mechanism allowed you to opt-in to whatever level of immersion you wished for. At the highest clearance level, you were required to sign a waiver and provide a doctor's approval to participate. These events could see you confronted in real life by, say, a van of actors portraying villains. It could get very intense!

Ahnayro: The Dream World
Ahnayro: The Dream World
NITE Team 4
NITE Team 4

Alice & Smith would follow up with Ahnayro: The Dream World in 2016 and Nite Team 4 in 2019. Neither game would quite see the level of player involvement TBW did. Ahnayro would be more of a strict puzzle game where NITE Team 4 would lean in to the "hacking simulator" concept. Alice & Smith would eventually dial back the interactive events due to privacy and safety concerns. Alice & Smith has since pivoted from a video game company to a "full stack entertainment agency."

Box One
Box One

In 2020, theory11 would release Box One, a tabletop game which shares a lot in common with ARGs. You would open the box and be presented with a collection of seemingly unrelated items. A short note would instruct you to start with the cards. The cards would require interaction with other items in the box as well as household items (such as a freezer) Interacting with the items would reveal more things and those things would ultimately lead to sending & receiving e-mails as well as navigating to interactive websites where you had to help someone escape a building (by way of viewing and interacting with prerecorded video clips) The puzzles are lightweight but the whole experience is quite charming.

Big ARGs which encompass lots of different media and play types are few and far between these days. Part of that is today's climate of privacy and safety concerns. Part of that is no doubt in the expense of running an immersive transmedia game. Part of that is that a lot of gamers really don't like the idea of being stuck on a puzzle for days or weeks at a time. I also suspect with the perceived modern prevalance of actual conspiracy theorists, games which deliberately blur the line between fantasy and reality may be considered distasteful or irresponsible by some.

I do miss them, though. It's very nice to see some form of ARG hit major markets every few years. I had a blast with Box One. I really hope we'll continue to see games like this in the future across a wide range of media. With any luck, we'll get to a place where we can see a resurgence of ARGs like Majestic and The Black Watchmen. They're an experience like nothing else.



Lovely Weekend

2023-07-23 21:54:00UTC

What a lovely weekend I had. That's all. I hope I'm lucky enough to have more of them.



Mid-Life Crisis

2023-05-04 16:29:05UTC

Middle age is:

  • The realization that the world runs perfectly fine without you.
  • The discovery that a younger generation defines itself as the opposite of their older generation. That is, they will do whatever it is the previous generation didn't do.
  • Learning that ultimately, nomocracy is a lie. Those with power inevitably get their way.
  • Your sense of time speeding up. One year at middle-age feels the way three months felt when you were a child.
  • Learning that outside of personal relationships, nothing but the market cares if you live or die.
  • Coming to terms with the fact that perceptions mean more to people than performance.
  • Being pushed out of your own ideologies as new ideologies consume and replace them.
  • Relearning what certain words mean as their meanings change seemingly arbitrarily.
  • Understanding that people are largely driven by comfort.


You're Making Passwords Bad

2023-01-10 20:03:28UTC

Your password rules are stupid. Your password logic is stupid. Password composition rules are stupid. Stop requiring them. They don't do what you think they do. You think you're making passwords more secure but you're actually make them less secure.

The one thing that makes a password work is entropy. A valid password needs to be one of a vast set of available passwords. By adding restrictions, you are reducing entropy. Moreover, by adding restrictions, you're incentivizing users to come up with patterns that reduce entropy even more.

Max password limits. Why are you doing this? I can understand a max limit if you're trying to ensure passwords come under some transport or memory limit. But eight characters? Fifteen? Even fifty is absurd. Let my password be as long as I wish (again, so long as it's not butting up against some transport or memory limit) If you need a maximum limit because you are storing anything other than a hash, then shame on you.

ASCII only. Why? Why not Japanese characters? Arabic characters? Emojis? Why are you restricting passwords this way?

Truncation. What the fuck is this about? Why are you truncating people's passwords? Worse is when you do it silently. What is the point of this? Bonus points if you silently truncate on password creation but don't truncate at all on login.

Limited special characters. Why do this? You are sanitizing your inputs, right? Right?

Requiring x upper-case letters, y lower-case letters, and z arabic numerals. All you're doing here is transforming "password" in to "P4ssw0rd".

Password rotation. I get that you think requiring a rotating password means it's more secure but what you're really doing is making people come up with a work-around to keep the same password. password1234!01, password1!23402, password12!3403, etc. I can understand rotation for systems that require stringent security. For an average user on an average system (yes, your system is probably average) then only require password rotation when some event triggers it, like a breach.

Client-side password hashing. This blows my mind. If you hash on the client side and transmit the hash, that hash is effectively the password. Send up the plaintext (using SSL or some encrypted transport route, please) and hash it on the server.

You want increased entropy. By employing ridiculous restrictions, you're not only incentivizing users to come up with tricks to work around your rules but you're punishing those who randomly generate their passwords. You're acting directly against the goals you're trying to achieve. So, what rules can you employ?

  • Let users enter any Unicode character they want.
  • Allow maximum password lengths that are restricted only by transport or memory constraints.
  • Minimum password lengths can help weed out common short passwords.
  • You can check a password against a list of common passwords. This can include dynamic values such as a user's username or part of their user record.
  • You can check for patterns in a password. Passwords like "wheewheewhee", "blaaaaaaaaaaaaaaa", or "12345678910" can all be detected and disallowed.

One final note: I would not disallow common words. Passphrases should be acceptable. They can help increase the length of a password while still allowing a user to remember what the passphrase is.



Man, I Just Love Valkyrie Profile

2022-12-28 18:08:26UTC
A photo of every Valkyrie Profile game
My Valkyrie Profile collection.
Look, I just love this series. So, I'm going to gush incoherently for a bit. The summary is: play this brilliant game. It's a masterpiece.

With the re-release of Valkyrie Profile Lenneth on the PS5 last week, I am reminded of just how brilliant this game is.

Valkyrie Profile Lenneth was a 2006 PSP port of the 2000 PSX original. This game was developed by the venerable tri-Ace, a development studio with a track record of creating incredibly innovative RPGs.

Valkyrie Profile sees you in the role of Lenneth, a valkyrie charged by Odin to prepare for Ragnarok by finding human souls to aid in the Æsir's war against the Vanir. Lenneth does this by scouring the world for humans about to die and then offering them an opportunity to become an einheri and a chance to fight to protect Asgard.

This is an absolutely gorgeous game with stunning visuals. The sprites are big and highly animated. The backgrounds are full of detail. tri-Ace took a page out of Squaresoft's book by applying ornate animation to the backgrounds by way of integrating full motion video in to the otherwise static backgrounds.

A clip from the gorgeous prologue.

The battle mechanics are an immediately identifiable unique aspect of the game. In battle, you may have up to four party members. Each is assigned one of the four PSX face buttons. You choose an enemy to attack by hitting a button corresponding to a party member. The idea is to understand both your attack animations as well as the enemy to string together combos that will fill a Hit Gauge. If the Hit Gauge becomes full, any party member who participated in the combo is afforded an opportunity to perform a devastating special move. What's more, if that special move refills the Hit Gauge then another party member may perform their special attack. This may continue until all party members in the combo have perfomed their special attacks.

Magic attacks and special attacks build up Charge Time for a character. While a character has Charge Time remaining, they cannot perform another magic or special attack.

A dungeon battle.

Dungeons take place as 2D platforming affairs with lots of exploration, puzzles, and enemies. Enemies can be avoided, frozen, or struck to ensure your party attacks first.

After the intro of the game, you're dropped in to the overworld with total freedom as to how you wish to approach the game. Your goal is clear: spend Midgard's remaining days before Ragnarok to build einherjar to aid in the fight against the Vanir. How you do that is completely up to you. Visit towns and dungeons in any order. Rest up for a big fight. Do as you wish...but the clock is ticking. Visiting towns, dungeons, and resting all cost "periods" of time. Another thing Lenneth can do while on the overworld is perform a Spiritual Concentration to find new dungeons, towns, and potential einherjar. This, too, costs periods of time. After enough periods have passed, you are called back to Valhalla to get a report on how the war is going. The game is divided in to chapters which are simply cycles of spending periods doing as you wish.

Valkyrie Profile Spiritual Concentration
Spiritual Concentration.
Valkyrie Profile depicting how much time remains until the end of the world
The end of the world approaches.

So, you have this beautiful game with a wide-open world, unique battle mechanics, and a unique twist on dungeon exploration. The magic of Valkyrie Profile doesn't stop there. Each chapter, while Lenneth is charged with finding einherjar to send to Valhalla, she doesn't have to. When Lenneth defeats dungeon bosses, she'll often find incredibly powerful artifacts which are the property of Odin. She may return them to him but she doesn't have to. When choosing einherjar to send to Valhalla, Odin and Freya are looking for souls with particular traits and values each chapter. Lenneth may send einherjar that match those requests but she doesn't have to. You are in charge of Lenneth. You are playing her role.

Characters level up while in-party but you also earn a pool of shared expierence points while exploring dungeons. Those points can be doled out to whomever you wish in whatever amounts you wish. There are no shops in towns. There are only weapons that you may materialized from Asgard to Midgard by way of Materialize Points (this game's currency). There are many powerful weapons but most have a chance of breaking.

Who you send to Valhalla will ascend with their skills, traits, and equipment intact. At the end of each chapter, you will receive an itemized list of their exploits in the war. Your standing with Odin can also change depending on your actions. Of course, there are also multiple endings.

Valkyrie Profile showing various skills a character may have
Characters may have various skills and proficiencies.
Valkyrie Profile depicting the types of stats characters may have
Characters have many different stats.

There are many more details and nuances to the game that I can't possibly get in to with just a summary. Valkyrie Profile is a game that gives the player so much choice and agency. It's a true role-playing game. It's given a number of interesting and innovative mechanics. It's wrapped in a gorgeous presentation. The story is minimal yet impactful. You will see the often tragic fates of your potential einherjar at the moments of their death. You will create your own stories of how clever you were to figure out a dungeon puzzle or how you racked up a 30-hit combo against a tough enemy. The music is absolutely lovely.

Valkyrie Profile was an incredibly ambitious title that pulled off everything it was trying to achieve in spades. If you're an RPG fan, you owe it to yourself to experience this masterpiece.



Schadenfreude

2022-11-07 13:37:01UTC

How I feel whenever I warn about an impending disaster and those who refused to listen to me now have no recourse.



Valkyrie Elysium is Lovely

2022-10-10 22:30:43UTC

Valkyrie Elysium has met with middling critical reception and it annoys me. It feels very much like the initial critical response to games like Nier and Demon's Souls. Those series went on to become phenominons in their own right but those "initial" games (Nier really started with Drakengard) were met with hostile reviews, despite, in retrospect, being masterpieces.

Valkyrie Profile is a series serious in tone. It is a game about the end of the world. A valkyrie has been created by Odin to prevent the obliteration of Asgard during Ragnarok.

Valkyrie Elysium follows the same beats as the majority of its predecessors. The valkyrie protagonist seeks out einherjar, dead warriors of the past, to fight by her side in her quest to cleanse the souls of Midgard.

The world has been ravaged by Ragnarok. The vast majority of people are dead. There are no creatures remaining in the world other than flora and a scant few humans. Odin has been gravely wounded in his battle with Fenrir.

This is a cruel, dying, unjust world. Corrupted souls are disgusting monsters. The color pallete is muted and drab. The score is melancholic. The combat is the single focus of the game...and that's because it is the single focus of the valkyrie. Combat can be brutal and the rewards are often simply sharpening your skills for the next battle. Stages are long affairs. It leaves the player with a feeling of no respite.

Valkyrie Elysium, like the Valkyrie games before it, ultimately asks the player to make choices. In fact, some of those choices will hinge on the choices you made simply playing the game. It poses a simple question to the player: "In this bleak world: who do you choose to be?"

The valkyrie explicitly asks this question of her would-be einherjar before recruiting them to Odin's cause. But then the valkyrie begins to ask herself that question as she encounters particular characters. Ultimately, the game will ask the player this question.

The game has been criticized for having a lack of story. The game has a lack of narrative, sure, but the story is full and beautiful. The game's story is told through the game itself. As you play, the muted colors, the serious tone, the lugubrious score, and the relentless battles will tell this story of unjust gloom to the player. Characters will confront their (often literal) demons if you engage in the sidequests and while it's a nice addition to the game, it's unnecessary to understand the story being told. You will follow the valkyrie through her struggle: from her creation to the conclusion of her divine mission, and discover a deep unfairness and sadness along the way.

The game has also been criticized for having poor graphics. The graphics are lovely. The colors are muted intentionally. This is to get across the story of the game.

The same can be said for the sparse narrative. This game would have been done an injustice with lots of character dialog. This isn't a world full of life and full of lively discussion. This is a world where scant few remain and those who fight for Odin are organized in to a very clear hierarchical structure where the einherjar answer to the divine will of the valkyrie and the valkyrie to Odin. There is little place for discussion in this stark setting. Only to do as the valkyrie, and by extension Odin, commands.

Valkyrie Elysium is a game with a fantastic combat system and a beautiful and carefully constructed setting, story, and structure to surround it and tell this sad story. It is beautiful and it deserves a place among the all time great gems of video gaming.



What is a Mathematical Group?

2022-08-25 03:13:04UTC

In math, groups are the building block of algebras. Groups are required to do any sort of sensible translation or mapping. Groups are what makes addition possible. Groups allow shapes to be rotated and flipped. Groups are what makes modular arithmetic, the modulo operation, and cryptography possible.

A group requires a set. A set is just a collection of well-defined elements. It could be the set of integers, the set of real numbers, the set of dogs, or the set of purple plastic toys manufactured in 1992.

A group requires an operation. An operation is a function that maps a series of inputs to a single, well-defined output. The inputs are called the domain. The outputs are called the codomain. An example of this is addition. Addition is an binary operation. That is, it accepts two inputs. It then spits out a well-defined output which we call the sum. For a group, it doesn't matter what this operation actually is. It could be addition. It could be multiplication. It could be an operator with a shooting star shape. It doesn't matter what it looks like or what it does. All that matters for the purposes of a group is that the operation is binary and allows you to combine, in some fashion, any two elements in the group's set.

A group is a closure. It is closed under its operation. That is to say, when performing its operation on any two elements in the group, it will always return a member of the group.

A group must have an identity element. This is an element that when combined (read: operated upon) with any other element, you get that element. For example, The additive identity of the group of integers is 0. 0 plus any integer results in that integer.

Each element in a group must have an inverse. An element combined with its inverse will return the identity element.

Lastly, a group is associative. This means that the order of operations doesn't matter so long as the sequence is preserved. E.g., (1 + 2) + 3 = 1 + (2 + 3).

This is all that is required for a group. These rules allow groups to be useful constructs for various mathematical applications. Indeed, you may find that every bit of math you can think of might very well have been with a group.

While all groups require that the order of operations doesn't matter, they do not require that the sequence of operations also not matter. This is because there are many instances of constructs that behave very much in a group-like fashion that would be excluded from the definition if sequence wasn't required to be maintained (such as the symmetry group) If sequence indeed does not matter (also known as being commutative) then we call that type of group an Abelian group.

So what's the point of rigorously defining things as groups? They expose behaviors that we otherwise wouldn't see. Modern cryptography would be impossible without the notion of a group. A key component is based on the notion that the set of integers can be mapped as quotient groups in to residue classes. As an example, we can take every number evenly divisible by 3 and stick them in a group. We can take every number that leaves a remainder of 1 when divided by 3 and stick them in their own group. Finally, we can take every number that leaves a remainder of 2 when divided by 3 and stick them in a group. We've now mapped all of the integers in to three quotient groups. The cool part is if you add any number from the first group to any number of the second group, you'll always get a number in the third group. In fact, if you pick any number from one group and any number from any other group, your result will always be a number from the same group as any other result.

We've translated the integers in to three residue classes and those classes together are a group. This is the basis of modular arithmetic (sometimes called "clock arithmetic") Now, I can construct a function that takes in a set of integers, sums them together, and spits out the modulo. Thus, I've taken an arbitrary-length input and mapped it to a fixed-length output. This is an example of a simple modular hashing function. This and similar concepts are extended in applied usage, for example, to verify a password is correct without having to store or even know what the password is. Such a cryptographic hash requires a number of properties not provided in our naive example but at the heart of it all are groups.



< PREV PAGE | NEXT PAGE >