Leon's Microblog – December 2023

Something I encountered just now… I mean, I could guess at the rationale behind this one, but……… come ON
Here's another puzzling outcome: in the standard defs, the return type of Object.create(null) is "any"?? This whole language is designed primarily for legacy code, so this feels like a big omission.
On top of that, a couple of existing JS idioms seemingly arbitrarily don't work. For example… here, the top one works but is a terrible 2000's-era syntax pattern, the middle one doesn't work without a bunch of unenforceable type assertions, and the bottom one is just not usable.
TypeScript currently feels more like you're telling an interesting story about your program's structures and control flow, rather than actually nailing down an airtight spec. The fact that you can quite often make obviously contradictory type assertions dampens my mood a bit.
In the process of (re-)learning JS game making, I've also taken the opportunity to get in on TypeScript, and, well… I guess my recent experience with the current gold standard of type systems (Rust) set me up for a little disappointment in comparison.
https://www.youtube.com/watch?v=72YqRZGq6pI – Some of these are good because they're exactly what I thought. Others like this one are what I'd never would have thought of, but now wish I did. [Super Mario Bros. 3, The Great Giana Sisters]
https://cpcitor.itch.io/just-get-9 - I've taken a liking to this game lately. Big things this has over other "Threes-likes" is that A) you have a bit more control over how the board develops, but also B) the titular goal is fairly easily achievable in like 10mins, and is low-commitment.
Like it or hate it, 2023 will always be the year that "what if Yachie from Wily Beast And Weakest Creature was badass, no, come back, I'm serious" not only became possible to think, but actually real.
Game objects, on the other hand, are defined declaratively as classes, and usually aren't especially complex trees of sub-objects. Moreover, because they have internal behaviour (unlike inert DOM elements) you don't need some controller class to manipulate lots of them at once.
I also think Phaser's particular method-chaining API clutters itself with uninteresting setter-getter pairs. It's like if jQuery had setter-getters for every standard DOM attribute instead of just .attr().
Noticing that large portions of Phaser's API is in just supporting jQuery-like chaining, such as .setActive(true).setXY(0,0). My issues are A) almost none of the example code is actually written like this, and B) I think it gets way less benefit from chaining then jQuery does.
See, jQuery's chaining leverages the "query" part – grabbing a set of elements with $, then imperatively manipulating them and/or navigating their contents on the same line of code. Because DOM elements are masses of tree structures, simply traversing them is arduous in itself.
OK, it's been 13 years. I think you should be able to just put the portals from Portal (2007) in your game without having to justify, explain it, or make it a "reference". If Superhot and TotK can have Braid-like time powers without batting an eyelid, then surely this is fine.
VS Code at its finest
Gazing thoughtfully at this example code for a built-in feature designed exclusively for when you really, REEEEEEEEEEEEEEEEEALLY don't feel like tabbing out of VS Code.
SCENE: A game development job interview, 1981. ASSEMBLY PROGRAMMER: "Describe the purpose of this code sample." INTERVIEWEE: "Oh, that's platformer code!" ASSEMBLY PROGRAMMER: "And how do you know?" INTERVIEWEE: "It's full of JMP instructions!" ~THE END~ Copyright © 2023 Leon
My ultimate opinion of Kirby's Star Stacker's versus mode is that you have to play the game as it is, instead of the game you want it to be – which involves avoiding 2-chains, stacking quickly just to get more lines, analysing the field during lengthy starfall animations, etc.
⭐️⭐️⭐️ NEW 1CC! ⭐️⭐️⭐️ https://www.youtube.com/watch?v=GmAn9U3ObL8
Has anyone made a Windows program that goes through the entire registry, finds every key or value that looks like an absolute file path, then reports which of these point to no-longer-existent files? A lot of small problems I've had lately seemed to boil down to this.
Fringe theory that the only reason Columns (1990) even involves columns at all is because the programmers didn't feel like implementing piece rotation collision detection
A very merry Christmas from the cast of Puyo Puyo CD.
Very darkly ironic that Bayonetta in Smash Bros. finally became competitively relevant again only after Bayonetta 3 killed almost all interest in the character.
Using my crappy little wrappers to optimise for quick gamemaking (I'd say "prototyping" but, let's be honest…) and making things more "Game Maker-like". These GameObject definitions include every asset the object requires, and their collision callbacks (which the Scene installs)
First foray into Phaser.js experimentation is the classic game dev's favourite treat: implementing the controls rebinding pause screen
*clicks on a SID file called "Paradise Lost"* Man, they were doing Commodore 64 game adaptations of everything in the 80s, huh
This is a Miiverse post
Deltarune fanfic: Noelle Holiday finally has enough of all the weird stuff happening around her constantly, and powers up into her true hero form, Neolle Holiweek
Siffrin from In Stars And Time becomes a guest character on Dicey Dungeons, but instead of dice, they use rock-paper-scissors symbols (worth 0, 5 and 2 respectively).
It always pwns me off whenever Netrunner tourney comms mention "mulch" and "the mulch deck", and – no matter what – I have to look up the card every time.
One big draw, however, is that allows position:absolute DOM elements to be used as "sprites" for game objects, complete with motion and collision. I fully intend to try making all my game menus and dialogs using just DOM elements… Leave text rendering and layout to the experts…
Current impressions: API overall has a case of "stringly typed" data; large numbers of cluttersome properties that are just references to globals or to parent objects; scores of overly specific getter/setter methods. Most of these problems can be ignored with sufficient wrappers.
For a long time I've been wanting a Game Maker alternative for quick web games that doesn't use GML… right now I'm trying out Phaser. Some of the example code has a few cases of inelegant phrasing.
I've noticed sometimes the chain concludes with a 2-combo… Seems it's because the trigger ignition paints blocks /to the right/ of it in col 4, which then clear with /the ladder up to the trigger/ in col 3, if it forms a C. Potentially explains varying strength for Tyin Nyan.
Committing crimes against game design by doing this with Min Tao… She falls just short enough for the CPU to easily excavate UNLESS you pop dragon IMMEDIATELY after. Still, this may be MORE consistent than her normal plan, simply due to less RNG. #OfCourseTaoNeededBuffs #JAMPPlz
Managed to shore up some consistency by, in a pinch, replacing the second garbage block with a southwest dot (as found by, for instance, splitting a normal C piece above it)… Still, it is possible to literally never get garbage in that column before the opponent pops dragon…
Noelle from Deltarune playing Void Stranger and finding all the wacky easter eggs first try
Noelle from Deltarune playing Void Stranger and thinking too much about Tail's neutral form
Trying out some chain extension theory… issues with this one are that it A) REQUIRES >=2 and <=4 garbage (no other kind of block) in column 3, and B) requires the D-C trigger no higher than row 5, C) doesn't even necessarily KO outright. Still, pretty impressive advantage.
Over 100 in under a minute
More adventures in wiki edit history
"On a scale of 1 to 07 how Ryukishi is this character writing" – just one of the many fearsome burns that my Twine game has not yet been subjected to, but which lie in wait, ready to strike without warning
"They've invented a new kind of statue called a "boulder". It's to commemorate great rocks in all history."
Thinking about why I much prefer dodging/"avoidance" bosses in shmups instead of platformers like SMW hacks or IWBTG fangames, and I think one of the big reasons is "the platformer character is constantly changing their facing direction by moving, so the dodging /feels/ uncool".
In both games, dodging is essentially just wiggling back and forth in ungainly fashion, but because the shmup character constantly faces the boss, the dodging feels focused and dignified. The platformer character, conversely, feels like they're lurching around with little intent.
We, as I recall the old saying goes, take those
*trying to scratch "Elbereth" on a floor tile using the Void Stranger staff* Goddamnit hang on what brand did Tolkien give her again
https://modarchive.org/index.php?request=view_player&query=191112 – I've had the melody of this one stuck in my head for a week, which has to be some kind of endorsement.
Having fun going fast in this game yet again
*watching baseball batters drop the bat as they run for first base* Damn, their inventory menuing speed must be unreal
*in the middle of lying about knowing about competitive Smash Bros.* Yeah no Brawl Rosalina was obscene. She could have 2 Lumas out at once
"My dude, I described you to Akinator and his first guess was the Fool from Magical Drop" – deadliest gamer burn, forbidden to all but the most heartless keyboard warriors
Pelted with 500-yen coins for calling Exchanger and Debtmiser "the Cheetahmen of versus puzzle game characters"
*heads to the very top of the staircase to the Netherworld in Perfect Cherry Blossom and drops a single slinky, only for it to descend four steps and come to a complete unceremonious halt*
https://commons.wikimedia.org/wiki/File:American_Bison_AdF.jpg – This one CC photo on the Wikipedia article for "American bison" is inexplicably extremely good photography. I actually saved it to my hard drive as soon as I saw it.
I always liked how the La Mulana games had a revolver, in a final nod to Indiana Jones, but made it an exceedingly expensive, cumbersome and impactful weapon… I felt like it emphasised the gun as a bringer of death that didn't belong alongside the others.
https://modarchive.org/index.php?request=view_player&query=180814 – *listens to this mod* *thinks* *opens the instrument comments* *nods*
When is Puzzmo dot com adding the pulling pins puzzles
Pochi & Nyaa is actually good for beginners because the garbage blocks are just dogs and cats. Yes, you're going to take 78 garbage and lose, but all that means is your board is filled with cats. You can't get that mad or upset. Now, those FREAKING Puyos, on the other hand,
https://fairysvoice.net/blog/How_to_replace_an_RPG_Maker_MV_game's_runtime_with_your_own_local_copy_of_NWJS – New blog post (I've started writing how-tos for mildly complicated technical things I often do with game files and whatnot)
ASCII art titles at their minimalistest
Void Stranger Kart Racer. No items, but each racer has the staff, and can remove or add tiles from the racetrack, leaving holes to fall through, or creating shortcuts. You could call it Void Racer. The fluffy bat-blob mascot could be Lakitu.
I have a theory, and I will not be budged: dark modes in UI rose to prominence entirely because flatscreen monitors don't let you crank the brightness down to nearly nothing, as compared to CRTs. I had to do that through the entire 00's, and I didn't imagine any better.
Playing this game is making me feel called out about how much my Twine game You Are SpamZapper 3.1 (https://fairysvoice.net/games/You_are_SpamZapper_3.1/) owes to the writing style of Start Again, seeing it writ large once more… Suffice to say, if you liked that game of mine, this one is certainly for you.
All original content on this site, except where noted, is property of Leon, all rights reserved.