navbar.

blogosphere

rss feed: https://heav.apionet.net/blog/rss.xml


2024-06-21

'power creep' in video games is a strange thing to me.

as far as i can ascertain, this generally means when a game allows the player to become more and more... 'overpowered', for lack of a better term? to an extreme which is considered detrimental.

this doesn't necessarily mean the game becomes 'easy' or trivial or whatever; i think what it moreso means is that the set of good strategies or things you can do in the game or whatever reduces drastically over time due to most things being obsolete.

as an example, imagine a game has a weapon that does 3 damage. it has one that does 2 damage, but inflicts poison. and so forth; imagine there are lots of these. now imagine there exists a weapon that does 30 damage also. then 100. but it's okay, we added enemies which are that hard too.

in that example, power creep has happened. there is basically just One thing and it is Optimal. (there could even be multiple things. the main point is that there is now a set of 'endgame' things and nothing else matters.)

i suppose the obvious example to use may be terraria. i'd like to say, though, that i don't dislike terraria or think that these aspects of it are necessarily bad. power creep isn't necessarily a problem that needs to be fixed. that said, it's pretty obvious in terraria. the game goes through several phases, each giving you objectively better things than the last; an ever-expanding medley of QOL features and better weapons, until it's done.

i may go back on a former statement actually; i think there is something to be said for making things 'trivial' too. this can happen when QOL features go too far. the usual justification is that they're just eliminating useless tedium; this can be true to an extent, but i think i might argue that sometimes useless tedium is an important part of the game. this can be really hard to convince people of since the typical response is 'oh, (tiny tedious mechanic) is soooo important to you?'. but, well, i feel like it's more nuanced than that. the more QOL features you add, the closer you get to some sort of power creep. why do i think that?

well, in these games, various decisions about your strategy and what you do can be driven by this 'useless tedium', and eliminating it or mitigating it. there's something you lose when you eliminate 'tedium', even if only in minutia. i'm being unhelpfully vague, though. i'll give an example: modded minecraft.

modded minecraft isn't one thing, of course. but, i speak of the consequences of adding lots and lots of mods that give you QOL features.

do you need to go somewhere? good thing mod X has an item which lets you move super fast. walking around everywhere was just annoying tedium anyway. what do you mean minecraft has several vanilla means of expediting transport with a little more effort? anyway, mod Y actually just lets you teleport anywhere. oh, you need to go mining? it's convenient that this other mod provides drastically better mining tools. oh, wait, this one doesn't even need you to mine! it has a block that does it for you. need to build? just use the builder's wand. after all, it's your ideas that count; the actual building is just tedium. and on, and on, and on.

none of these things are too egregious on their own, but it does add up into a game that starts increasingly playing itself. no individual thing is causing this; these things would be mostly fine on their own. this is one of the things i mean by power creep.

another instance would be mods both needing and providing increasing amounts of resources. our tech mods need tons of metals; time to add ore doubling. no, wait, tripling, sorry. oh, and we need better ways to get ores, so we'll add a bunch of those too; enjoy your quarries, mining lasers, etc. even amongst mods, energy (henceforth 'RF') has its own version of this. we'll add power generation. and machines that consume power. but players need to be able to make power better, so we'll make BETTER power generation. and machines that can consume that amount of power, of course. and eventually you get to mods having singular multiblocks that produce several millions of RF per tick (but it's balanced because it's a hard multiblock which needs effort). this is, in a very literal sense, power creep; anything which doesn't join in will be basically free if you're playing with any of those other mods.

i know this has been a bit of an incoherent ramble, sorry. this is all to say that it's very easy to accidentally induce power creep into things without realising it's happening; and you might not want that.

2024-04-03

it would be a shame if someone meddled with history by removing an entire blog post.

2022-12-18

some say i should "blog" about "things". this is troublesome, since i don't actually have "things". thus, i will simply type without direction.

hghjkghsdjkfhg, dfgjlfdhkklm, 43958jgfibviockln, fgjklnvhlmkvncvn.

take minecraft. not the survival-ish aspects. specifically, creative mode, and commands. many cool things can be made with commands. one can raycast, do arbitrary computation, implement cool new mechanics, etc. but the command system was never really designed for this. it all started with /execute, mostly. one could accursedly get things to do mostly whatever you want. you could query the state of the world with 'detect', if you knew about that. there was also testfor and testforblock, but that was quite cursed. they added chain command blocks, and then functions. then 1.13 happened and they changed everything. functions are now datapacks. /execute now does absolutely everything, for some reason. /tp is bad now. the names are flattened.

