« first day (3459 days earlier)      last day (29 days later) » 

3:04 AM
Hey wow! I'm not on the first page of the recent reviewer list for the first post review queue!
 
3:22 AM
Do they teach in school that the pronoun I should be capitalized, like, always?
 
 
5 hours later…
8:48 AM
is it normal for Perlin noise to behave like this:
 0.0000  0.3062  0.5669  0.7560  0.8544  0.8536  0.7632  0.6094  0.4221  0.2184  0.0000
 0.0000  0.2937  0.5386  0.7060  0.7760  0.7419  0.6169  0.4313  0.2187  0.0006 -0.2173
 0.0000  0.2630  0.4735  0.6028  0.6357  0.5717  0.4245  0.2229  0.0031 -0.2108 -0.4097
 0.0000  0.2272  0.3989  0.4860  0.4788  0.3796  0.2083 -0.0007 -0.2127 -0.4047 -0.5656
 0.0000  0.1998  0.3423  0.3954  0.3447  0.1983 -0.0063 -0.2204 -0.4107 -0.5646 -0.6700
 0.0000  0.1895  0.3209  0.3496  0.2547  0.0579 -0.1831 -0.4038 -0.5672 -0.6701 -0.7071
the entire column is filled with zeroes
it happens sometimes when x=0, y=0, x=1 or y=1
 
 
1 hour later…
9:57 AM
Meh, new day, just re-read the conversation, it feels like I was speaking about another topic :P

Sorry for the confusion! I think @Vaillancourt was right and I mixed some terms up
 
greetings!
 
Hey @trollingchar!
 
Hello
Friday!
Hows it going ?
 
nothing changed
I'm reading about noise and its generation
 
nwp
Just get children.
Suggestion closed. Reason: Unable to reproduce
 
10:11 AM
Friday wooooh!
 
For map generation, people suggest generating elevation and moisture and use them to generate biomes. But what if I need biomes that are not defined by anything? I guess I should generate weights for each of them and compare them?
 
@trollingchar Then you probably want to assign a range of noise values to biomes, 0-0.3 is desert, 0.3-0.5 is forest etc.
 
nwp
That means that all deserts are surrounded by forest though. It's a bit tricky to get right.
Also I heard Perlin noise is the classic but not very good. There are better ways, but I forgot the name of the algorithm.
 
Good point, but moisture map does something similar
 
nwp
I think it was Simplex noise.
 
10:25 AM
Yeah it's really good, but it has a bit scary patent at least for 3D usage
 
The point is to remove corellation between adjacent biomes
i got so far:
  A A A A   B B B B   C C C C C C C C     A A A A A A A A A     C C C C C A A A   B B B B B B B A A   C C C C C C C C C
  A A A A   B B B B A A C C C C C C C     A A A A A A A A A     C C C C A A A A A   B B B B B A A A A   C C C C C C C   A
C A A A A   B B B B A A A C C C C C C     A A A A A A A A A B B   C C C A A A A A A   B B B A A A A A A C C C C C C A A A
C C A A A   B B B B A A A C C C C C B B   A A A A A A A A B B B B   C C A A A A A A A B B A A A A A A A A C C C C A A A A
 
nwp
Maybe you can make it so 0-0.3 is a biome and randomly select which biome it is. Not sure if that is implementable efficiently.
If you actually mean to remove correlations then that's extremely easy, just make 1 map per biome and they will be completely uncorrelated. But that's probably bad because you want biomes to be correlated.
 
what do you mean by making 1 map per biome? make exactly one biome?
 
nwp
No, you have 5 biomes, make 5 Perlin noise maps, use >0.7 on each map for the respective biome.
That way they will be completely uncorrelated and sometimes overlap.
 
10:40 AM
already did that, except that it takes the one with the highest value, not with >0.7
 
nwp
What do you mean by "takes the one with the highest value"?
 
we have noise functions for each biome. they return: 0.3, 0.5, 0.1, so we pick the biome B which has 0.5
 
nwp
I don't know what noise functions you mean and why they return those numbers and how you generate a map out of them.
 
I use noise::Perlin as generator and it takes 2d point as parameter and returns a number
 
nwp
And the number it returns is roughly evenly distributed between 0 and 1 and there are smooth transitions between points, right?
 
10:48 AM
yes, it's value of Perlin noise in that point
 
nwp
Right, so now you want to decide if it's biome B or not and you get a 0.51244325123. Normally you say that biome B is at values between x and y.
> we have noise functions for each biome. they return: 0.3, 0.5, 0.1, so we pick the biome B which has 0.5
You need a range, you can't just say "pick biome B at 0.5".
 
there are multiple generators with different seeds
like in the variant with elevation and moisture, but here there are A, B and C instead of them
 
 
3 hours later…
1:50 PM
Sometimes there are quite large areas where values of biomes are exactly equal, and sometimes they are even larger than biomes. I tried Perlin noise and OpenSimplex, those areas appear in both
 
the noise generates large patterns with a float value of like 0.6471262?
 
2:05 PM
How can you afford a dev in a small team that answers "I don't know, it's not my code" when that dev just modified something in it and you asked them why it's made like that?
 
@Tyyppi_77 well, not exactly
 
nwp
Sounds like a misunderstanding to me.
 
the max value of all generators is chosen
even more weird that it's double precision numbers
 
Sounds something I might say, like currently I've been making a comparatively small addition to a 6.5k LOC file, and while I understand what generally is going on, I probably couldn't give a good answer to why something works the way it does / why something is done the way it is.
However I'm good at deducing the general idea, spot patterns and see where I need to make my additions, so I don't have to know every corner of the system
@trollingchar And do you get a bunch of the max value?
Is this your custom noise or an existing library? Are you using them correctly?
 
I guess there are bugs in the library
 
