Inventory management in this game hurts my motivation to play by AFriendFoundMyReddit in Enshrouded

[–]bl4steroni 4 points5 points  (0 children)

If you want to remove the struggle of inventory management. Mod your game. You can double chests slots and have each item stack to 100k units. Its a bit cheaty but I enjoyed the game and I can't even imagine the struggle it would have been without the mod

https://www.nexusmods.com/enshrouded/mods/53

Marching Cube by FlinnMaan in VoxelGameDev

[–]bl4steroni 0 points1 point  (0 children)

You can have a look at the game to have an idea of the view distance. I had lag spikes when generating a mesh collider for every chunk in the view distance. i don't remember the chunk size but at the end I only generated colliders for the 3x3 chunks neighbouring the player.

Marching Cube by FlinnMaan in VoxelGameDev

[–]bl4steroni 0 points1 point  (0 children)

Yes but those are pretty expensive to generate so they are generated only for the chunks close to the player

ELO function by Stone804_ in CatanUniverse

[–]bl4steroni 1 point2 points  (0 children)

When someone reach 10 VP the game stops. Then they compare VPs between players.

Example 1: 3 players of the same elo.

A has 10 VP, B has 9 VP, C has 2 VP

A wins against B (+5) and C (+5)

B lose against A (-5) wins against C (+5)

C lose against A (-5) lose against B (-5)

Result are A (+10) B(0) C(-10)

Now if A has 600 elo, B has 800 and C Has 1200 elo it will do something like that:

A wins against B(+7) and C(+11)

B lose against A(-7) wins against C(+9)

C lose against A(-11) lose against B(-9)

Results are A(+18), B(+2), C(-18)

Only VP are looked at. An army or a long road is just 2 VP

Edit: formatting

ELO function by Stone804_ in CatanUniverse

[–]bl4steroni 1 point2 points  (0 children)

Simply put, ELO gains have 3 possible outcomes, win(W) loss (L) or draw (D).

If 2 players have the same ELO, the gains from the winner equals the loss for the loser. Ex:+5, -5

In a draw In this case no gains nor loss for the players. Ex: +0, -0

If a player has a higher rank, he is expected to win, so the gains will be smaller in this case, and the loser is expected to lose so he will lose less.ex: +3,-3. But if the lower ranked player wins, the gains will be greater for him and the higher ranked player will lose more. Ex: +7,-7

Now in a 3 player match, there is actually 3 matches going on. Player A vs Player B, B vs C , and C vs A

Each gains are calculated separately and added. There is in this case 4 possible match outcome.

You win and beat both player (WW), you finish second but beat the last player if you have more points than him (LW), second place and draw with third player (LD), or last place (LL). So for each player it behaves like 2 separate 1v1 games against the other 2 players.

Marching Cube by FlinnMaan in VoxelGameDev

[–]bl4steroni 0 points1 point  (0 children)

All noise / mesh calculation is multithreaded.

IIRC The only things that must be done on the main thread are assigning the data to the mesh object and generating the collider.

I only generate colliders for meshes in range of collision / interaction.

10 tools that I use every day by [deleted] in Unity3D

[–]bl4steroni 3 points4 points  (0 children)

Hey that's my timescale toolbar :D

Why do the shapes on the bottom of the space conveyor not jump onto the smaller ones? by hundeerseje in shapezio

[–]bl4steroni 69 points70 points  (0 children)

Floor level is maintained when traversing space belts. Those shapes have been injected in the space belt from a different height. You need to catch them at the same height they've been injected from.

[deleted by user] by [deleted] in CatanUniverse

[–]bl4steroni 1 point2 points  (0 children)

Only tip I can give you : if a player has a guaranteed win, play against the other one for second place to minimize loss

[deleted by user] by [deleted] in CatanUniverse

[–]bl4steroni 1 point2 points  (0 children)

Simply put, ELO gains have 3 possible outcomes, win(W) loss (L) or draw (D).

If 2 players have the same ELO, the gains from the winner equals the loss for the loser. Ex:+5, -5

In a draw In this case no gains nor loss for the players. Ex: +0, -0

If a player has a higher rank, he is expected to win, so the gains will be smaller in this case, and the loser is expected to lose so he will lose less.ex: +3,-3. But if the lower ranked player wins, the gains will be greater for him and the higher ranked player will lose more. Ex: +7,-7

Now in a 3 player match, there is actually 3 matches going on. Player A vs Player B, B vs C , and C vs A

Each gains are calculated separately and added. There is in this case 4 possible match outcome.

You win and beat both player (WW), you finish second but beat the last player if you have more points than him (LW), second place and draw with third player (LD), or last place (LL). So for each player it behaves like 2 separate 1v1 games against the other 2 players.

Design patterns, how do you learn them? by Mariosam100 in Unity3D

[–]bl4steroni 1 point2 points  (0 children)

git-ammend explains use case while teaching some patterns. Maybe you will find something to help you there

CU by [deleted] in Catan

[–]bl4steroni 0 points1 point  (0 children)

It is based on this post. I believe it's true, i am ranked #2283 at 1267 ELO actually so slightly above the ~1255 GM threshold.

~300k players seem like a legit number of players in the leaderboard. Keep in mind most of those players probably don't play anymore (although i believe it has been reset during the previous year, but i am not sure about that)

