Симуляция распределения температуры и токсичности. Горение предметов. Как это работает. 

Привет. Я добавил в игру симуляцию некоторых процессов на поверхности планеты. А именно распределение температуры и концентрации токсичных веществ между клетками. 

Теперь, если хранить предметы около озера лавы, то они ожидаемо загорятся:) 

Как это работает:  

У каждой клетки есть параметры температуры и токсичности. 

Температура и концентрация токсичных веществ распространятся от клеток с большими значениями на клетки, где этого добра меньше. 

Также тепло и токсичность постепенно рассеиваются в атмосфере.

Есть клетки-источники тепла/токсичности, например, лава. В таких клетках температура/токсичность не рассеивается сама по себе, поэтому они могут нагревать (давайте дольше только в контексте тепла, чтобы не повторять постоянно про токсичность :) ) клетки. 

Таким образом рядом с горячими клетками температура постепенно растет. 

На перегретых клетках время от времени появляется эффект всполохов пара (их видно на видео рядом с лавой).

На клетках, где очень токсично, периодически появляются облака газа. 

Этим признакам можно понять, что в таких клетках лучше особо долго не шастать. 

Как горят предметы:

У предмета есть внутренние параметры: собственная температура, температура воспламенения, теплоемкость и теплоотдача. 

Находясь в горячей клетке, предмет сам постепенно нагревается, пока не достигнет температуры воспламенения. Тогда начинается горение. 

Когда предмет горит, клетка, в которой он лежит, временно становится источником тепла, а предмет отдает в нее много своего тепла. 

Соседние клетки из-за этого тоже нагреваются, а предметы, которые в них лежат, могут загореться. Так получается цепная реакция, и огонь может распространяться дальше. 

Чем выше температура клеток, тем вероятнее на них загорится предмет. И наоборот, как это видно на видео, огонь дошел до достаточно холодной клетки, не успел нагреть ее и потух. 

Предмет может как сгореть полностью, так и оставить после себя угли и золу, которые уже не горят. 

Пока гореть могут только предметы. Но я сделаю, чтобы в теплообмене участвовали персонажи, растения и здания.

Меня всегда восхищала симуляция огня в олдскульных рогаликах и майнкрафте. Хотелось допереть самому, как это делается :)