2:10 PM
Sounds unlikely unless it's something you found on the 7th page on SourceForge
 
@Tyyppi_77 but in a code review, if I ask you why it's a tuple and not a struct? Would you dig in the code and give an answer or just shrug it off?
 
nwp
Did the dev add the tuple?
 
If the tuple was chosen & added by me, sure. If it wasn't I would also find it out for you, but might be a bit odded out by you asking me about already reviewed code
 
Reduced the number of biomes to 2. And it still outputs exactly same values for large areas
the area is a triangle
 
2:15 PM
@nwp No, they just coasted.
 
nwp
Then I totally understand their reaction. I use Qt every day, but if you ask me why they made things the way they are all I can say is "Because they are bad" or "I don't know".
 
"coasted"?
 
Ok, then maybe it's just me. This is old code; I expect people to think a bit of what they're doing and if they're doing the right thing. The tuple in this case seems to be easily replaceable by a struct, which would result in less overhead and code easier to read and maintain.
@Tyyppi_77 errr, "went on the automatic mode", without thinking? something like that ;)
@nwp Yeah, well the code it's about is something some other devs (some of them are no longer here), wrote, not an obscure library.
 
Is he a newer member on the team?
I could also see myself being a bit vary about "unnecessarily" changing code written by others, all though I am aware that it's not the healthiest attitude
 
nwp
I guess the question is if that dev is supposed to only use the code (like me with Qt) or understand and maintain it.
 
2:21 PM
No, they've been with us for a while, but started to work on that part of the software since the beginning of the project. Also, no one else works on that. So, really, it's no one's code...
@nwp It's more an add-and-maintain responsibility now, the software is not released, this part of the code is being touched for the first time, so, in my mind, it's the best time to update it and improve it. But yeah, that's probably just me :P Thanks for sharing :D
 
Oh well then, if they're "in charge" of that piece and original writers aren't around, that's sort of annoying yeah
All though maybe it might be a better approach to do this "improvement" review separate from code review of new code
 
nwp
Maybe talk to the dev and make clear that that code is now their responsibility.
 
@Tyyppi_77 Yeah; that's a bit part of the current issue: they did two things at once, that should have been done separately, but according to what they say, it's not exactly their choice.
@nwp Good idea!
 
3:25 PM
Pretty cool, I figured out that I can hide my ugly reflection class-variables from Intellisense by disabling reflection generation when __INTELLISENSE__ is defined
The intellisense compiler pass won't generate any of the metadata needed, so it won't be displayed
 
Ah, I wasn't aware of that!
 
Probably not terribly useful in general, I hadn't heard of it ever before
 
I guess one could try and use it for the public headers of a library, to hide the private/protected parts of it?
¯\_(ツ)_/¯
 
Probably in a library your users would kill you if you did something like that
 
3:41 PM
Hmm? Why would users care about the private variables that are in a library header?
 
Fair point I guess, I thought you were referring to like a details namespace, since Intellisense already doesn't show private stuff you can't access
 
Maybe the things that should not be seen by the intellisense should not be there anyway, though...
 
4:22 PM
true
 
4:55 PM
Looks like I'll be seeing a RAMMSTEIN show this August!
 
Cool! I really got into them during the summer/autumn, like I've always liked a few songs but I discovered a lot more then
 
Yeah, they're not super "accessible", as their albums are not on google play :/
And the only way to see them is during the summer festivals, last time I checked; this time it looks like it's a real show, but it's going to be outside, so I hope the weather will be nice!
 
5:12 PM
Not a Spotify fella, eh?
 
Nope, they have their stuff there?
 
Yup
 
Ok, that's good to know.!
 
Unless it's some sort of regional thing
Hmm yeah I see all of their albums on Google Play
 
grrr
:P
 
5:21 PM
Too raunchy lyrics for the feint-hearted Canadians? Except when seen live :D
 
hehe I wouldn't think so, the signer's other project, Lindemann, is available on google play
 
5:35 PM
Wow I had no idea one could inherit a lambda
Makes kinda sense though since it's syntax sugar for a structor anyways
 
 
2 hours later…
7:08 PM
I fail to see the context in what this could/should be used.
 
Passing a set of lambdas as "overloads" to std::visit can be implemented with a little two line helper structor that inherits from all the lambdas passed to it
template <typename... T> struct OverloadVisitor : T... { using T::operator()...; };
then std::visit(OverloadVisitor{ [](int) { ... }, [](float) { ... } }, variant);
Oh actually, there's also another line required for that to work, but I'm unable to deduce what the hell it does
template <typename... T> OverloadVisitor(T...)->OverloadVisitor<T...>;
 
Yeah, ok, I fail to see a use for this now in my situation,, maybe that's why I'm not super excited about it :P
 
It seems nicer than making a structor by hand when you want to overload for different types in a variant, but yeah if you're not (over)using (:D) (a lot of ) variants, then it's really not that useful
 
7:40 PM
Yeah, I think we only have variants in our event system
And I haven't reviewed it in years. Maybe the code would be simpler if I had written it in c++17, but who knows.
 
I've considered wrapping SDL_Event in a custom variant but haven't bothered yet
 
Looks like it wasn't critical enough :)
 
8:04 PM
they're digging a hole across the street
 
 
2 hours later…
9:38 PM
@Vaillancourt diggy diggy hole
 
 
2 hours later…
11:30 PM
watup peeps
what's an easy to add 2d physics engine for a c# monogame project?
I'm looking at box2d ports like box2dnet or farseer but some are old, some are WIP, firefox doesn't like farseer's site and idk what's good or not
maybe these are all old ones and there's something new cool and good
tapirgames.com/blog/open-source-physics-engines like this list was last updated in 2015
 

« first day (3459 days earlier)      last day (29 days later) »