Devblog 99 – Geliştirici Bloğu (Güncelleme) 99

Devblog 99 Türkçe

Kurmalı hedefler, çok çekici zindanlar, yeni gelecek tecrübe sistemi, kadın karakterlere yakından bir bakış ve daha fazlası!

Müzik – Alex Rehberg

 

Bu hafta yine yeni müzikler. Bu müziği yazarken Rust’taki gün doğumu resimlerine baktım. Bu müzikte ana sesin yerine geçebilecek bir tane daha melodik öğe eklemeyi düşünüyorum. Davulları biraz daha çeşnili bi hale getirmeyi ve duygusal yoğunluğunu artırmayı düşünüyorum. Ama şu anki hali ile de olduka memnunum!

Websocket RCON – Garry Newman  (Tek IP soketi üzerinden çift yönlü iletişim kanalı açılmasını sağlayan protokol.)

Varsayılan olarak Kaynak Motoru protokolü gibi çalışan bi’  RCON sistemi kullanıyoruz. Bu şekilde başlandı ki zaten var olan alet edevatı kullanabilelim. Oldukça çok kullanılan, belgeleri kolay bulunan ve herkes tarafından bilinen, başkalarıyla konuşması kolay olan bir protokol.

Websocket RCON’un geleceği parlak. Az çok aynı şekilde çalışıyorlar fakat websocket herhangi bir internet tarayıcı ile direk olarak iletişime geçebiliyor. Haliyle nasıl faydaları olabilceği belli. Browser üzerinden tek bir html dosyasında geniş çaplı bir RCON aleti oluşturulabilecek. Bidaha sunucuyla uğraşılması gerekmeyecek.

Bu yeni sistem önceki ile birlikte çalışamıyorlar o yüzden değiştirdik. Haliyle varsayılan olarak artık Websocket RCON var. Sunucunuzu websocket RCON ile başlatabilmek için komut satırına “rcon.web 1”  eklemelisiniz.

Umudum basit, herhangi birinin katkıda bulunabileceği github sayfaları gibi açık kaynaklı web uygulamalarında yer edinilmesi. Bu sayede herkes kendi tarayıcılarından ve ya herhangi bir cihaz ve ya işletim sisteminden önümüzdeki birkaç hafta içinde kontrol sağlayabilecek.

Kurmalı Hedef – Maurino Berry

Kurmalı Hedef yerleştirilebiliri artık oyunda. Oyunda çok büyük değişiklikler yapacak birşey değil fakat kullanması eğlenceli olacaktır özellikle poliogon gibi yerler kurmayı seven arkadaşlar için. Ayarlamaları şu şekilde; bir oyuncunun yere yığılması ile aynı hasarda kapanıyor ve tam ortadan isabet kafadan vurma ile aynı etkiyi yaratıyor. Ortadan vurmanın ayriyetten bir efekti var. Hedefi vurup indirdikten sonra yanına gidip basitçe E ye basarak tekrar kurup tekrar kullanabilirsiniz. Aynı ayı kapanları gibi.

Tecrübe (XP) Sistemi – Garry Newman

Tecrübe sistemini ön gösterim sunucusunda kullanıma açtım. Şu anki haliyle ciddi anlamda bok gibi. O yüzden çok denemeye şimdilik heveslenmeyin. Ayrıca şu an Unity 5.4 beta versiyonunda çalıştığı için hata verip çökmesi de çok muhtemel. Sanırım birdahaki aya kadar 5.4 versiyonunu tam olarak paylaşacaklar. O zamanda tam olarak stabil olacağını düşünüyorum. Rust’ı da onda çalıştırıp çökme sorunlarını aydınlatıp sorunları çözmek ve oyunu daha iyi bir hale getirmek içinde bu önemli.

Bu hafta üzerine değinmek istediğim şeylerden biri ise sizin artık etrafta dolaşıp plan toplamanız gerekmiyeceği korkusu. Oyuncular artık etrafta dolaşıp eşyalar toplamaları gerekmiyeceği çünkü planların artık tecrübe sistemi ile kazanılacağı hakkında endişeleniyorlar. Bu çoğunlukla doğru.

