Hızlı Geliştirme için Unreal Engine Blueprint'te Doğru Verimlilik Yöntemleri

Hızlı Geliştirme için Unreal Engine Blueprint'te Doğru Verimlilik Yöntemleri

Hızlı geliştirme yapmak isteyenler için Unreal Engine Blueprint'te doğru verimlilik yöntemlerini öğrenin! Bu eğitimde, kompleks görevleri nasıl kolayca gerçekleştirebileceğinizi öğreneceksiniz Zamanınızı ve çabanızı en verimli şekilde kullanarak oyun yapımında önemli bir adım atın

Hızlı Geliştirme için Unreal Engine Blueprint'te Doğru Verimlilik Yöntemleri

Unreal Engine, oyun geliştirme endüstrisinde en çok tercih edilen motorlardan biridir. Geliştiriciler, Unreal Engine Blueprint kullanarak daha hızlı bir şekilde oyunlarını geliştirebilirler. Ancak, Blueprint'lerde doğru ve verimli kod yazma teknikleri, oyunun kalitesini ve performansını etkileyebilir.

Blueprint'lerin doğru kullanımı, verimli kodlama yöntemleri, kod stilinin doğru kullanımı, optimizasyon teknikleri ve hata ayıklama yöntemleri oyunun geliştirme sürecinde önemli bir rol oynar.

Blueprint'lerin doğru kullanımı, geliştiricilerin kodlarını daha hızlı ve düzenli bir şekilde yazmalarına olanak tanır. Düzenli kodlama teknikleri kullanarak kodların okunabilirliği artar ve geliştirme süreci hızlandırılır. Ayrıca, kullanılmayan Blueprint'lerin silinmesi ve ölü kod bloklarının temizlenmesi gibi optimizasyon yöntemleri, oyunun performansını artırır.

Kodlama Teknikleri Optimizasyon Teknikleri Hata Ayıklama Teknikleri
- Isolated fonksiyonlar oluşturma - Kullanılmayan Blueprintlerin silinmesi - BreakPoint kullanımı
- Kullanışlı yorum satırları - Ölü kod bloklarının temizlenmesi - Debugging Tab kullanımı
- Modüler Blueprint tasarımı - Gereksiz işlemlerin önlenmesi

Geliştiriciler, hata ayıklama sürecinden de en az müdahale ile geçmek isterler. Blueprint debuggerı kullanarak, BreakPoint ve Debugging Tab özellikleri ile hataları tespit etmek daha kolay hale gelir. Bunun yanı sıra, geliştiricilerin kodları hızlı bir şekilde yazması ve hata ayıklama sürecini daha verimli hale getirmesi için Unreal Engine Blueprint, oyun geliştirme sürecinde oldukça faydalı bir araçtır.


Blueprintlerin Doğru Kullanımı

Blueprintler, Unreal Engine'in içinde yer alan görsel programlama araçlarıdır. Kullanımı oldukça kolay olan bu araçlar, oyun geliştirme sürecinde büyük bir verimlilik sağlar. Ancak, Blueprintleri doğru kullanmadan verim elde etmek mümkün değildir. Blueprintlerin doğru kullanımı için aşağıdaki teknikleri uygulamanız gerekmektedir:

  • Başlangıçta, Blueprintlerin temel yapı taşlarını anlamak önemlidir. Bu sayede, gerekli görevleri yerine getirmek adına doğru parçaları birleştirebilirsiniz.
  • Kod bloklarını bağlamak adına, öğreneceğiniz en önemli tekniklerin başında, bağlantıların nasıl yapılacağı gelmektedir. Bağlantıların doğru yapıldığından emin olun.
  • Blueprintlerde birden çok tasarım deseni kullanmak mümkündür. Ancak kullanacağınız tasarım desenine karar vermeden önce, oyun motorunuzun ihtiyaçlarını anlamalısınız.
  • Başlangıçta, tüm kod bloklarını tek bir Blueprint içerinde toplamak cazip gelebilir. Ancak süreci daha anlaşılır kılmak için, daha küçük modüller halinde kod bloklarını gruplandırmak daha verimli bir yöntem olabilir.

Blueprintlerin doğru kullanımı, uzun vadede oyununuzu geliştirmeyi kolaylaştıracaktır. Bu nedenle, bu araçların gizli güçlerini keşfetmek için biraz zaman harcamak iyi bir fikir olabilir.


