{"id":193162,"date":"2026-03-18T19:30:20","date_gmt":"2026-03-18T19:30:20","guid":{"rendered":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/"},"modified":"2026-03-18T19:30:20","modified_gmt":"2026-03-18T19:30:20","slug":"tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream","status":"publish","type":"post","link":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/","title":{"rendered":"Tetris Coding #1 &#8211; Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream"},"content":{"rendered":"<div class=\"youtubomatic-video-container\"><iframe loading=\"lazy\" width=\"580\" height=\"380\" src=\"https:\/\/www.youtube.com\/embed\/khc2Fc-XN7s?autoplay=1&#038;controls=1&#038;hl=en\" frameborder=\"0\" allowfullscreen><\/iframe><\/div>\n<p>Showing how to code Tetris in Odin, using Raylib for Educational Purposes.<br \/>\nQuestions and Suggestions are welcome in the comments.<\/p>\n<p>Watch at 2X speed to learn twice as fast.<\/p>\n<p>The art for the game was pulled mostly from pinterest, and the playfield collage was collaged by me.<\/p>\n<p>This is not a commercial product.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Showing how to code Tetris in Odin, using Raylib for Educational Purposes. Questions and Suggestions are welcome in the comments. Watch at 2X speed to learn twice as fast. The art for the game was pulled mostly from pinterest, and the playfield collage was collaged by me. This is not a commercial product.<\/p>\n","protected":false},"author":1,"featured_media":193163,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","tve_updated_post":"","tve_custom_css":"","tve_user_custom_css":"","tve_globals":{},"tcb2_ready":0,"tcb_editor_enabled":0,"tve_landing_page":"","_tve_header":"","_tve_footer":""},"categories":[1],"tags":[],"class_list":["post-193162","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Tetris Coding #1 - Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream - UshopWell.com<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tetris Coding #1 - Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream - UshopWell.com\" \/>\n<meta property=\"og:description\" content=\"Showing how to code Tetris in Odin, using Raylib for Educational Purposes. Questions and Suggestions are welcome in the comments. Watch at 2X speed to learn twice as fast. The art for the game was pulled mostly from pinterest, and the playfield collage was collaged by me. This is not a commercial product.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/\" \/>\n<meta property=\"og:site_name\" content=\"UshopWell.com\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-18T19:30:20+00:00\" \/>\n<meta name=\"author\" content=\"UShopWell\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"UShopWell\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/\"},\"author\":{\"name\":\"UShopWell\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#\\\/schema\\\/person\\\/6fd1f9e0ff932e534c86c70d5acff0fc\"},\"headline\":\"Tetris Coding #1 &#8211; Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream\",\"datePublished\":\"2026-03-18T19:30:20+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/\"},\"wordCount\":67,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/193162\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream.jpg\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/\",\"url\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/\",\"name\":\"Tetris Coding #1 - Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream - UshopWell.com\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/193162\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream.jpg\",\"datePublished\":\"2026-03-18T19:30:20+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/#primaryimage\",\"url\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/193162\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream.jpg\",\"contentUrl\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/193162\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream.jpg\",\"width\":480,\"height\":360,\"caption\":\"Tetris Coding #1 &#8211; Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tetris Coding #1 &#8211; Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#website\",\"url\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/\",\"name\":\"UshopWell.com\",\"description\":\"The Premiere Online Marketplace\",\"publisher\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#organization\",\"name\":\"UshopWell\",\"url\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/pandaSwea.png\",\"contentUrl\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/wp-content\\\/uploads\\\/2018\\\/01\\\/pandaSwea.png\",\"width\":365,\"height\":359,\"caption\":\"UshopWell\"},\"image\":{\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/#\\\/schema\\\/person\\\/6fd1f9e0ff932e534c86c70d5acff0fc\",\"name\":\"UShopWell\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4adb372cadd43b4d4c57964dab95b0f69618bf960d131c4acf49d96d6bbc9c6e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4adb372cadd43b4d4c57964dab95b0f69618bf960d131c4acf49d96d6bbc9c6e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/4adb372cadd43b4d4c57964dab95b0f69618bf960d131c4acf49d96d6bbc9c6e?s=96&d=mm&r=g\",\"caption\":\"UShopWell\"},\"url\":\"https:\\\/\\\/ushopwell.com\\\/ublog\\\/author\\\/kburnettu\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Tetris Coding #1 - Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream - UshopWell.com","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/","og_locale":"en_US","og_type":"article","og_title":"Tetris Coding #1 - Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream - UshopWell.com","og_description":"Showing how to code Tetris in Odin, using Raylib for Educational Purposes. Questions and Suggestions are welcome in the comments. Watch at 2X speed to learn twice as fast. The art for the game was pulled mostly from pinterest, and the playfield collage was collaged by me. This is not a commercial product.","og_url":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/","og_site_name":"UshopWell.com","article_published_time":"2026-03-18T19:30:20+00:00","author":"UShopWell","twitter_card":"summary_large_image","twitter_misc":{"Written by":"UShopWell"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/#article","isPartOf":{"@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/"},"author":{"name":"UShopWell","@id":"https:\/\/ushopwell.com\/ublog\/#\/schema\/person\/6fd1f9e0ff932e534c86c70d5acff0fc"},"headline":"Tetris Coding #1 &#8211; Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream","datePublished":"2026-03-18T19:30:20+00:00","mainEntityOfPage":{"@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/"},"wordCount":67,"commentCount":0,"publisher":{"@id":"https:\/\/ushopwell.com\/ublog\/#organization"},"image":{"@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/#primaryimage"},"thumbnailUrl":"https:\/\/ushopwell.com\/ublog\/wp-content\/uploads\/2026\/03\/193162\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream.jpg","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/","url":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/","name":"Tetris Coding #1 - Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream - UshopWell.com","isPartOf":{"@id":"https:\/\/ushopwell.com\/ublog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/#primaryimage"},"image":{"@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/#primaryimage"},"thumbnailUrl":"https:\/\/ushopwell.com\/ublog\/wp-content\/uploads\/2026\/03\/193162\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream.jpg","datePublished":"2026-03-18T19:30:20+00:00","breadcrumb":{"@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/#primaryimage","url":"https:\/\/ushopwell.com\/ublog\/wp-content\/uploads\/2026\/03\/193162\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream.jpg","contentUrl":"https:\/\/ushopwell.com\/ublog\/wp-content\/uploads\/2026\/03\/193162\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream.jpg","width":480,"height":360,"caption":"Tetris Coding #1 &#8211; Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream"},{"@type":"BreadcrumbList","@id":"https:\/\/ushopwell.com\/ublog\/tetris-coding-1-odin-raylib-c-like-procedural-no-oop-no-engine-from-scratch-stream\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/ushopwell.com\/ublog\/"},{"@type":"ListItem","position":2,"name":"Tetris Coding #1 &#8211; Odin, Raylib, C-like, Procedural, No OOP, No Engine, From Scratch, Stream"}]},{"@type":"WebSite","@id":"https:\/\/ushopwell.com\/ublog\/#website","url":"https:\/\/ushopwell.com\/ublog\/","name":"UshopWell.com","description":"The Premiere Online Marketplace","publisher":{"@id":"https:\/\/ushopwell.com\/ublog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ushopwell.com\/ublog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ushopwell.com\/ublog\/#organization","name":"UshopWell","url":"https:\/\/ushopwell.com\/ublog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ushopwell.com\/ublog\/#\/schema\/logo\/image\/","url":"https:\/\/ushopwell.com\/ublog\/wp-content\/uploads\/2018\/01\/pandaSwea.png","contentUrl":"https:\/\/ushopwell.com\/ublog\/wp-content\/uploads\/2018\/01\/pandaSwea.png","width":365,"height":359,"caption":"UshopWell"},"image":{"@id":"https:\/\/ushopwell.com\/ublog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/ushopwell.com\/ublog\/#\/schema\/person\/6fd1f9e0ff932e534c86c70d5acff0fc","name":"UShopWell","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4adb372cadd43b4d4c57964dab95b0f69618bf960d131c4acf49d96d6bbc9c6e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4adb372cadd43b4d4c57964dab95b0f69618bf960d131c4acf49d96d6bbc9c6e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4adb372cadd43b4d4c57964dab95b0f69618bf960d131c4acf49d96d6bbc9c6e?s=96&d=mm&r=g","caption":"UShopWell"},"url":"https:\/\/ushopwell.com\/ublog\/author\/kburnettu\/"}]}},"_links":{"self":[{"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/posts\/193162","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/comments?post=193162"}],"version-history":[{"count":0,"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/posts\/193162\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/media\/193163"}],"wp:attachment":[{"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/media?parent=193162"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/categories?post=193162"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ushopwell.com\/ublog\/wp-json\/wp\/v2\/tags?post=193162"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}