Amacımız etrafta eşya toplamayı daha akla yatkın bir hale getirmek. Şu anda Rust’ta çoğu şey odun, metal ve benzeri hammaddeler ile üretiliyorlar. Bunun daha mantıklı bir hal almasını istiyoruz. Örneğin Konserve Duvar Lambası üretmek istiyorsanız: ton balığı konservesine ve çatala ihtiyacınız olacak. Bu eşyaları sihirle üretemeyeceğnize göre etraftan arayıp bulmanız gerekecek. Bu sayede oyunun ileri safhalarında daha sofistike eşyalara sahip olup üretebilmek için daha nadir olan eşyaları toplamanız gerekecek. Ve bu sayede bazı küçük şeyler çok değerli hal alacak.
( Haydi hayırlısı eğlenceli olacak gibi 🙂 )

Linux Sunucusu – Garry Newman

Şu Slack’ta ki arkadaş Linux sunucusu çalıştırmayı becerdi. Ve değişiklikleri ana sistemde yaptı. Artık Linux sunucusu dosyasını indirebilir ve hemen kurabilirsiniz. 

Resmi sunucularımızdan birini bir haftadır Linux üzerinden çalıştırmakta idik. Görünüşe göre stabiliteside Windows ile aynı gibi. Daha yeni ve karşılaştırması zor olduğu için özellikle başka hafıza (RAM) ve işlemci (CPU) larda nasıl olacağını Linuxta pek bilemiyorum.

Sunucuyu Linuxa kurmanın en büyük avantajı ise Linux un tamamen ücretsiz olması, ki bu kurduğunuz sunucu sayısına göre oldukça büyük bir miktar para fark ettirecektir. 

Zindan Lağımları – Vincent Mayeur

Zindanlar hakkında yeni gelişmelere hazır mısınız? Bu hafta sizin için lağımlarım var (en başta ki resimi de inceleyin):

dungeons_art_015

dungeons_art_011

 

 

 

 

 

Resimlerdeki bazı öğeler halen daha biraz çalışma istiyor: genellikle eskitmeler. Eskitmeler için bi’ ışıklandırma yazmamız lazım ki garip garip gölgeler oluşmasın etrafta. Işıklandırma ayrıca iki görüntünün üst üste binip titreklik yapmasını da önleyecektir. Ayrıca en yakın zamanda katmanların görünebilirlik dereceleri ile bir ayarlama yapmamız lazım. Çünkü şu anki haliyle güneş ışığı tepeden beri tünellere yansıyor ki bu da ortalığı at bokuna bulanmış gibi gösteriyor. Bu sorunlar çözdükten sonra iç kısımlara daha enteresan atmosferik öğeler ekleyebileceğiz.

Zindan Boru Hatları – Vincent Mateur

Bu hafta ayrıca zindanlardaki boru hatlarının görünümlerini de tamamladım:

dungeons_art_018dungeons_art_017

dungeons_art_016

 

 

 

 

Yükleme Dengeleme Geliştirmeleri – André Straubmeier

Rust’ta yüklemeler için istemci üzerinde bir yükleme dengeleyici kullanıyoruz. Bu dengeleyici görüntülenen kare başına düşen işlemler eğer çok fazla ise bir iş kuyruğu oluşturup birkaç saniye içerisinde hazırlıyordu ki aşırı yükleme olmasın. Ana vakit geçtikçe bu sisteme git gide daha çok yük bindirildi ve şöyle bir soruna yol açtı: özellikle eski ve güçsüz cihazlarda kare başına düşen işlem fazla geldiğinde kuyruk oluştururken git gide oluşan kuyruk ve iş yükü o kadar çok oluyordu ki sistem kullanılamaz bir duruma geliyordu. Bu sorun özellikle yönetici modunda etrafta uçup gezerken oluyordu. Bu sorunu çözmek için bu hafta Yükleme Dengeleyicisini yeniden kodladım. Pek bir akıllı bıdık oldu kendisi. Artık kare başına düşen işlemleri daha güzel dağıtıp dengeleyecek. Geçmişe göre devasa biriktirmeleri yapmayacak. (Umarım)

Stabilite Hazırlığı Sisteminin Emekliliği – André Straubmeier

Sunucu yeniden başlatması sırasındaki stabilite hazırlığını tamamen kaldırmak adına tetiği çektim bu hafta. Eğer hatırlar iseniz birkaç hafta önce sunucu yeniden başlamasını daha hızlı hale getirmek adına serileştirilmiş stabilite kontrolü eklenmişdi. Fakat herşeyin düzgün çalışması adına ilk başta bir stabilite kontrolü yaptırtıyorduk ve hiç veri saklamamış olan eski oyun kayıtlarında stabilitede sorun çıkmıyordu. Bu kontrole gerek kalmadı ve kaldırdık. Sunucu yeniden başlaması artık daha da çabuk olacak.

Kill demek, Ölüm demek! – André Straubmeier

