{"id":15214,"date":"2022-04-23T09:18:04","date_gmt":"2022-04-23T06:18:04","guid":{"rendered":"https:\/\/kutaybilen.com.tr\/?p=15214"},"modified":"2022-04-23T09:18:04","modified_gmt":"2022-04-23T06:18:04","slug":"oyunlardaki-mermi-sistemleri-nasil-calisiyor","status":"publish","type":"post","link":"https:\/\/kutaybilen.com.tr\/?p=15214","title":{"rendered":"Oyunlardaki Mermi Sistemleri Nas\u0131l \u00c7al\u0131\u015f\u0131yor?"},"content":{"rendered":"<p>FPS yani <strong>birinci<\/strong> <strong>\u015fah\u0131s ni\u015fanc\u0131<\/strong> oyunlar\u0131, 1992 y\u0131l\u0131nda \u00e7\u0131kan Wolfenstein 3D ile birlikte b\u00fcy\u00fck bir patlama ya\u015fad\u0131 ve o g\u00fcnden sonra yoluna giderek daha pop\u00fclerle\u015ferek devam etti. FPS oyunlar\u0131n\u0131n grafikleri artt\u0131, b\u00fct\u00e7eleri y\u00fckseldi ve e spor alan\u0131na d\u00e2hil oldular.<\/p>\n<p>Fakat t\u00fcm bu oyunlar\u0131n merkezinde yer alan bir d\u00fczenek var: <strong>ate\u015f<\/strong> <strong>etme<\/strong> sistemleri. Pekala, bu sistem nas\u0131l geli\u015fti? Nas\u0131l kimi oyunlar ger\u00e7ek bir silahla ate\u015f ediyormu\u015f hissiyat\u0131 yaratmay\u0131 ba\u015far\u0131rken \u00f6b\u00fcrleri bunu ba\u015faramad\u0131?<\/p>\n<p><b><strong>Hitscan<\/strong><\/b><\/p>\n<p><strong><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1114\/1*57B3UqvhpyIhNE-7vu514w.gif\"\/><\/strong><\/p>\n<p>Birinci oyunlarda \u201c<strong>raycasting<\/strong>\u201d ismi verilen bir sistem kullan\u0131l\u0131yordu. 2B g\u00f6rselleri 3B\u2019de i\u015fleyen bu sistem, \u0131\u015f\u0131nla kesi\u015fen birinci objenin tespit edilmesini sa\u011fl\u0131yordu. Daha sonra geli\u015ftiriciler <em>\u201cBir silah\u0131n a\u011fz\u0131ndan \u00e7\u0131kan \u0131\u015f\u0131nlar, bir mermiyi taklit etse nas\u0131l olurdu?\u201d<\/em> sorusunu sordu ve Hitscan do\u011fdu.<\/p>\n<p>Fizik motorlar\u0131, Hitscan silahlar\u0131n\u0131n uygulamas\u0131nda oyuncular ate\u015f etti\u011fi vakit genelde;\u00a0silah\u0131n do\u011fruldu\u011fu noktay\u0131 \u00e7\u00f6z\u00fcyor, silah\u0131n a\u011fz\u0131ndan \u00e7\u0131kan \u0131\u015f\u0131n\u0131 tan\u0131mlanan menzile y\u00f6nlendiriyor ve \u0131\u015f\u0131n\u0131n\u00a0belirlenen nesneyi vurup vurmad\u0131\u011f\u0131n\u0131 tespit etmek i\u00e7in raycasting\u2019i kullan\u0131yor.<\/p>\n<p>\u015eayet motor, ate\u015f \u00e7izgisindeki bir objeyi tespit ederse mermiyle vuruldu\u011funu s\u00f6yleyen bir bildiriyle bildirim g\u00f6nderiyor. Daha sonra gaye, darbenin d\u0131\u015fa vurumu i\u00e7in gerekli olan t\u00fcm hesaplamalar\u0131 yapabiliyor.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/960\/1*uoIqSmrbF_cmPsZMaGFTCQ.gif\"\/><\/p>\n<p><strong>Hitscan<\/strong> asl\u0131nda hayli kolay olsa da farkl\u0131 bir\u00e7ok halde uygulanabiliyor:<\/p>\n<ul>\n<li>I\u015f\u0131n, vurdu\u011fu birinci objeden sonra hareket etmeye devam ederse o \u00e7izgideki \u00f6b\u00fcr nesnelere de hasar verebiliyor. T\u0131pk\u0131 Quake\u2019teki <strong>railgun<\/strong> \u00fczere.<\/li>\n<li>Azam\u00ee menzil ortadan kald\u0131r\u0131larak\u00a0mermi bir amac\u0131 vurana kadar yoluna devam edebiliyor.<\/li>\n<li>Muhakkak y\u00fczeyler, mermilerin sekmesi i\u00e7in yans\u0131t\u0131c\u0131 olacak bi\u00e7imde ayarlanabiliyor.<\/li>\n<\/ul>\n<p>Hitscan\u2019in \u00e7ok s\u00fcratli olmas\u0131 \u00fczere bir\u00e7ok avantaj\u0131 bulunuyor ve bu sebeple bir\u00e7ok oyun bu sistemi kullan\u0131yor ki Wolfenstein 3D ve Doom bunun en bilinen \u00f6rneklerinden. Fakat bu sistem, yaln\u0131zca eski oyunlarda kullan\u0131lm\u0131yor.\u00a0Bug\u00fcn dahi <strong>Overwatch<\/strong>\u2019tan bir\u00e7ok karakterin Hitscan silah\u0131 bulunuyor. Hatta Call of Duty\u2019deki bir\u00e7ok silah da Hitscan uygulamas\u0131yla \u00e7al\u0131\u015f\u0131yor.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1272\/1*8vzBhuR4ALseEaLtKAaSFA.gif\"\/><\/p>\n<p>T\u00fcm bunlardan sonra neden b\u00fct\u00fcn oyunlar bu sistemi kullanm\u0131yor o vakit diye d\u00fc\u015f\u00fcnebilirsiniz. Fakat okurken de fark etmi\u015f olabilece\u011finiz \u00fczere \u0131\u015f\u0131nlar, sonsuz bir hareket surat\u0131na sahip. Hasebiyle ama\u00e7lar\u0131na direkt olarak ula\u015fabiliyor. Ate\u015f etti\u011finizde, merminin yol kat etme m\u00fchleti bulunmuyor ve hasebiyle maksattaki bir ki\u015finin, hayli uzakta olmas\u0131na kar\u015f\u0131n mermilerden ka\u00e7mas\u0131 <strong>imk\u00e2ns\u0131z<\/strong> hale geliyor.<\/p>\n<p>Bu mekani\u011fin t\u00fcm oyunlarda kullan\u0131lmamas\u0131n\u0131n bir \u00f6teki sebebiyse bir\u00e7ok Hitscan uygulamas\u0131n\u0131n direkt \u0131\u015f\u0131nlar\u0131 kullan\u0131yor olmas\u0131. Yani ate\u015f edilen mermiler, yer\u00e7ekimi ve r\u00fczg\u00e2r \u00fczere d\u0131\u015f etkenlerden etkilenmiyor. Bu da maksad\u0131 ger\u00e7ek\u00e7i bir oynan\u0131\u015f olan oyun yap\u0131mc\u0131lar\u0131n\u0131n tercih etmek isteyece\u011fi bir \u015fey de\u011fil.<\/p>\n<p><b><strong>Mermi balisti\u011fi<\/strong><\/b><\/p>\n<p><strong><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/1440\/1*LD4uYzCg11Bo3Nap7va2rw.gif\"\/><\/strong><\/p>\n<p><strong>Mermi balisti\u011fi<\/strong>, ger\u00e7ekli\u011fin as\u0131l ama\u00e7 olarak al\u0131nd\u0131\u011f\u0131 oyunlarda direkt olarak \u00f6ne \u00e7\u0131k\u0131yor. Her mermi,\u00a0tekil olarak muhakkak hesaplamalara tabi tutuluyor.\u00a0R\u00fczg\u00e2r, k\u0131r\u0131lma, yer\u00e7ekimi, s\u0131cakl\u0131k \u00fczere mermi \u00fczerinde tesiri olan t\u00fcm fakt\u00f6rler\u00a0oyun i\u00e7erisinde bulunuyor. Bu sistem sayesinde, fizik de\u011fi\u015ftirilebiliyor ve oyuncular daha farkl\u0131 silahlar kullanabiliyor.<\/p>\n<p>Bu sistem sayesinde Max Payne, Sniper Se\u00e7kine ve Superhot \u00fczere oyunlardaki \u201c<strong>bullet-time<\/strong>\u201d uygulanabilir hale geldi.\u00a0Merminin kat ettti\u011fi\u00a0mesafe\u00a0sayesinde gaye almak kritik bir hal\u00a0ald\u0131. Do\u011fal bu hesaplamalarla birlikte proses de Hitscan\u2019e nazaran daha g\u00fc\u00e7l\u00fc oldu. Sunucular\u0131n \u00fcst\u00fcne daha \u00e7ok y\u00fck bindi.<\/p>\n<p>Bu hesaplama s\u00fcre\u00e7lerini kimi metotlarla hafifletmek ve bellek kullan\u0131m\u0131n\u0131 azaltmak m\u00fcmk\u00fcn. Bu metotlardan bir adedinde, oyundan evvel obje havuzu y\u00fckleniyor ve gereksinim oldu\u011fu anda bunlar aktifle\u015ftiriliyor. Mermi y\u00fczeye \u00e7arpt\u0131\u011f\u0131nda mermi animasyonu oynat\u0131l\u0131yor ve mermi devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131yor. Al\u0131\u015f\u0131lm\u0131\u015f bu hesaplamalar i\u00e7in farkl\u0131 yollar de kullan\u0131labiliyor.<\/p>\n<p>T\u00fcm bunlar\u0131 anlatt\u0131ktan sonra bir\u00e7o\u011funuz bu metodun, nispeten daha yeni bir form\u00fcl oldu\u011funu d\u00fc\u015f\u00fcnebilir fakat bu usul, <strong>Hitscan\u2019den \u00f6ncesinde<\/strong> de vard\u0131. FPS oyunlar\u0131ndan evvel de Asteroids, Space Invaders ve Galaxian \u00fczere ni\u015fanc\u0131 oyunlar\u0131 bulunuyordu ve bu oyunlar, \u00e7ok daha ilkel olsa da mermi balisti\u011fini kullan\u0131yordu.<\/p>\n<p><b><strong>Hibrit sistemler<\/strong><\/b><\/p>\n<p><strong><img decoding=\"async\" src=\"https:\/\/miro.medium.com\/max\/800\/1*XpfVkNCyq6QdvCXyx1LtRw.gif\"\/><\/strong><\/p>\n<p>Mermi at\u0131\u015f sistemini \u00e7ok daha ger\u00e7ek\u00e7i yapmak asl\u0131nda bu sistemlerin kar\u0131\u015f\u0131m\u0131yla m\u00fcmk\u00fcn hale geliyor. Bir\u00e7ok oyun motoru, her iki sistemi de kullanabiliyor. Ola\u011fan do\u011fal olarak bu da oyunlarda \u00e7ok fazla <strong>silah \u00e7e\u015fitlili\u011finin<\/strong> olmas\u0131n\u0131 sa\u011fl\u0131yor.<\/p>\n<p>Geli\u015ftiriciler, her iki sistemin de zay\u0131fl\u0131klar\u0131n\u0131 kapatmak i\u00e7in bu iki sistemi kar\u0131\u015ft\u0131rabiliyor ve b\u00f6ylelikle daha ger\u00e7ek\u00e7i bir oyun tecr\u00fcbesi ortaya \u00e7\u0131k\u0131yor. Ayr\u0131yeten bu iki \u00f6zellik tek bir oyunda da harmanlanabiliyor. <strong>Sniper Se\u00e7kine<\/strong> serisi de bu kullan\u0131m i\u00e7in ola\u011fan\u00fcst\u00fc bir \u00f6rnek.<\/p>\n<p>G\u00fcn\u00fcm\u00fczde kullan\u0131lan mermi balisti\u011fi ve mekani\u011fi \u015fu an i\u00e7in bunlarla sonlu durumda lakin bu durumun gelecekte daha farkl\u0131 \u015fekillenece\u011fini s\u00f6yleyebiliriz. Geli\u015ftirilecek yeni metotlar,\u00a0artan CPU g\u00fcc\u00fcyle\u00a0oyunlardaki mermi kullan\u0131mlar\u0131n\u0131 daha da ger\u00e7ek\u00e7i bir hale getirecek. Biz de bu sayede daha ger\u00e7ek\u00e7i sava\u015f alanlar\u0131nda sanal olarak bulunabilece\u011finz.<\/p>\n<div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>FPS yani birinci \u015fah\u0131s ni\u015fanc\u0131 oyunlar\u0131, 1992 y\u0131l\u0131nda \u00e7\u0131kan Wolfenstein 3D ile birlikte b\u00fcy\u00fck bir patlama ya\u015fad\u0131 ve o g\u00fcnden sonra yoluna giderek &#8230;<\/p>\n","protected":false},"author":1,"featured_media":15215,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[852],"tags":[1623,3084,920,996,1391],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/posts\/15214"}],"collection":[{"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=15214"}],"version-history":[{"count":1,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/posts\/15214\/revisions"}],"predecessor-version":[{"id":15216,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/posts\/15214\/revisions\/15216"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=\/wp\/v2\/media\/15215"}],"wp:attachment":[{"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15214"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15214"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kutaybilen.com.tr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15214"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}