Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Платформа Electron нам доказывает обратное. И да, я старый и ворчливый, но по делу.
UPD: Хоть это и не имеет отношения к игростроению...
Ключевое слово "иногда" в значении "только иногда", верно?
[Прим. пер.: Youtube ужасно пережимает видео, лучше смотреть демо на Javascript в оригинале статьи.]

Помнится на Speccy этот эффект (с практически идентичным алгоритмом реализации) был весьма популярен году в 1997-м или даже несколько раньше.
;╔════════════════════─────────────
;╟ CopyRight by Leushin Dmitry 2:5031/1.46@fidonet
;╚══════════════════════════════════─────────────────────
.MODEL TINY
.CODE
.386
ASSUME CS:@CODE,DS:@CODE
ORG 100H
START:
MOV AX,13H
INT 10H
CWD
XOR CX,CX
C8: MOV AX,1010H ;3
INT 10H ;2
CMP BL,63 ;3
JB SHORT C9 ;2
INC CH ;2
DB 03Dh ;1
C9: INC DH ;2
INC BL ;2
JNZ SHORT C8 ;2 = 23
PUSH 0A5D0H
POP DS
C0: MOV BH,20h
C1: CWD
DEC BX
MOV CX,3 ; 3
CP: ADD DL,DS:[BX] ; 2
ADC DH,0 ; 2
INC BX ; 1
LOOP CP ; 2
ADD DL,DS:[BX+318] ;
ADC DH,0
SHR DX,2
JZ SHORT C5
DEC DX
C5:
MOV DS:[BX-322],DL
DEC BX
CMP BH,9Eh
JNZ SHORT C1
MOV CX,320
C2: XOR DX,DS:[BX]
DEC DX
MOV DS:[BX],DX
DEC BX
LOOP C2
; MOV AH,01H
; INT 16H
; JZ SHORT C0
IN AL,60H
AAA
JB SHORT C0
MOV AX,03H
INT 10H
RET
END START

В коде нижний левый угол это нулевой индекс массива, а верхний правый угол имеет индекс FIRE_HEIGHT * FIRE_WIDTH — 1.
Как было реализовано пламя в Doom на Playstation