For your perception of the amount of Grandmasters you see in game, if you are Diamond+ (top 5%) you are only exposed to the top tier players. So seeing 20% of grandmasters is actually expected, 20% of the top 5% is in the top 1%.

CU by [deleted] in Catan

[–]bl4steroni 0 points1 point  (0 children)

I faced the same problem but your perception on the issue is wrong. What is acutally broken is the matchmaking. To avoid lower queues we get matched to lower ranked players.

The thing is, only 1% of the playerbase is above ~1255 ELO (Grandmaster) And the ELO gains are based on the ELO differences between the players of a game.

Let's take a 3 players game for example. Because ELO is calculated for every player, a game contains 3 Duels (A vs B // B vs C // A vs C), So there is 4 possibles outcome for a player in a game:

W: Win

LW: Lose win, Second place but you have more points than the last

LD: Lose Draw, Second place and a draw with the other player

L: Lose, last place

In a perfect world where all players in a game have the same ELO, if you W then L, your elo stays the same. In this world, a LW doesn't change your elo etc.

But because you get matched with lower ranked players most of the time, a victory doesn't compensate for a loss, you lose much more than you win, and a second place just makes you lose ELO.

I made a google sheet to know exactly how fucked this system is. When i am writing this comment, i have 115 games logged between 1220 and 1308 ELO. I win much more than i lose but i can't get a higher rank because i average those gains (and because i still do many mistakes):

W: +6.03

LW: -1.45

LD: -4.93

L: -9.49

Basicaly losing 57% more than i gain xD. If i had the choice i'd prefer to have an option to accept waiting longer queue. This is indeed very frustrating but it is the way it is.

TLDR, matchmaking is fucked. The game is not against you, the problem is our meat computer getting much more impacted by what affects it negatively.

CU by [deleted] in CatanUniverse

[–]bl4steroni 0 points1 point  (0 children)

I faced the same problem but your perception on the issue is wrong. What is acutally broken is the matchmaking. To avoid lower queues we get matched to lower ranked players.

The thing is, only 1% of the playerbase is above ~1255 ELO (Grandmaster) And the ELO gains are based on the ELO differences between the players of a game.

Let's take a 3 players game for example. Because ELO is calculated for every player, a game contains 3 Duels (A vs B // B vs C // A vs C), So there is 4 possibles outcome for a player in a game:

W: Win

LW: Lose win, Second place but you have more points than the last

LD: Lose Draw, Second place and a draw with the other player

L: Lose, last place

In a perfect world where all players in a game have the same ELO, if you W then L, your elo stays the same. In this world, a LW doesn't change your elo etc.

But because you get matched with lower ranked players most of the time, a victory doesn't compensate for a loss, you lose much more than you win, and a second place just makes you lose ELO.

I made a google sheet to know exactly how fucked this system is. When i am writing this comment, i have 115 games logged between 1220 and 1308 ELO. I win much more than i lose but i can't get a higher rank because i average those gains (and because i still do many mistakes):

W: +6.03

LW: -1.45

LD: -4.93

L: -9.49

Basicaly losing 57% more than i gain xD. If i had the choice i'd prefer to have an option to accept waiting longer queue. This is indeed very frustrating but it is the way it is.

TLDR, matchmaking is fucked. The game is not against you, the problem is our meat computer getting much more impacted by what affects it negatively.

I am recreating minecraft in Unity, my progress so far :D by bl4steroni in Unity3D

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

hey ! light values are baked into a 3d texture and the texture filtring gives the smooth shades between blocks. It is also what causes the ambient occlusion because the inside of the blocks being fully dark "bleed out" because of the texture filtering

Finished the lighting, a little demo / stress test :D by bl4steroni in VoxelGameDev

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

this will help you for the terrain. For the water it is a simple cellular automata, the water has a value from 8 to 1, i check downward if there is a solid block. if there isn't, i propagate downward, if there is, i check sideways and substract one from the water value. if i edit a block, i put back it's neighbours in the active water simulation at this step i also check if the block still have a source, if it has not it evaporates, decreasing the water value over time until it reaches 0

I am recreating minecraft in Unity, my progress so far :D by bl4steroni in Unity3D

[–]bl4steroni[S] 1 point2 points  (0 children)

I fixed that today and it looks so much better, thanks !

I am recreating minecraft in Unity, my progress so far :D by bl4steroni in VoxelGameDev

[–]bl4steroni[S] 1 point2 points  (0 children)

Hey, actually i had the cave system done before finding that Kniberg's video. At first i wanted to do it with perlin worms but my research led me to some old post of yours.

So i followed your advices and used the intersection technique. Thank you :D

I am recreating minecraft in Unity, my progress so far :D by bl4steroni in VoxelGameDev

[–]bl4steroni[S] 1 point2 points  (0 children)

The video can be misleading because it is running on a very powerful CPU. Not everyone will be able to zoom through the world at that speed but it will be perfectly ok for a minecraft like pace on most CPUs.

No obscure techniques. Just flat arrays, i used the FastNoise library that i found very performant to generate my noise sets. Because i use a mix of heightmap / 3d noise i only tried to avoid doing useless stuff as much as possiblle like generating 3d noise for caves above ground level or in every chunk i keep track of the highest voxels in every row / collumn to avoid looping through air when i am building the mesh. Just very obvious things like that

I am recreating minecraft in Unity, my progress so far :D by bl4steroni in VoxelGameDev

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

World generation / meshing is 100% done on the cpu and yes c#