rileyjshaw / terra

:space_invader: JS library for simple biological simulations and cellular automata
http://rileyjshaw.com/terra/
MIT License
609 stars 46 forks source link

Remove global override of Math.random #27

Open rileyjshaw opened 8 years ago

rileyjshaw commented 8 years ago

Early on, I decided to use seedrandom's { global: true } option. It was a silly decision in retrospect.

The big change here is that seedrandom should be internal to terra and not pollute Math.random().

Following this thread, seeded RNG should really be handled more granularly anyway. Initial thoughts:

  1. Each terrarium is given a unique ID
  2. This ID is used to seed the terrarium's RNG

That way, a terrarium recipe and ID are all you need to perfectly reproduce a simulation. It'll no-longer be bound to other uses of random() on the page.

Thanks @benswinden for the heads up! :+1:

iangilman commented 8 years ago

Yes please! I just spent an hour trying to figure out why Math.random() always had the same values on my page...

I'm loving the library otherwise, though!