Bu değişiklik Twitter’da oldukça ses getirdi. “Kill” komutunun ilk yazıldığında sizi önce incitip yere düşürmesinin arkasında ki ana sebep insanların intihara teşebüüs ederken iki kere düşünmesi idi. Fakat bu insanların davranışına hiç etki etmedi ve sadece sinir bozucu bir hal aldı. Bundan sonra konsola ne zaman “kill” yazsanız karkateriniz anında ölecek. Bu değişikliğin dünyanın sonu olduğunu düşünen arkadaşlar. Hayat devam ediyor. Çok bilinmesede baştan beri ayriyetten sizi sadece incitmesi için “injure” komutu da var idi. Eğer yaralı durumuna geçip yere düşmek istiyorsanız buyurun sizi seviyoruz. Bu konu ile ilgilenirken başka bir soruna da değindim. Elinizdeki aktif eşyanın yaralı duruma geçmeden anında öldüğünüzde bazen elinizden düşmemesi ile ilgili bir sorun vardı bu da sinir bozucu oluyordu çünkü bazen yeri bir silah için kontrol etmeniz bazende gerek olmaması durumu vardı. Artık düşecek arkadaş. Yok öyle ölüpte silaha tutunmak. 

Oyuncu Model Çeşitlilikleri – Taylor Reynolds

Asyalı kadın karakter kafası çeşitlemesini bitirdim. Görünüşte yine ufak tefek oynamalar yapabilirim. Kaşlarında başın üzerinde durduğu pozisyonlar ve nasıl göründükleri ile ilgilide bir ara düşünmek istiyorum fakat neredeyse hazırlar. 

 

 

 

 

 

 

 

 

 

 

 

Oyuncu Diş Modelleri – Taylor Reynolds

Yeni oyuncu modelleri yeni bi’ set dişe sahip artık. Bugünün sonuna kadar bitirmiş ve oyuna eklemiş olurum bunlarıda.

Çevresel Renk Emilimi Geliştirmeleri – Diogo Teixeira

Ekrandaki çevresel görüntülerin renk emilimlerinde bazı değişiklikler yaptım. Artık Unity’nin fizik tabanlı ışıklandırma sistemi ile daha uyumlu. Direk ışıklandırılmış yüzeylerde aşırı gölgelenmeyi ortadan kaldıracaktır. Ekrandaki çevresel emilim artık dış kabuk tabanlı emilim ile ortak çalışacak. Sonuçta zaten aynı efektleri yansıtıyorlar sadece farklı frekanslarda. Çimenlerin aşırı gölgelenmeden dolayı hep bi karanlık olması sorunuda çözmüş olduk. Bakın iki resim arasındaki renk farklarına bakalım. 

 

 

 

 

 

 

 

 

 

Kadın Kıyafetleri – Taylor Reynolds + Garry Newman

Garry kadın kıyafet sistemini oyuna ekledi. Belirli kıyafetlerde kadın karakterlerin kendilerine özgü setleri olmasını sağladı. Basit bi’ değişiklik yaptık fakat oyuncu silüetlerine bakarken çok fark olduğunu farkedeceksiniz. Ve ek olarak tshirtler sanki içine zırh giymiş gibi görünmeyecek doğal olsun istedik. 

Buzluk (Konsept Çalışması) – Howard Schechtman

Eğer yiyecek saklama işini daha daha gerçekçi yöne doğru çekmeyi düşünürsek saklamak için soğuk biryere ihtiyacımız olacak. Bu yüzden buzluk için birkaç konsept çalışması yaptım. 

Duvara Monte Çark (Konsept Çalışması) – Howard Schechtman

Oyuncular oldukça yaratıcılar. Çoğu zaman Rust içinde bizim hiç aklımıza gelmeyen oyunlar türetiyorlar. Bu durumu desteklemek amacı ile çark fikri aklıma geid. Boyanabilir duvar çarkının nasıl kullnılabileceği hakkında birkaç fikir yürüttüm. Fakat eminim ki oyuncular çok daha yarıtıcı şekillerde kullanacaklardır. 

 

 

 

 

 

Birim Yoketme Takibi – André Straubmeier

Eğer programlamacı değilseniz bu kısımı geçmek isteyebilirsiniz. Ya da diyorsanız ki uyumakta zorluk çekiyorum biraz göz gezdirin. 😀

