0xPARC Profile picture
Jun 30 10 tweets 6 min read
1/ [New Post] On-chain Procedural Generation

@nibnalin and @gubsheep present a new blog post on the use of procedural generation for on-chain game world building.

0xparc.org/blog/procgen
2/ Much of the of @0xPARC community works on on-chain games and autonomous worlds: @darkforest_eth, @latticexyz, @exgrasia, and more

All three of these projects use procedural generation (and Perlin noise in particular) for efficiently building rich, intricate on-chain worlds. ImageImage
3/ Why do on-chain games use procgen?

Unlike other modern games, on-chain games deal with one big constraint — storage cost!

Using procedural generation allows on-chain games to compute map tiles on-demand, saving storage costs for large/infinite maps.
4/ A procedural generation algorithm is essentially a trick to compress a complex world into an executable.

Much like gamedev in the resource-constrained days of the 90s, developing on-chain worlds is an exercise in being creative & hacky with the limited compute available.
5/ How do games use procgen?

Worlds generated purely randomly with no deeper coherence start feeling stale quickly. Without locality or progression, gameplay degenerates into pulling slot machine levers. Procgen bridges this gap — creating structured, consistent randomness.
6/ This blog post builds up to the Perlin Noise procgen algorithm, starting from simple wave functions super-positioned to create a wave that's locally consistent, yet globally random.

streamable.com/hqwrua
7/ Next, these wave functions are extended to 2-D grids, creating a heatmap or "terrain map." Function outputs can then be thresholded to create a blobby map resembling an archipelago. ImageImage
8/ The post demonstrates how to impose other global patterns onto these on-chain worlds, exploring different tricks used to create global consistency: super-positioning handwritten functions, switching coordinate systems or simply giving maps a fresh coat of paint! ImageImageImageImage
9/ All explorations in the blog are accompanied by open-source solidity and TS code demos. The blog also links readers to solidity library and ZK-SNARK circuit implementations (s/o @darkforest_eth) of Perlin Noise for use in their own experiments.

github.com/nalinbhardwaj/…
10/ We hope this blog inspires readers to explore the unique affordances of blockchains by creating their own crypto native games and building *fun* blockchain experiences.

Thanks to @alanluo_0 for introducing us to procgen and sharing many educational resources!

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with 0xPARC

0xPARC Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @0xPARC

Jun 5
1/ [New Post] zkREPL: An Online Development Environment for zkSNARKs

@antimatter15 presents zkREPL and a new set of tools for interacting with the Circom toolstack in-browser.

0xparc.org/blog/zkrepl
2/ Try out zkREPL at the link below! Build, compile, and test your circuit in-browser in seconds—no installation or dependency management needed. Multiple 0xPARC teams have been using zkREPL to prototype and test complex circuits in the past few months.

zkrepl.dev
3/ First off, why do we need tools like zkREPL? A bit of history…
Read 14 tweets
Apr 28
1/ [New post] ZK Identity: Why and How (Part 2)

Primitives for ZK-enabled decentralized identity systems are coming online rapidly. In our last post on the topic, we touched on the “why” of ZK identity. This time, we’ll dive into the “how.”

0xparc.org/blog/zk-id-2
2/ As a reminder from part 1, SNARKs promise to revolutionize identity online because they (1) allow us to make arbitrary credible claims while (2) maintaining privacy.



0xparc.org/blog/zk-id-1
3/ We see four "building blocks" emerging as key components to support for the future of zk-identity:

1. UX and application design patterns
2. ZK circuits for cryptographic identity primitives
3. Developer tooling and infrastructure
4. Circuit auditing and verification
Read 17 tweets
Feb 15
Earlier today, @0xB07DAD pointed out a flaw in the current StealthDrop system that allows users to double-claim. The vulnerability (and the fix strategy) are instructive for anyone interested in building ZK systems; the StealthDrop team asked us to share a summary! (1/n)
First, to repeat - community projects like this are *highly experimental* and *not suited for production-grade use* (yet!). We share community projects and encourage teams to open-source these projects for feedback and for educational value, but... (2/n)

these demonstrations are NOT appropriate for use in production-grade code. For more ZK applications to become production-ready, we'll need to build an ecosystem of auditors, reviewers, and verification tools. (3/n)

Read 26 tweets
Feb 14
[New post] StealthDrop: Anonymous Airdrops Using ZK Proofs

@nibnalin, @yush_g, and Adhyyan S. present StealthDrop, an anonymous airdrop utility using circom-ecdsa, enabling anonymous governance. (1/n)

(post in README of github repo)

0xparc.org/blog
As a proof of concept, all @darkforest_eth players who have linked their address to a twitter handle, and all @ETHUniversity students, can claim a Stealthdrop token on xDAI anonymously at the demo website below: (2/n)

stealthdrop.xyz
The code for StealthDrop is open-source under GPL3 license at the link below. A few disclaimers in the next tweet... (3/n)

github.com/nalinbhardwaj/…
Read 16 tweets
Feb 8
[New post] zkSNARKs for ECDSA (Part 1)

@theyisun, Tony L, @xu3kev, and @gubsheep present an efficient proof-of-concept implementation of zkSNARK circuits for ECDSA algorithms in circom. (1/n)

0xparc.org/blog/zk-ecdsa-1
Our main contribution is the circom-ecdsa repository, which includes a collection of (unaudited) ZK circuits for non-native field arithmetic, secp256k1 curve operations, ECDSA algorithms, and ETH private-key/address operations. (2/n)

github.com/0xPARC/circom-…
zkSNARKs for ECDSA enable users to make claims like:
- I own a @darkforest_eth NFT, but I won't tell you which one.
- I possess enough signed votes to pass a DAO proposal, but I won't reveal the IDs of the voters.
- I can claim an airdrop, but I won't reveal my address.
(3/n)
Read 14 tweets
Oct 29, 2021
We're excited to announce 0xPARC: Program for Applied Research in Cryptography. (1/n)
0xPARC is a new organization supporting decentralized application R&D. We aim to foster a budding community of researchers, developers, thinkers, and builders - a distributed "skunk works" for the Ethereum and decentralized tech ecosystems. (2/n)
Projects we currently support include @darkforest_eth, @ETHUniversity, Project Sophon, @reboot_hq, and several more experimental applications currently in development. (3/n)
Read 10 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(