Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1362000 Posts in 63514 Topics- by 55393 Members - Latest Member: sherylbutler

June 25, 2019, 03:05:30 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Procedural resource dump
Pages: 1 ... 15 16 [17] 18
Print
Author Topic: Procedural resource dump  (Read 44559 times)
JobLeonard
Level 10
*****



View Profile
« Reply #320 on: September 19, 2018, 10:44:55 AM »

@party trick: the problem would be *finding* the Shakespeare stuff
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #321 on: September 20, 2018, 07:16:04 AM »

Yes that's the point, how hard it would be, what's the procedure, etc ...
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #322 on: September 20, 2018, 07:20:08 AM »

Okay I got ahead and looked at what they said, since I forgot:
Quote
Party Tricks
They say that an infinite number of monkeys at an infinite number of typewriters will produce all the works of Shakespeare. If we use a k-dimensionally distributed generator with a large enough k, we know that all the works of Shakespeare are guaranteed to be produced eventually, it will just take an unimaginable amount of time to find them.

But that's assuming we search blindly.

We can instead contrive the state of the generator so that it will find them, thus creating a party trick. We set up the generator so that it will find a Shakespeare play, and then jump backwards from that point, creating a generator that produces millions or billions of random-looking numbers, and then, suddenly, a Shakespeare play, and then back to random numbers.

The extended generators provided by the C++ implementation of PCG family include a set function that can be used to create party trick generators, including ones that really do output Shakespeare

http://www.pcg-random.org/useful-features.html#party-tricks

Procedure: random  Shrug
difficulty: random  Shrug
cost: random  Shrug

Well  Facepalm why I expect less than that for a "random" generator.  Facepalm
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #323 on: September 20, 2018, 08:58:12 AM »

The trick is that once Shakespeare is found, you can use the ability of the generator to jump ahead to instantly get to Shakespeare from the seed.
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #324 on: September 20, 2018, 09:03:37 AM »

That's what I said?  Huh? It's random!





I mean I put the procedure to document it and not left others hanging out if that was true.
Here is teh code documentation:
Quote
It may seem strange to find some English text in the output of a random number generator, but that's what pcg32_k64's 64-dimensional equidistribution guarantees you—that every possible sequence of 64 32-bit values (i.e., 256 bytes) will occur in its staggering 22112 period, in fact they each occur 264 times.

The only difficulty is finding such sequences in all the noise.

The set operation means that you don't have to find such a state, you can create it.
http://www.pcg-random.org/using-pcg-cpp.html#state-type-pcg32-k64-pcg32-k64
« Last Edit: September 20, 2018, 09:15:22 AM by gimymblert » Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #325 on: September 21, 2018, 05:55:21 AM »

http://www.gamasutra.com/blogs/JustinReeve/20180919/326814/Realism_and_Legibility_in_OpenWorld_Level_Design.php
Realism and Legibility in Open-World Level Design
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #326 on: September 21, 2018, 07:45:13 AM »

That's what I said?  Huh? It's random!
No, it's pseudo-random Durr...?

But I think I get you now, after reading again:

- the internal state of the generator is as big as Hamlet, so any non-trivial seed like all zeros is useless
- the amount of jumps you need to make is likely a larger number than what fits into that state as well

