Симуляция распределения температуры и токсичности. Горение предметов. Как это работает.
Привет. Я добавил в игру симуляцию некоторых процессов на поверхности планеты. А именно распределение температуры и концентрации токсичных веществ между клетками.
Теперь, если хранить предметы около озера лавы, то они ожидаемо загорятся:)
Как это работает:
У каждой клетки есть параметры температуры и токсичности.
Температура и концентрация токсичных веществ распространятся от клеток с большими значениями на клетки, где этого добра меньше.
Также тепло и токсичность постепенно рассеиваются в атмосфере.
Есть клетки-источники тепла/токсичности, например, лава. В таких клетках температура/токсичность не рассеивается сама по себе, поэтому они могут нагревать (давайте дольше только в контексте тепла, чтобы не повторять постоянно про токсичность :) ) клетки.
Таким образом рядом с горячими клетками температура постепенно растет.
На перегретых клетках время от времени появляется эффект всполохов пара (их видно на видео рядом с лавой).
На клетках, где очень токсично, периодически появляются облака газа.
Этим признакам можно понять, что в таких клетках лучше особо долго не шастать.
Как горят предметы:
У предмета есть внутренние параметры: собственная температура, температура воспламенения, теплоемкость и теплоотдача.
Находясь в горячей клетке, предмет сам постепенно нагревается, пока не достигнет температуры воспламенения. Тогда начинается горение.
Когда предмет горит, клетка, в которой он лежит, временно становится источником тепла, а предмет отдает в нее много своего тепла.
Соседние клетки из-за этого тоже нагреваются, а предметы, которые в них лежат, могут загореться. Так получается цепная реакция, и огонь может распространяться дальше.
Чем выше температура клеток, тем вероятнее на них загорится предмет. И наоборот, как это видно на видео, огонь дошел до достаточно холодной клетки, не успел нагреть ее и потух.
Предмет может как сгореть полностью, так и оставить после себя угли и золу, которые уже не горят.
Пока гореть могут только предметы. Но я сделаю, чтобы в теплообмене участвовали персонажи, растения и здания.
Меня всегда восхищала симуляция огня в олдскульных рогаликах и майнкрафте. Хотелось допереть самому, как это делается :)