{"id":14916,"date":"2025-03-12T02:15:15","date_gmt":"2025-03-11T23:15:15","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/"},"modified":"2025-03-12T02:15:15","modified_gmt":"2025-03-11T23:15:15","slug":"c-ile-doom-stili-raycaster-gelistirme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/","title":{"rendered":"C++ ile DOOM Stili Raycaster Geli\u015ftirme"},"content":{"rendered":"<p><body><\/p>\n<p>C++ ile DOOM Stili Raycaster Geli\u015ftirme<\/p>\n<p>Merhabalar! Fatih Soysal burada. Bu yaz\u0131da, C++ kullanarak nostaljik DOOM tarz\u0131 bir raycaster nas\u0131l geli\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz.  Raycasting, 3D oyunlar\u0131n temelini olu\u015fturan, basit ama etkili bir tekniktir.  Bu teknikle,  k\u0131s\u0131tl\u0131 kaynaklarla bile etkileyici 3B d\u00fcnyalar yaratabilirsiniz.  \u00d6ncelikle temel kavramlar\u0131 anlamak \u00f6nemlidir. Daha sonra ise, C++ kod \u00f6rnekleriyle,  raycaster&#8217;\u0131m\u0131z\u0131 ad\u0131m ad\u0131m olu\u015fturaca\u011f\u0131z.<\/p>\n<h2>Temel Kavramlar: Raycasting Nedir?<\/h2>\n<p>Raycasting,  bir oyun kameras\u0131ndan \u00e7\u0131kan \u0131\u015f\u0131nlar\u0131 (raylar) kullanarak d\u00fcnyay\u0131 render eden bir tekniktir.  Her \u0131\u015f\u0131n, d\u00fcnyadaki bir duvara \u00e7arpana kadar uzan\u0131r.  Bu \u00e7arp\u0131\u015fma noktas\u0131n\u0131n uzakl\u0131\u011f\u0131 ve a\u00e7\u0131s\u0131,  duvar\u0131n ekranda nas\u0131l g\u00f6r\u00fcnmesi gerekti\u011fini belirler.  Basit\u00e7e,  d\u00fcnyan\u0131n 2B bir temsilini kullanarak 3B bir etki yarat\u0131r.  Bu yakla\u015f\u0131m, \u00f6zellikle eski oyunlarda performans avantaj\u0131 sa\u011flad\u0131\u011f\u0131 i\u00e7in tercih edilir.  Ancak, modern oyunlarda da  performans optimize edilmesi gereken durumlarda hala kullan\u0131m alan\u0131 bulabilir.<\/p>\n<h2>C++ ile Raycaster Uygulama Ad\u0131mlar\u0131<\/h2>\n<p>\u015eimdi, C++ koduyla raycaster&#8217;\u0131m\u0131z\u0131 olu\u015fturmaya ba\u015flayabiliriz.  \u00d6ncelikle, gerekli k\u00fct\u00fcphaneleri dahil etmeliyiz.  Ard\u0131ndan, oyun d\u00fcnyam\u0131z\u0131 temsil edecek bir harita olu\u015fturaca\u011f\u0131z.  Bu harita, duvarlar\u0131n ve bo\u015f alanlar\u0131n yerle\u015fimini g\u00f6steren bir 2B dizi olabilir.  Sonras\u0131nda, kamera konumunu ve y\u00f6n\u00fcn\u00fc belirlemeliyiz.  Bu parametreler, \u0131\u015f\u0131nlar\u0131n nereden ve hangi y\u00f6ne g\u00f6nderilece\u011fini belirleyecektir.<\/p>\n<pre><code class=\"language-cpp\">\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\n#include &lt;cmath&gt;\n\n\/\/ ... (Kodun devam\u0131) ...\n<\/code><\/pre>\n<p>\u0130\u015fte temel raycasting algoritmas\u0131: <\/p>\n<ol>\n<li>Kameran\u0131n konumunu ve y\u00f6n\u00fcn\u00fc belirleyin.<\/li>\n<li>Ekran\u0131n her bir s\u00fctunu i\u00e7in bir \u0131\u015f\u0131n g\u00f6nderin.<\/li>\n<li>I\u015f\u0131n\u0131n bir duvara \u00e7arpana kadar uzanmas\u0131n\u0131 sa\u011flay\u0131n.<\/li>\n<li>\u00c7arp\u0131\u015fma noktas\u0131n\u0131n uzakl\u0131\u011f\u0131n\u0131 ve a\u00e7\u0131s\u0131n\u0131 hesaplay\u0131n.<\/li>\n<li>Hesaplanan uzakl\u0131k ve a\u00e7\u0131ya g\u00f6re duvar\u0131 ekranda \u00e7izdirin.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar,  bir duvar\u0131n ekranda nas\u0131l g\u00f6r\u00fcnt\u00fclenece\u011fini belirlemek i\u00e7in kullan\u0131l\u0131r.  Uzakl\u0131k,  duvar\u0131n boyutunu belirlerken, a\u00e7\u0131,  duvar\u0131n dokusunun nas\u0131l g\u00f6sterilece\u011fini etkiler.  Bu s\u00fcre\u00e7, ekran\u0131n t\u00fcm s\u00fctunlar\u0131 i\u00e7in tekrarlanarak,  tamamen 3B bir g\u00f6r\u00fcnt\u00fc elde edilir.  Daha geli\u015fmi\u015f bir raycaster, doku e\u015fleme, ayd\u0131nlatma ve di\u011fer efektleri de i\u00e7erebilir.<\/p>\n<h2>Geli\u015fmi\u015f \u00d6zellikler ve \u0130leri Seviyeler<\/h2>\n<p>Temel raycaster&#8217;\u0131m\u0131z\u0131 olu\u015fturduktan sonra,  daha geli\u015fmi\u015f \u00f6zellikler ekleyebilirsiniz.  \u00d6rne\u011fin,  duvarlara farkl\u0131 dokular ekleyerek d\u00fcnyay\u0131 daha ger\u00e7ek\u00e7i hale getirebilirsiniz.  Ayd\u0131nlatma sistemleri ekleyerek,  karanl\u0131k alanlar ve ayd\u0131nl\u0131k alanlar olu\u015fturabilirsiniz.  Hareketli nesneler ekleyerek,  oyununuzu daha etkile\u015fimli hale getirebilirsiniz.  Ayr\u0131ca,  performans optimizasyonu yaparak,  daha b\u00fcy\u00fck ve karma\u015f\u0131k d\u00fcnyalar olu\u015fturabilirsiniz.<\/p>\n<p>Bu makalede,  C++ kullanarak bir DOOM tarz\u0131 raycaster olu\u015fturman\u0131n temel prensiplerini ele ald\u0131k.  Umar\u0131m bu bilgiler size yard\u0131mc\u0131 olmu\u015ftur.  Daha fazla bilgi ve kaynak i\u00e7in <a href=\"https:\/\/fatihsoysal.com\" target=\"_blank\">fatihsoysal.com<\/a> adresini ziyaret edebilirsiniz.  Ayr\u0131ca,  konu ile ilgili daha fazla bilgi edinmek i\u00e7in a\u015fa\u011f\u0131daki kaynaklar\u0131 inceleyebilirsiniz:<\/p>\n<ul>\n<li><a href=\"https:\/\/dev.to\/marcosplusplus\/como-criar-um-raycasterestilo-doom-com-c-42na\" target=\"_blank\">Dev.to Makalesi (\u0130ngilizce)<\/a><\/li>\n<li> (<a href=\"http:\/\/lodev.org\/cgtutor\/raycasting.html\" target=\"_blank\">Ba\u015fka bir faydal\u0131 kaynak ekleyebilirsiniz<\/a>)<\/li>\n<\/ul>\n<p>Unutmay\u0131n,  pratik yapmak en iyi \u00f6\u011frenme yoludur!  Kendi raycaster&#8217;\u0131n\u0131z\u0131 olu\u015fturmaya \u00e7al\u0131\u015f\u0131n ve  \u00f6zelliklerini geli\u015ftirerek deneyim kazan\u0131n. Ba\u015far\u0131lar dilerim!<\/p>\n<h3>#Etiketler<\/h3>\n<p>C++, raycaster, DOOM, 3D grafik, oyun geli\u015ftirme, programlama, tutorial, \u00f6\u011fretici, raycasting algoritmas\u0131, doku e\u015fleme, ayd\u0131nlatma<\/p>\n<p><\/body><br \/>\n<\/html><\/p>\n","protected":false},"excerpt":{"rendered":"C++ ile DOOM Stili Raycaster Geli\u015ftirme Merhabalar! Fatih Soysal burada. Bu yaz\u0131da, C++ kullanarak nostaljik DOOM tarz\u0131 bir&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-14916","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C++ ile DOOM Stili Raycaster Geli\u015ftirme<\/title>\n<meta name=\"description\" content=\"Merhabalar! Fatih Soysal burada. Bu yaz\u0131da, C++ kullanarak nostaljik DOOM tarz\u0131 bir raycaster nas\u0131l geli\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz. Raycasting, 3D oyunlar\u0131n temelini olu\u015fturan, basit ama etkili bir tekniktir. Bu teknikle, k\u0131s\u0131tl\u0131 kaynaklarla bile etkileyici 3B d\u00fcnyalar yaratabilirsiniz. \u00d6ncelikle temel kavramlar\u0131 anlamak \u00f6nemlidir. Daha sonra ise, C++ kod \u00f6rnekleriyle, raycaster&#039;\u0131m\u0131z\u0131 ad\u0131m ad\u0131m olu\u015fturaca\u011f\u0131z.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ ile DOOM Stili Raycaster Geli\u015ftirme\" \/>\n<meta property=\"og:description\" content=\"Merhabalar! Fatih Soysal burada. Bu yaz\u0131da, C++ kullanarak nostaljik DOOM tarz\u0131 bir raycaster nas\u0131l geli\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz. Raycasting, 3D oyunlar\u0131n temelini olu\u015fturan, basit ama etkili bir tekniktir. Bu teknikle, k\u0131s\u0131tl\u0131 kaynaklarla bile etkileyici 3B d\u00fcnyalar yaratabilirsiniz. \u00d6ncelikle temel kavramlar\u0131 anlamak \u00f6nemlidir. Daha sonra ise, C++ kod \u00f6rnekleriyle, raycaster&#039;\u0131m\u0131z\u0131 ad\u0131m ad\u0131m olu\u015fturaca\u011f\u0131z.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-11T23:15:15+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"C++ ile DOOM Stili Raycaster Geli\u015ftirme\",\"datePublished\":\"2025-03-11T23:15:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/\"},\"wordCount\":563,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/\",\"name\":\"C++ ile DOOM Stili Raycaster Geli\u015ftirme\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-03-11T23:15:15+00:00\",\"description\":\"Merhabalar! Fatih Soysal burada. Bu yaz\u0131da, C++ kullanarak nostaljik DOOM tarz\u0131 bir raycaster nas\u0131l geli\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz. Raycasting, 3D oyunlar\u0131n temelini olu\u015fturan, basit ama etkili bir tekniktir. Bu teknikle, k\u0131s\u0131tl\u0131 kaynaklarla bile etkileyici 3B d\u00fcnyalar yaratabilirsiniz. \u00d6ncelikle temel kavramlar\u0131 anlamak \u00f6nemlidir. Daha sonra ise, C++ kod \u00f6rnekleriyle, raycaster'\u0131m\u0131z\u0131 ad\u0131m ad\u0131m olu\u015fturaca\u011f\u0131z.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ ile DOOM Stili Raycaster Geli\u015ftirme\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C++ ile DOOM Stili Raycaster Geli\u015ftirme","description":"Merhabalar! Fatih Soysal burada. Bu yaz\u0131da, C++ kullanarak nostaljik DOOM tarz\u0131 bir raycaster nas\u0131l geli\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz. Raycasting, 3D oyunlar\u0131n temelini olu\u015fturan, basit ama etkili bir tekniktir. Bu teknikle, k\u0131s\u0131tl\u0131 kaynaklarla bile etkileyici 3B d\u00fcnyalar yaratabilirsiniz. \u00d6ncelikle temel kavramlar\u0131 anlamak \u00f6nemlidir. Daha sonra ise, C++ kod \u00f6rnekleriyle, raycaster'\u0131m\u0131z\u0131 ad\u0131m ad\u0131m olu\u015fturaca\u011f\u0131z.","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:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/","og_locale":"tr_TR","og_type":"article","og_title":"C++ ile DOOM Stili Raycaster Geli\u015ftirme","og_description":"Merhabalar! Fatih Soysal burada. Bu yaz\u0131da, C++ kullanarak nostaljik DOOM tarz\u0131 bir raycaster nas\u0131l geli\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz. Raycasting, 3D oyunlar\u0131n temelini olu\u015fturan, basit ama etkili bir tekniktir. Bu teknikle, k\u0131s\u0131tl\u0131 kaynaklarla bile etkileyici 3B d\u00fcnyalar yaratabilirsiniz. \u00d6ncelikle temel kavramlar\u0131 anlamak \u00f6nemlidir. Daha sonra ise, C++ kod \u00f6rnekleriyle, raycaster'\u0131m\u0131z\u0131 ad\u0131m ad\u0131m olu\u015fturaca\u011f\u0131z.","og_url":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-03-11T23:15:15+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"C++ ile DOOM Stili Raycaster Geli\u015ftirme","datePublished":"2025-03-11T23:15:15+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/"},"wordCount":563,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/","url":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/","name":"C++ ile DOOM Stili Raycaster Geli\u015ftirme","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-03-11T23:15:15+00:00","description":"Merhabalar! Fatih Soysal burada. Bu yaz\u0131da, C++ kullanarak nostaljik DOOM tarz\u0131 bir raycaster nas\u0131l geli\u015ftirece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frenece\u011fiz. Raycasting, 3D oyunlar\u0131n temelini olu\u015fturan, basit ama etkili bir tekniktir. Bu teknikle, k\u0131s\u0131tl\u0131 kaynaklarla bile etkileyici 3B d\u00fcnyalar yaratabilirsiniz. \u00d6ncelikle temel kavramlar\u0131 anlamak \u00f6nemlidir. Daha sonra ise, C++ kod \u00f6rnekleriyle, raycaster'\u0131m\u0131z\u0131 ad\u0131m ad\u0131m olu\u015fturaca\u011f\u0131z.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/c-ile-doom-stili-raycaster-gelistirme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C++ ile DOOM Stili Raycaster Geli\u015ftirme"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/14916","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=14916"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/14916\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=14916"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=14916"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=14916"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}