Blog Yazıları

Ubuntu'da Mount & Blade: Warband'ın Mod Değişimi

Linux dağıtım sistemlerinden biri olan Ubuntu'ya Warband yüklediğimde karşılaştığım sorunlardan bir tanesi mod değiştirememek oldu. Örneğin yüklediğiniz oyunun bir modunu oynamak istiyorsunuz ancak oyun açılış penceresi ile açılmak yerine direkt olarak oyunu 'native' modda açıyor.

Bu sorunu çözmek için aşağıdaki adımları uygulayalım:
  • Steam kütüphanesinden Warband'a sağ klik yapın ve Properties seçeneğini seçin. 
  • Sonrasında Local Files/Browse Local Files/Modules yolunu izleyerek Modules klasörüne ulaşın.
  • Modules klasörüne girdiğinizde içinde native adında bir klasör olacak. Bu klasör bizim oyun modumuz. Yüklemek istediğiniz oyun modu klasörünü Modules klasörü içine atın.
  • Native klasörünü geçici olarak 'Native_temp' olarak adlandırın ve yüklediğiniz modu ise 'Native' olarak adlandırın. Bu işlemden sonra mod değişmiş olacaktır.
Devamını Oku »

Unity Oyun Motorunu Ubuntu'ya Yükleme

Linux'ta Unity'i kullanabilmek için aşağıdaki adımları gerçekleştirmemiz gerek. Yükleme yapacağım dağıtım sistemi Ubuntu 18.04. Gerekli adımlar:
  • Bağlantıdan Linux Download Assistant'ı indirin.
  • İndirme işleminden sonra terminalden şu komut satırını yazıp, çalıştırın: chmod +x /home/username/Downloads/UnitySetup-2018.2.7f1
  • Gerekli kütüphaneleri indirip, yüklüyoruz. sudo apt install libgtk2.0-0 libsoup2.4-1 libarchive13 libpng16-16 libgconf-2-4 lib32stdc++6 libcanberra-gtk-module
  • Komut satırını giriyoruz: ~/Downloads/UnitySetup-2018.2.7f1
  • Sonrasında karşımıza Unity Download Assistant penceresi çıkıyor. Forward deyip, ilerliyoruz.
  • Kullanım şartlarını kabul ediyoruz. Accept yapılır.
  • Gerekli bileşenler seçilir ve sonrasında Forward yapılır. Zaten varsayılan olarak ilk seçenek seçilidir.
  • Downloads dosyası olarak belirtilir. Bu şekilde yükleme sırasında indirilen dosyalar bu klasöre indirilecek. Forward yapılır.
  • İndirme ve yükleme işlemleri bitene kadar beklenir.
  • Home dizininde Unity-2018.2.7f1 adında bir klasör olacaktır. Bu klasörün yerini /opt/Unity3D'ye taşıyacağız.
  • sudo mv Unity-2018.2.7f1 /opt/Unity3D. Taşıma işlemi belli bir süre alabilir. Bu sürede beklemekte yarar var. 
  • sudo ln -s /opt/Unity3D/Editor/Unity /usr/bin/unity3d komutu çalıştırılır. Bundan sonra Unity3D çalışmaya hazır olacaktır.
  • Terminal üzerinden unity3d komutu ile açılabilir.
Devamını Oku »

Unity Temel Component'ler

Unity içinde bilinmesi gereken bazı temel component'ler vardır. Bu component'ler sık kullanılan component'ler arasında gelmektedir. Bunlar hakkında kısaca tanımlamalar yapalım:
  • Collider: Nesneler üzerinde fiziksel olarak belli sınırlamalar tanımlama için kullanılır.
  • Audio Source: Nesne için ses özelliği getirir.
  • Renderer: Nesnelerin render edilmesinde sorumlu component.
  • Rigidbody: Nesneye gerçek dünyayı taklit etmek suretiyle fiziki özellikler veren component. Örnek olarak, nesnenin belli bir ağırlığı ve yerçekime bağlı olması gibi.
  • Animator: Nesne için animasyon özelliği sağlayan component.
  • Audio Listener: Ses verisi almaya dayalı bir component.   
  • Light: Nesneyi bir ışık kaynağı olarak kullanabilmek. Bu ışık kaynağının özellikleri programcıya bağlı olarak değişebilir.
Devamını Oku »

Unity Çalışma Mantığı

Hierarchy paneline bakılırsa, SampleScene adında örnek bir sahne eklenmiş olarak yeni proje başlatılmış. Bu sahne içerisinde Main Camera adında bir object var. Main Camera nesnesine çift tıklanırsa aşağıdaki gibi bir görünüm olacaktır.
Unity Çalışma Mantığı
Main Camera Etkin Olduğunda
Yukarıda görüldüğü gibi, sahneden biraz uzaklaşmakta bir beyaz çizgili bir dikdörtgen yapısı görünmektedir. Bu çizgi içerisinde kalan dikdörtgen alan viewport, yani oyuncunun oyunu oynarken göreceği alanı göstermektedir.