Düzenli Kodlama Yöntemleri

Blueprint kullanarak oyun geliştirirken kodlama işlemi önemli bir yer tutar. Kodlama sırasında yazılan kodların düzenli, anlaşılabilir ve okunaklı olması, hem geliştirme sürecini hızlandırır hem de geliştiricilere zaman ve emek açısından avantaj sağlar. Blueprint kullanıcıları, aşağıdaki kodlama yöntemlerini kullanarak daha düzenli ve okunabilir kod yazabilirler:

  • Isolated Fonksiyonlar Oluşturma: Kodun düzenli tutulması için izole edilmiş fonksiyonların oluşturulması önemlidir. Bu yöntem sayesinde, her bir fonksiyon belirli bir görevi üstlenecektir ve bu görevin dışına çıkılmayacaktır. Bu şekilde kod daha anlaşılır ve düzenli hale gelir.
  • Kullanışlı Yorum Satırları: Kod okunabilirliğini arttırmak ve geliştirme sürecini hızlandırmak için yorum satırlarının kullanımı oldukça önemlidir. Blueprint üzerindeki her bir fonksiyon için, fonksiyon hakkında açıklayıcı bir yorum satırı yazılmalıdır. Bu şekilde, kod okunabilirliği artar ve geliştiriciler arasında bir standart oluşur.
  • Modüler Blueprint Tasarımı: Kod parçalarının birleştirilebilir modüller şeklinde yazılması, kod tekrarını azaltır ve düzenli bir kod yazımı sağlar. Birbirine benzeyen kod blokları modüler hale getirilerek, kodlama süreci hızlandırılabilir.
  • Doğru Stil Kullanımı: Blueprint yazarken doğru kod stili kullanımı, kodun daha okunabilir ve anlaşılır olmasını sağlar. Bu nedenle, kodlama sürecinde belirli bir kod stili benimsenmeli ve bu stile uygun olarak kod yazılmalıdır.

Düzenli kodlama, Blueprint kullanıcıları için oldukça önemlidir. Düzenli bir kod yapısı, kodu okunaklı ve anlaşılır hale getireceği gibi hata ayıklama sürecinde de büyük avantaj sağlar. Yararlanılacak faydalar sayesinde, kodlama sürecinde sıkı çalışma özverisiyle düzenli kod yapısı oluşturulmalıdır.


Isolated Fonksiyonlar Oluşturma

Blueprintlerde düzenli ve daha okunaklı kod yazmak için, kod parçalarını ayrı ayrı fonksiyonlara bölmek faydalı bir yöntemdir. Bu sayede fonksiyonların birbirinden izole edilmesi, kodun daha düzenli ve anlaşılabilir hale gelmesini sağlar.

Örneğin, bir oyun karakterinin hareketlerini kontrol eden kod bloğunu tek bir Blueprint içerisinde yazmak yerine, hareket yönü, hızı, ivmelenme ve durma fonksiyonları şeklinde ayrı ayrı fonksiyonlara bölmek daha verimli olacaktır. Eğer karakterin hareket etme kodu değiştirilmek istenirse veya hata tespit edilirse, ilgili fonksiyon kolayca bulunabilir ve müdahale edilebilir.

İzole edilmiş fonksiyonlar, kodun yeniden kullanılabilirliğini de arttırır. Kodun benzer bir parçası farklı bir Blueprint'te ihtiyaç duyulursa, ilgili fonksiyon kolayca kopyalanarak kullanılabilir. Bu sayede, kod yazma süreci hızlanır ve daha düzenli bir yapıya sahip olunur.


Kullanışlı Yorum Satırları

Kod yazarken, yorum satırlarının kullanımı oldukça önemlidir. Yorum satırları, kodu anlamayı kolaylaştırır ve hızlı bir şekilde geliştirme yapılmasına yardımcı olur. Blueprint'lerde de yorum satırlarını doğru bir şekilde kullanmak, kodu okunabilirliği arttırır ve geliştirme sürecini hızlandırır.

