init
This commit is contained in:
commit
c7069dfbca
104
notes.txt
Normal file
104
notes.txt
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
higher frequency -> more random variation quicker
|
||||||
|
amplitude (or multiplier) -> how much it adds to the output
|
||||||
|
|
||||||
|
---
|
||||||
|
Rainfall: Dry -> Wet (desert -> rainforest)
|
||||||
|
Variation (seasonality)
|
||||||
|
Altitude: Low -> High (deep ocean -> mountains)
|
||||||
|
Variation (flat -> craggy)
|
||||||
|
Temperature: Freezing -> Boiling (arctic -> desert)
|
||||||
|
Variation (seasonality)
|
||||||
|
Soil: Soft -> Hard (fertile soil -> hard rock)
|
||||||
|
Variation (seasonality, would only apply for soil?)
|
||||||
|
---
|
||||||
|
Spring: warmer, wetter
|
||||||
|
Summer: dry, hot
|
||||||
|
Fall: dry, cooling
|
||||||
|
Winter: cold, wet
|
||||||
|
|
||||||
|
Vegetation: None -> Covered (barren -> rainforest)
|
||||||
|
Variation (seasonality)
|
||||||
|
|
||||||
|
Rainforest: >0.75 rain, >0.5 and <0.75 temperature
|
||||||
|
Desert: <0.25 rain, >0.6 or <0.3 temperature
|
||||||
|
Tundra: <0.25 temperature, <0.5 rain
|
||||||
|
Taiga: <0.1 temperature, >0.25 rain?
|
||||||
|
Grassland: <0.4 and >0.25 rain, >0.25 temperature
|
||||||
|
Savanna: >0.4 and <0.6? rain, >0.25 temperature
|
||||||
|
|
||||||
|
Tropical Rainforest: wet & wetter seasons, warm year-round
|
||||||
|
Temperate Forest: four distinct seasons (fall, winter, spring, summer)
|
||||||
|
Desert: rare rain, extreme heat and cold
|
||||||
|
Tundra: flat and cold, shallow soil and permafrost below it, growth only in summer
|
||||||
|
Taiga: long cold winters, needle-leaf trees
|
||||||
|
Grassland: just wet enough for grasses, herbs, and herbavores to survive
|
||||||
|
Savanna: slightly wetter than grassland, some trees appear, tall-legged animals
|
||||||
|
Freshwater: lakes, streams, rivers
|
||||||
|
Marine: salt-water oceans
|
||||||
|
|
||||||
|
Temperature should change based on height.
|
||||||
|
|
||||||
|
Cold, dry, green. Biome categories separated by temperature.
|
||||||
|
(Should also separate based on waterfall?)
|
||||||
|
Aquatic vs land. Dry vs wet. Lush?
|
||||||
|
|
||||||
|
MC biomes:
|
||||||
|
- Snowy Tundra
|
||||||
|
- Ice Spikes
|
||||||
|
- Snowy Taiga
|
||||||
|
- Snowy Taiga Mountains
|
||||||
|
- Frozen River
|
||||||
|
- Snowy Beach
|
||||||
|
- Mountains
|
||||||
|
- Gravelly Mountains
|
||||||
|
- Wooded Mountains
|
||||||
|
- Taiga
|
||||||
|
- Taiga Mountains
|
||||||
|
- Giant Tree Taiga
|
||||||
|
- Giant Spruce Taiga
|
||||||
|
- Stone Shore
|
||||||
|
- Plains
|
||||||
|
- Sunflower Plains
|
||||||
|
- Forest
|
||||||
|
- Flower Forest
|
||||||
|
- Birch Forest
|
||||||
|
- Tall Birch Forest
|
||||||
|
- Dark Forest
|
||||||
|
- Dark Forest Hills
|
||||||
|
- Swamp
|
||||||
|
- Swamp Hills
|
||||||
|
- Jungle
|
||||||
|
- Modified Jungle
|
||||||
|
- Jungle Edge
|
||||||
|
- Modified Jungle Edge
|
||||||
|
- River
|
||||||
|
- Beach
|
||||||
|
- Mushroom Fields
|
||||||
|
- Mushroom Field Shore
|
||||||
|
- The End
|
||||||
|
- Small End Islands
|
||||||
|
- End Midlands
|
||||||
|
- End Highlands
|
||||||
|
- End Barrens
|
||||||
|
- Desert
|
||||||
|
- Desert Lakes
|
||||||
|
- Savanna
|
||||||
|
- Shattered Savanna
|
||||||
|
- Badlands
|
||||||
|
- Eroded Badlands
|
||||||
|
- Wooded Badlands Plateau
|
||||||
|
- Modified Wooded Badlands Plateau
|
||||||
|
- Plateau
|
||||||
|
- Modified Plateau (much more shattered)
|
||||||
|
- Nether
|
||||||
|
- Warm Ocean
|
||||||
|
- Lukewarm Ocean
|
||||||
|
- Deep Lukewarm Ocean
|
||||||
|
- Ocean
|
||||||
|
- Deep Ocean
|
||||||
|
- Cold Ocean
|
||||||
|
- Deep Cold Ocean
|
||||||
|
- Frozen Ocean
|
||||||
|
- Deep Frozen Ocean
|
||||||
|
- The Void
|
||||||
|
- * Hills
|
66
src/main.moon
Normal file
66
src/main.moon
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
w, h = love.graphics.getDimensions!
|
||||||
|
cellSize = 5
|
||||||
|
|
||||||
|
-- Rainfall: Dry -> Wet (desert -> rainforest)
|
||||||
|
-- Variation (seasonality)
|
||||||
|
-- Altitude: Low -> High (deep ocean -> mountains)
|
||||||
|
-- Variation (flat -> craggy)
|
||||||
|
-- Temperature: Freezing -> Boiling (arctic -> desert)
|
||||||
|
-- Variation (seasonality)
|
||||||
|
-- Soil: Soft -> Hard (fertile soil -> hard rock)
|
||||||
|
-- Variation (seasonality, would only apply for soil?)
|
||||||
|
|
||||||
|
colors = {
|
||||||
|
desert: { 255/255, 210/255, 33/255, 1 }
|
||||||
|
ocean: { 73/255, 132/255, 252/255, 1 }
|
||||||
|
mountains: { 140/255, 58/255, 0, 1 }
|
||||||
|
"tropical rainforest": { 8/255, 71/255, 0, 1}
|
||||||
|
tundra: { 196/255, 0, 26/255, 1 }
|
||||||
|
taiga: { 175/255, 45/255, 63/255, 1 }
|
||||||
|
grassland: { 38/255, 160/255, 1/255, 1 }
|
||||||
|
savanna: { 183/255, 141/255, 14/255, 1 }
|
||||||
|
}
|
||||||
|
|
||||||
|
biomes = {
|
||||||
|
desert: { precipitation: { 0, 0.2 } }
|
||||||
|
ocean: { altitude: { 0, 1/3 } }
|
||||||
|
mountains: { altitude: { 0.8, 1 } }
|
||||||
|
"tropical rainforest": { precipitation: { 0.8, 1 }, temperature: { 0.8, 1, variation: { 0, 0.2 } } }
|
||||||
|
tundra: { altitude: { 0, 1, variation: { 0, 0.1 } }, temperature: { 0, 1/3 } }
|
||||||
|
taiga: { temperature: { 0.1, 1/3, variation: { 0, 1/3 } }, precipitation: { 0.2, 0.5 } }
|
||||||
|
grassland: { precipitation: { 0.2, 1/3 } }
|
||||||
|
savanna: { precipitation: { 1/3, 0.42 } }
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Temperate Forest: four distinct seasons (fall, winter, spring, summer)
|
||||||
|
-- Freshwater: lakes, streams, rivers
|
||||||
|
-- Marine: salt-water oceans
|
||||||
|
|
||||||
|
map = {}
|
||||||
|
map.set = (x, y, v) ->
|
||||||
|
map[x] = {} unless map[x]
|
||||||
|
map[x][y] = v
|
||||||
|
map.get = (x, y) ->
|
||||||
|
if map[x]
|
||||||
|
return map[x][y] or { 0, 0, 0, 1 }
|
||||||
|
else
|
||||||
|
return { 0, 0, 0, 1 }
|
||||||
|
|
||||||
|
love.load = ->
|
||||||
|
for x = 1, w / cellSize
|
||||||
|
for y = 1, h / cellSize
|
||||||
|
r = love.math.noise x / 10, y / 10
|
||||||
|
map.set x, y, { r, r, r, 1 }
|
||||||
|
|
||||||
|
love.draw = ->
|
||||||
|
for x = 1, w / cellSize
|
||||||
|
for y = 1, h / cellSize
|
||||||
|
love.graphics.setColor map.get x, y
|
||||||
|
love.graphics.rectangle "fill", (x - 1) * cellSize, (y - 1) * cellSize, cellSize, cellSize
|
||||||
|
|
||||||
|
love.graphics.setColor 0, 0, 0, 1/3
|
||||||
|
love.graphics.rectangle "fill", 0, 0, w, 16
|
||||||
|
love.graphics.setColor 1, 1, 1, 1
|
||||||
|
love.graphics.print love.timer.getFPS!
|
||||||
|
|
||||||
|
love.keypressed = (key) -> love.event.quit!
|
49
tmp/main.moon
Normal file
49
tmp/main.moon
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
p = {}
|
||||||
|
scale = 200
|
||||||
|
for i=1,5000
|
||||||
|
t = love.math.random!
|
||||||
|
r = love.math.random!
|
||||||
|
if r > t
|
||||||
|
tmp = r
|
||||||
|
r = t
|
||||||
|
t = tmp
|
||||||
|
table.insert p, t
|
||||||
|
table.insert p, r
|
||||||
|
|
||||||
|
love.draw = ->
|
||||||
|
love.graphics.translate 0, scale
|
||||||
|
love.graphics.scale scale, -scale
|
||||||
|
-- love.graphics.points p
|
||||||
|
|
||||||
|
for i = 1, #p - 1, 2
|
||||||
|
t = p[i]
|
||||||
|
r = p[i+1]
|
||||||
|
|
||||||
|
R = 2/3 - r - (t - 1)
|
||||||
|
G = 2/3 + t / 3 - r / 4
|
||||||
|
B = 1 - t - r
|
||||||
|
|
||||||
|
if true
|
||||||
|
n = (G + B) / 2
|
||||||
|
R = (R + n * 2) / 2
|
||||||
|
G = (G + n) / 2
|
||||||
|
B = (B + n) / 2
|
||||||
|
|
||||||
|
if false and t - r * 5 > 0
|
||||||
|
R = (R + G) / 2
|
||||||
|
G = R - 0.2
|
||||||
|
if false and r > t * 3/4
|
||||||
|
n = R - (1 - t)
|
||||||
|
R = (R + n) / 2
|
||||||
|
if true
|
||||||
|
--R -= t - 1
|
||||||
|
G -= (t - 1) / 5
|
||||||
|
if false
|
||||||
|
R = 1
|
||||||
|
G = 0
|
||||||
|
B = 0
|
||||||
|
love.graphics.setColor R, G, B, 1
|
||||||
|
love.graphics.points t, r
|
||||||
|
|
||||||
|
love.keypressed = (key) ->
|
||||||
|
love.event.quit! if key == "escape"
|
Loading…
Reference in New Issue
Block a user