« first day (3697 days earlier)      last day (1327 days later) » 

1:27 AM
In the movie Screamers, the use cigarettes to give some kind of medication to prevent radiation poisoning. I wonder if they could use that to give medications against real diseases, or prevent some like the COVID... :P
 
2:01 AM
There was a paper a while back that suggested pot smokers may have slightly reduced COVID risk, but that could be an artifact of small sample sizes and preliminary data.
 
 
5 hours later…
7:08 AM
@Vaillancourt Screamers was pretty decent.
 
 
2 hours later…
nwp
8:55 AM
If your lunge is well tarred covid has no chance either :P
 
 
4 hours later…
12:27 PM
@Almo I think so too. It was partially filmed in the Stade Olympique and/or biodome, and in the carrière miron/landfill that replaced it.
@nwp haha
Wasn't there data that would corroborate that? I remember hearing about smokers less likely to be infected.
 
12:56 PM
Are there any articles about different "spawn" techniques/systems in video games ? My world is divided into chunks and i simply wanna have enough controll about the spawning behaviour of entities, where its allowed to spawn, how many are allowed to spawn with what weight, when it is allowed to spawn e.g. :/ But i cant find any good resources
 
The last time I've read about it was because I had access to the code of an MMO.
From what I remember, the mobs were generated in regions which were essentially polygons. A set amount of mobs were allowed to spawn in the polygon, and the mobs that could spawn there were pre-determined.
 
@Vaillancourt Thats interessting ^^ what mmo ?
 
Rappelz
 
nwp
Wow, I played that for a long time.
 
user92578
Minecraft groups entities into groups that have max amount limits, called "mob caps"
 
1:03 PM
I have put a lot of hours in that too ;)
 
nwp
So much grinding. Then they rebalanced it and effectively removed skills and I just couldn't keep going anymore.
 
Thanks :) well that already helps... i could simply spawn in a set of mobs into every chunk... but how do we actually decide which mob ? I heard that the spawning is mostly weighted... the most difficult part here is to transform this into ecs
 
nwp
Why is ECS integration difficult here?
 
Yeah, and since I'm more of a "single player" than a "play with folks" kind of player, I did not manage to get that far.
max level about 120? I don't remember.
 
nwp
I think I only got to 80. I had a lot of characters though.
 
1:06 PM
@genaray You have a spawnerComponent that has the data?
Your chunk is an entity?
@nwp Yeah, lots of options there!
 
nwp
Does it still exist or was it shut down?
Never mind, I'll check.
I barely recognize anything from the front page, but yeah, it still exists.
 
Because i have no real idea how to realize this in an ecs... Lets say we have a "Spawner" entity... it simply stores the entities we could spawn in a weight table, just a weight and a id for the entity. But how do we realize all the different conditions ? Like that mob should only spawn when its night ? I would realize this as an entity too, as a recipe... but when the recipe decides its condition is not true, we would end up with less than 35 spawned entities
 
nwp
I'd write a simple function that loops over areas and adds mobs. No need to screw around with spawners.
 
If your code realize that we would end up with less than 35 spawned entites, and that's not what you want, then you need to revise what you want and make the code do it ;)
Well that's your "spwaner function" :P
I don't know how you handle your entities/components/systems, but I would probably have a system that would loop through "spawner" components. The spawnerCompoennt knows which mobs should be spanwing, and how, and if the condition is met, spawns a mob in the region the component's entity represents.
 
I just want a flexible solution for this... and somehow the weights are not compatible with the conditions... atleast when we spawn them in as entities :ü because we actually need to check the condition before the weight resolving... im not sure if its just me, but that feels dirty somehow
 
1:14 PM
If the weight feature does not apply to your game, don't use it?
 
It does not work without weights either :p
 
Well an option would be to find the subset of all the mobs that "meet the conditions", then re-scale the weight over the mobs of this subset?
Or define the sets of mobs with their weight based on a predefined set of conditions.
(That one is going to grow complicated fast, though.)
 
nwp
I kinda wanna try Rappelz again. Might be fun.
 
Another problem here are the conditions inside the spawner... that would require some sort of method references like : spawner.addEntity(() -> { true when...}, archeType);
@Vaillancourt That could work too... probably im just too confused, i mostly cant decide between the variants, furthermore the ecs is awfull for such tasks
 
@nwp If I had more time, maybe I'd get back to it too, but heh... I'd still be soloing all the time.
@genaray I don't think the ECS architecture is awful for this.
 
nwp
1:22 PM
The website is kinda pitiful. No https and dead links.
 
@Vaillancourt Well, i wanna go for pure ecs... so i dont wanna use method references, interfaces or similar :/ Thats the first problem, because it means that we either are forced to hardcode spawning conditions ( enums whatever ) or that the spawning condition itself is a entity.
 
About a year ago (I think? time goes by so fast), I went back in a bit. From what I've seen around, yes, the site is not so well maintained, and as usual, the game is mainly made for korea and other asian-ish so european/american players are complaining about stuff that will never get fixed.
 
