Sunday, December 18, 2022

The mystery that's the term "KISS principle"

Most people in engineering and programming have probably at one point or another heard of, or even used, the term "KISS", or "KISS principle". It's about the generic guideline of not over-complicating things in those fields and keeping things simple and straightforward. (When you keep things simple, errors and mistakes are less likely, reliability tends to increase, and the thing tends to be easier to understand, maintain and repair. Making it more complicated than it has to be can be detrimental to one or more of those things.)

The curious thing about that acronym, KISS, is that nobody seems to be able to agree what it actually means. Not as in what it stands for, but what the last word is referring to. Although there's actually small disagreement on what it stands for, in the form of whether there should be a comma between the third and fourth words or not.

Everybody knows that it stands for either "Keep It Simple, Stupid", or "Keep It Simple Stupid" (nobody seems to be able to agree which one). There are myriads of variants that replace that slightly awkward and perhaps even offensive word 'stupid' with something else, but there's no disagreement that it was originally "stupid".

Except that it actually originally might not have been.

The origin of the acronym, and sentiment, is not completely clear. It's widely attributed to one Kelly Johnson, an engineer who worked at Lockheed Skunk Works from about 1938 to 1975 (and even after that remained a consultant for the firm until at least 1980. Quite a long and illustrious career indeed.)

However, while it's very often attributed to him, a form of the acronym, "Keep It Short and Simple" appears in a 1938 issue of the Minneapolis Star newspaper. It's completely unclear which came first, but it's very likely that Johnson didn't invent the acronym himself, and it was already existing, although he might have invented the expansion "Keep It Simple Stupid".

So what quite likely happened is that the acronym already existed (actual origin lost to time) and Johnson's interpretation of it became highly popular.

What nobody seems to be able to agree on is what that slightly more controversial word, "stupid", refers to. Is it referring to the person being talked to (as in something like "don't be stupid, keep it simple")? Is it referring to the thing that should be kept simple (as in "keep it simple and stupid", or perhaps "keep it stupid simple")? Is it referring perhaps to something else?

No wonder there are myriads of variants that replace that word "stupid" with something else, making it both less controversial and less ambiguous (such as the original "keep it short and simple").

Likewise, as mentioned, nobody seems to agree whether there should be a comma or not. If the comma is used, it kind of implies that "stupid" is referring to the person being talked to. If the comma is not used, it kind of implies that the thing being built should be kept "stupid simple". I'm not sure Kelly Johnson himself ever clarified what he meant when he used the acronym.

I don't really understand why his version of the acronym has become so universally used. The more original version, "keep it short and simple", seems so much clearer and less controversial, and much easier to agree with (after all, why would you want to eg. write program code that's "stupid"?)

Wednesday, November 30, 2022

Misconceptions about the Titanic

To this day the sinking of the Titanic is still the maritime disaster (and, perhaps, any disaster of any kind) that's most remembered and most prominent in media and the collective world-wide culture.

Unsurprisingly, given how much the event is talked about, there are tons and tons of misconceptions and false claims made about it. Here is a list of some of them

"White Star Line was too arrogant claiming that the ship was unsinkable, making false promises."

While there isn't actually any direct advertisement or piece of media where the company claims the ship to be unsinkable, it was nevertheless considered virtually unsinkable, and in some contexts stated as such.

Was this just sheer arrogance based on ignorance, or was there actually some basis to this claim?

There actually was. Most people have heard of the "watertight bulkheads" and how as long as four or less of them get flooded, the ship wouldn't sink. This was actually quite true (barring some kind of malfunction in the watertight doors or the like.)

The thing is, the four-compartment safety measure actually did cover pretty much every single accident scenario that was reasonable and there was precedent of. The ship would not sink if it collided with another ship (even one of the same size), or caused by a direct hit with an iceberg, or scraping rocks at the bottom of the sea, or any other realistic scenario that could compromise the integrity of the ship's hull (such as a boiler exploding). These were all types of accidents that had happened many times before during the history of ocean liners, and the four-compartment safety measure did indeed cover all of them.

