{"id":1114,"date":"2025-02-10T14:25:31","date_gmt":"2025-02-10T14:25:31","guid":{"rendered":"https:\/\/abdoubouam.com\/?p=1114"},"modified":"2025-02-10T14:25:31","modified_gmt":"2025-02-10T14:25:31","slug":"devlog-week-59-60","status":"publish","type":"post","link":"https:\/\/abdoubouam.com\/index.php\/2025\/02\/10\/devlog-week-59-60\/","title":{"rendered":"Devlog Week 59-60"},"content":{"rendered":"\n<p>As I mentioned last week, I&#8217;m focusing a bit more on my portfolio, so there&#8217;s less work done on the game. Here&#8217;s a summary of what I did.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dithering Effect<\/h2>\n\n\n\n<p>I had the idea to add some of the dream effects to the rest of the game. I tried it, but I didn&#8217;t like how it looked, so I created another one specifically for it. Here&#8217;s the end result.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview.jpg\" alt=\"\" class=\"wp-image-1108\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><figcaption class=\"wp-element-caption\">Final dithering effect<\/figcaption><\/figure><\/div>\n\n\n<p>I started with a 1-bit dithering effect first and then overlaid it on top of the render result. Here&#8217;s how the dithering effect looks on its own. If you zoom in you&#8217;ll notice it&#8217;s 1-bit (only black and white, no grayscale)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/dither_1-bit.jpg&quot;,&quot;figureClassNames&quot;:&quot;aligncenter size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1106&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1428,&quot;targetHeight&quot;:853,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1428\" height=\"853\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_1-bit.jpg\" alt=\"\" class=\"wp-image-1106\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_1-bit.jpg 1428w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_1-bit-300x179.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_1-bit-768x459.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_1-bit-1000x597.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_1-bit-230x137.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_1-bit-350x209.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_1-bit-480x287.jpg 480w\" sizes=\"(max-width: 1428px) 100vw, 1428px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Basic 1-bit dithering effect<\/figcaption><\/figure><\/div>\n\n\n<p>For anyone interested, here&#8217;s a breakdown :<\/p>\n\n\n\n<p>I Started with a 32x1px gradient, then scaling it up with the &#8220;nearest neighbor&#8221; filtering to 1024x32px, to avoid smoothing the result.<br><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1627\" height=\"250\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image.png\" alt=\"\" class=\"wp-image-1130\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image.png 1627w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-300x46.png 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-768x118.png 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-1536x236.png 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-1000x154.png 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-230x35.png 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-350x54.png 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-480x74.png 480w\" sizes=\"(max-width: 1627px) 100vw, 1627px\" \/><figcaption class=\"wp-element-caption\">A Gradient of 32 grayscale values<\/figcaption><\/figure><\/div>\n\n\n<p>Next I opened it in GIMP and switched the color mode from &#8220;RGB&#8221; to &#8220;Indexed&#8221; then picked &#8220;Use black and white (1-bit) palette&#8221; and chose &#8220;Positioned&#8221; for the color dithering method. I&#8217;m not sure if Photoshop can do this, but I&#8217;m sure you can find online tools if you don&#8217;t have GIMP already installed.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"448\" height=\"178\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-1.png\" alt=\"\" class=\"wp-image-1131\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-1.png 448w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-1-300x119.png 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-1-230x91.png 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-1-350x139.png 350w\" sizes=\"(max-width: 448px) 100vw, 448px\" \/><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"460\" height=\"422\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-2.png\" alt=\"\" class=\"wp-image-1132\" style=\"width:459px;height:auto\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-2.png 460w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-2-300x275.png 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-2-230x211.png 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-2-350x321.png 350w\" sizes=\"(max-width: 460px) 100vw, 460px\" \/><\/figure><\/div>\n\n\n<p>This is the result. Please note the actual resolution is 1024&#215;32 at this point, which is 32 squares of 32x32px. I manually fixed anything that didn&#8217;t look right, like obvious missing dots and such.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1069\" height=\"94\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-3.png\" alt=\"\" class=\"wp-image-1133\" style=\"width:790px;height:auto\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-3.png 1069w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-3-300x26.png 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-3-768x68.png 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-3-1000x88.png 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-3-230x20.png 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-3-350x31.png 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-3-480x42.png 480w\" sizes=\"(max-width: 1069px) 100vw, 1069px\" \/><\/figure><\/div>\n\n\n<p>Next I cut these all into squares, set the mix mode to &#8220;additive&#8221; and the opacity to 2%, then stacked them all on top of each other. This is the result so far. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1003\" height=\"571\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-4.png\" alt=\"\" class=\"wp-image-1134\" style=\"width:790px;height:auto\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-4.png 1003w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-4-300x171.png 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-4-768x437.png 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-4-1000x569.png 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-4-230x131.png 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-4-350x199.png 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-4-480x273.png 480w\" sizes=\"(max-width: 1003px) 100vw, 1003px\" \/><figcaption class=\"wp-element-caption\">Before The Levels Adjustment<\/figcaption><\/figure><\/div>\n\n\n<p>Notice that there are huge gaps in the histogram at the beginning and end, which means it&#8217;s not covering all the black and white range (there are no pure whites or pure blacks). This is where the levels adjustment comes in.  I also adjusted the gamma a little bit to make the values (peaks) as evenly spaced as possible, because they were a bit skewed toward the the whites.<br>Make sure to use 16-bit color depth to reduce precision errors.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1004\" height=\"580\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-6.png\" alt=\"\" class=\"wp-image-1136\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-6.png 1004w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-6-300x173.png 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-6-768x444.png 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-6-1000x578.png 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-6-230x133.png 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-6-350x202.png 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-6-480x277.png 480w\" sizes=\"(max-width: 1004px) 100vw, 1004px\" \/><figcaption class=\"wp-element-caption\">After The Levels Adjustment<\/figcaption><\/figure><\/div>\n\n\n<p>That&#8217;s all I need. I have a dithered gradient mask. The values go progressively from dark to bright in a dithered manner, and when combined with a threshold filter the pattern will reveal itself.<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video controls src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/Dither_Threshold.mp4\"><\/video><figcaption class=\"wp-element-caption\">Threshold<\/figcaption><\/figure>\n\n\n\n<p>In this case the threshold value is applied uniformly, but it can be variable in the game. So the idea is to overlay the dither mask texture over the entire screen, then use the rendered image to control the threshold value. Fortunately this is very simple to achieve in Unreal, all you have to do is use the following post-process material (Click to expand). I assume this is also simple in Unity and Godot as well, as long as you understand the logic.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/image-7.png&quot;,&quot;figureClassNames&quot;:&quot;aligncenter size-full is-resized&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1138&quot;,&quot;imgStyles&quot;:&quot;width:790px;height:auto&quot;,&quot;targetWidth&quot;:1918,&quot;targetHeight&quot;:962,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-full is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1918\" height=\"962\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7.png\" alt=\"\" class=\"wp-image-1138\" style=\"width:790px;height:auto\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7.png 1918w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7-300x150.png 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7-768x385.png 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7-1536x770.png 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7-1000x502.png 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7-230x115.png 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7-350x176.png 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-7-480x241.png 480w\" sizes=\"(max-width: 1918px) 100vw, 1918px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Dithering Post Process Effect<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/image-9.png&quot;,&quot;figureClassNames&quot;:&quot;aligncenter size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1141&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1434,&quot;targetHeight&quot;:874,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1434\" height=\"874\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-9.png\" alt=\"\" class=\"wp-image-1141\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-9.png 1434w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-9-300x183.png 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-9-768x468.png 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-9-1000x609.png 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-9-230x140.png 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-9-350x213.png 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/image-9-480x293.png 480w\" sizes=\"(max-width: 1434px) 100vw, 1434px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Dithering effect in the viewport (click on the image to Zoom-in)<\/figcaption><\/figure><\/div>\n\n\n<p>And here&#8217;s a gameplay recording with it. I rendered it at half resolution because the video compression will kill it otherwise<\/p>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video controls src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/1bit_dither.mp4\"><\/video><figcaption class=\"wp-element-caption\">Gameplay footage<\/figcaption><\/figure>\n\n\n\n<p>The hard part is done. All I did after that was pixelate the render to 1\/2 resolution and add the effect on top at low intensity. It&#8217;s subtle enough to not appear in medium-quality videos due to compression, so have some screenshots instead. Make sure to zoom it to view all the details.<\/p>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-2 wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/dither3.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1111&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1111\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3.jpg\" alt=\"\" class=\"wp-image-1111\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither3-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/dither2.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1110&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1110\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2.jpg\" alt=\"\" class=\"wp-image-1110\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither2-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/dither1.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1109&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1109\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1.jpg\" alt=\"\" class=\"wp-image-1109\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither1-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/dither_preview.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1108&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1108\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview.jpg\" alt=\"\" class=\"wp-image-1108\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/dither_preview-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<figcaption class=\"blocks-gallery-caption wp-element-caption\">Final result<\/figcaption><\/figure>\n\n\n\n<p>I&#8217;ll investigate later how I can reduce render resolution reliably to increase performance. For now it&#8217;s rendering at 75% resolution with TSR upscaling, then pixelated with a post process filter. That&#8217;s the only way it remains sharp and pixelated with the proper dithering effect, but I&#8217;d like to actually render it natively pixelated at 50% resolution without blurring the result.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Airsoft Rifle<\/h2>\n\n\n\n<p>This is what took most of my week. I treated this model as a product visualization, so I included beauty shots, animations, and even an assembly video. I didn&#8217;t bother with a lowpoly model, but the higher quality geometry and internals made up for any time I could have saved and then some.<br>Visit the ArtStation post for higher quality renders : <a href=\"https:\/\/www.artstation.com\/artwork\/qJNqry\">https:\/\/www.artstation.com\/artwork\/qJNqry<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-7.jpg&quot;,&quot;figureClassNames&quot;:&quot;aligncenter size-full&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1116&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7.jpg\" alt=\"\" class=\"wp-image-1116\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-7-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">Airsoft Rifle Render<\/figcaption><\/figure><\/div>\n\n\n<figure class=\"wp-block-video aligncenter\"><video controls loop src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/Rifle_Renders.mp4\"><\/video><figcaption class=\"wp-element-caption\">Beauty Shots<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-video aligncenter\"><video controls loop src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/Rifle_Assembly.mp4\"><\/video><figcaption class=\"wp-element-caption\">Assembly<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-11.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1126&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1126\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11.jpg\" alt=\"\" class=\"wp-image-1126\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-11-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-10.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1125&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1125\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10.jpg\" alt=\"\" class=\"wp-image-1125\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-10-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-9.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1124&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1124\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9.jpg\" alt=\"\" class=\"wp-image-1124\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-9-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-8.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1123&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1123\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8.jpg\" alt=\"\" class=\"wp-image-1123\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-8-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-6.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1122&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1122\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6.jpg\" alt=\"\" class=\"wp-image-1122\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-6-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-4.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1120&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1120\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4.jpg\" alt=\"\" class=\"wp-image-1120\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-4-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-3.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1119&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1119\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3.jpg\" alt=\"\" class=\"wp-image-1119\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-3-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-2.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1118&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1118\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2.jpg\" alt=\"\" class=\"wp-image-1118\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-2-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/AirsoftRifle-1.jpg&quot;,&quot;figureClassNames&quot;:&quot;wp-block-image size-large&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1117&quot;,&quot;imgStyles&quot;:null,&quot;targetWidth&quot;:1920,&quot;targetHeight&quot;:1080,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" data-id=\"1117\" src=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1.jpg\" alt=\"\" class=\"wp-image-1117\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1.jpg 1920w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1-300x169.jpg 300w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1-768x432.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1-1536x864.jpg 1536w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1-1000x563.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1-230x129.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1-350x197.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/AirsoftRifle-1-480x270.jpg 480w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<figcaption class=\"blocks-gallery-caption wp-element-caption\">Renders<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">HuskyDrift <\/h2>\n\n\n\n<p>I added physics to the game and changed the way it worked. There are now collisions and it reacts with the world. <\/p>\n\n\n\n<figure class=\"wp-block-video\"><video controls src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/HDriftPhysics.mp4\"><\/video><\/figure>\n\n\n\n<p>I&#8217;m still not too happy with the way it&#8217;s working right now with manually setting movement direction and such, because it&#8217;s not working nicely with the collisions and gravity, so I&#8217;m going to switch to adding acceleration instead and letting the physics engine handle the rest.<\/p>\n\n\n\n<p>I&#8217;ll add acceleration and rotation speed curves (relative to max speed), which will allow me to iterate fast and adjust how it feels.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;uploadedSrc&quot;:&quot;https:\\\/\\\/abdoubouam.com\\\/wp-content\\\/uploads\\\/2025\\\/02\\\/20250210_124237.jpg&quot;,&quot;figureClassNames&quot;:&quot;aligncenter size-large is-resized&quot;,&quot;figureStyles&quot;:null,&quot;imgClassNames&quot;:&quot;wp-image-1105&quot;,&quot;imgStyles&quot;:&quot;width:393px;height:auto&quot;,&quot;targetWidth&quot;:1836,&quot;targetHeight&quot;:2376,&quot;scaleAttr&quot;:false,&quot;ariaLabel&quot;:&quot;Enlarge image&quot;,&quot;alt&quot;:&quot;&quot;}\" data-wp-interactive=\"core\/image\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1484\" height=\"1920\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"http:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-1484x1920.jpg\" alt=\"\" class=\"wp-image-1105\" style=\"width:393px;height:auto\" srcset=\"https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-1484x1920.jpg 1484w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-232x300.jpg 232w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-768x994.jpg 768w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-1187x1536.jpg 1187w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-1583x2048.jpg 1583w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-1000x1294.jpg 1000w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-230x298.jpg 230w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-350x453.jpg 350w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237-480x621.jpg 480w, https:\/\/abdoubouam.com\/wp-content\/uploads\/2025\/02\/20250210_124237.jpg 1836w\" sizes=\"(max-width: 1484px) 100vw, 1484px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge image\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"context.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"context.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">notes<\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\">Other stuff<\/h2>\n\n\n\n<p>I am currently writing character stories and moving the game story to <a href=\"https:\/\/obsidian.md\/\">Obsidian<\/a> , which has exactly the features I&#8217;ve been looking for. I am also migrating my notes and bookmarks from other apps.<\/p>\n\n\n\n<p>I played Red Dead Redemption and Who&#8217;s Lila. One thing I noticed was how linear the story of Red Dead Redemption was : you only make one choice, and it&#8217;s wether to kill someone or walk away and let the others have the pleasure. There are no dialog options or anything like that, not in the main story at least. It&#8217;s still became my favorite Rockstar Games game, which proves that you don&#8217;t always need dialog options and branching paths to deliver a compelling story.<br>Who&#8217;s Lila is the polar opposite. There are over 16 different paths, and finding them all was interesting. It got a bit tedious with some of them, even with the gameplay not taking more than 10 minutes at most. I liked the 4th wall breaking puzzles (ARGs?). The story is simple enough, but the delivery is great.<\/p>\n\n\n\n<p>I gathered a lot of references for a walkie talkie and a rotary drill, which I&#8217;m going to model next for my portfolio.<\/p>\n\n\n\n<p>That&#8217;s all for this devlog, thanks for reading, and have a nice day.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I mentioned last week, I&#8217;m focusing a bit more on my portfolio, so there&#8217;s less work done on the game. Here&#8217;s a summary of what I did. Dithering Effect I had the idea to add some of the dream effects to the rest of the game. I tried it, but I didn&#8217;t like how it looked, so I created another one specifically for [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1111,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/posts\/1114"}],"collection":[{"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/comments?post=1114"}],"version-history":[{"count":5,"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/posts\/1114\/revisions"}],"predecessor-version":[{"id":1145,"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/posts\/1114\/revisions\/1145"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/media\/1111"}],"wp:attachment":[{"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/media?parent=1114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/categories?post=1114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/abdoubouam.com\/index.php\/wp-json\/wp\/v2\/tags?post=1114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}