• 0 Posts
  • 54 Comments
Joined 1 year ago
cake
Cake day: July 5th, 2023

help-circle
  • If you or anyone else is interested in playing more, I recommend:

    • Silent Hill 2: Restless Dreams (aka Director’s Cut). Not a continuation of the story of the first game, but a separate story in the same universe. Generally agreed to take everything good from the first game and improve upon it. The “Restless Dreams” version has a substantial extra scenario which adds some backstory and lore, but should probably be played only after completing the main game.
    • Silent Hill 3. This one does continue the story of the first game, somewhat. To be honest I remember enjoying it but not much in terms of particulars.
    • Silent Hill 4: The Room. Started out as a separate game unrelated to the Silent Hill mythos, but was rewritten to become an SH game during development. This sounds like it might be a terrible cash-in, but it really is a perfect fit for the SH universe. IMO almost as strong as SH2.
    • Silent Hill: 0rigins. A PSP game set as a prequel to the first game. A little light on story, and with some odd combat mechanics, but I still found it very enjoyable. I played the later PS2 port.
    • Silent Hill: Shattered Memories. A “reimagining” of the story from the first game. It plays and feels very different to the previous games, but I still enjoyed it quite a lot.
    • Silent Hill: Orphan. A series of point-and-click adventures for Java-enabled mobile phones from the 2000s. Totally different mechanics from the mainline games, but they do the atmosphere and story well if you don’t mind the slower pace of point-and-click. They run on some J2ME emulators.
    • Silent Hill: Alchemilla. A free fan-game centered on the Alchemilla Hospital, but also including several other locations. First-person view with many puzzles and no combat. Very polished and really nails the atmosphere.

    I played a little of Silent Hill: Homecoming but got tired of it about 1/3 of the way through (I guess). I also bought Silent Hill: Downpour but gave up on that even more quickly. I don’t recommend either of them. Things introduced in the earlier games for specific psychological reasons related to the plot - especially sexy monster nurses and Pyramid Head - tend to be regurgitated in the later games for no real reason other than “Silent Hill”, which removes their impact completely.


  • I think I was kinda in the same boat as you.

    In theory, I loved the fact that if you wanted to check, the game would tell you when you theoretically had enough information to identify one of the crew or passengers, so you knew where to focus your thinking. But I got stuck on some characters who seemed to me to be implied or hinted, but for whom I didn’t think I had positive proof.

    I eventually got tired of continuously reviewing the same scenes over and over, looking for some detail that I had overlooked, and read a walkthrough to find out what I was missing. It seems that I hadn’t missed anything, and “an educated guess” was the standard expected by the game, not “definitive proof”. But I was burnt out with the game by that point and stopped playing.



  • The morality system was a huge disappointment for me. You said most of what I wanted to say, so I’ll be brief.

    Right near the start of the game, an NPC outlines the Way of the Open Palm vs. the Way of the Closed Fist, more or less the same way you described them. And I was so excited to see a morality system in which both sides were morally defensible positions. But from the very first Closed Fist follower you meet (just minutes later), they may as well all be monacle-wearing moustache-twirlers who punctuate every sentence with “mwah-ha-ha!”

    The worst example that I remember is a bootlegger who’s essentially holding a town hostage. Far from following either philosophy as described, he’s just plain evil, and in fact I easily came up with (IMO solid) arguments for actually swapping the game’s morality labels on the player’s options. But no, one option is clearly “evil”, so that’s Closed Palm, while the other is obviously “good”, hence Open Palm.


  • Whoops! When I looked at the second time that the shift value is calculated, I wondered if it would be inverted from the first time, but for some reason I decided that it wouldn’t be. But looking at it again it’s clear now that (1 - i) = (-i + 1) = ((~i + 1) + 1), making bit 0 the inverse. Then I wondered why there wasn’t more corruption and realized that the author’s compiler must perform postfix increments and decrements immediately after the variable is used, so the initial shift is also inverted. That’s why the character pairs are flipped, but they still decode correctly otherwise. I hope this version works better:

    long main () {
        char output;
        unsigned char shift;
        long temp;
        
        if (i < 152) {
            shift = (~i & 1) * 7;
            temp = b[i >> 1] >> shift;
            i++;
            output = (char)(64 & temp);
            output += (char)((n >> (temp & 63)) & main());
            printf("%c", output);
        }
    
        return 63;
    }
    

    EDIT: I just got a chance to compile it and it does work.


  • I first learned about Java in the late 90s and it sounded fantastic. “Write once, run anywhere!” Great!

    After I got past “Hello world!” and other simple text output tutorials, things took a turn for the worse. It seemed like if you wanted to do just about anything beyond producing text output with compile-time data (e.g. graphics, sound, file access), you needed to figure out what platform and which edition/version of Java your program was being run on, so you could import the right libraries and call the right functions with the right parameters. I guess that technically this was still “write once, run anywhere”.

    After that, I learned just enough Java to squeak past a university project that required it, then promptly forgot all of it.

    I feel like Sun was trying to hit multiple moving targets at the same time, and failing to land a solid hit on any of them. They were laser-focused on portable binaries, but without standardized storage or multimedia APIs at a time when even low-powered devices were starting to come with those capabilities. I presume that things are better now, but I’ve never been tempted to have another look. Even just trying to get my machines set up to run other people’s Java programs has been enough to keep me away.




  • It’s not a really big thing, but it is a pet peeve of mine (and some others); the name of the series isn’t “Dues Ex” but “Deus Ex” (day-us ex), as in “deus ex machina” (day-us ex mack-in-a).

    “Deus ex machina” literally translates as “God from (the) machine”, and originally referred to a type of stage prop used in ancient plays, then in more modern times the term came to refer more generally to the sort of plot device that used that prop, which is a previously unmentioned person or thing that suddenly appears to save the heroes from an otherwise inescapable threat. At some time in the 60s or 70s it started to become popular to use it in a more literal sense in sci-fi stories about machine intelligence or cyborgs.






  • Did you read all the way to the end of the article? I did.

    At the very bottom of the piece, I found that the author had already expressed what I wanted to say quite well:

    In my humble opinion, here’s the key takeaway: just write your own fucking constructors! You see all that nonsense? Almost completely avoidable if you had just written your own fucking constructors. Don’t let the compiler figure it out for you. You’re the one in control here.

    The joke here isn’t C++. The joke is people who expect C++ to be as warm, fuzzy, and forgiving as JavaScript.