Unity kodlamaya başlayan çoğu yeni kişi için garip gelen şeylerden biri ise oyun motoruna birşeyleri yok etmesi komutunu vermektir. Her bir şeyi yoketmek için kullanılan tek bir metod var. İster kod dizimi olsun ister oyun objesi ve ya başka herhangi birşey. Sabit bir metod olduğu için MonoBehaviour ya da ScriptableObject olsun herhangi birinde uygulanabilir. Bununla ilgili sorun ise yapmaman gereken birşey yaptığında dönüt olarak hata bildirimi alamaman.

Texture.Destroy(gameObject) girdiğinde hiçbir sorun olmayacaktır çünkü asıl yapılan şey Object.Destroy(gameObject) oluyor. Bunun farkında olmayabilirsiniz. Ayrıca GameObject.Destroy(this), yapabilirsiniz fakat aslında oyun nesnesini silmeyecek fakat komut dosyasını silersiniz. Gün gelecek büyük bir proje yazacaksınız ve bağlantı ve komut derlemeleri oluşturmanız gerekecek Unity’nin kendinde olanları kullanmak haricinde. Ve bu noktada OnDestroy() girilmeden önce kendi Kill() metodunuzu eklemeniz gerekebilir.

Herşey harika ta ki birisi gelip birimlerden birine Destroy() komutu girene kadar. OnDestroy() komutu üzerinde bunu farketseniz bile sorunun çıktığı kaynağı tam olarak bulamayağınız için sıkıntı olacaktır. Çünkü OnDestroy() aslında bütün kareler güncellenip yüklenene kadar gerçekleşmiyor. Geçen hafta sorun çözmeye çalışırken karşılaştığımız şey tam olarak buydu. Bu durumunda bize pek haz verdiği söylenemez haliyle. 

İşleri daha kolay bi hale getirmek için ve bi hata yapıldığında saniyesine sorunu farkedebilmemiz adına kendi Yoketme metodumuzu oluşturdum. Eğer olurda aptalca birşey yapmaya kalkarsak hemen söyleyecek. (İnşallah). Siz siz olun eğer bir oyun geliştirici iseniz bu tür işler ciddi sorunlar yaratmadan erkenden icabına bakın.

Kocaayak (Konsept Çalışması) – Paul Bradley

Bu hafta Rust’ta hayvanlardan başka farklı çeşitli yaratıklar olmasının güzel bi fikir olacağını düşündüm ve şehir efsanelerine dayanan şeyler ürettim. Bu yüzden Koca Ayak fikri üzerinde durdum, fakat biraz daha farklı bi türde daha maymunumsu gibi bir görünüşte.

Dev tüysüz insanımsı radyasyondan ve kimyasal atıklardan etkilenmiş belki de bir bilimsel araştırmanın talihsizliğine kurban gitmiş bir arkadaş. Radyasyondan etkilenmiş yaratıkların bir çeşit parlamalasının olup geceleri zayıf noktaları belirtmesi fikri gerçekten hoşuma gidiyor. (Geçen haftaki devblog 98 de bahsedilmişti)

Değişenler

  • Websocket RCON eklendi
  • Thompson dış kabuk ikonları düzeltildi
  • EAC Güncellendi
  • RCON artık yükleme sırasında geliyor
  • Linux sunucuları artık çalışıyor (!)
  • Hedef pratiği için kurmalı yedef yerleştirilebiliri eklendi
  • Yeni yoketme takibi metodu eklendi (hata yapıldığında bildiri verecek)
  • Zırhlı merdiven temellerinin yanına bitişik temellerin yanlarını silmesi düzeltildi.
  • Oyuncuyu iptal ederken oluşan yığında nesne hiyerarşi hataları giderildi.
  • Sunucu başlangıcında stabilite yüklemesini tamamen emekli ettik. (Daha hızlı kurulma süresi)
  • Yükleme Dengeleyicisi kare başına artık yükü daha düzgün dağıtıyor.
  • Kill motununun anında öldürmesi sağlandı (Yaralanıp düşürmek yerine)
  • Yaralanmadan anında ölünce aktif eşyanın elinden düşmemesi sorunu giderildi
  • Ötelenen çıkartmaların yeni konumlanmasında dinamik hafıza kaldırıldı.
  • “decal.cache convar” eklendi (eğer “kirli” olarak işaretlenmişse her karede yenilen gibi komutlar için)
  • Ağaçlar, madenler, variller ve toplanılabilirlerin kayaların dibinde bazen havada oluşmalarıyla alakalı sorun giderildi.
  • Kargo Uçağının kanat pervanelerinin uzaklaşınca sis içinde kaybolmamaları sorunu giderildi.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir