# Adventures in Compose - The Doom fire effect

DevFeed: [Adventures in Compose - The Doom fire effect](<https://devfeed.tech/articles/adventures-in-compose-the-doom-fire-effect-25658.md>)

Original publisher: [Read original article](<https://adambennett.dev/2020/04/adventures-in-compose-the-doom-fire-effect/>)

Published: 2020-04-09T18:07:48Z

Content type: tutorial

Language: en

Sources: [Posts on Adam Bennett](<https://devfeed.tech/sources/posts-on-adam-bennett.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Development](<https://devfeed.tech/topics/development.md>), [Game engine](<https://devfeed.tech/topics/game-engine.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [android](<https://devfeed.tech/tags/android.md>), [blog](<https://devfeed.tech/tags/blog.md>), [career](<https://devfeed.tech/tags/career.md>), [compose](<https://devfeed.tech/tags/compose.md>), [development](<https://devfeed.tech/tags/development.md>), [doom](<https://devfeed.tech/tags/doom.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [examples](<https://devfeed.tech/tags/examples.md>), [finance](<https://devfeed.tech/tags/finance.md>), [functional](<https://devfeed.tech/tags/functional.md>), [games](<https://devfeed.tech/tags/games.md>), [growth](<https://devfeed.tech/tags/growth.md>), [java](<https://devfeed.tech/tags/java.md>), [jetpack](<https://devfeed.tech/tags/jetpack.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [money](<https://devfeed.tech/tags/money.md>), [opinions](<https://devfeed.tech/tags/opinions.md>), [programming](<https://devfeed.tech/tags/programming.md>), [software](<https://devfeed.tech/tags/software.md>), [startups](<https://devfeed.tech/tags/startups.md>), [thoughts](<https://devfeed.tech/tags/thoughts.md>), [training](<https://devfeed.tech/tags/training.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

## AI overview

A tutorial exploring how to recreate the Doom fire effect with Jetpack Compose. It discusses drawing on the screen, updating state in a loop, recomposition, and the limitations encountered with stochastic rendering and memoization.

## Source excerpt

Featured in Fragmented and jetc.dev. One of the best books I've bought in the last few years is the Game Engine Black Book: Doom by Fabien Sanglard. As someone who grew up on games but has never really thought about how they're made, it's been a fascinating book to dip in and out of, and there's some great bits of innovation detailed inside. There's an axiom about the greatest innovations spawning from constraints, and the original DOOM team had some pretty serious constraints around memory and processing power - things that we generally take for granted these days. Reading about how they solved problems in this environment is fascinating, and I highly recommend the book.