Blueprint'te yorum satırlarının kullanımı, kod parçalarının ne işe yaradığını anlamanızı kolaylaştırır. Bu, bir kod parçası yazıldığında, kodun üzerine ne işe yaradığını veya neden yazıldığını yazmakla yapılabilir. Ayrıca, kod satırlarının belirli bir bölümünün kapatılması gerektiğinde, yorum satırları kullanarak belirli bir kod bloğunu yorum içinde tutabilirsiniz. Bu, kodun daha okunabilir ve anlaşılır olmasına yardımcı olur.

Yorum satırlarının kullanımı ayrıca kodu düzenli tutmanıza da yardımcı olur. Blueprint içinde, bir kod bloğundan sonra açıklayıcı bir yorum satırı eklendiğinde, kodun daha düzenli ve okunaklı hale gelir. Kod bloklarına yorum satırlarının eklenmesi, bir başka geliştiricinin kodunuzu daha hızlı anlamasına ve düzenleyebilmesine de yardımcı olabilir.

Yorum satırlarının kullanımı, kodu yazarken hızlı bir şekilde hatayı bulmanıza yardımcı olabilir. Özellikle büyük bir Blueprint'te çalışırken, kodun hangi bölümünde yanlış gittiğini anlamak zor olabilir. Ancak, ilgili kod parçasının yanına yorum satırı ekleyerek, hata bulmayı kolaylaştırabilirsiniz.

Son olarak, yorum satırlarının kullanımı, takım çalışmasında ve bir projeye eklenen kodların başka bir geliştirici tarafından kolaylıkla okunmasına yardımcı olabilir. Blueprint içinde kod yazarken, açıklayıcı yorum satırlarını başkalarının anlaması için eklemek, proje ekibindeki işbirliğini artırabilir.

Yorum satırlarının doğru kullanımı, Blueprint'te kodu daha okunaklı ve yönetilebilir hale getirir. Kod parçalarına doğru yorum satırlarının eklenmesi, kodun daha hızlı ve kolayca geliştirilmesine yardımcı olur. Ayrıca, Blueprint kodunda yorum satırlarının kullanılması, kodu hata ayıklama ve takım çalışması için daha uygun hale getirir.


Modüler Blueprint Tasarımı

Modüler blueprint tasarımı, kod parçalarını birleştirilebilir modüller şeklinde yazarak, daha düzenli ve okunaklı kod elde etmek için kullanışlı bir yöntemdir. Bu yöntem, kodun geliştirilmesi ve daha sonra bakılması sırasında işleri kolaylaştırır.

Blueprintlerin modüler bir şekilde tasarlanması, kodun tekrarlanan kullanımını azaltır ve üzerinde çalışan bir ekip için işbirliği yapmayı kolaylaştırır. Modüler tasarım, herhangi bir project veya oyunda tekrar kullanılabilecek kod öğelerine sahip olduğumuzda zaman ve kaynak tasarrufuna yol açar.

Modüler tasarım, ayrıca kod yazma sürecinde bir hatanın tespit edilmesi ve düzeltilmesi süresini de kısaltır. Herhangi bir modülde bir hata oluştuğunda, o modülü değiştirmek ya da düzenlemek, tüm blueprint dosyalarını değiştirmekten daha kolay olacaktır.

Bu nedenle, modüler blueprint tasarımı, oyun geliştiricileri için verimli bir yöntemdir. Ekip, tekrar kullanılabilir kod parçalarını kolayca tanımlayabilir ve diğer projelerde de kullanabilir. Ayrıca, kodun okunurluğu ve bakımı daha kolay hale gelir ve hata ayıklama süreci daha da hızlı hale gelir.


Doğru Stil Kullanımı

Blueprintler, Unreal Engine için kullanılan kod yazma aracıdır ve hızlı geliştirme sürecinde oldukça kullanışlıdır. Ancak, doğru kodlama yöntemleri kullanılmazsa, Blueprintler karmaşık ve okunması zor hale gelebilir. Bu nedenle, Blueprintlerde doğru kod stili kullanımı oldukça önemlidir.

Blueprint yazarken kod stili, kodun düzenli ve okunaklı olmasını sağlar. Bu da geliştirme sürecini hızlandırır ve hataları tespit etmede kolaylık sağlar. Blueprintlerde doğru kod stili kullanımı için bazı ipuçları şöyledir:

  • Indentation kullanımı: Kod bloklarının girintileme kullanılarak ayrılması, kodun okunaklılığını arttırır.
  • Kod açıklamaları: Kod blokları arasına açıklamalar eklemek, kodun ne yaptığını anlamayı kolaylaştırır.
  • Kod tekrarından kaçınma: Kod tekrarları, hem kodun okunaklılığını azaltır hem de hataların tespitini zorlaştırır.

Ayrıca, Blueprintlerde fonksiyon isimlendirme şekli de önemlidir. Fonksiyonların ne yaptıklarını özetleyen isimler seçmek, kodun anlaşılmasını kolaylaştırır ve hataların tespitinin hızlı olmasına yardımcı olur.

Blueprintlerde doğru kod stili kullanımı, geliştirme sürecini hızlandırır ve hataları tespit etmeyi kolaylaştırır. Bu nedenle, Blueprint yazarken kod stiline özen göstermek, hem geliştirici hem de oyun açısından önemlidir.


Optimizasyon Yöntemleri

Unreal Engine Blueprint kullanarak oyun geliştirirken, performansı artırmak için birkaç optimizasyon yöntemi vardır. Bunlardan ilki, kullanılmayan Blueprint'lerin silinmesidir. Blueprint'ler, proje ilerledikçe artabilir ve kullanılmayan Blueprint'lerle dolu bir proje, performansı olumsuz yönde etkileyebilir. Bu yüzden, kullanılmayan Blueprint'leri silmek gerekir.

İkinci bir yöntem, ölü kod bloklarının temizlenmesidir. Ölü kod blokları, çalışmayan kodların Blueprint içerisinde bırakılması sonucu oluşur ve bunlar zamanla performansı düşürebilir. Bu nedenle, ölü kod bloklarının temizlenmesi, performansı artırır.

Bir diğer yöntem ise, gereksiz işlemlerin önlenmesidir. Bu, birkaç farklı şekilde yapılabilir. Örneğin, bir Blueprint'in gereksiz yere her çerçevede işlem yapmasına neden olan bir loop varsa, bu loop'u daha az sıklıkta çalıştırmak veya tamamen kaldırmak performansı artırır. Ayrıca, gereksiz component'lara sahip Blueprint'leri düzenlemek de performansı yükseltir.

Son olarak, hata ayıklama sürecinde BreakPoint kullanmak, Blueprint'lerin performansının artırılmasına yardımcı olur. BreakPoint, bir Blueprint'in belirli bir adımda durmasına izin verir ve programcının o adımı kontrol etmesine olanak tanır. Bu da, hataları bulmak ve performans sorunlarını çözmek için önemlidir.

Bu optimizasyon yöntemlerinin kullanımı, Unreal Engine Blueprint kullanarak oyun geliştirme sürecinde performansı artırmak için hayati öneme sahiptir. Projenin büyüklüğü ne olursa olsun, projenin düzgün çalışması ve performansı etkileyen noktaların optimize edilmesi için bu yöntemlere başvurulmalıdır.


Kullanılmayan Blueprintlerin Silinmesi

Geliştirme aşamasında, Blueprint tasarımlarında bazı özelliklerin veya tasarımların kullanımı sona erer. Bu noktada yapılması gereken, kullanılmayan Blueprintlerin silinmesidir. Silinen Blueprintler, performans açısından olumlu etki yaratır ve geliştirme sürecindeki tasarım karmaşasını azaltır.

Bir oyunda onlarca hatta yüzlerce Blueprint tasarımı kullanılabildiği için kullanılmayan blueprintlerin silinmesi önemlidir. Bu sayede performans uyarlanabilir ve daha fazla kaynak oyuna harcanabilir.

Kullanılmayan Blueprintlerin tespiti ve silinmesi, geliştirme sürecinin verimli geçmesi açısından önemlidir. Ayrıca belirli bir proje tamamlandığında, gereksiz Blueprintlerin proje dosyalarından silinmesi, verimliliği arttıracaktır.

Kullanılmayan Blueprintlerin silinmesi orijinal projeler ve yeni düzenlemeler için daha fazla kaynağın harcanması anlamına gelir. Bununla birlikte, daha temiz bir kod dizaynı, daha az hata, daha düşük bellek tüketimi ve daha hızlı hata ayıklama anlamına gelir.

