gimymblert
|
|
« Reply #360 on: June 29, 2019, 06:27:51 AM » |
|
Do You Copy? Dialog System and Tools in Firewatch
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #361 on: June 29, 2019, 01:47:37 PM » |
|
Artistic Style Transfer, Now in 3D!
|
|
|
Logged
|
|
|
|
|
BorisTheBrave
|
|
« Reply #363 on: July 14, 2019, 05:27:15 AM » |
|
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #364 on: July 30, 2019, 08:57:47 AM » |
|
Math for Game Programmers: Dark Secrets of the RNG
|
|
|
Logged
|
|
|
|
BorisTheBrave
|
|
« Reply #365 on: July 30, 2019, 01:55:24 PM » |
|
|
|
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #366 on: July 30, 2019, 11:08:00 PM » |
|
Math for Game Programmers: Dark Secrets of the RNG In the comments: David Johnston 3 days ago I know all the dark secrets of RNGs - I wrote the book on it. The first problem - he's looking for an ergodic generator, or use an Ornstein–Uhlenbeck process (mean reverting), which addresses the second problem too. It's sufficient to know that the edge case (or even close to it) is unlikely to happen in the lifetime of the universe and an OU process lets you compute the probabilities. The 8 second thing - leave the nondeterminstic source RNGs to the experts. We put a perfectly fine one in your CPU. The market pricing inbalance - If that's your concern, just weight the probabilities based on the market price in a way to pull it all back to a natural Pareto distribution. Random hashing - Uniquify every sub seed by appending to the seed instead of replacing and make sure the hash output is big enough - use a crypto hash to be sure. A hash can take an arbitary size input. You talk about the possibility of a collision with a hash - that's in the definition of a hash - A 'perfect' hash will still have collisions simply because the input space is larger than the output space. For a non colliding random output, use a CTR structure. It's enough to traverse every node in the tree and fill in a seed from a CTR structure that will definitely be unique. Would never have thought of the "append to the seed" trick, that's a good one!
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #367 on: August 02, 2019, 10:37:49 AM » |
|
Wait, that one is so evident to me, I didn't realize many people stumble on it, if you have a structured tree, it's a unique address therefore a unique seed. Also since binary number can be seen as a binary tree, you can ensure that as long as that the possibility is smaller than the binary representation to have bijonction of numbers by swapping and rotating subtrees. Which I was working on until I found perfect hash (in the binary space representation) do exist and I can just use that, because statistical distribution wasn't a thing I knew how to do.
|
|
|
Logged
|
|
|
|
JobLeonard
|
|
« Reply #368 on: August 02, 2019, 12:57:37 PM » |
|
if you have a structured tree, it's a unique address therefore a unique seed I think that's the non-obvious insight that you took for granted there (sounds logical, but you need to be aware of certain features of the tree)
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #369 on: August 02, 2019, 01:53:08 PM » |
|
To be frank I'm realizing most people probably approach procedural generation as independent module, ie they don't see as a tree but a sequence of system feeding each other (ie not even nested). For me you SHOULD approach procedural generation with the "language" model, ie you build a language parser with lexeme, atom, grammar, semantic and meaning.
The main problem is that people tend to approach it with "I have a goal" which lead them to a structural only approach (ie mimic the structure of the target) rather than "I have this to express" which supposed encoding meaning. Basically creating pcg to me is building a domain language. This shift some perception, for example people try to increase variety of input, which tend to produce noise (structure without meaning, or the oakmeal problem), while I tend to emphasize repetition, because meaning IS repetition, but it's not senseless repetition, it's repetition to enforce purpose. I don't approach target as "how it's structured" but "what does it mean", from which structure follows. Basically looking at a pcg algorithm tells you about the perception of the domain, it's basically reading the theory of the domain. That's why so many pcg fail, because they read as random placement, we start to see model that are expressing "progression" in the algorithm, but we rarely see expression of "art" (no man's sky being the rare one having a color pallet generator). Biome was a great invention to organize rules with hi level meaning, we can go further.
2cts
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #370 on: August 07, 2019, 01:20:17 PM » |
|
|
|
|
Logged
|
|
|
|
|
gimymblert
|
|
« Reply #372 on: August 07, 2019, 06:58:53 PM » |
|
|
|
« Last Edit: August 07, 2019, 07:09:22 PM by gimymblert »
|
Logged
|
|
|
|
|
oahda
|
|
« Reply #374 on: August 08, 2019, 12:52:13 AM » |
|
So weird that these style transfer things are suddenly moving so fast when I'd never heard of them before until it was brought to my attention in my devlog yesterday. Scary! Looks pretty cool!
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #375 on: August 09, 2019, 09:36:38 AM » |
|
Oh my, if you only discover style transfer ... can't wait to find out about this: Neural Doodles: Workflow Mockups for the Next Generation of Artists GauGAN: Changing Sketches into Photorealistic Masterpieces above was teh first one, 30mn per image, last one is a few second, it's getting close to real time, of which there is already a test: https://www.youtube.com/watch?v=ayPqjPekn7gResearch at NVIDIA: The First Interactive AI Rendered Virtual World I'm about to release an introductory explanation for dummies about neural network, programmer minded can understood, I have done it long ago, but I need to clean it up. But neural network are actually simple in practice, it's a bunch of mul add in arrays. With result fed in cascade to other arrays, the shape of that cascade (the architecture) being everything, so in the end it end up being about a bunch of array that constitute node in a graph. https://forums.tigsource.com/index.php?topic=68138.nEverything else is conjuncture about how it worked and observation about the effects of a given architecture, it's very approachable once you remove all the academic jargon. Which I will spend time decoding for others.
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #376 on: August 09, 2019, 09:38:48 AM » |
|
Also similar
We Fixed The Worst VFX Shot Ever
|
|
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #377 on: August 11, 2019, 02:51:42 PM » |
|
|
|
« Last Edit: August 11, 2019, 04:26:14 PM by gimymblert »
|
Logged
|
|
|
|
gimymblert
|
|
« Reply #378 on: August 11, 2019, 06:53:33 PM » |
|
|
|
|
Logged
|
|
|
|
kkairos
|
|
« Reply #379 on: August 11, 2019, 11:30:44 PM » |
|
Brian Walker - Procedural level generation in Brogue and Beyond
|
|
|
Logged
|
|
|
|
|