1040
you are viewing a single comment's thread
view the rest of the comments
[-] flamingo_pinyata@sopuli.xyz 125 points 1 year ago

The opposite actually - rows are dramatically added to a database. In most games save files grow the longer you play.

[-] jdeath@lemm.ee 44 points 1 year ago

and even if some idiot put every zombie npc in a database (or if you want to think of it that way), you wouldn't just delete the rows! the bodies would disappear, so instead you would update that row like (npcState = KIL, bodyLocation = ) or something. Especially if you wanted to keep player stats

[-] Saleh@feddit.org 21 points 1 year ago

Isnt there this graveyard off map somewhere in Skyrim, where all the bodies get teleported?

[-] FordBeeblebrox@lemmy.world 7 points 1 year ago

Why would that even be necessary? Sounds like one of those “make a guy with a train for a hat and run up and down this hall” moves they like to do

[-] DragonTypeWyvern@midwest.social 5 points 1 year ago

Their code is literally spaghetti

[-] WillFord27@lemmy.world 1 points 1 year ago

l-.. literally?

[-] echodot@feddit.uk 3 points 1 year ago

I wouldn't be surprised if it is true though. Bethesda games are not exactly winning awards for coding elegance.

[-] Natanael@infosec.pub 2 points 1 year ago

If they literally don't have an object delete option then relying on render distance to make it go away is a ridiculous but simple solution

[-] jdeath@lemm.ee 6 points 1 year ago

i can't speak to that, but it sounds plausible. in that case the body location would be updated to those coordinates

[-] ivanafterall@lemmy.world 4 points 1 year ago

Grab the source here before Bethesda DMCAs it.

[-] ivanafterall@lemmy.world 3 points 1 year ago* (last edited 1 year ago)

I want the rows deleted. I'm going to market it as the first game with true AI/enemy permadeath. Dibs on the idea!

[-] AdrianTheFrog@lemmy.world 1 points 1 year ago

Maybe you would have an array of active enemies in RAM, and when enemies are killed they are removed from that array for example?

In a game like Minecraft for example, you definitely wouldn't want to store every single dead entity and its location when there can easily be thousands created and destroyed in a single second

It obviously depends on the game though.

[-] Natanael@infosec.pub 1 points 1 year ago* (last edited 1 year ago)

Definitely depends on the type of game, but it's more likely the game stores data about which areas you cleared and then infer that the bodies of any permanently remaining enemy (like bosses) is to be displayed.

Can vary even more for procedurally generated levels. If the set of enemies is fixed and stay in calculated positions in a map generated randomly, then it might store an array or something tracking the enemies.

[-] Aceticon@lemmy.dbzer0.com 1 points 1 year ago* (last edited 1 year ago)

Procedurelly generated stuff is all about storing the differences from the procedural generation.

So for example minecraft saves don't store the terrain, they store how it differs (due to player interaction) from the procedurally generated baseline.

(After all, all you need to recreate an untouched procedurally generate world are the bytes of the seed and nothing else)

[-] VitoRobles@lemmy.today 0 points 1 year ago

This is how it works in many game engines.

You set up the monsters and just hide them/disable them. They're already allocated to memory.

And it's a performance cost to create/delete versus just moving a dead enemy out of view, then respawning that enemy later in the level.

[-] marcos@lemmy.world 8 points 1 year ago

Also, it's an unreasonably fast database. That makes lots of trade-offs that normal ones aren't willing to do.

[-] Lemminary@lemmy.world 5 points 1 year ago

*Noita file save on the 7th parallel world intensifies*

[-] Evil_Shrubbery@lemm.ee 2 points 1 year ago

Me in the matrix (so irl basically), holding a gun: "Don't worry, I'm not deleting you!"

[-] AngryCommieKender@lemmy.world 2 points 1 year ago

There for a minute when Dyson Sphere Program first went into open pre-release, something was wrong with their save file compression, and very quickly people were reporting multiple GB saves.

[-] AdrianTheFrog@lemmy.world 2 points 1 year ago

I was looking at the savegames from the game control recently, it's kinda funny because you open them in notepad, you see a bunch of random gibberish from bad decoding (the game uses a proprietary save format) with the words "collected" "Collected" "unlocked" "available" "VariableRestoreHack" (??) "STATE_B_PUZZLE_SOLVED" "Powercore_Not_Attached" randomly interspersed

Like, surely there is a better way to store 2 state data other than an english word?

It does generally get longer as you play, but also "locked" just switches to "unlocked" for example when you unlock something

[-] SkaveRat@discuss.tchncs.de 5 points 1 year ago

Eh, really depends

They are likely just serializing a bunch of data objects. And set states and flags with humans readable enums

Enums make code a lot easier to read, especially if you use it to check stuff all over the place

Using to a couple bytes more storage is worth it

[-] echodot@feddit.uk 2 points 1 year ago* (last edited 1 year ago)

I thought that enums were supposed to compile down to aa, ab, ac when you actually build the game.

[-] SkaveRat@discuss.tchncs.de 4 points 1 year ago

Depending on the language, they are.

Lots of games also use data structures derived from tables/csv at runtime to configure things like stats. So they would also need these (human readable) values in the save files

Hard to tell from speculation and not having the data

[-] Natanael@infosec.pub 1 points 1 year ago

Depends on optimization levels, data types, and whatnot. If it's a string to be fed into the API of a different binary then the compiler will often not optimize down that representation. Internal function names are likely to be optimized that way, with lookup tables holding original function names (at least for any externally exposed function).

this post was submitted on 12 Feb 2025
1040 points (100.0% liked)

Microblog Memes

10926 readers
1659 users here now

A place to share screenshots of Microblog posts, whether from Mastodon, tumblr, ~~Twitter~~ X, KBin, Threads or elsewhere.

Created as an evolution of White People Twitter and other tweet-capture subreddits.

RULES:

  1. Your post must be a screen capture of a microblog-type post that includes the UI of the site it came from, preferably also including the avatar and username of the original poster. Including relevant comments made to the original post is encouraged.
  2. Your post, included comments, or your title/comment should include some kind of commentary or remark on the subject of the screen capture. Your title must include at least one word relevant to your post.
  3. You are encouraged to provide a link back to the source of your screen capture in the body of your post.
  4. Current politics and news are allowed, but discouraged. There MUST be some kind of human commentary/reaction included (either by the original poster or you). Just news articles or headlines will be deleted.
  5. Doctored posts/images and AI are allowed, but discouraged. You MUST indicate this in your post (even if you didn't originally know). If an image is found to be fabricated or edited in any way and it is not properly labeled, it will be deleted.
  6. Absolutely no NSFL content.
  7. Be nice. Don't take anything personally. Take political debates to the appropriate communities. Take personal disagreements & arguments to private messages.
  8. No advertising, brand promotion, or guerrilla marketing.

RELATED COMMUNITIES:

founded 2 years ago
MODERATORS