Bir oyunda, kullanılmayan blueprintlerin silinmesi, diğer düzenlemelerin de sorunsuz bir şekilde yapılmasını sağlar. Örneğin, kullanılmayan veya gereksiz blueprint tasarımları, diğer tasarımların derlenmesini daha yavaş veya zor hale getirebilir, bu da geliştirme sürecinde olumsuz bir etkiye neden olabilir.

İyi bir geliştirme süreci için, kullanılmayan Blueprintlerin silinmesi önemlidir.


Ölü Kod Bloklarının Temizlenmesi

Blueprintlerde performansı etkileyen faktörlerden biri de Ölü Kod Bloklarıdır. Bu kod blokları, kodun çalışmasına engel olmaz, ancak Blueprint'in boyutunu artırarak, geliştirme sürecini yavaşlatabilir. Bu nedenle, kullanılmayan kod blokları temizlenerek, Blueprint'in boyutu azaltılabilir ve geliştirme süreci hızlandırılabilir.

Ölü Kod Bloklarının tespit edilmesi için Blueprintleri gözden geçirerek, kullanılmayan blokların belirlenmesi gerekmektedir. Belirlenen bloklar, silinerek Blueprint'ten temizlenmelidir. Ayrıca, gereksiz kod blokları, Blueprint tasarımlarında hiyerarşi ve düzen oluşturulmasıyla kolayca belirlenebilir. Kod blokları gruplandırılarak, daha temiz bir kod ortamı oluşturulabilir.

Ölü Kod Bloklarının temizlenmesi için kullanılabilecek bir diğer yöntem ise, Blueprint'i yeni bir projeye aktarmaktır. Bu yöntemle, kullanılmayan kod bloklarından tamamen kurtulabilir ve Blueprint'in daha düzenli bir tasarımı oluşabilir. Ancak, bu yöntem uygulandığında, Blueprint'in bağlantıları yeniden oluşturulmalıdır.

Bütün olarak bakıldığında, kullanılmayan kod blokları, Blueprint'in boyutunu artırarak performansı etkiler. Bu nedenle, Ölü Kod Bloklarının temizlenmesi, Blueprint tasarımında düzenli ve verimli bir kodlama ortamı oluşturmak için büyük önem taşır. Kullanılmayan kod bloklarının sistemli bir şekilde silinmesi, Blueprint tasarımını daha okunaklı hale getirerek, geliştirme sürecinin hızlanmasına yardımcı olur.


Daha Hızlı Kod Yazmak İçin Gereksiz İşlemlerin Önlenmesi

Blueprint geliştirme sürecinde daha hızlı kod yazmak için gereksiz işlemlerin önlenmesi oldukça önemlidir. Bu sayede oyunun performansı artacak ve daha akıcı bir oyun deneyimi sunulacaktır. Gereksiz işlemleri önlemenin en temel yollarından biri, kodda tekrarlanan işlemlerin engellenmesidir. Aynı işlemi birkaç kez tekrarlayarak oyunun performansını düşürebilirsiniz. Bu nedenle, kodu bir kontrol yapmadan yazmadan önce düşünmek önemlidir.

Bir diğer önemli unsur da for döngüleri gibi işlemlerde kullanılan koşulların mümkün olan en basit hale indirgenmesidir. Gereksiz koşullar veya uzun for döngüleri oyunun performansını olumsuz etkileyebilir. Bu nedenle, kod içinde sadece gerektiği kadar işlem yapmak önemlidir.

Do Don't
Kodunuzu optimize etmek için gereksiz kod bloklarını kaldırın Uzun for döngüleri kullanmayın
Kodunuzda tekrarlayan işlemleri önleyin Gereksiz koşullar kullanmayın
Kodunuzu sade ve anlaşılır hale getirin Son anda optimize etmeye çalışmayın

Gereksiz işlemlerin önlenmesi oyun performansını artırmanın yanı sıra, kod kalitesini ve okunabilirliğini de arttırır. Kodunuzu düzenli tutmak ve gereksiz işlemleri önlemek için Blueprintlerin içinde kod bloklarını uygun bir şekilde düzenlemelisiniz.


Debugging Teknikleri

Blueprint geliştirme sürecinde hata ayıklama süreci oldukça önemlidir. Bunun için Unreal Engine Blueprint, çeşitli debugging teknikleri sunar. Bu teknikler sayesinde geliştirme süreci daha verimli hale getirilebilir ve hatalar daha hızlı bir şekilde tespit edilebilir.

Bu debugging tekniklerinden biri olan BreakPoint, Blueprint'in istenilen bir adımda durdurulmasını sağlar ve hata kaynağı tespit edilebilir. Debugging Tab ise hata ayıklama sürecinin daha verimli olmasını sağlar. Bu özellik sayesinde değişkenlerin değerleri izlenebilir, Blueprint düğümleri değiştirilebilir ve hata ayıklama işlemleri daha hızlı bir şekilde gerçekleştirilebilir.

Ayrıca, Blueprint geliştirme sürecinde yararlı tablolardan ve listelerden de yararlanabilirsiniz. Örneğin, hataları tespit etmek için kullanılan istisna tablosu (Exception table) ve genel olarak hata ayıklama sürecini hızlandırmak için hazırlanan debugging işlemi listesi (Debugging Checklist) sayesinde hataların kaynağı daha hızlı bir şekilde tespit edilebilir.

Sonuç olarak, Blueprint geliştirme sürecinde doğru debugging tekniklerinin kullanımı hızlı ve verimli bir geliştirme sürecini sağlar. Debugging Tab, BreakPoint, istisna tablosu ve debugging işlemi listesi gibi Unreal Engine Blueprint'in sunduğu tekniklerden faydalanarak hata ayıklama sürecini hızlandırabilirsiniz.


BreakPoint Kullanımı

Blueprint geliştirme sürecinde, kodun istenilen adımda durdurulması (break) ve hatanın tespit edilmesi için BreakPoint kullanımı oldukça önemlidir. Bu sayede, Blueprint'in hangi adımda hata verdiği belirlenerek, düzeltme aşaması daha da hızlı bir şekilde gerçekleştirilebilir.

BreakPoint, Blueprint'in çalışmasını durdurduğu bir adımı belirtir. Bu adımda, belirli bir noktada kodun durdurulmasını sağlar. Ardından, Debugging Tab özelliği kullanılarak, hata tespit edilir ve düzenlenir. İstenilen adımda kodun durdurulması sayesinde, hatalı olan kod blokları tespit edilerek, zaman kaybetmeden düzenleme işlemi gerçekleştirilir.

Bir örnek vermek gerekirse, bir oyunda karakterin can puanının azalması durumunda, can puanı değişkeninden bir değerin düşmesi gerekir. Ancak, belirli bir noktada can puanının değiştiğine dair bir hata oluşabilir. BreakPoint kullanılarak, hata veren bloklar tespit edilerek, düzenlenmesi sağlanır. Bu nedenle, programlama dilinin temel kullanım kriterlerinden biri olan hata ayıklama, büyük ölçüde BreakPoint kullanımına dayanır.


Debugging Tab Kullanımı

Debugging Tab, Unreal Engine 4 Blueprint editöründe bulunan önemli bir araçtır. Bu özellik, blueprintin çalışmasını sırayla adım adım takip etmenizi ve hata ayıklamanızı sağlar.

Debugging Tab'in kullanımı, hata ayıklama sürecini daha verimli hale getirir. Debugging Tab'i kullanabilmek için öncelikle Blueprint'inizi açmalısınız. Daha sonra, üst menüdeki "Debug" butonuna tıklayarak Debugging Tab'i açabilirsiniz.

Debugging Tab'de, Blueprint'deki tüm değişkenlerin ve işlevlerin adımlarını görebilirsiniz. Blueprint'in her adımında ne olduğunu anlamak için, her adımın üzerine tıklamanız yeterlidir. Debugging Tab ayrıca, her adım sonrasında Blueprint'in durumunu gösterir. Bu durum, hata varsa nerede olduğunu bulmak için son derece önemlidir.

Debugging Tab'i daha da kullanışlı hale getirmek için, sağ taraftaki paneldeki "Watch" sekmesini kullanabilirsiniz. Bu sekme, seçtiğiniz değişkenin değerini her adımda takip etmenizi sağlar. Böylece, değişkenlerin nasıl değiştiğini ve belirli bir adımda hangi değeri aldığını görebilirsiniz.

Sonuç olarak, Debugging Tab kullanımı, Blueprint geliştirme sürecinde hata ayıklama işlemini çok daha kolay hale getirir. Bu özellik, geliştirme aşamasındaki hataların tespit edilmesinde büyük bir fark yaratır.