but one thing remains: the command system is accursed, and doing anything with it is very strange. but it's still really cool when you do. you get a real sense of 'wow, this is in minecraft and i did that'. even if the only thing you did was implementing a block you can push, or a thing you can stand on to move, or a thing that teleports forward until it hits a block recursively. these things are cool only as a product of the weird adaptation of legacy systems for the purposes of something vaguely resembling a 'modding api' but bad.

now, consider minetest. if you're unaware, minetest is a minecraft clone, sort of. it calls itself a 'game engine' a lot, but that mostly just means it doesn't contain features and also has a modding API from what i can tell. in any case, this is significantly better than minecraft datapacks (but not perfect. it has its problems and the documentation is terrible. that's a topic for another blog post.). the point is though, implementing something using minetest's lua API is significantly less cool. not that it's worse. the end result is just less cool, because it's simple to do.

i'm not sure where i'm going with this, really. effectively: things can be inherently cooler if they're more accursed to do. and presumably if you're making a thing, you want cool things to be possible. but you also don't want to make your thing accursed, obviously, so the standard for what is cool gets more and more grandiose. that's not to say that things should get more accursed or we should all be using accursed things. i'm not sure what i'm really saying here.

blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog. blog.

sjdfhdhkghdfkghgkklsdfhgklsdfhgklsdfjghlksd hkldfghskldfhg kldsfhgkl dhsfgh sdflkjgdh gklhfkgl jdfhg kldfjghklsdfghsdfklg

2022-12-05

my website has yet another feature.

you may or may not be aware of "lemon currency". this was a feature once present on citrons.xyz. an interesting feature of lemon currency was that ownership of lemmon currency was done entirely by ownership of strings of text.

this is quite similar to my website's "soul" system. but in any case, i like this concept, and have somewhat remade it on my website as lime currency. alongside being a currency that users can trade amongst themselves, this will allow me to hide it in random places for humorous effect.

for example: VvU9fc%K-@uG, for the first person to notice it and also take action.

2022-11-23

i've decided to implement something quite interesting. i've been doing this over the past few days.

one may now own a soul. this has various implications, and each soul has its own unique properties. souls can be used to comment. a comment section is now accessible from the navbar.

i envision many interesting uses for these in the future. i hope you enjoy this.

soul well.
2022-11-07

hello. according to reputable sources, RSS good.

i've added a RSS feed in accordance with this. it's below the title of this page.

implementing it was easy due to XML's similarity with HTML and the fact that i already autogenerate HTML (see the prior blog post), but there was one particular issue: the date format.

weekdays? really, RSS creators?! i store timestamps as year, month, day. there *is* a way to calculate the weekday from this, but ugh.

after some searching i found "zeller's algorithm". i implemented it like this:

just. why? why would you have this in something that programs will read? this is something i'd expect RSS readers to have to implement, if anything. not to mention that the problem of doing this is so annoying that the algorithm for doing it has someone's name in it.

anyway, yes. RSS good. RSS timestamp bad. i have a RSS feed now. blog.

2022-11-07

i suppose the thing i blog about will be the inner workings of the website itself.

instead of consisting of "html files" served by a "webserver", it consists of lua code only. a .cgi file written in lua is called every time a request is made. the lua code generates the response.

the reason i have done this is to avoid the excess boilerplate of writing html files directly (i.e having to synchronize navbars and such across all pages, etc) without using an accursed templating system. it also conveniently gives me all of the flexibility and abstraction of programming languages i.e functions.

as for the way i generate html, i have very simple functions such as div(), p(), etc. that can contain text or tables of text. they return text themselves. they also support attributes and such.

there are advantages to this. it means i can simply require("boilerplate or whatever")(parameters) and generate an entire page. in fact, the index page simply looks like this:

and it allows me to do things like this:

this is the solution i have settled upon after lots of trying to figure one out. content. blogness.

2022-11-07

wow, i'm a real "blogger" who "blogs" about very real things.


rendered at time 1732171696.

message of the day #139:
oh no, i forgot to set the MOTD for this day, or just wasn't able to. feel free to murder me with rocks.