Çizgi üzerinde duran dört tane küçük beyaz kutucuklardan birisini imleç kullanarak viewport boyutunu ayarlayabiliriz.

Scene panelinde zoom-in ve zoom-out yapmak için mouse scroll ya da Alt + RMB kullanmak yeterlidir.

Bir sahneyi içinde yer alan nesneler oluşturur. Bu nesnelere GameObejcts denir. GameObject olarak kastedilen şeyler, bir GUI, NPC, butonlar, ses kaynakları gibi birçok şey olabilir.

Bir diğer bilinmesi gereken kavram ise component kavramıdır. Component sayesinde GameObject'lerin sahnede nasıl davranması gerektiği ayarlanabilir. Component'e örnek olması amacıyla, eğer Main Camera nesnesine tıklarsanız Inspector panelinde çeşitli ayar segmentleri görülecektir.

Inspector panelini incelersek, ilk olarak nesne hakkında genel bazı ayarlar mevcut. Sonrasında ise Transform adında bir component. Bu component neredeyse tüm nesnelerde bulunmaktadır. Component içerisinde üç temel ayar bulunmaktadır. Bunlar sırasıyla; position, rotation ve scale.
  • Position: Nesne konumunu temsil eder.
  • Rotation: Nesnenin bulunduğu konuma bağlı olarak aldığı açıyı temsil eder.
  • Scale: Nesne boyutlandırmasını temsil eder.
Var olan component'ler dışında farklı isteğe bağlı component'ler, Add Component ile eklenebilir.

Aşağıdaki grafik, GameObject ve component kullanımını daha iyi bir şekilde özetleyecektir.
GameObject ve Component Mantığı
GameObject ve Component Mantığı
Devamını Oku »

Unity Geliştirme Ortamını Tanıma

Unity oyun motorunda geliştirme yapmadan önce, onu tanımak gereklidir. Bunun için bir proje oluşturulup, sonrasında bölümleri kısaca inceleyelim. Bölümler aşağıda listelenmiştir:
  • Hierarchy
  • Scene
  • Inspector
  • Project
Bu dört bölüm, en başta bilinmesi gereken bölümlerdir. Bunun dışında başka pencereler de mevcuttur.
Unity Ekran Görüntüsü
Unity Ekran Görüntüsü
Sarı renkte gösterilen panel Hieararchy bölümüdür. Bu bölümde oyun nesneleri ve sahne değişkenleri yer almaktadır. Bir nesne eklemek istersek bu kısma sürükle-bırak yapmak yeterli olacaktır.

Kırmızı renkte gösterilen panel oyun sahnesinin yer aldığı Scene panelidir. Oyunun nasıl görüneceğine bu panelde karar veriyoruz. Gerektiğinde yan sekmede, Game sekmesi, oyunun nasıl göründüğünü önizleyebiliyoruz.

Turuncu renkli kısımda Inspector olarak adlandırılmaktadır. Bu kısım için ayarlar kısmı diyebiliriz. Daha net olmak gerekirse, bir oyun nesnesine ait spesifik ayarlar bu panel üzerinden gerçekleştirilecektir. Örneğin, bir nesnenin yer çekimine duyarlı olmasını istiyorsak, bu ayar Inspector panelinden gerçekleştirilmelidir.

Alt kısımda yer alan, mavi renkli bölge, Project sekmesidir. Bu kısımda varolan projenin dosyaları yer almaktadır. Bu kısımda asset denilen, oyun görüntü dosyalarını vs. ekleyebiliriz. Aynı zamanda font, ses ve texture dosyaları da buradan eklenip, görüntülenebilir.
Devamını Oku »

auto - C++11

auto, C++11 standartı ile gelmiş bir özelliktir. auto ile tanımlanan değişken belli bir tipe sahip olmamaktadır. Değişken tipi verilen veriye göre belirlenmektedir.
auto x = 4;
Yukarıdaki koda göre, x değişkeninin veri tipi integer olmaktadır, çünkü atanan değer bir integer. Eğer char tipinde bir değer atasaydık o zaman değişken tipi char olarak belirlenecekti.

auto ile yapılabilecekler bununla da sınırlı değil. Bir lambda fonksiyonunu auto değişkenine atayabiliriz. Sonrasında o auto değişkeni bir fonksiyon olarak kullanabiliriz.

Peki neden auto kullanılmalı? Bunun en büyük sebeplerinden bir tanesi, yazılması uzun olan veri tipleri ile alakalıdır. Bu sayede kodun okunabilirliği arttırılmış oluyor.

Ancak dikkat edilmesi gereken bazı noktalar var. Bunlardan birisi, auto değişkeni değer atama olmadan tanımlanamaz. Mutlaka en başta bir değer atanmalı. Bir diğer husus ise auto değişkeni başlatıldıktan sonra değeri değiştirebiliriz, ancak değişken veri tipi değişemez.
Devamını Oku »