And i have no idea how to combine a spawning condition entity ( recipe ) with weighted spawning
 
@genaray Please make sure to correctly use the terms "entity" and "component". In an ECS, technically, and entity is "nothing", it's the component that is important.
What kind of conditions do you have in mind?
Game managers have not the time, the experience nor the authority to make changes to the game, etc. People still complain about having to pay a lot to get further in the game, etc.
 
Heres where the flexibility comes into my mind... i want to have nearly full controll over the spawning condition : Whats the environment ? What time is it ? How many other entities are in that chunk ? What weapons do have players nearby ? What season is it ? We could simply write condition components for that recipe entity... but the combination with the weight spawning is difficult
 
1:28 PM
The only interest I still have in this game is extract data out of it and publish it, and write a bot for it.
 
nwp
Illegal activities smh.
 
Your system, when processing the spawning, could first gather all of these conditions, shove them into a dictionary, and pass the dictionary to the "spawning function". The spawning function checks the conditions in the spawning entity, compare them to the data in the dictionary, and decide if it should spawn the mob or not!
@nwp Shhhhhh :P But yeah. In the past there was the "tab, F1" joke, where you needed to hit tab to select the closest monster, then hit F1 to fight them. Then they modified the game, if you don't have a monster selected, and hit F1, it'll select it for you, you don't even need to use tab anymore.
the game is boring.
I mean. It's grinding. I'm more stimulated by other activities.
 
user92578
@genaray I don't think weights fit in to this in a global sense: If I have an entity that has weight of 2 to spawn, but it only spawns during daytime, and an entity that has a weight of 4 to spawn, but it only spawns during nighttime, it's easy to see that these are incompatible goals
 
nwp
Lol. I can't believe that's their solution to the Tab-F1 issue.
 
user92578
Instead, I'd suggest weighting inside groups of mob types that share their spawn conditions
 
nwp
1:36 PM
Back in my days I could play Cleric and do Click F1, F2, F1. It was the most involved class.
Click to select teammate, F1 to sit up, F2 to heal, F1 to sit back down.
Then they made the mana cost ridiculously high so even with sitting and drinking pots and tea constantly you would be mostly useless. Rip. I'd love to play Epic 3 again.
 
I guess you needed "the right pet"?
 
nwp
Nah. Pets were shift-clicked into a corner when you entered the room to reduce lag.
 
@Tyyppi_77 Yep, the only thing is that it's going to grow fast as they add more conditions.
lol
 
user92578
True, the suggestion you provided about gathering all valid mobs and then rebalancing is a good solution to that
 
nwp
There was also a neat pet despawn exploit. Buff it to hell, unsummon, summon again. It would keep all the buffs until it received a new one. Some buffs were really powerful but only lasted a few seconds and with like 2 minutes of cooldown. If you stacked those the pet could solo bosses.
 
1:42 PM
Thanks :) @Vaillancourt Oh i meant that the components acting like condition ( IsNight, AreOthersEntitiesNearby ) and theres a system validating those for each of these condition components... when all are true, the recipe resolves. Do you mean that we simply controll all conditions in that spawn system ?
 
nwp
I miss my pet turtle. The pet system is actually really neat despite how simple it is.
 
@Tyyppi_77 Thanks,I did not think about that yet :o
 
nwp
 
I have the feeling that its just not possible to realize a proper spawning system with single recipes entities storing these conditions... and as @Tyyppi_77 weight is probably also not usefull... lets say our spawner select N spawn locations... we would need to check all conditions for each spawn point to filter out all spawnable mobs... but this does not mean that every mob can spawn on every point,
so we would need to apply the weight system for each set of mobs on each spawn point... sounds awfull and the recipe entities would be killing the workflow
 
nwp
I think I just won't start again. I'll just rage at how neat the game could be if only they fixed a few obvious issues.
 
1:51 PM
@genaray I'm not super sure having the conditions as components would be beneficial, this could probably make the code harder to follow. If you start off with a simple map of string->value, and check those values, you could get something going on that would help you figure out where you'd need to go next.
@nwp Yes. Some complains I've seen is "well the old pets are no longer useful, I'd like to play with my beautiful harpy because she's so pretty, but she's bad compared to XYZ boss I tamed so I can no longer use it." A stage 5 turtle is still a bad pet...
 
what game we talkin bout?
 
nwp
Rappelz
 
@Vaillancourt DMGregory suggested recipe entities with conditions a few weeks ago... and they sound flexible and are usefull in some cases... but probably not for spawning in entities :/ what about the flexibility ? Condition Components could get changed pretty easily, the map content too... but the spawn system would be huge and hardcoded right ?
 
nwp
Back in my days evo 3 was the end.
 
@nwp You could get involved in a "private server" community instead, where you could change the code of the server and the game, and have your own server but no player, and rage quit because of all the drama...
 
1:55 PM
ok I saw that name in the chat and didn't recognize it as a game :)
 