(Honestly though, if you're into this stuff you should read up on information theory, especially Shannon entropy and Kolmogorov Complexity.

There are mathematically hard limits to lossless compression.
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #327 on: September 21, 2018, 08:02:21 AM »

I know about these two bits, that is the data transmitted depend on the shared dictionary of the emitter and receiver, basically it's about how "new" informations can be transmitted.

In the shannon model, an example often use is weather transmission, with up to 4 weather states, it will fail if you want to pass a fifth state that the receiver as no model for, so what you have done is essentially pass a reference to the correct state, not the state itself. In order to pass more state that is in the receiver, you will need to pass a description, which is where the Kolmogorov stuff start to apply more, but even that that's assuming you have the primitive to express the state to the receiver and that's the same problem of the receiver and emitter having shared references to communicate.

In that case a reference, the idea of the lossless pgc noise, is that that library "potentially" hold all human knowledge + an inordinate of irrelevant noise, so all you need to know is the reference to the start to that knowledge, which as small as the starting seed. It's basically an address to a virtual memory, aka "the library".

It's like recommending a book, I will pass you the reference to the books and you will decompress the data by accessing the book. In fact that's the idea behind deterministic progen, you have the fixed description and the permutation that define progen entity identity.

By the way the pgc code can only encode up to 256 octets in a sequence by abusing that "reference guessing" trick.

Edit: BTW 256 octets / 4 octet (32bit seed) = 64:1 fixed compressions ratio, assuming it actually work, there is still a limit since we can't create big enough state for arbitrary size. It will compress your 4k demo to 64o but that's without the size of the pgc random implementation size.
« Last Edit: September 21, 2018, 08:41:07 AM by gimymblert » Logged

JobLeonard
Level 10
*****



View Profile
« Reply #328 on: September 21, 2018, 03:43:42 PM »

Quote
In algorithmic information theory (a subfield of computer science and mathematics), the Kolmogorov complexity of an object, such as a piece of text, is the length of the shortest computer program (in a predetermined programming language) that produces the object as output. It is a measure of the computational resources needed to specify the object, and is also known as descriptive complexity, Kolmogorov–Chaitin complexity, algorithmic complexity, algorithmic entropy, or program-size complexity.
https://en.wikipedia.org/wiki/Kolmogorov_complexity

e.g. a string of infinite 0s can be described very concisely. A string of infinite truly random bits can, by definition, not be generated with less bits.

> In that case a reference, the idea of the lossless pgc noise, is that that library "potentially" hold all human knowledge + an inordinate of irrelevant noise, so all you need to know is the reference to the start to that knowledge, which as small as the starting seed. It's basically an address to a virtual memory, aka "the library".

The point is: how small that seed can actually be depends on the entropy of the information that you are trying to retrieve.

procedural generation works because it actually is very low entropy in information theory terms.

In her example she first compresses Hamlet through conventional means, because the idea is that finding the random string of bits of the compressed Hamlet is easier than the random string of bits of the unpacked one. But that compressed bit string already has quite a high information entropy, actually. You can't compress it that much further
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #329 on: September 21, 2018, 07:28:53 PM »

That's kinda the point? I'm not sure where you are going at?

I was just saying that any string of character can be found using a single seed, in fact you "only" have 4billions seeds which is the limit of the number of limited 256 octets sequence you can use with a 32bits, and I don't know if there is collisions (ie different seed produce the same sequence). It's not magical and I was saying it's still abide to those rules you mention, the seed is the minimal length description, even though some seed can further be compressed, it will be at the expense of writing extra code, which is an increase of the data size.

But it's also convenient because then you just have a reference and a single algorithm, so it generalized a lot. This won't have the entire wikipedia down to a single bit, that's not the point, precisely what you are objecting about?

I feel like we are saying the same thing in circle Huh?

more progen stuff anyway.
https://ukwrite.wordpress.com/2014/10/22/write-your-own-spooky-story-with-random-plot-generators/
Logged

JobLeonard
Level 10
*****



View Profile
« Reply #330 on: September 23, 2018, 11:54:34 AM »

,I'm getting at is this:

> To see if I can actually encode/compress stuff into a seed, how much and at what cost.

You honestly won't find much compression that much better than the existing methods. Procgen uses handcrafted patterns, even when applying noise.
Logged
JobLeonard
Level 10
*****



View Profile
« Reply #331 on: September 24, 2018, 07:01:44 AM »





Quote
IK Rig like Prototype Demo
Published on 20 Sep 2018

Showing off a few weeks worth of work trying to implement something similar to IK-Rigs from Ubisoft's GDC demo two year back. So far, the concept works by having a set of universal data that can be animated, then pushed through IK solvers then apply the results back to an armature bones.


https://github.com/sketchpunk/FunWithWebGL2


Good WebGL2 teaching channel in general!
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #332 on: November 13, 2018, 12:06:09 PM »




CitizenCon 2948 - Panel: Biome on the Range




Promethean AI Announcement Trailer


Promethean AI is everything I predicted
Logged

BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #333 on: November 14, 2018, 02:27:08 PM »

Procedurally Generated Infinite City

I'll also take the opportunity to plug my own library, DeBroglie for doing WFC based generations.
Logged
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #334 on: November 14, 2018, 05:13:16 PM »

Good stuff
Logged

Schrompf
Level 6
*

Currently off any meaningful development


View Profile WWW
« Reply #335 on: November 14, 2018, 11:12:19 PM »

I liked the CitizenCon video. Nothing spectaculary new, but a nice breakdown of generative techniques and nice images to illustrate.
Logged

Let's Splatter it and then see if it still moves.
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #336 on: November 17, 2018, 08:27:59 PM »




Delver Game Source Code Released
https://www.gamefromscratch.com/post/2018/11/16/Delver-Source-Code-Released.aspx
https://github.com/Interrupt/delverengine




Star Ruler 2 Source Code Released
https://www.gamefromscratch.com/post/2018/07/25/Star-Ruler-2-Source-Released.aspx
https://github.com/BlindMindStudios/StarRuler2-Source

https://github.com/fzi-forschungszentrum-informatik/gpu-voxels
GPU-Voxels is a CUDA based library which allows high resolution volumetric collision detection between animated 3D models and live pointclouds from 3D sensors of all kinds.
http://gpu-voxels.org/

https://www.youtube.com/watch?v=vtnJToPxBNo
Materialize -- An AMAZING Free Texture Map Generating Tool
https://www.youtube.com/watch?v=aXAkf7OHzGw
Materialize Now Open Source! Learn How To Build in Unity.

http://www.museth.org/Ken/OpenVDB_files/Museth_TOG13.pdf
VDB: High-Resolution Sparse Volumes with Dynamic Topology
http://www.museth.org/Ken/Publications.html

https://github.com/Miserlou/Minicraft
https://github.com/skeeto/Minicraft
http://ludumdare.com/compo/ludum%20-dare-22/?uid=398

https://jacksondunstan.com/articles/3850
Garbage Gotchas


https://80.lv/articles/free-procedural-board-game-map-generator/
Free Procedural Board Game Map Generator

https://www.youtube.com/watch?v=7Z1SgCmNZqk?
VRoid Studio -- Free 3D Anime Style Character Creator
https://vroid.pixiv.net/download.html
« Last Edit: November 17, 2018, 11:37:17 PM by gimymblert » Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #337 on: November 23, 2018, 01:11:35 PM »

http://www.polygonalmind.com/blog/how-we-build-an-entire-universe-in-a-year-and-a-half
How we built an entire universe in a year and a half.




FMX2017 Technical Directing Special: Real-time Volumetric Cloud Rendering




GCAP 2018; An Asset Worth a Thousand Words

Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #338 on: December 01, 2018, 08:37:35 PM »

https://blogs.unity3d.com/2018/11/30/children-of-morta-bringing-order-to-the-chaos-of-procedural-generation/
Children of Morta: Bringing order to the chaos of procedural generation
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #339 on: December 18, 2018, 07:04:57 AM »

https://www.atthegatesgame.com/news/weekly-update-1-the-map
Weekly Update #1 - The Map
Logged

Pages: 1 ... 15 16 [17] 18
Print
Jump to:  

Theme orange-lt created by panic