PC 7Days To Die in General, but Game Programming even more generally

I suggested it a while ago but the devs HATED it. It's pseudo random distribution used by DotA 2. Effectively what it does is it increases the probability of getting an item or an effect every time it misses its chance to activate. It has a "worst case scenario" limit which should be implemented in this game because it contains so much random book loot which I personally dislike.
As I said however the devs hate this idea.
I don't know dota2 but had a look at the system information from the wiki page not the gamefiles.

From a quick look you have different characters with different abilitys.

Different characters have different attacks and different effects.

There is not a lot of these to keep track of in a mutable table in memory when you separate these into individual character/player groups.

If you look at 7dtd then the book items alone would be more than all of the events listed on the Dota2 wiki.

Like i said before you have to keep track of these for all players and guess this would be an accessor and mutator nightmare.

The item probabilities do scale in 7DTD you just have to keep playing the game and maybe they could do with fine tuning.

Saying that the values will more than likely be adjusted next alpha so it a step back for the fine tuning stage.

-------------------

Answer to the debate about probability being attached to player level it would be set at the highest of the party.

 
Guess this time I have to be the one apologizing... I was probably still on edge from the last discussion I've had :D

And when you set that dice example, I overread that you somehow (still haven't quite figured out what oyu wanted to say by that) meant that only on the first roll it's supposed to be 166%...

Don't get it, but then again, didn't follow the argument.

Have your honor back and ignore me from here on :D

Obviously if you have 10 DIFFERENT weapons , the chance for EACH is still 1%. But to get at least one, its 9.55%.

Sorry for the confusing butt-in.

 
Well another successful party ends with everyone being right about what THEY were talking about. This is the new math being pushed by common core: The answer doesn’t matter as long as you can articulate what you were thinking. :)

 
Now, wait... I thought it was like that on purpose, so we'd eventually wind up trying out every build and playing in different ways! I laid this game aside for over a year until a18 dropped and when I picked it up this time, I was determined to play experimental and do it properly. That meant I wiped everything and started over with each build. I played pregen 3 for several months over several restarts and loved the fact that I was always somewhere new, with the RNG blessing me with little or nothing I was hoping for and/or expecting. It made me really think about how the game is played and the perks I needed to use and really increased my enjoyment of the game. I had gotten bored to tears before, which was why I laid the game down for so long, but now... now I look forward to reaching that point of boredom because I know something new is around the corner when I start again. Y'all just need to look at it a different way, that's all.

I'd rather it stay as it is. This way, I can curse the RNG gods when I don't get my pistol or zero ammo drops or I've wound up in (blech) heavy armor or in the desert with no duster. Keeps me on my toes and boredom at bay.

 
Weird tangents again.. oh well. The idea of "increasing the drop chance and reducing the chance for items that actually drop" was challenged as not working because there's "too many items, so they'll have essentially the same chance to drop anyway"

That can be made to work, reminds me of the plethora of different DKP systems; there's plenty of ways to a "fair distribution".

Simplest version: each item starts at a drop chance of 1, and any dropped item is reduced to 0 chance. That way, you'll get a straight up "round robin", everything will drop 1:1 for the first round, just in random order. This would have the slight drawback of getting stuck at 0 chance for everything after the first round.

To fix that, you can just "manually" reset everything to 1. That would start another round.

Would that be a good system? Not in my opinion. The point is to show that it would Work, at an edge.

Adjusting it into something smoother, like splitting the chance of the dropped item evenly among everything else, would still keep some of the round robin nature (the one thing that never drops would be siphoning a lot of little increases over couple "rounds", eventually becoming highly likely..). Just needs "more rounds" to happen.

For this game, I'm biased by the history.. to avoid the "can't find a baseball bat" issue, I'd rather see something akin to "Tier 3 melee weapon parts", so you can scrap all those machetes and spears to make a bat if you need one. Would it make any sense? Not much less than the current one... :)

 
Simplest version: each item starts at a drop chance of 1, and any dropped item is reduced to 0 chance. That way, you'll get a straight up "round robin", everything will drop 1:1 for the first round, just in random order. This would have the slight drawback of getting stuck at 0 chance for everything after the first round.
That is basically what i wrote a page ago, just not starting from 1 for each item but a base chance, since you still want to have different drop chances for different items.

For this game, I'm biased by the history.. to avoid the "can't find a baseball bat" issue, I'd rather see something akin to "Tier 3 melee weapon parts", so you can scrap all those machetes and spears to make a bat if you need one.
Wouldn't help as it still needs the baseball bat parts to craft it. And he hasen't found any baseball bat to scrap it into parts or parts themselfs. So even if he could craft it by a skill, he still lakes the items needed to craft it.

- - - Updated - - -

The answer doesn’t matter as long as you can articulate what you were thinking. :)
Or just read the question before putting of an answer. ;)

 
That is basically what i wrote a page ago, just not starting from 1 for each item but a base chance, since you still want to have different drop chances for different items.
Yeah, I was just reducing that system to its core, to emphasize that it Works.

Wouldn't help as it still needs the baseball bat parts to craft it. And he hasen't found any baseball bat to scrap it into parts or parts themselfs. So even if he could craft it by a skill, he still lakes the items needed to craft it.
I was proposing "T3 parts", instead of "bat parts". As in, if you've seen plenty of T3 weapons, but not the one you want, you'd have a workaround. If you haven't seen a lot of T3 weapons, then you're not exactly expecting to have gotten a specific one yet.

Not that I'd design it like that, but it might be something applicable to the current direction of the game...

EDIT:

I recognize that's not intuitively good at all, mostly talking about the mechanics of the drops. The "most natural" easyish solution for the "plenty of the wrong T3 dropping" would be a weaponsmith NPC; "Bring me 3 other good weapons and I'll make you one of your choice" Or something along those lines.

 
Last edited by a moderator:
My debate against the idea wasn't there are too many items that there would all be the same it was there too many items causing a accessor and mutator nightmare.

Getting and setting all the items concurrently would be a real problem.

I dont't see a more efficent system than having items set into groups and having static probabilities assigned to them while having additional scaling probabilities summed together with multiple factors including gamestage and skillset.

 
My debate against the idea wasn't there are too many items that there would all be the same it was there too many items causing a accessor and mutator nightmare.
I think it was Brian9824's point.. someone who then ended up getting quoted and I couldn't be bothered to find the original snippet... :)

For your point of update nightmare; eh, it's a loot table. At a normal worst, you'd have to update it once a second when people are running from loot box to loot box.

Now, looking at the crafting inventory lag issues, I'm not making a claim about the feasibility for this particular game, but it's not exactly a lot of math even in its straightforward form. There's also easy ways to lazy it down, for example, just do the reductions instantly (one change per looted item), and do the increases over time, whenever you have time (not much change in the gameplay of the table instantly, only as the aggregate..)

 
I might be wrong about my assumptions listed as i said above i have only basic programming knowledge but i think it's good to debate these things.

Routine update at timed interval doesn't sound as good as updating vital data instantly and scheduling the rest of the processes after.

Still needs an attribute entry for every item and i assume this is stored in xml format in memory.

Not alot of math but a lot of executions of the parser.

This could have a big impact on marshalling and unmarshalling the data.

Could get really confusing with item's changing all the time and bulk pickups.

Like was said above and i skipped over maybe the system works for another game but 7dtd it doesn't seem suitable.

I like the idea of a weaponsmith npc, maybe the npc could travel round the different traders offering a quest and maybe parts in small numbers.

 
XML is read when it can be reasonably expected to have changed, as in "once on startup". It's written when there's a need for another system or a human to read the output. Sure there are exceptions, but assuming constant XML parsing sounds quite .. pointless. For something as simple and internal as a loot table.. In memory it resides in actual tables (you know, sequential memory addresses). On disk it resides as some standard serialized blob within the save.

I haven't seen the actuality of 7dtd, but assuming anything worse than the above without the source code is .. well, "low expectations" :)

 
Wouldn't help as it still needs the baseball bat parts to craft it. And he hasen't found any baseball bat to scrap it into parts or parts themselfs. So even if he could craft it by a skill, he still lakes the items needed to craft it.
Actually, he might be onto something - it doesn't address the ridiculousness of "baseball bat parts" in themselves - collecting splinters is silly - but in that city I did find a LOT of other non-bat weapons: spears, knives, one machete, and a collection of sledges.

I don't know if it would fit the "make sense" category, but a generic supply of "weapon parts" would address the RNG hell problem. Sure, I wouldn't have found "baseball bat parts" but if I could salvage one randomly-generated weapon to get parts that can be used in a non-randomly crafted weapon it would effectively answer a stupid question with a stupid answer.

 
I might be wrong about my assumptions listed as i said above i have only basic programming knowledge but i think it's good to debate these things.
Routine update at timed interval doesn't sound as good as updating vital data instantly and scheduling the rest of the processes after.
But it isn't vital data. Lets say you game crashes and the changes to the loot table of 4 hours gameplay are not saved. So the game has to use a loot table of a previous session. All that happens is that your chances to get an elusive item are minimally worse now. Nobody would notice

So there is no necessity to store the loot table to disk every few minutes or after each change. It can be done just at the end of a game session.

 
...

I don't know if it would fit the "make sense" category, but a generic supply of "weapon parts" would address the RNG hell problem.

...
Perhaps.

But I think nerfing the loot tables and smoothing them into a more "realistic apocalypse" curve makes more sense for the game.

For instance:

You don't get the random chance of a Q6 Baseball Bat on Day 4.

You get a small, random chance of a Q1 or Q2 Baseball Bat on Day 28 (or whatever the "balance Gods" deem correct).

You get a small, random chance of a Q3 Baseball Bat on Day 35 (and an increased chance of Q1/Q2--or whatever).

This pattern increases as gameplay increases.

It "makes sense" that in a "zombie apocalypse" you don't find a cache of pro-level sluggers in a baseball star's ruined house.

You can scrap the crappy bats for parts to make your own super-awesome baseball bat; like an apocalyptic hero would do.

Or you can continue to get better and better at scavenging, being able to hit larger, more likely targets; which will eventually net you that fancy new slugger you want.

P.S.

I'm ignoring "baseball bat parts". But to be fair, you should look up the construction technique of "professional" baseball bats (which I'd argue the "spirit" of the T3 Club is. It isn't just a bunch of kids with 2x4s and a rusty knives churning them out. So, "baseball bat part" is an abstract "gameification" of an industrial baseball bat production line.

I also realize a player's "skill" at something doesn't mean the box will magically contain better loot; again, that's a "gameification".

It is resource intensive to simulate a "real" apocalypse that would be fun to play. Maybe they *should* have a sporting goods POI where you'd be more likely to find a baseball bat. But that also means there needs to be a specific POI for every kind of main loot. It also means you have to realistically simulate rural / urban areas with realistic travel times, and everything has to be perfect; otherwise you still "loose your immersion".

And all of that means bandits don't come until 2035 and the blasted chem station is still fire-crackling away until 2039.

Again, "reality" doesn't mix directly in a Zombie Apocalypse Game. It just doesn't.

 
Back
Top