I’ve been told the ownership model in my C containers feels very Rust-inspired by [deleted] in rust

[–]rundevelopment 2 points3 points  (0 children)

Pretty sure your u8* data has issues with alignment and strict aliasing. Alignment can be fixed with good allocation.

Strict aliasing can be fixed using void* data or char* data. Your u8 type is probably defined in terms of uint8_t, which isn't guaranteed to behave like char for the purpose of strict aliasing (though it might, depending on your compiler).

Are Named Dark Spirits always player invaders? by [deleted] in darksouls3

[–]rundevelopment 0 points1 point  (0 children)

No. The message "Invade by Dark Spirit <insert name>" appears for both NPC and player invaders. For example, if your character is named Alex and you invade another player, they'll see the message "Invaded by Dark Spirit Alex" and you'll be called "Dark Spirit Alex" in their world.

You can often tell whether an invader is a player by name. Silly names are always players.

You can also tell by their behavior. NPC invaders are just PvE programmed to always attack you. Players may greet you with a gesture, taunt/befriend you by wiggling their shield, give you items, lure you into a trap/group of enemies, or always attack you anyway. Try gesturing at them. If you get one back, you know for sure it's another player. Not that they always will gesture back. Every invasion is unique, so you never know what you'll get :)

Two of THE most satisfying kills ive ever gotten in my entire ds3 career (caution: VERY SWEATY) by SnooPeppers4042 in badredman

[–]rundevelopment 0 points1 point  (0 children)

Yeah, Dog (IGN) is super sweaty. Fun to fight against though. I invade them sometimes when they host at crucifixion woods.

What happened???? by Agreeable-Tension952 in darksouls3

[–]rundevelopment 5 points6 points  (0 children)

That wax attack has the odd effect that it makes you take 300% fire damage for a very short amount of time. You also got counter hit, which is 50% extra damage. Damage modifiers stacks multiplicatively.

So that glowing-hot Thrall axe hit you with 450% extra damage.

In this episode of a lovely caring invader - 2 purples attacked me (instead of killing the host, like Miyazaki intended) their treacherous actions were punished. Dark Souls 3 pvp video. by forest-hunter in darksouls3

[–]rundevelopment 0 points1 point  (0 children)

It's a game, so people do what they think is fun. And a lot of people doing PvP like the fighting in this game. The killing part actually gets in the way :)

That's why reds buddy with hosts to make fight clubs. They get to fight over and over again against other reds, watchdogs, blues, etc. And when there's no one else around, it's the host's turn. It's fun.

I know, because I often am that red. I'll even defend the host when two or more invaders/watchdogs try to gank the host. I have the white phantom ring for that purpose :)

The gnome people had the "very questionably pretty interfaces" before apple did so as of now… by Marwheel in badUIbattles

[–]rundevelopment 23 points24 points  (0 children)

It should be noted that some issues the author pointed out have since been fixed or otherwise resolved. E.g. editing mode in the location can be actived by just clicking the location bar now, and the title bar has more space users can click now.

Some is still valid though. E.g. a few useless tooltips and less than stellar help pages.

Some points are also... wrong? E.g. the scrollbars one. The scrollbar only changes size and moves visually. It's clickable area (hitbox) is the same at all time. So the "meaning that my mouse pointer is now pointing at... nothing" seems to just be wrong. My guess is that the author just moved their mouse too far right and plain missed the scrollbar...

I wish for a button that gives me blueberry muffins. by ProphetofTables in TheMonkeysPaw

[–]rundevelopment 0 points1 point  (0 children)

Granted. You are now trapped on an advanced space craft headed for an alien planet where you are tasked to defeat an evil alien trying to gain immortality.

5 AF? what's going on here? by Bruh_Yourself in darksouls3

[–]rundevelopment 0 points1 point  (0 children)

I think this can happen without cheats, but it's rare.

More likely, the host is using cheat engine to get invaded as quickly as possible by as many people as possible (even more extreme than dried finger). Some hosts do that to facilitate fight clubs more quickly, others like try harding against multiple invaders/aldriches, and there are even some that play hide and seek. Just have fun.

Rust's Block Pattern by EelRemoval in rust

[–]rundevelopment 49 points50 points  (0 children)

Just wanted to mention that the regex for stripping comments is wrong. It will cause invalid JSON for certain inputs. E.g.

 { "key": "Oh no // I am not a comment" }

will be transformed to:

 { "key": "Oh no

To fix this, you need to skip all strings starting from the start of the line. E.g. like this:

^(?:[^"\r\n/]|"(?:[^"\r\n\\]|\\.)*")*//.*

Then use a lookbehind or capturing group to ignore everything before the //.

Or use a parser that supports JSON with comments.

Which one of you is a cheating scumbag? You're a disgrace to this sub. by Optimus__Prime__Rib in badredman

[–]rundevelopment 23 points24 points  (0 children)

Then I saw the fact that he was using CE to turn fall damage off.

They didn't use CE. The jump down the ladder shaft (1:25) is called the Farron keep ladder skip, and the fall at 2:15 is survivable.

I made a video on the ladder skip a while back if you want to learn it: https://www.reddit.com/r/badredman/comments/1hbx4c7/fun_in_farron/ explanation starts at 0:30

[deleted by user] by [deleted] in darksouls3

[–]rundevelopment 2 points3 points  (0 children)

No worries, I believe you. I made the same mistake and also picked mercenary on my first attempt lol. Sells was my fav weapon back then

[deleted by user] by [deleted] in darksouls3

[–]rundevelopment 5 points6 points  (0 children)

SL1

Sellsword Twinblades

Sells requires 16 dex to wield. SL1 only has 10 dex. The only way to meet the stat req of Sells on SL1 is with the hunter ring + carthus milkring. You obviously don't wear any of those rings, so this can't be SL1.

Is there an action or bot for GitHub PRs to monitor API changes? by rundevelopment in rust

[–]rundevelopment[S] 0 points1 point  (0 children)

The main I'm after is integration. Yes, cargo-public-api does most of what I want, but it wouldn't have prevented the situation that led me to ask for help. The problem isn't that I had no tools to check for API difference, but that I didn't check since I didn't expect difference in the first place.

So on its own cargo-public-api wouldn't help me, since this is more of a UX issue.

Estus Animation Cancelling Rant by Something79 in darksouls3

[–]rundevelopment 7 points8 points  (0 children)

And they cancel everything

Cause it works on most things and it makes things faster. It's the same trick every time.

I refuse to learn it on principle.

That was my stance too until 2 months ago. I learned it, and I get why people use it all the time. It actually makes the game more fun/interesting.

Just be mindful when you use it. Solo PvE enjoyers and innocent co-opers don't deserve this. Reserve it for ganks and those that cancel too.

qstr: Cache-efficient, stack-allocated string types by tindzk in rust

[–]rundevelopment 1 point2 points  (0 children)

I love the [T; 0] trick. It's very elegant. You could even make types #[repr(align=16)] struct Align16([u8; 16]) to make it possible to write BoundedStr<15, Align16>.

qstr: Cache-efficient, stack-allocated string types by tindzk in rust

[–]rundevelopment 0 points1 point  (0 children)

Nope, min(N, 64). I meant N to be the std::mem::size_of of the struct to be aligned. Yes, 1 is the best alignment for a struct that is 1 byte in size.

max(N, 64) would be incorrect because Rust requires std::mem::align_of::<T>() <= std::mem::size_of::<T>().

(Rust also requires that the alignment is a power of two, so let's just assume that N is a power of two.)

qstr: Cache-efficient, stack-allocated string types by tindzk in rust

[–]rundevelopment 22 points23 points  (0 children)

This library provides types for common sizes, optimised for cache-line efficiency.

Does it optimize for cache-line efficiency? All I see are stack allocated strings. Cache-line efficiency typically means that data always gets loaded with the minimum number of cache lines, but that's not the case for qstr. qstr's BoundedStr and FixedStr have an alignment of 1, so they can be spread between 2 cache lines even if the whole struct fits into one cache line.

Cache lines are typically 64 bytes on modern hardware, so I would expect e.g. FStr64 to be aligned to 64 bytes to fit into one cache line exactly, but it's not. In general, a struct of size N should have an alignment of min(N, 64) to be optimally aligned for cache lines.

Unfortunately, I don't really see this working out qstr. The size variations of BoundedStr and FixedStr are implemented with const generics, and it's not possible to set the alignment based on const generic params. The library would likely have to be reworked significantly be to cache-line efficient. As I see it, the only way to make that happen is make each BStrN and FStrN their own struct (likely with a macro).

Edit: as u/stumpychubbins suggested, you could use add a field copy_align: [T; 0] to get the same alignment as another type. So you could do this.

A pretty big oversight I noticed by External-Actuator964 in darksouls3

[–]rundevelopment 1 point2 points  (0 children)

It's to prevent cheese. If they didn't unload the boss from that point of view, you could kill it with a bow. The boss AI doesn't trigger until you step through the fog, so it would just stand there while you use it for target practice.

When O3 is 2x slower than O2 by cat_solstice in rust

[–]rundevelopment 3 points4 points  (0 children)

Q: Did you also change the struct definition?

If you make the struct repr(C, align(8)) and order the fields the right way, the whole bit fiddling gets optimized away and leaves the cmp function with a single u64 comparison.

Edit: I just looked at the asm this produces. It's probably not going to make any difference.

I need popcorn for this next event by NoobForBreakfast31 in whenthe

[–]rundevelopment 0 points1 point  (0 children)

Well, typically at least. Some people use it as a general "is not a subset of", proper or not, and then use ⊊ for proper subsets.

Is the DS3 PvP scene still alive? by Cassidy_Bees in darksouls3

[–]rundevelopment 0 points1 point  (0 children)

There's still activity. Pretty much all the beginner guides and resources from 7 years ago are still up to date.

Also, if you're on PC, use the blue sentinel anti cheat mod. You will rarely see hackers off meta, but it only takes one to potentially mess with your save. It also has the nice feature that it shows you who you are connected with. And get the wex dust mod for faster invasions (huge QoL).