nwp
I in theory had an evo 3 turtle for a couple of hours. Then the update devolved it.
 
@nwp It's still the end, but then you can "combine" the pets to make them "staged".
Now you can basically tame any mob, including the bosses, and have them as pets.
 
nwp
@Vaillancourt That seems like effort. I need to put more of that into my Discord server before the rest of staff deserts.
 
@nwp hep ;) That's why I'm here and not there ;)
 
nwp
It was fun when I gave my turtle a dagger to increase attack speed and gave it a stunning buff. It didn't actually work well because it missed like 80% of the time and could never actually stunlock anything outside of a lucky streak. It couldn't even interrupt long casts. But in theory it was great.
Also there was my knight which had 2 -50% damage skills and for a glorious 3 seconds or so I could have -100% damage. I think if I dig out my old laptop I still have screenshots with bosses critting me for 0 damage.
I can't tell why that game was interesting. It's terrible in pretty much all aspects. Shallow, buggy, primitive, grindy, and yet I enjoyed it.
 
2:04 PM
^
I suppose the music, the graphics, the ambiance and the people kept me in.
Also the sunk cost.
 
 
2 hours later…
4:16 PM
hi
 
4:58 PM
Hello :)
@genaray A loot system in a game I worked on used logic very similar to what's been recommended above. We had a large library of "preconditions" which were plain old data objects that described a single test that could evaluate to true or false, like "Is in Region X" or "Is in Time of Day Range Y" or "Was Killed by Element Z"...
We could also have compound preconditions that would string together other preconditions into boolean expressions. So we could make more complex conditions like "Minor enemy was killed at night by gunfire from a player of level > 10" out of these building blocks.
Then in our loot system, each item in a pool could specify a precondition to check to see if it was valid. And a weight.
When executing a loot roll, we'd run through all the items in the pool and evaluate their preconditions. Ones that passed would be added into the potential selection according to their weight, and ones that failed would be skipped.
Then we'd do a weighted random selection from those surviving items.
That worked quite well for our purposes. The polymorphism of different precondition types wasn't a problem, because evaluating a loot roll - like spawning an entity - isn't something we did hundreds or thousands of times a frame. It's something we did a handful of times with seconds or minutes between iterations.
So, remember you don't get any points for "ECS purity". Players don't see that. The "rules" of an ECS help with performance when you're doing the same thing hundreds or thousands of times in a frame, and with flexibility of composing entities modularly.
If you're not in a situation where you need those benefits, then over-complicating your own development efficiency just to meet those guidelines anyway is not good development practice. It's just superstition.
Use ECS for what it's good at and what you need it for. Don't wear it like shackles.
 
5:17 PM
The benefit I have got from the ECS I created at work does not come from the performance gain (we don't have many entities), it really comes from the flexibility it offers!
 
Exactly. If your conception of an ECS is making you feel restricted, then it's not doing its job of giving you that flexibility, and you should re-examine how you're using it.
 
^
@genaray this is very, very good advice coming from DMG and Vaillancourt. It's not meant to insult or belittle your work. It comes from many years of experience building software and having fallen into similar traps ourselves.
 
Making games is so complicated, I wonder why people inflict that to themselves....
2
 
hahah
 
5:34 PM
I always tell my students, if you want to make money or have a relaxing life, there are much better professions to pursue...
 
yeah for sure
 
Yeah, it takes passion to make games. And unfortunately, some employers know about this and don't mind abusing this.
 
 
4 hours later…
9:43 PM
@DMGregory @Vaillancourt @Almo Thanks everyone :) I used your advices as a guideline and come up with a pretty similar system... First of all i gave up on the idea of using a entity as a spawn recipe... you are right, its just not worth its time.
So i broke down the spawn process into 4 important parts. 1. Spawn point generation, 2. Conditions, 3. Applying weights, 4. Spawning... 4 Components for 4 different purposes and several systems processing them. A entity is used as a spawner and those components are getting attached to it.
When the spawners time is up the following process gets triggered : SpawnLocations generates location, System copies locations into SpawnConditions, SpawnConditions runs conditions and checks which entity could get spawned on which vec3, system copies data into SpawnWeights, SpawnWeights calculates the weights, so we finally know what entity to place on which vec3, system copies data into Spawn, Spawn simply contains the previous generated locations and a list of entity-types to spawn them in.
I wanted to make sure that the process is flexible, so i split it up into multiple components. The only problem here is that i need to make sure that those systems are running after another :P. I heard that we can use the ecs for producers/consumers systems... thats pretty much the idea behind this approach.
Like "SpawnLocations" is a producer, spamming out locations if needed... and at the end of the pipeline the "Spawn", the consumer, waits for a list of locations and a list of entity-types to spawn in. All other steps between are acting as factories, simply transforming, filtering, manipulating the data till it arrives in the "Spawn" component. So basically every component in this approach contains a "input" and a "output" value and systems simply take care to copy this stuff into the next step
 

« first day (3697 days earlier)      last day (1327 days later) »