• 0 Posts
  • 33 Comments
Joined 2 years ago
cake
Cake day: April 28th, 2023

help-circle


  • These days “games I can play on Linux” is, like, almost every game released on Steam. Install Steam via your package manager or Flatpak, set up your account, and the vast majority of both native and Steam Play-based games will install and run very well. (The only thing worth noting is that while Windows and Mac versions of games are indicated by Windows and Apple logos, Linux native games are indicated by the Steam logo for SteamOS.)

    In addition to that, there are free and open-source games that may be available for installation straight from your package manager (or Flatpak). Here are some:

    • OpenTTD is a clone of Chris Sawyer’s Transport Tycoon Deluxe series, but with massive improvements to both UI and game logic. Run a transportation company, move people and cargo from one place to another, make money, expand, compete against AI or human opponents in online multiplayer.

    • Xonotic is an original Quake/UT-style FPS. I don’t play it much, but I have friends who really enjoy it.

    • “The Battle for Wesnoth” is a turn-based strategy game with gameplay reminiscent of console/handheld titles like Advance Wars, but redesigned to better suit PC gameplay. Has both singleplayer missions and online multiplayer.



  • To be more specific: most often a game would run its physics calculation at the framerate it’s designed for, like 30 or 60 fps, and in case it displays with a higher framerate, try and interpolate the graphical data based on the physics calculations. It’s possible to make the physics run faster as well, but carelessly adapting things may make things go wrong (a good example is Quake 3, where your jump height changes based on the com_maxfps value).

    A racing game that runs its physics at 60 frames per second can, at best, calculate time in 0.016666... second intervals. To have a precise 3-decimal-points clock, a game would need to run its physics calculations at 1000 frames per second.

    (It is also worth noting that a game developer can try to interpolate a more precise finish time by looking at the last pre-finish frame position of the vehicle and the first post-finish frame position and calculating at what point “between the frames” the finish line would be crossed, but I don’t know how difficult and/or buggy actually implementing that would be.)




  • Okay, the responses here are kinda disappointing because folks here seem to be unaware that (1) Mozilla has already added “AI” info Firefox a few versions ago (to provide machine translations of pages), and (2) the way they did it is very responsible (the whole thing is 100% local, no info is sent to other servers).

    I understand that we’re all tired of this whole trend of language models being put where they don’t belong, but from what I see, Mozilla is actually the company I’d trust the most to do it right. (AFAIK, one area where the FOSS world is severely lacking and where Mozilla works to solve it is speech recognition with the Common Voice project, and if they start working on an LLM-based program to do that, I’d welcome it.)


  • Sounds cool, though I’m a bit confused as to why that is such a big priority given that ReactOS currently aims to replicate Windows NT 5.2 (XP x64 / Server 2003), which did not provide graphical set-up*…

    * Technically all Windows versions up until, IIRC, Vista had their install process in two stages: a text-based stage where you’d input the most basic info (what filesystem to install onto, what Windows directory to use, etc.) and a graphical stage once the basic files are installed (where you’d be asked what devices the computer has, whether it’s networked, date/time, etc.). From Vista to the present day, the first stage is graphical as well. ReactOS’ latest release uses the pre-Vista model, but the latest blog posts indicate a move to the more modern one.



  • So, hexadecimal uses 16 characters. Each character stores 4 bits of data (2⁴ = 16).

    If you use the 10 digits and 26 letters of the Latin alphabet, the resulting encoding is called Base36.

    It is a rather impractical format for storing data, though, because for purposes of simple conversion, the number of possibilities should be a power of 2 – that way a program can do (quick) bit shifts instead of (difficult, especially on big numbers) division to determine which character to use. That’s why it’s mostly used to encode numbers, and not large sequences of data.

    Base32 is a slightly-smaller variant that can fit 5 bits of data into one character. (2⁵ = 32)

    If you add up digits, uppercase and lowercase characters together (differentiating between upper and lower case), you get 62. This is also an impractical number for computer purposes. But add two extra characters and you get 64, which is another nice power of two (2⁶ = 64), letting one character store 6 bits. And Base64 is a common encoding scheme for data.


    And when you know how many bits a character can fit, you can calculate how “efficient” the encoding will be and how many characters will be needed to store data. A Base32 encoding will need 20% fewer characters than hexadecimal, and Base64 needs 33.3% fewer.