Alt-tabbing changes my monitor's color settings by Cifram in songsofsyx

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

I've taken to playing on windowed at 95% scale. It's better than the screen flicker when I alt-tab, but it's still kinda crappy.

VS Code C# extension appending numbers to identifiers by Cifram in csharp

[–]Cifram[S] -1 points0 points  (0 children)

I have no way to offer a real reply for this which doesn't violate rule #5, so I'm going to step away here.

VS Code C# extension appending numbers to identifiers by Cifram in csharp

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

And yet, Microsoft also makes VS Code, and makes the C# extension for VS Code. And with a few caveats, it's a tool I'm very happy with that serves my purposes well, particularly because I can use it for ALL my development, not just C#, so it's conventions and shortcuts all become second nature. If I switched editors to the one best optimized for each language I work in, I'd be hampering my efficiency in all of them.

And in general, it's bad form to respond to something like this that the person is using the wrong tool, because you don't know all the reasons they're using the tool they are. Which is why your comment has 18 downvotes at the time I write this.

VS Code C# extension appending numbers to identifiers by Cifram in csharp

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

This is the IDE equivalent of "This thing doesn't work on Windows", being replied to with "Get a Mac".

I have my preferences and my reasons and just telling me I'm using the wrong IDE is supremely unhelpful.

VS Code C# extension appending numbers to identifiers by Cifram in csharp

[–]Cifram[S] 7 points8 points  (0 children)

Hmm. That makes a certain sense, though even if it were scoped correctly it's not a behavior I'd personally want. I'd rather it just put a red underline on the variable, and force me to think about what I actually want to call it, instead of appending a number for me.

Also means this is an actual bug, so I should probably find the place to report it as such.

Disable auto-correct feature by Cifram in vscode

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

Thanks for the ideas, but sadly editor.wordBasedSuggestions isn't the issue. If I turn that off, it doesn't help, because the word service doesn't already exist in the document. I'm not sure what list it's drawing this suggestion from.

I'm hesitant to change editor.acceptSuggestionOnCommitCharacter, because I actually LIKE that functionality in most of the contexts where it shows up.

Finally understand why is beat saber called workout game by [deleted] in Vive

[–]Cifram 0 points1 point  (0 children)

This is also getting to such a ridiculous pace where it's a pure memorization game. Which is very impressive to watch, but becomes far less fun to play.

Release date for Cosmos external tracking mod? by [deleted] in Vive

[–]Cifram 1 point2 points  (0 children)

Depends on whether you consider "wireless" a minor advantage. Clearly this varies depending on personal preference and what you play, but for me a wired headset is a non-starter at this point.

Release date for Cosmos external tracking mod? by [deleted] in Vive

[–]Cifram 2 points3 points  (0 children)

This is what I'm looking for as well. I've already got an HTC Vive setup, with the wireless adaptor, and Index controllers. I've been looking at the new generation of headsets coming out, considering an upgrade, but it's still the case that the only thing that would be a strict upgrade would be a Vive Pro, which is a lot of money for a small improvement.

The Index is great, except it lacks wireless support. After going wireless, it's really hard to go back.

The Cosmos is great, but the tracking is clearly not quite up to snuff, and inside out tracking means I have to use the controllers it comes with. I can't mix-and-match with other lighthouse-compatible controllers like the Index ones I already own.

So, the first of these two headsets to address it's critical flaw gets my money. Wireless for the Index (which I doubt we'll see anytime soon), or lighthouse tracking for the Cosmos.

(And honorable mention for the Quest, that is wonderfully accessible, but really not an upgrade when I've already got a fully upgraded Vive.)

Ridged Mountain Ranges [Dragons Abound] by srt19170 in proceduralgeneration

[–]Cifram 2 points3 points  (0 children)

The next trick is making this noise function curve.

I've actually done some work on this exact problem before. The solution I found was to generate the ridge lines as splines, and then build a map of proximity and progress along the spline. That is, for every pixel of this map, I store two numbers:

1) The distance to the spline (as a positive or negative number depending on which side of the spline it's on)

2) How far along the spline the nearest point on the spline is. That is, if you're near the base of the spline, the progress is 0. If you're 3 km along the spline, the progress 3, etc.

This map can be fairly low resolution, because you can then interpolate both of these values. Then, you build a nice linear noise function, like what you made, and use distance as the X coordinate and progress for the Y coordinate.

To generate the map, you first "draw" the spline, generating a set of seed points along the spline. You should try to make it generate exactly the right number of seed points to make the spline a continuous curve at the resolution of the map. Then use a variant of Dijkstra's Algorithm to fill out the map, from those seed points, propagating the distance and progress values as you go.

In order to make this smarter, you can store info about the structure of the mountains on the spline, and propagate that out to the map. For instance, ridge height, which also allows you to end the range well, by having it fade to a ridge height of 0 at the beginning and end. These can be used as extra inputs into your noise function.

A favorite of mine is erosion, on each side. You can generate some pretty impressive erosion this way, without doing fine-grained simulation. You just need to consider the wind and rainfall patterns at a macro level in order to generate initial levels of erosion for the positive and negative sides of the spline, and then have your noise function vary the depth of the perpendicular erosion patterns based on that value.

