Compare commits

...

7 Commits

Author SHA1 Message Date
Cadey Ratio 33b7dfa21c stanley: minor fixes suggested by the editor
Signed-off-by: Xe Iaso <me@christine.website>
2022-07-20 22:52:37 -04:00
dependabot[bot] d7b817b22d
build(deps): bump axum from 0.5.12 to 0.5.13 (#517)
Bumps [axum](https://github.com/tokio-rs/axum) from 0.5.12 to 0.5.13.
- [Release notes](https://github.com/tokio-rs/axum/releases)
- [Changelog](https://github.com/tokio-rs/axum/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/axum/compare/axum-v0.5.12...axum-v0.5.13)

---
updated-dependencies:
- dependency-name: axum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-15 07:58:04 -04:00
Cadey Ratio 08ccd40888 yeet
Signed-off-by: Xe Iaso <me@christine.website>
2022-07-14 19:23:32 -04:00
dependabot[bot] 3fcbe4ebbf
build(deps): bump comrak from 0.13.2 to 0.14.0 (#516)
Bumps [comrak](https://github.com/kivikakk/comrak) from 0.13.2 to 0.14.0.
- [Release notes](https://github.com/kivikakk/comrak/releases)
- [Changelog](https://github.com/kivikakk/comrak/blob/main/changelog.txt)
- [Commits](https://github.com/kivikakk/comrak/compare/0.13.2...0.14.0)

---
updated-dependencies:
- dependency-name: comrak
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-13 17:46:38 -04:00
dependabot[bot] 8759f9d590
build(deps): bump axum from 0.5.11 to 0.5.12 (#513)
Bumps [axum](https://github.com/tokio-rs/axum) from 0.5.11 to 0.5.12.
- [Release notes](https://github.com/tokio-rs/axum/releases)
- [Changelog](https://github.com/tokio-rs/axum/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/axum/compare/axum-v0.5.11...axum-v0.5.12)

---
updated-dependencies:
- dependency-name: axum
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-12 16:35:15 -04:00
dependabot[bot] b36afa9dfd
build(deps): bump color-eyre from 0.6.1 to 0.6.2 (#515)
Bumps [color-eyre](https://github.com/yaahc/color-eyre) from 0.6.1 to 0.6.2.
- [Release notes](https://github.com/yaahc/color-eyre/releases)
- [Changelog](https://github.com/yaahc/color-eyre/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yaahc/color-eyre/compare/v0.6.1...v0.6.2)

---
updated-dependencies:
- dependency-name: color-eyre
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-12 16:35:07 -04:00
Cadey Ratio f91a5a7878
The Stanley Parable (#514)
Signed-off-by: Xe <me@christine.website>
2022-07-11 17:53:48 -04:00
4 changed files with 292 additions and 11 deletions

20
Cargo.lock generated
View File

@ -168,9 +168,9 @@ dependencies = [
[[package]] [[package]]
name = "axum" name = "axum"
version = "0.5.11" version = "0.5.13"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2cc6e8e8c993cb61a005fab8c1e5093a29199b7253b05a6883999312935c1ff" checksum = "6b9496f0c1d1afb7a2af4338bbe1d969cddfead41d87a9fb3aaa6d0bbc7af648"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"axum-core", "axum-core",
@ -200,9 +200,9 @@ dependencies = [
[[package]] [[package]]
name = "axum-core" name = "axum-core"
version = "0.2.6" version = "0.2.7"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf4d047478b986f14a13edad31a009e2e05cb241f9805d0d75e4cba4e129ad4d" checksum = "e4f44a0e6200e9d11a1cdc989e4b358f6e3d354fbf48478f345a17f4e43f8635"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"bytes", "bytes",
@ -218,7 +218,7 @@ version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "277c75e6c814b061ae4947d02335d9659db9771b9950cca670002ae986372f44" checksum = "277c75e6c814b061ae4947d02335d9659db9771b9950cca670002ae986372f44"
dependencies = [ dependencies = [
"axum 0.5.11", "axum 0.5.13",
"bytes", "bytes",
"futures-util", "futures-util",
"http", "http",
@ -451,9 +451,9 @@ dependencies = [
[[package]] [[package]]
name = "color-eyre" name = "color-eyre"
version = "0.6.1" version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8ebf286c900a6d5867aeff75cfee3192857bb7f24b547d4f0df2ed6baa812c90" checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204"
dependencies = [ dependencies = [
"backtrace", "backtrace",
"color-spantrace", "color-spantrace",
@ -478,9 +478,9 @@ dependencies = [
[[package]] [[package]]
name = "comrak" name = "comrak"
version = "0.13.2" version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f6adde15dc19b207fd77b6bd88cf76cfa40cd23c4cc002647ed808c91be7905" checksum = "15bf1e432b302dc6236dd0db580d182ce520bb24af82d6462e2d7a5e0a31c50d"
dependencies = [ dependencies = [
"clap", "clap",
"entities", "entities",
@ -3212,7 +3212,7 @@ dependencies = [
name = "xesite" name = "xesite"
version = "2.4.0" version = "2.4.0"
dependencies = [ dependencies = [
"axum 0.5.11", "axum 0.5.13",
"axum-extra", "axum-extra",
"axum-macros", "axum-macros",
"cfcache", "cfcache",

View File

@ -14,7 +14,7 @@ axum-macros = "0.2"
axum-extra = "0.3" axum-extra = "0.3"
color-eyre = "0.6" color-eyre = "0.6"
chrono = "0.4" chrono = "0.4"
comrak = "0.13.2" comrak = "0.14.0"
derive_more = "0.99" derive_more = "0.99"
dirs = "4" dirs = "4"
envy = "0.4" envy = "0.4"

View File

@ -0,0 +1,175 @@
---
title: "Anbernic Win600 First Impressions"
date: 2022-07-14
series: reviews
---
Right now PC gaming is largely a monopoly centered around Microsoft Windows.
Many PC games only support Windows and a large fraction of them use technical
means to prevent gamers on other platforms from playing those games. In 2021,
Valve introduced the [Steam Deck](https://www.steamdeck.com/en/) as an
alternative to that monopoly. There's always been a small, underground market
for handheld gaming PCs that let you play PC games on the go, but it's always
been a very niche market dominated by a few big players that charge a lot of
money relative to the game experience they deliver. The Steam Deck radically
changed this equation and it's still on backorder to this day. This has made
other manufacturers take notice and one of them was Anbernic.
[Anbernic](https://anbernic.com/) is a company that specializes in making retro
emulation handheld gaming consoles. Recently they released their
[Win600](https://anbernic.com/products/new-anbernic-win600) handheld. It has a
Radeon Silver 3020e or a Radeon Silver 3050e and today I am going to give you my
first impressions of it. I have the 3050e version.
<xeblog-conv name="Mara" mood="happy">A review of the Steam Deck is coming up
soon!</xeblog-conv>
One of the real standout features of this device is that Anbernic has been
working with Valve to allow people to run SteamOS on it! This makes us all one
step closer to having a viable competitor to Windows for gaming. SteamOS is
fantastic and has revolutionized gaming on Linux. It's good to see it coming to
more devices.
## Out of the box
I ordered my Win600 about 3 hours after sales opened. It arrived in a week and
came in one of those china-spec packages made out of insulation. If you've ever
ordered things from AliExpress you know what I'm talking about. It's just a
solid mass of insulation.
[![The console siting on my desk with its charging brick and included cable](https://cdn.xeiaso.net/file/christine-static/img/FXozAEjUsAQEg9d-smol.jpeg)](https://cdn.xeiaso.net/file/christine-static/img/FXozAEjUsAQEg9d.jpeg)
The unboxing experience was pretty great. The console came with:
* The console
* A box containing the charger and cable
* A slip of paper telling you how to set up windows without a wifi connection
* A screen protector and cleaning cloth (my screen protector was broken in the
box, so much for all that insulation lol)
* A user manual that points out obvious things about your device
One of the weirder things about this device is the mouse/gamepad slider on the
side. It changes the USB devices on the system and makes the gamepad either act
like an xinput joypad or a mouse and keyboard. The mouse and keyboard controls
are strange. Here are the controls I have discovered so far:
* R1 is right click
* L1 is left click
* A is enter
* The right stick very slowly skitters the mouse around the screen
* The left stick is a super aggressive scroll wheel
Figuring out these controls on the fly without any help from the manual meant
that I had taken long enough in the setup screen that [Cortana started to pipe
up](https://youtu.be/yn6bSm9HXFg) and guided me through the setup process. This
was not fun. I had to connect an external keyboard to finish setup.
<xeblog-conv name="Cadey" mood="coffee">This is probably not Anbernic's fault.
Windows is NOT made for smaller devices like this and oh god it
shows.</xeblog-conv>
## Windows 10 "fun"
There is also a keyboard button on the side. When you are using windows this
button summons a soft keyboard. Not the nice to use modern soft keyboard though,
the legacy terrible soft keyboard that Microsoft has had for forever and never
really updated. Using it is grating, like rubbing sandpaper all over your hands.
This made entering in my Wi-Fi password an adventure. It took my husband and I
15 minutes to get the device to connect to Wi-Fi. 15 minutes to connect to
Wi-Fi.
Once it was connected to Wi-Fi, I tried to update the system to the latest
version of windows. The settings update crashed. Windows Update's service also
crashed. Windows Update also randomly got stuck trying to start the installation
process for updates. Once updates worked and finished installing, I rebooted.
I tried to clean up the taskbar by disabling all of the random icons that
product managers at Microsoft want you to see. The Cortana button was stuck on
and I was unable to disable it. Trying to hide the Windows meet icon crashed
explorer.exe. I don't know what part of this is Windows going out of its way to
mess with me (I'm cursed) and what part of it is Windows really not being
optimized for this hardware in any sense of the way.
Windows is really painful on this device. It's obvious that Windows was not made
with this device in mind. There are buttons to hack around this (but not as far
as the task manager button I've seen on other handhelds), but overall trying to
use Windows with a game console is like trying to saw a log with a pencil
sharpener. It's just the wrong tool for the job. Sure you _can_ do it, but _can_
and _should_ are different words in English.
Another weird thing about Windows on this device is that the screen only reports
a single display mode: 1280x720. It has no support for lower resolutions to run
older games that only work on those lower resolutions. In most cases this will
be not an issue, but if you want to lower the resolution of a game to squeeze
more performance out then you may have issues.
## Steam
In a moment of weakness, I decided to start up Steam. Steam defaulted to Big
Picture mode and its first-time-user-experience made me set up Wi-Fi again.
There was no way to bypass it. I got out my moonlander again and typed in my
Wi-Fi password again, and then I downloaded Sonic Adventure 2 as a test for how
games feel on it. Sonic Adventure 2 is a very lightweight game (you can play it
for like 6.5 hours on a full charge of the Steam Deck) and I've played it to
_death_ over the years. I know how the game _should_ feel.
[![The starting screen of City Escape in Sonic Adventure 2, with the console propped up with a Steam Controller](https://cdn.xeiaso.net/file/christine-static/img/FXpIjhwUIAUEujg-smol.jpeg)](https://cdn.xeiaso.net/file/christine-static/img/FXpIjhwUIAUEujg.jpeg)
City Escape ran at a perfect 60 FPS at the device's native resolution. The main
thing I noticed though was the position of the analog sticks. Based on the
design of the device, I'm pretty sure they were going for something with a
PlayStation DualShock 4 layout with the action buttons on the top and the sticks
on the bottom. The sticks are too far down on the device. Playing Sonic
Adventure 2 was kind of painful.
## SteamOS
So I installed SteamOS on the device. Besides a weird issue with 5 GHZ Wi-Fi not
working and updates requiring me to reboot the device IMMEDIATELY after
connecting to Wi-Fi, it works great. I can install games and they run. The DPI
for SteamOS is quite wrong though. All the UI elements are painfully small. For
comparison, I put my Steam Deck on the same screen as I had on the Win600. The
Steam Deck is on top and the Win600 is on the bottom.
[![The game overview for Sonic Adventure 2 on both the Steam Deck and Anbernic Win600](https://f001.backblazeb2.com/file/christine-static/img/FXqSz_tVsAAU0wf-smol.jpeg)](https://f001.backblazeb2.com/file/christine-static/img/FXqSz_tVsAAU0wf.jpeg)
Yeah. It leaves things to be desired.
When I had SteamOS set up, I did find something that makes the Win600 slightly
better than the Steam Deck. When you are adding games to Steam with Emulation
Station you need to close the Steam client to edit the leveldb files that Steam
uses to track what games you can launch. On the Steam Deck, the Steam client
also enables the built-in controllers to act as a keyboard and mouse. This means
that you need to poke around and pray with the touchscreen to get EmuDeck games
up and running. The mouse/controller switch on the Win600 makes this slightly
more convenient because the controllers can always poorly act as a mouse and
keyboard.
When you are in KDE on the Win600, you don't get a soft keyboard at all. This is
mildly inconvenient, but can be fixed with the moonlander yet again. Here's a
screenshot of what my KDE desktop on the Win600 looks like:
[![My SteamOS desktop on the Win600, showing Crossette from Xenoblade Chronicles 2 center frame](https://f001.backblazeb2.com/file/christine-static/img/Screenshot_20220714_144655-smol.jpg)](https://f001.backblazeb2.com/file/christine-static/img/Screenshot_20220714_144655.png)
Overall, SteamOS is a lot more ergonomic in my opinion and will let you play
games to your heart's content.
The D-pad feels really good. I love how it responds. When I did a little bit of
Sonic Mania I never felt like I was inaccurate. There were some weird audio
hitches on Sonic Mania though where the music would cut out randomly. Not sure
what's going on with that. I could play through entire Pokemon games with that
D-pad.
## Conclusions for now
Overall I'm getting the feeling that this device is _okay_. It's not great, it's
not terrible, but it's okay. I need to get some more experience with it, but so
far it seems that this device really does have a weight class and oh god if you
play a game outside its weight class your UX goes to shit instantly. The battery
life leaves _a lot_ to be desired so far. However it does work. It's hard to not
compare this to the Steam Deck, but it's so much less in comparison to the Steam
Deck.
I don't know how I feel about this device. I'm not sure it's worth the money. I
need to get more experience with it. I'll have a better sense of all this when I
write my full review. Stay tuned for that!

View File

@ -0,0 +1,106 @@
---
title: "The Stanley Parable: Ultra Deluxe Review"
date: 2022-07-25
series: reviews
---
Every so often a game comes around that is genuinely hard to review. Especially
when you are trying to avoid spoiling the magic of the game in that review. This
is a game that is even harder to review than normal because it's an absolute
philosophical document. This game absolutely riffs at the games industry super
hard and it really shows. I'm going to try to avoid spoilers in this article,
except for a few I made up.
<xeblog-conv name="Cadey" mood="coffee">I was going to include screenshots in
this article, but it's difficult for me to get them without spoiling the subtle
comedy at hand, so I'm going to leave this as a text-only review.</xeblog-conv>
The Stanley Parable: Ultra Deluxe is either the second or third game in the
series. At first this game was a Half Life 2 mod that came out of nowhere and
was one of the most beloved mods ever released. Then they made it a proper game
on the Source engine and expanded it a bit. After a while they wanted to
continue the parable and expand it even more, but they weren't able to get it on
consoles with it still being a Source engine game. So they ported it to Unity
and the end result is The Stanley Parable: Ultra Deluxe. It is one of my
favorite games of all time.
It is a deeply limited game, you only can move around and interact with things.
The story is about an office drone named Stanley that pushes buttons based on
instructions from his computer. The big thing that this game does though is make
you realize the inherent paradoxes in its own design.
<xeblog-conv name="Mara" mood="happy">Being mechanically limited like this is
not actually a bad thing like the phrasing might imply. This means that the main
focus of the gameplay is not on the micro actions the player can take. In this
case the main focus is on how the player interacts with the story and not how
the player interacts with their controller or puzzles or tactics. Additionally,
the mechanical limitations of the gameplay are thematically aligned with the
story's premise of being an office drone in ways it can play with. Think
dramatic irony taken to its logical conclusion.</xeblog-conv>
Endings that make you look like you had exercised your free will actually boil
down to your actions being controlled by following the narrator's voices. This
is absolutely taking the piss out of how most modern AAA game design works,
guiding you with an invisible hand and making it _seem_ like you had the free
will to choose what was going on when in fact you were really just following the
invisible guidance the whole time.
However I think one of the best examples of how The Stanley Parable riffs at
mainstream game design is via the Adventure Line™ that shows up in one branch of
the game. The Line™ is an obvious riff on games like Dead Space where you can
summon a line to tell you where to go at any time. It shows how _boring_ modern
game design is by making you _see_ the consequences of it. If you follow the
narrator's voice, you get boring endings.
In many modern AAA games, you have the free will to choose to follow the main
story and finish all the quests or whatever, but not much else. Consider Call of
Duty or Battlefield. You are John America and you have to kill the enemies to
death before they kill you to death by throwing bullets at you. You get to the
end of the level and blow up the brown people some more or something and then
it's suddenly a victory for America. But what did you really accomplish? You
just followed the line. Walk outside of the intended playable area? 10 second
timer until the game kills you. Shoot a person with the wrong skin color? The
game kills you.
<xeblog-conv name="Numa" mood="delet">If you manage to clip out of bounds in the
escape ending, the screen will fade to black and you will be transported to a
temperate climate. Then a t-posing model in terrible armor will tell you that it
used to be an adventurer until they took an arrow to the knee. Hope that's not a
marriage proposal!</xeblog-conv>
However in The Stanley Parable you can defy the narrator and that's where the
game really opens up. It's great to get in the area where the game is unfinished
and then have the narrator complain about deadlines, scheduling delays, investor
funding and them wanting to avoid having to stuff it to the gills with
microtransactions. You can legitimately glitch your way out of bounds and then
the game will reward you with a new ending you didn't know was possible. The
game takes the concept of the illusion of free will and plays with it.
The game makes you think about what games _can_ be. It makes you wonder if the
potted plant soliloquy after the broom closet ending speaks to the mental state
of the author more than anything. Of all of the artistic endeavors that games as
a medium _can_ have, we end up seeing very few or none of them in mainstream
gaming. Sure you get your occasional 4k120fps robot killer waifu with a bow and
a whacky stick, but none of it really _revolutionizes_ video games as an art
form. It's all just derivative of the generic "unalive bad guy and save earth"
trope.
<xeblog-conv name="Mara" mood="hacker">If you want some games that really
revolutionize what games can be, check out
[Celeste](https://mattmakesgames.itch.io/celeste), [Secret Little
Haven](https://ristar.itch.io/secret-little-haven), [Baba Is
You](https://hempuli.itch.io/baba), and [Glittermitten
Grove](https://twinbeard.itch.io/glittermitten-grove). All of these games really
challenge what games can be and experiment with radically different kinds of
art. You never will see mainstream games be as risk-taking as this because art
is fundamentally risky and capitalism wants line to go up, so they go out of
their way to make sure that mainstream games are as safe and likely to sell many
copies as possible.</xeblog-conv>
I made up the thing about the potted plant, but if you had played the game then
you'd probably have started the game up to look for it just to see what was
there. I wonder if I made someone stand at that potted plant for like 5 minutes
or something. This game sparks creativity in ways that other mainstream games
just fundamentally don't. If you've been looking for something different in your
video game diet, I really suggest you give it a try. Go in as blind as possible.
I'm not paid in any way to say this, I genuinely think this is really good.