A programming suggestion for picking up level-able thralls

After watching the stream I realized that iconed thralls when unpacked spawn a ■■■■.
There is no way to re-icon a ■■■■, and inherit the newly generated information into the icon…

Or is there?

Everything can be compacted into a string: FX00 5356 #FFFF 4595 2342 etc etc

If one were to compress all the stats and appearance info of a thrall into a string, and save that string into an icon property, it should be possible to pass the string inside the icon property as parameters into a ■■■■ spawn command, with a constructor which specifically reads strings as the spawn command’s parameters. Even having them feature as an overload on already existing icons?

I suppose it could be tricky to cypher that from being exploited via code injections…but ehrm… I’ve seen you guys do some clever things.

If cryopods are an indication of anything in ARK, it’s that is enables trade between players, (Human Trafficking… lol, I can already see Imiru be worth 5 Zerkers, and Grrr Legbiter be equal to a T5 purge crafter) and it reduces the – active – population of thralls on the map naturally, as more people want to store their more advanced and better thralls in favor of deploying “expendable” thralls out to the field.

To prevent players from spamming thralls all over, there would be a “pokeball CD” - if you deploy a thrall too soon after having already deployed a thrall, they’ll be KO.

So the question remains: “What stops a player from surrounding a world boss with multiple thralls via Pokeball?” Well… the real question is, what stops a player from doing that now, if they really put their minds and legs to it?

It’s not like the pokeball is gonna absorb the thralls armor and weapons as well.

Anyway, that’s just my suggestion.

p.s. Can we not have the chat censor the word “p4wn”? It’s not even offensive.

2 Likes

I like your thinking.

The main reason they removed the feature was for a certain hide and go seek trick.
To alleviate that, one could just have anything in inventory on the thrall that is not id’d as a weapon or armor be deleted, then save the rest of the data like you stated. Would also have to save the stats and other already rolled rng stuff or people would just keep re-rolling non stop, no matter what cool downs were incorporated.

1 Like

Absolutely.
The string containing the information is purely static, so it will remember stats the way they were roled.
You are practically carbon-freezing the thrall, stats and all, 1 to 1, and having them drop their inventory into a bag when frozen or…re-iconed, or “pokeballed” as the ARK community like to call it.

Strings would work like this… ATx01 2072 ATx02 5231 etc
would be like

Strength 7 - ATx01 2072
Agility 5 - ATx02 5231
etc etc

But the actual string looks like this: ATx012072ATx025231etcetczeropunctuationandisverystatic

What you save is what you spawn, minus the gear.

1 Like

This would allow a great feature of stealing leveled thrall. how awesome during a raid, they were so distracted not letting you get all the way in, that you ganked their level 20. Whole new layer of war fare:)

So what you’re proposing is to be able to pick up a thrall by converting it from an actor back into an item? I wonder what that would do to memory and storage space usage. A lot of people have chests full of thralls that they haven’t placed. Right now, those thrall items only need a reference to the shared thrall “breed” description, e.g. Cimmerian Bearer 2. When you place the thrall, it spawns an actor that gets its stats from that breed description.

When the leveling system rolls out, each thrall actor will have a set of unique stats, but the items still won’t. What you’re proposing is storing those unique stats in each thrall item, too. I can’t estimate to what degree that would affect the performance, but it doesn’t look like it’ll be a good thing…

I’ll write up the code on Saturday. Tommorow’s Black Friday. Godda get me some Oculus Rift-S.

But for now, in essence yes. C++ is really good with memory allocation so it can be optimized to be very very efficient. The performance loss would be minute even in bulk.

In a nutshell: Imagine your thrall has fallout SPECIAL for stats.

The function-call would be specialized in reading SPECIAL parameters. 11020406140407

Strength 11
Perception 02
Endurance 04
Charisma 06
Intelligence 14
Agility 04
Luck 07

That’s a 14 digit integer.

Some thralls have a name that’s longer than that:

Vathis The Hierophant

Yes, I know :wink:

You can’t really know that without knowing how their implementation works. Also, TANSTAAFL. You can trade space for time or time for space, but you won’t get anything new for free.

Um. If you’re a coder, please don’t do that. Ever. Seriously.

Well, i’m more into C# than C++, and I tend to enjoy using constructors like that. Admiteddly, I have to often write down which parameter equates to which stat in a little booklet somewhere, but it’s efficient code-wise (i think?..)

But yeah, your right that I don’t know their implementation. This is just a suggestion. If they think it’s not compatible with their architecture, then cool.

Just throwing ideas out there.

this will add a bunch of extra data to the game.db which is not really a good idea

currently the thrall item only has a pointer to a data table row which is static content. the row has all the needed data for the thrall placement.

on the game.db all you have is a pointer to that datatable row which is stored in the inventory table.

this will not work if you add additional data to the thrall item. then you have to store the whole item like an actor with all the additional data in the properties table of the game.db like a placed thrall

2 Likes

Ahhh I see!

I find more solace in knowing something’s technically impractical, than technically possible, just not implemented.

It’s a reality easier to swallow.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.