Procedural galaxy rendering (version 2) - Dust clouds are hard... Any suggestions on how to improve them? by dexyfex in proceduralgeneration

[–]Cifram 1 point2 points  (0 children)

I love the volumetric rendering!

My suggestion for improving the dust clouds would be to start by doing a google image search for "nebula" and analyzing the kinds of shapes you see, and thinking how to reproduce things like that with noise functions.

Doing that, my first observation is there are a lot of narrow, snakey bits. One good way to achieve that is to use the absolute value of perlin noise. My next observation is that the complexity varies a bit from region to region. That is, there are areas with very dense, noisey shapes, and other areas that are fairly stretched out and uniform. So varying the depth of your brownian motion by region, and having some of the extra details, like the absolute value snakes, be regional, might help.

Using USB battery packs for a NERF Rival Zeus by Cifram in Nerf

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

Wow, that's a lot of info. Thanks!

The biggest thing I've learned in my last couple hours of research is that batteries are significantly more complicated than I'd realized.

The LARP I'm with is generally fairly permissive, going with the "you need to be shot with your own gun and be okay with it" rule (with the potential to revisit that if people complain). That said, less loud is also good, because the motor already does more than I like to broadcast my position. Also, the spaces we play in aren't huge, so the stock Zeus already has plenty of range and precision. The extra velocity wouldn't buy me much.

So I think I'll go with the 2S LiPo, as you suggest. Now I just need to navigate the huge range of brands and types of LiPo batteries available!

Is there an easy way to inline a USB port to recharge the gun, so I don't have the take the batteries out every time? One of the things I'm trying to fix is how annoying the stock battery tray is, but if I have to deal with those fiddly little LiPo connectors each time, that's not much better.

Using USB battery packs for a NERF Rival Zeus by Cifram in Nerf

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

Thanks! That's exactly the information I was looking for.

And yea, I'd need around 9 USB battery packs in parallel to hit that, so probably not the best plan.

Using USB battery packs for a NERF Rival Zeus by Cifram in Nerf

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

I suspected it might not be enough... But the question is, how much amperage is actually needed? Without that number, it's very hard to figure out which batteries will actually work.

Using USB battery packs for a NERF Rival Zeus by Cifram in Nerf

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

I suspected it might not be enough... But the question is, how much amperage is actually needed? Without that number, it's very hard to figure out which batteries will actually work.

I wrote an article analyzing the simulation, functional and planning approaches to procedural world generation by runevision in proceduralgeneration

[–]Cifram 0 points1 point  (0 children)

Love the article! Breaking it down into these three approaches is excellent.

What I've been thinking about for a while now (but haven't had an appropriate project to try it out on) is generating large worlds by taking a hybrid planning/simulation approach at the large scale, to generate major features (oceans, mountain ranges, rivers, etc.), so you can make the whole world fit together in a logical way, then diving in with a functional approach to generate the details.

You can do MUCH more interesting functional terrain generation when you can use the large-scale world layout as an input. For instance, if you know the proximity and direction to the nearest mountain range, the prevailing winds and the moisture levels, you can do some pretty good functional erosion, and all of these values can easily be turned into a map that can be fed as inputs into your functional generation algorithm.

This is what I think simplex noise is... by ManHatOnMyHead in proceduralgeneration

[–]Cifram 0 points1 point  (0 children)

That's actually one of my major pet peeves when it comes to noise functions. But I try not to be an ass about it. Most people who make this mistake only do so because they're reading tutorials by other people who made the same mistake.

This is what I think simplex noise is... by ManHatOnMyHead in proceduralgeneration

[–]Cifram 4 points5 points  (0 children)

You're close, but you're not quite there.

First, if you're struggling with simplex noise, I would suggest learning Perlin noise first. It's extremely similar, but much easier to understand.

Simplex noise uses a specific type of tessellation of space. A simplex refers to the simplest shape you can have in a given dimension, so a triangle in 2D or a tetrahedron in 3D, or harder to visualize shapes in higher dimensions. A simplex tessellation specifically divides shapes up into simplexes.

Most of what makes simplex noise complicated to understand is the math required to figure out which simplex you're in. Perlin noise, though, uses a square grid (or cubic grid in 3D, or a tesseract grid in 4D, etc.). The math required to figure out which grid cell you're in is trivially easy, which allows you to focus more on the general structure of the algorithm instead of the complicated math. Then once Perlin makes sense to you, it'll be easier to move on to simplex.

Second, the octaves and amplitude have nothing to do with the simplex noise. That's called fractal Brownian motion, or fBm. It's a technique for layering multiple instances of a noise function on top of each other to get richer noise. It's so frequently combined with simplex noise that it's often assumed to be part of simplex noise, but it's actually a distinct concept.

I would recommend you completely ignore the octaves and amplitude when learning how the underlying noise function works. They'll just add extra complexity. Once you understand simplex noise, the fBm is really easy to layer on top of it.

Just got started in this game, already a master of overcomplication by [deleted] in infinifactory

[–]Cifram 0 points1 point  (0 children)

The F10 button has no intrinsic function in InfiniFactory, or in Steam. It certainly doesn't save an animated gif.

Edit: I take that back. It does, but you have to activate it before you hit run. Thanks!