{"id":271,"date":"2026-11-01T02:03:56","date_gmt":"2026-11-01T02:03:56","guid":{"rendered":"https:\/\/robinclapworthy.com\/?p=271"},"modified":"2026-11-01T02:03:57","modified_gmt":"2026-11-01T02:03:57","slug":"doom-fire-in-visual-foxpro-9-seriously-%f0%9f%94%a5","status":"publish","type":"post","link":"https:\/\/robinclapworthy.com\/?p=271","title":{"rendered":"DOOM Fire. In Visual FoxPro 9. Seriously. \ud83d\udd25"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I was watching a YouTube video explaining how the original DOOM fire effect works.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No fancy animation. No video files. Just 37 colours, a grid of numbers and some very clever mathematics.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And naturally, I thought\u2026<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u201cHang on. Could I do that in Visual FoxPro?\u201d<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Well, apparently, yes. \ud83d\ude02<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We&#8217;ve now got a working procedural fire simulation running entirely in VFP9. The flames flicker, rise and change continuously, all generated in real time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">And surprisingly, it looks rather good!<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The plan? See whether we can use it to give the enormous mothership in <em>Galactic Gladiators<\/em> some seriously impressive engine exhaust.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Is this a sensible use of a database programming language from the 1990s?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Absolutely not.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>But I&#8217;m doing it because it&#8217;s difficult. And it&#8217;s stupid.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">More soon\u2026<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Galactic Gladiators \u2014 Seeing what&#8217;s possible.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#VisualFoxPro #GameDev #DOOM #RetroGaming #ProceduralGraphics<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-video\"><video height=\"548\" style=\"aspect-ratio: 656 \/ 548;\" width=\"656\" controls src=\"https:\/\/robinclapworthy.com\/wp-content\/uploads\/2026\/11\/Doom-Fire-Demo.mp4\"><\/video><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>I was watching a YouTube video explaining how the original DOOM fire effect works. No fancy animation. No video files. Just 37 colours, a grid of numbers and some very clever mathematics. And naturally, I thought\u2026 \u201cHang on. Could I do that in Visual FoxPro?\u201d Well, apparently, yes. \ud83d\ude02 We&#8217;ve now got a working procedural &#8230; <a title=\"DOOM Fire. In Visual FoxPro 9. Seriously. \ud83d\udd25\" class=\"read-more\" href=\"https:\/\/robinclapworthy.com\/?p=271\" aria-label=\"Read more about DOOM Fire. In Visual FoxPro 9. Seriously. \ud83d\udd25\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6],"tags":[],"class_list":["post-271","post","type-post","status-publish","format-standard","hentry","category-lawnpro"],"_links":{"self":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/271","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=271"}],"version-history":[{"count":1,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/271\/revisions"}],"predecessor-version":[{"id":273,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=\/wp\/v2\/posts\/271\/revisions\/273"}],"wp:attachment":[{"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=271"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=271"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robinclapworthy.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=271"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}