However, the one thing that they did not account for was what actually happened: An iceberg scraping the side of the ship for tens of meters, making the hull plates bulge and rivets snap. (There is, in fact, evidence based on ship engineering that shows that if the ship had collided with the iceberg head-on, it would have not sunk. It might have caused some hundreds of deaths, mostly of those on the front of the ship, but it would not have sunk.)

So considering the ship virtually unsinkable wasn't actually completely unrealistic. The scenarios where it would be damaged so badly were so unlikely that it was reasonable to make the claim. Of course now we know that Murphy's Law unfortunately kicks in at the most unfortunate moments.

"There were lifeboats for just half the passengers. White Star Line compromised on the number of lifeboats because of arrogance and as a greedy saving measure."

This decision is actually also more justifiable in light of the previous point: It was highly unlikely for the ship to sink, so in the case of an accident the lifeboats would just be used to transport passengers to rescue ships, going back and forth to get more passengers.

In fact, the Titanic had more lifeboats than was required by law at the time. (The law was lagging behind, of course, but you can't blame the company for fulfilling and even surpassing the requirements of the law.)

There's also the quite widespread notion that lifeboats are somehow a guarantee of survival, or at least that they increase the chances by orders of magnitude. This isn't actually the case, especially back then. In fact, lifeboats, especially in those days, were almost a certain death sentence, and were only used as a desperate measure of last resort, when there was no other way. There are, in fact, dozens and dozens of examples of ship disasters where lifeboat deaths were even more numerous than of those who stayed in the ship, waiting to be rescued. Lifeboats are extremely rickety and haphazard, especially in bad weather conditions (which tends to be the case in most seaship disasters), get flooded very easily, capsize very easily...

When thinking about whether Titanic had "enough lifeboats" one should disabuse oneself of the notion that lifeboats were somehow a guarantee of survival. They were anything but, especially back then. (Although in the case of the Titanic the survivors were extraordinarily lucky in that the sea was completely calm, so in this particular case the lifeboats were in fact lifesavers. But this was highly unusual and up to chance. If the weather had been rougher, it's very possible that all of them would have perished. It took the Carpathia too long to reach them, if the weather conditions had been bad.)

"The third class of the ship was deplorable."

Mostly because of its depiction in the different movies, especially the James Cameron one, the third class of the Titanic has quite a bad reputation, being considered pretty much in essence what was previously known as "steerage" class (where passengers in this class would live in quite inhumane conditions in the ship, only in slightly better conditions than cattle).

This is quite an unfair and false picture of the situation, though. Even third-class passengers had cabins for two-to-four people (something that was unheard of in the previous era of the "steerage" class where "cabins" of 10 to 20 people were common), families could get their own cabins for themselves, women traveling alone could get their own private rooms shared with one or two other women, the third class was offered many services that were rare at the time, such as a smoking room and a promenade of their own, and the food service was quite adequate considering the time.

Indeed, it was very common in previous decades for passenger ships to not offer even eating utensils for third-class passengers (they were supposed to bring their own). In fact, some ships didn't offer any food at all (again, the passengers were supposed to bring their own). Not only did the Titanic third class offer dining rooms and eating utensils for third class, but the food was quite decent (in fact much better than most third-class passengers were accustomed to). Perhaps not a gourmet feast, but very decent.

"Joseph Bruce Ismay was a dirty opportunistic coward."

Joseph Bruce Ismay was the chairman and director of White Star Line, who was aboard the ship when it sunk. Famously he survived the sinking, as one of the few men who did.

His depiction in media, especially the two biggest Titanic movies, however, paint him as a stupid clueless dirty opportunistic coward who entered one of the lifeboats without permission, only allowed to do so because the crew didn't dare to say anything.

The thing is: This depiction of the man is 100% fictitious. There's literally zero evidence that he was like this. In fact, some survivor testimony states that he helped people enter lifeboats, and entered one himself only when there was nobody else left in that part of the ship, possibly at the suggestion of crew members. There's no evidence that he was a coward and an opportunist.

Incidentally, in this case we know exactly where this slanderous picture of him comes from: From one William Randolph Hearst, a businessman and media mogul, owner of several American news organizations. Indeed, Ismay and Hearst had become enemies in the past because of some financial disputes, and Hearst took the opportunity after the sinking of the Titanic to start a massive smearing campaign against Ismay, inventing all those stories and character traits out of thin air.

And Hearst was extremely successful. Ismay's reputation was destroyed, it never recovered, and history came to know about the "fact" of his cowardice and shameful actions during the sinking... even though there's literally no evidence of any of it. No survivor testimonies, nothing. The only source for these claims are the smearing campaign articles in the newspapers owned by Hearst.

While Ismay's reputation has partially recovered during the last few decades, very long after his death, it will probably never fully do so, and people may well still think of him as a dirty coward for the foreseeable future. Films like Cameron's Titanic don't exactly help.

Sunday, September 4, 2022

"Pseudo" in "pseudo-RNG" does not mean "poor-quality randomness"

Whenever the question of the quality of the randomness generated by a computer program is the subject of a discussion, pretty much invariably and without fail some smartass will jump in and say that what the computer is using is a "PSEUDO random number generator" with the implication that that somehow affects the quality of the randomness and explains why the quality might be poor.

This is a misunderstanding about random number generation and what the "pseudo" in that term means and implies.

The "pseudo" in "pseudo-random number generator" (PRNG) has nothing to do with the quality of the randomness and everything to do with repeatability: Given the same initial conditions (ie. the same initial "seed") you are guaranteed to always get the same stream of numbers.

However, that tells nothing about the "quality" of the randomness of those numbers.

Sure, there are many PRNGs that have very poor, even horrendous quality, and/or horribly short periods (ie. how many numbers they produce before they start repeating the same pattern again). However, they are not poor-quality because they are "pseudo". They are poor-quality because they have been badly designed. Them being "pseudo" has nothing to do with it.

The fact is that it's perfectly possible to implement PRNGs which output (if you don't know the initial seed) is completely indistinguishable from true randomness, by any metric or algorithm you may use, and where predicting the next number (or even that the number is likely to be within a certain range) is pretty much impossible, just like with true randomness.

In fact, so-called cryptographically strong PRNGs (CSPRNGs) rely heavily on this. If a CSPRNG were in any way predictable, even slightly, it would make it useless for cryptography.

To put that in another way: If you are given two very long lists of numbers (billions of numbers), one generated by a CSPRNG and another by some true source of even randomness, it's impossible for you to know which one was produced by the CSPRNG, no matter which metric or algorithm you may use.

Thus, for all intents and purposes, the output of a CSPRNG is pretty much in practice truly random. Indistinguishable from actual randomness. It cannot be higher-quality than that. The only special thing about it being "pseudo" is that if you have the initial seed you can repeat the same stream of numbers with it. (Without the initial seed there's no way for you to even know what this initial seed was. In fact, cryptography heavily relies on this.)

Thus, in the name of everything that's holy and mighty, please stop jumping in with the "pseudo" thing when the question at hand is the quality of the randomness of a computer program, as if "pseudo" meant "poor-quality randomness".

Tuesday, July 5, 2022

What to do if a PC does not POST, comprehensive guide

Nothing beats the feeling of having worked for hours to build a PC from scratch, then powering on, and it just working like a charm on the first try. Nothing is more disheartening and frustrating if, instead, the PC does not POST.

"POST" stands for Power-on self-test, which is a battery of tests that the BIOS of the computer performs immediately after power-on in order to determine that everything works as it should. The expression "does not POST" is used in general to mean that the startup process of the PC does not advance to trying to load the operating system from a boot device. (Some people may use the expression to cover cases where the OS starts to load but fails at some point, or crashes during the process, but this is technically speaking a misuse of the term because it's not part of POST anymore. In general, if you get a picture and can get to the BIOS configuration screen, it means that the system did pass POST.)

A PC failing POST may present itself in many different ways, but some of the most common ways are:

  • The PC seems to power up alright (leds on the motherboard light up, fans spin) but there is no picture (ie. the GPU or iGPU sends no video signal of any kind) and all indications are that the OS is not launching (although this might be hard to determine without an image).
  • The PC enters an infinite power-cycling loop, sometimes almost immediately after power-on (ie. it stays on for just a second or so, and then resets), sometimes with the power cycle lasting several seconds. It may or may not send out a video signal.
  • The BIOS gives a critical error message about a failed test that stops it from proceeding (either to the display, or using some status indicators on the motherboard, or with some motherboards even through its integrated sound chip).

NOTE: The PC power-cycling once after power-on, especially after having been turned completely off, ie. the PSU has been switched off or disconnected from mains, is usually not an indication of a failed POST, especially with modern motherboards. This is usually just an indication that the BIOS "trained" the RAM, and needs to reboot in order for it to function properly with the new settings. This usually happens when XMP has been enabled, and is normal intended behavior and nothing to worry about. Many BIOSes have an alternative XMP mode that can disable this behavior.

What to do if a new PC build does not POST?

Before anything else, a piece of advice: When building a new PC, always test it first with a minimal build on the table, in other words, just the motherboard, CPU (plus cooler), RAM, PSU and GPU (if a discrete GPU is being used).

Many people, even experienced PC builders, make the mistake of building a new PC completely, up to the last screw and zip-tie, all cable management, all bells and whistles... before trying to turn it on for the first time. If it then fails to POST, it may cause a lot of extra work (the worst possible scenario being that you need to replace the motherboard). You will save yourself a lot of unneeded work and frustration if you test it with a minimal setup before you even install the motherboard in the PC case.

Note, though, that even though it's rare, it's not impossible that the PC did work just fine with the minimal setup, but does not POST after the PC has been fully built. In either case all the things below to check apply.

Also note that some motherboards will have some kind of segmented display, POST indicator leds, or even a full-on mini-display to indicate the test that failed. While this can give an indication of the problem, surprisingly often it does not. This is because this is essentially just a "guess" from the part of the BIOS of what's wrong. Sometimes it will be accurate, sometimes it will not.

Also note first and foremost:

  • If you actually seem to be receiving some kind of video signal (your display is not saying "no video" or similar and is not going to sleep mode) but when you start up the system nothing seems to be happening (you only get a black picture or, perhaps, at most with some kind of small cursor on the top left or similar): The very first thing you should do is try going to BIOS: During launch keep pressing the 'del' key to see if BIOS shows up. If it's not showing up (but you are still getting video signal), try waiting for a minute or two (literally, no exaggeration). If you are getting a video signal but nothing seems to be happening it's possible that BIOS is taking a very long time probing hardware. One of the main causes for this may be a broken drive (hard drive or SSD). Some BIOSes will get stuck for a long time trying to probe a broken mass storage drive. If you eventually get to BIOS in this way, try removing all drives from the system to see if the delay disappears. (Then try connecting them back one by one until the delay appears again, revealing the culprit.)

If that's not the case, then the easiest things to check first:

  • Check that the RAM modules are properly seated. It's surprisingly easy to think that you installed them properly when in fact you didn't. A RAM module being even slightly out of alignment will cause a POST failure. When inserting a RAM module in its slot, there should be a clear noticeable click on each end of the slot.
  • Check that you have installed the RAM modules in the correct slots (this should be checked even if the PC POSTs just fine, because them being in the wrong slots may cause performance degradation). The instruction manual of the motherboard will have instructions on the order in which the RAM slots should be populated.
  • If you are using a discrete GPU card, check that it's properly seated (you'd be surprised how easy it is to make a mistake here). The vast majority of motherboards will have a clamp, a "lock", at the end of the top PCI-Express x16 slot that holds the card in place. This should make a clear noticeable click when you insert the card. Also check that it's fully inserted in the other end (ie. the end that's closest to the back of the PC).
  • Check that you have properly connected the additional GPU power cables to the GPU, if it needs them (the GPU card will have 6x2 or 8x2 sockets for these). Note that some modern GPUs will have indicator leds near these sockets which will light up if it's not receiving power to that socket, which is a good indication.
  • Check that your display is actually connected to the GPU (or iGPU if you are not using a discrete card) with a DisplayPort or HDMI cable. (You'd be surprised how often even experienced people make this newbie mistake. The more experienced you are, the more likely you are to dismiss such trivial mistakes as the possible cause.) If you can, try using another cable to check that the current one isn't broken.
  • If you are using a discrete GPU card and your CPU also has an integrated GPU, try removing the discrete card and connecting the display to the motherboard's own DisplayPort or HDMI slot. (If in this situation it does POST normally, it may be very difficult to find out what the actual problem is. It does not necessarily mean that the GPU itself is broken (if you can, test it with another PC). It may also indicate a problem with the motherboard, the CPU, or sometimes even BIOS.)
  • Check that you don't have anything connected to any USB port. (You'd be surprised how often this can cause problems.)
  • Try clearing the CMOS (the motherboard instruction manual will have instructions on how to do this). Do this even if you think it cannot possibly be the cause (for example because a minimal setup on the table worked just fine, and now that you have installed it inside the case it's not POSTing anymore). You'd be surprised how often this resolves the issue.
  • If you are using more than one RAM module, try using only one. Start with inserting it in the slot recommended by the motherboard's instruction manual. If the PC still doesn't POST, you can try the other slots as well. (If it does POST in one of these situations, but not when all the RAM modules are in their proper slots, then it's an indication of a problem that may be too difficult to solve. You may need to consult the shop or manufacturer on what to do in this case.)
  • If you are in a situation where the minimal build worked but the full build does not, try removing non-essential components (such as storage drives, front panel I/O, case fans and so on) to see if it starts working at some point. This may reveal the offending component, if there's a problem with one of them (or if you have somehow connected it incorrectly).  You may want to clear CMOS after removing some components, like storage devices (the existence of the storage device may be corrupting CMOS in some manner.)
  • One reason for the previous may be a broken SATA cable (if you are using a SATA drive). SATA cables are relatively fragile and can get broken if mishandled (eg. bent to extreme angles). This can easily happen when cable-managing the PC. If the problem disappears when the SATA drive is disconnected (or if BIOS outright states that it can't find the drive even when it's connected), try replacing the SATA cable.

Hardware compatibility issues to check (you should check these when purchasing the components, but re-check these anyway):

  • Check that the motherboard actually supports the particular CPU model you are using. Motherboard manufacturers will have on their websites compatibility lists. Check that the exact model you are using, with every single number and letter, appears there.
  • Even if that exact CPU model does appear in the compatibility list, check if the list entry specifies that it only works with a certain version of BIOS, and thus the motherboard may need a BIOS upgrade to support that particular model. If you have made the mistake of purchasing a motherboard that requires a BIOS upgrade to support that particular CPU, consult the motherboard's instruction manual and the manufacturer's website on whether this upgrade can be done without a display or not. (If it's not possible you'll either need another CPU that's supported out-of-the-box, or you need to return that motherboard and purchase another model that supports your CPU without a BIOS upgrade.) When making purchasing decisions, it's always a good idea to purchase a motherboard that supports your chosen CPU out-of-the-box, without requiring any BIOS upgrades.
  • Check that the motherboard supports the particular RAM model you are using. These will also be listed in the compatibility list of the motherboard model (every number and letter of the particular RAM brand and model should appear in the list.) While RAM incompatibility is less of an issue in recent years, it can still raise its ugly head sometimes.

Things that are more difficult to test and/or fix (but if you can, you should):

  • Check that there are no bent pins in the CPU socket (if Intel) or the CPU itself (if AMD). This should be quite visible when looking at the pins against a light at the proper angle, as a bent pin will be quite noticeable against the rows and columns of other pins. (A bent pin is a really bad problem because manufacturers will generally not give you a free replacement even if it's still under warranty, so usually you'll be on your own.) You can carefully try to fix the bent pin with a needle, and see if it helps. (If you can't get a replacement from the manufacturer this is essentially your only option because else the CPU or motherboard is just a useless paperweight.) Always be very careful when installing the CPU (and the CPU cooler). Carelessness easily causes bent pins, hosing the entire system.
  • If you can, test the system with another GPU card (even if your CPU has an integrated one and you already tested that.) This is usually the easiest of these to test because any random GPU card will do, no matter which brand, model or generation (as long as it's a PCI-Express card).
  • If you can, test the system with another PSU. This especially if the PSU you are using is not brand new (but even then you should, as it's not impossible for a PSU to be faulty out of the factory.)
  • If you can, test with another brand or model of RAM (even if it isn't explicitly listed in the compatibility list of the motherboard.)
  • If you can, test the system with another CPU of the same model that's known to work, or another motherboard of the same model that's known to work. (This is an option that's not practically possible for most people, but if you can you should.) If the exact same model of CPU or motherboard is not available but you can use another model that's known to be compatible, this will of course also do.

What to do if an existing PC stops POSTing?

You may have used your PC just fine for years, when suddenly it just stops POSTing (ie. the OS doesn't even start to launch and you may even not get any video signal). Note that this is different from the PC failing to boot (eg. the OS gives an error, a BSOD, or crashes during the bootup process). But even in this latter case it doesn't hurt to try these checks anyway.

These are things you can try to diagnose the problem:

  • Try clearing the CMOS. This is a quick and easy thing to test, and will oftentimes help. Do this even if you have not done anything that may have affected BIOS settings. CMOS may have become corrupted for some reason and cause POST to fail. If it starts working again after clearing CMOS, it may be an indication that the CMOS battery is running out. This especially if this happens again in the near future. If this continues to happen, try replacing the battery. (Consult the instruction manual of the motherboard.) Another symptom of the CMOS battery running out is if BIOS settings keep resetting to defaults even after you change them to something else (eg. fan curves, XMP profiles, etc.)
  • If this starts happening after a BIOS update, the culprit is quite clear. Try clearing CMOS, and if that doesn't help, see if you can restore the original BIOS (by either "downgrading" to it or, if the motherboard supports it, restoring the motherboard to factory settings).
  • Try the same things as listed in the previous check lists above (especially the easiest ones). It's not completely impossible that some component has dislodged over time due to vibrations. Also, if you have recently replaced the CPU cooler, or removed it and placed it again (for re-pasting the CPU), check that there are no bent CPU pins. (While unlikely, it's not impossible for a pin to become bent by merely installing the CPU cooler. This should always be done carefully.)
  • Check that there's nothing connected to the USB ports.
  • If the behavior of the PC seems erratic, ie. the reason for it not launching seems to change from power-on to power-on, it sometimes failing almost immediately, sometimes even getting to loading the OS but then failing (eg. a reboot, crash or BSOD), sometimes with random BIOS error messages, a very common culprit for this is a failing PSU. A failing PSU may still provide enough power to run BIOS but not enough to run the CPU, which may cause the system to not POST. The amount of power provided may also fluctuate, causing erratic behavior. If at all possible, try with another PSU that's known to be good. (You might also just make the gamble and buy a new PSU. It might be a good idea anyway, if your current PSU is many years old.)
  • An outright consistent no-picture POST fail may also be caused by a failing PSU. There's no other way of testing this than by trying (or buying) another PSU.
  • If everything else fails, it may be impossible to diagnose the problem other than by doing the more difficult checks in the previous list, ie. testing with another motherboard or CPU (or RAM). It's not impossible for these to break seemingly out of nowhere (one common cause being a current spike from the PSU or somewhere else).

Sunday, July 3, 2022

Why do we still use a 24/60 based time system?

Humanity has had the need to measure things for thousands of years, most importantly because of commercial reasons. Managing large amounts of produce, storing it, transporting it, selling it, buying it and so on becomes really complicated and confusing if there is no way to measure and express quantities. Knowing how much of what you have is extremely useful. Selling produce likewise becomes so much more manageable when prices can be set based on units of measurement (after all, not everything can be sold at a given price per piece, because "pieces" can be too small for this to be feasible, like grains of wheat or rice, or basically impossible to be divided into "units", like liquids.)

Unsurprisingly, over the millenia different peoples came up with different ways to measure stuff, using different units of measurement. Since there was generally very little contact between distant lands, isolated and semi-isolated peoples came up with their own units independently of each other. In addition, measuring and measurement units were heavily driven by custom and tradition, which meant that different things would often use different units of measurement, even though they all measured the same thing (such as weight or volume).

Indeed, for the longest time you could go to eg. an open-air marketplace and encounter a dozen completely different measurement units of weight, used to measure different things (eg. flour could use its own measurement units, wheat could use its own, peas could use their own and so on), and a dozen different units of volume (eg. beer could use different units from wine, which could be different from units of water) and so on.

The Imperial System of measurements succeeded in somewhat standardizing, unifying and replacing all these hundreds and hundreds of different other measurement systems, but many hold-outs and relics still persisted to some extent, and co-existed alongside the Imperial system for quite a long time.

At some point the scientific community got tired of this mess. As science progressed more and more, and measurements became more and more important and universal (and especially the accuracy of measurements became important), a single unified standard was needed. The Imperial system was awkward to use because converting between the different units (eg. inches, feet, yards, miles...) was difficult. On top of that, science was in more and more need for extremely small and extremely large units of measurement, for which the Imperial system was rather inadequate for.

They needed a simpler, easier to use, and more consistent measurement system that also allowed easily going arbitrarily small and arbitrarily large, so they came up with the metric system, which eventually became the standard in science. While the base units in the metric system are rather arbitrary, the conversion between different scales of the units is 10-based and thus very trivial to do. This better system replaced all of the thousands of previous systems (with the exception of the Imperial system in some places, which still refuses to die).

But one has to wonder: Given that the metric system replaces and defines all units of measurement, using a 10-based system... why doesn't it also do so with time? Why are we still using the ancient 24-hour, 60-minute, 60-second time measurement system? Fractions of a second are done using base 10, but other than that we are still stuck with this odd system that makes conversions harder than they could be (eg. how many seconds is 5.21 hours? Not easy at all to do in your head.)

The main reason for this is that by the time when the pressure to create a single unified measurement system was large enough that it was done, time units were already pretty much universally standardized.

While you could find a dozen different measurement systems being used even at the same marketplace, every single person there was nevertheless using the same hours, the same minutes, the same seconds. Nobody was using any other units of time. This form of timekeeping had somehow become universal, and had been so for very long time. Thus there was no impetus to change it. It was just easier to keep the system that everybody was already using anyway.

(It's not like nobody tried. Some countries did try to create a 10-based timekeeping system, with 10-hour days and 10-day weeks. All these attempts failed miserably because everybody simply ignored it. It never caught on.)

So in the same way as the Imperial system still exists today and is widely used in some countries, the 24-hour 60-minute system likewise still exists today and is still ubiquitous. Tradition. There was never any impetus to change it, so it was never changed.

Friday, June 24, 2022

Elden Ring, western open-world games, and player choice

The next installment of the (sort of) "Dark Souls" series of games by FromSoftware, Elden Ring (not part of the Dark Souls franchise proper, but being part of the general genre) was quite hyped prior to launch and, perhaps a bit unusually, not only lived up to this hype but in fact surpassed it ten-fold, taking the gaming world by a storm. (Perhaps no better indication of this is the fact that the publisher, Bandai Namco, predicted to investors prior to launch that the game would sell about 4 million copies in the first 5 weeks. The game ended up selling 12 million copies in less than 3 weeks.)

Many people noted how different the game was to typical western open-world games, not only in terms of the brutal difficulty, but when it comes to the graphical user interface and "player hand-holding".

In a typical western open-world game the player is usually being constantly told what to do and where to go, and what to expect at the next destination. Quests will usually be explicitly given, and quest markers will be shown on the world map and on screen during gameplay (typically on some kind of compass or similar). The player will basically never encounter a situation where he doesn't know what he should do or where he should go. The game pretty much always holds the player by the hand, guiding him to the next location, with clear direction markers, sometimes even showing the exact route to take (sometimes so blatantly that the route to follow is literally drawn on the ground).

Elden Ring broke this mold quite significantly. While there is a main quest and several optional side quests, none of them are in any way explicitly explained or shown anywhere (there's no "quests" menu, like in so many other games) and, most prominently, there are almost zero indications anywhere on where to go or what to do next. (There's only a very slight hint at certain bonfires, indicating the general direction of the next significant bonfire, but that's about it. Once you go away from the bonfire you won't see it anymore and you are on your own.)

In fact, there are so little hints on many side quests that many players are actually unable to complete many of them (at least on their first playthrough) because there's usually literally zero indication on where to go next, and sometimes how to trigger the next part of the quest is really obscure. (The first published version of the game had literally no indication of any sort on how to proceed with side quests. A subsequent patch added a slight hint in that the location of significant characters would appear in the world map. Sometimes this helps, sometimes it doesn't.)

This minimalistic design choice works surprisingly well. It really strengthens the sense of exploration and discovery. The game isn't telling you where to go next or what to expect there. You literally have to find the next location by exploring the world and reaching places you have not been before. You will eventually find significant places and enemies that are part of the main (or side) quest. Perhaps a bit surprisingly, it's hard to get "stuck" in the game in the sense of not knowing where to go next and how to advance. This is mostly thanks to the open nature of the game world: There's almost always an unexplored part of the game where the storyline will advance and you'll get closer to the final goal. Even in the few instances that advancing has been blocked (usually be a very strong enemy) it becomes very clear what to do (ie. kill that enemy so that you can progress).

A sort of "mini-controversy" arose when some western game developers criticized the game for its minimalism, and when many fans of the game ridiculed western open-world games for their player hand-holding. Some created memetic pictures of the sort "if Elden Ring was a western open-world game" (with a screenshot of the game but with tons and tons of GUI elements added to it, such as direction markers, quest markers, and so on and so forth).

One particular game developer (from a big game company with big-name games) defended their designs (I don't remember now the exact game or game franchise) because they give the player a choice of what to show and what not to show. In other words, in their games you can turn off most GUI elements in the options menu. Thus, players are given a choice of how they want to play the game: Those who would prefer all the helpers and indicators can have them turned on, those who would prefer not to have them can turn them off.

This does sound good on paper. After all, isn't player choice a good thing? The less choices a game gives to the player, the more restrictive it is, and the more it forces the hand of the player. You should be able to customize your gaming experience to your liking! How can that be a bad thing?

I would argue, however, that at least when it comes to this particular aspect of game design, giving players too much choice, too many options, especially when it comes to turning on or off visual aids and info boxes, is actually detrimental. It might sound strange and crazy at first, but hear me out.

There are two main reasons for this.

One of the reasons is that games will inevitably be designed with a particular user interface in mind. This is in fact the case with most "difficulty settings" in games as well: Most usually the game will be principally designed for a particular difficulty level, a level in which the game is most fluent and natural to play, with the other difficulty levels feeling artificially tacked on by essentially breaking the design. (For example the most typical way to increase difficulty is to make the player's bullets do less damage. Something that the game was rarely explicitly designed with that in mind, and thus the game essentially becomes artificially unbalanced.)

Most open-world games will be designed assuming the default settings for the GUI. The game easily becomes less fluent and less enjoyable, even frustrating, if this GUI is changed via options. Conversely, if the player is given the option to make the game easier with options, it may remove all challenge from it and make the game outright boring. Like a glorified walking simulator.

This segues into the second reason: If players are given the option to play in "easy mode", most players will do so. This especially if the "easy mode" is the default.

More particularly, in this context, if all the GUI elements that make playing the game easier (such as visible quest markers) are on by default, the vast majority of players will leave them on, and will have no incentive to turn them off. This even if the game would actually be more enjoyable with them turned off (assuming the game has been designed to be most playable with them turned off).

I would argue that, perhaps somewhat ironically, in this case it's better to not give players the choice of making their gameplay easier (or harder) than it needs to be. I would argue that it's better to "force" the player to play the game in the intended manner, as the game has been designed, by simply not giving any other options. If the game has been designed well enough, the player will not even notice that there could be other options. (This is most certainly the case with Elden Ring, which is magnificently designed for its minimalistic GUI.) If you give the player options to make the game more trivial to play, and especially if these options are turned on by default, the vast majority of players will play the game in that mode, and probably miss the actual fun and challenging way to play it.

This is not really saying that "the average player is dumb and doesn't know what he wants". It's not dumb to choose the path of least resistance. We do it all the time, in everything. We mostly take the challenge when we have no choice. Only few people take challenges willingly even when they don't have to, just for the sake of the challenge.

Sometimes it's better to "hold the player's hand" by not giving the player the option for the game holding the player's hand.