BAU Game Jam 2023

Bu sene çaktırmadan new year resolution listeme yüksek lisansa başlamayı eklemiştim. Devam edeceğimden emin değildim, işler yoğun, hayat yoğun, bu yükü kaldırabilir miyim bilmeden bir işe giriştik. Bahçeşehir Üniversitesi’nde Oyun Tasarım bölümünde yüksek lisansa başladım. Dönemde dört ders alınıyor, ikisi zorunlu ikisi seçmeli. Oyun tasarımının temelleri dersinde kutu oyunlar üzerine epey çalışıyoruz. Bu dönemki game jam etkinliğinde ufak bir proje yaptık. Ticaret ve deniz savaşları üzerine bir oyun. Aşağıda haritası var, üstüne figürlerle gemiler koyuyoruz, kartlar açıyoruz. Daha önceden çok uğraştığım bildiğim bir alan değildi kutu oyunları, yeni şeyler öğrenmeye devam ediyoruz.

Software QA Meetup Grubu

Yaklaşık dört yıl önce Ankara ekibimizdeki arkadaşlarımız sektördeki diğer meslektaşlarımızla paylaşmak için bir grup kurma ve etkinlik yapma fikriyle gelmişlerdi. Bir kaç online ve fiziksel etkinlikten sonra grubu biraz daha geliştirme amacıyla adını ve lokasyonunu değiştirdik. Sofware QA Community ve İstanbul lokasyonu ile devam ediyoruz. Linki şurada: https://www.meetup.com/software-qa-community/

Bu aralar çoğunlukla online etkinlikler düzenliyoruz. İnsanların covid sonrası remote çalışmaya dönmesi, iş hayatının yoğunluğu biraz da bizi bu yöne itti. Meetup eskisi kadar popüler değil gibi bir izlenim vardı trendlere baktığımda biraz düşüş gözüküyor

İdealde bir etkinlik yaptığınızda platformun kendisinden çok fazla katılımcı beklememek gerekiyor üyelerden katılanlar, linkedinden paylaşımları görüp üye olanlar oluyor, duyuruyu vs yapıyoruz onlarla katılanlar oluyor. Yer ayıran herkeste her zaman katılmıyor o yüzden tavsiyem etkinlikleri olabildiğince erken duyurmak, belli aralıklarla hatırlatmalar yapmak yönünde olacak.

Başlık seçimi, ilgi çekicilik tabiki ayrı konular. Reklamcılık dersi verecek bir bilgim yok genelde tecrübelerimizi aktarmaya çalışıyoruz, Insider’da 7 yıldır çalışıyorum ve bu dönemde ekibin teknik yönden gelişimi ve bu tecrübeleri başka insanlarla paylaşılmasının sektöre katkı vermesini umuyorum. Epey bir insana meslek öğrettik, üniversitelerde etkinliklerde konuşmalar yaptık, bu sene ilk defa bir üniversitede QA hakkında ders vermeye başladım günün sonunda bilginin paylaştıkça çoğalacağına, sektörün ilerlemesinin hem bizlere hem de ülkemize katkı vereceğini düşünüyorum. Etkinlikler oldukça buradan da paylaşacağım. Sıradaki etkinliğe buradan katılabilirsiniz https://www.meetup.com/software-qa-community/events/297334872/

Blogger’dan Taşındık

2008’ben beri kullandığım devador.blogspot.com adresinden sonunda kendi domain adresime taşındım. Çok uzun zamandır blogspot tarafında bir güncelleme olmuyor google’ın da ürünleri kapama işi baya popüler ne olur ne olmaz diye kendi alan adıma taşınmaya karar verdim.

Bunu yaparken önce blogspot’dan export alıyoruz tüm içeri. WordPress blogspot üzerinden migration için güzel bir araş sunmuş ama içeriği yüklerken cloudflare beni blockluyordu. Bu yüzden önce godaddy üzerinden cdn’i pasife geçirdim ardından yükleme işlemini tamamladım. Sonrasında CDN tekrar aktif hale getirildi.

Taşıma işlemi sorunsuzdu en azından temel olarak ama bir kaç düzeltilmesi gereken ve uğraştığım iş var. Birincisi etiketleri kategori olarak taşımıştı bu yüzden tüm kategorileri ve etiketleri silip baştan ayarlamaya başladım. İkincisi normalde taşırken google search console’da bu site şuraya taşındı gibi bir ayar varmış ben ise bam diye eski siteyi sildim haliyle baştan indexlenmesi ve değer koyması gerekecek sayfalarımıza. Taşıma işleminde temaya uymayan içerikler var nasıl düzelteceğimi bulamadım onları da tek tek düzenleyip düzgün görünür hale getirmem gerekecek, kod örnekleri, uzun linkler wordpress’in base temasında sorun çıkarıyor.

Arayüz tasarlamayı kolaylaştırdıklarını düşünüyorlar sanırım ama bence çok kötü olmuş. Ne nerde nasıl değiştiriliyor epey bir takla atmamız gerekiyor. İçeriği toparladıktan sonra tema işlerine tekrardan gireceğim. Hadi hayırlısı.

Future

The estimated age of the universe is approximately 13.8 billion years, Earth is about 4.54 billion years old, and it’s believed that the human race has been around for approximately 200,000 years. It’s worth noting that during Earth’s 4.5 billion-year journey, there have been five catastrophic events that completely wiped out life on our planet. If we define modern humans by the discovery of writing, that goes back roughly 5,000 years. I share these numbers to illustrate just how small and insignificant a single individual’s lifetime is in the grand scheme of the universe. In this seemingly inconsequential span of time, human beings are, nevertheless, a unique anomaly or miracle in the universe, at least for now.

Individually, your life may seem devoid of meaning from the perspective of the universe, but you are still an extraordinary being with boundless potential. To make our lives meaningful, as a species, we must work together and leave a mark in the universe. If we look at where we’ve come in the last two thousand years:

As a human race, we have created a plethora of different concepts like race, nationality, state, religion, language, political ideology, sexual orientation, money, materialism, and many others. We have used these concepts to distinguish ourselves from others, to exclude them, and to dehumanize them. Today, a multitude of people who consider themselves superior to others continue to oppress, crush, and undermine the infinite potential that I mentioned.

Whether you believe in a religion or not, human beings are unique entities. Whether it’s rooted in creation or a scientific theory like evolution, it doesn’t change the fact of how special human existence is. All children are born innocent, all children need love, and I love each of them equally. As we grow up, we tarnish our minds with certain theories and lose our love, trust, curiosity, and empathy for each other. This is where we stand after 200,000 years. We act without knowing whether one of the children who dies or has their opportunities taken away might be the one to save humanity, whether they are the messiah you’ve been waiting for, or whether they’ll become a great artist. It’s time to put a stop to this. All humans are equal. All humans are valuable. All humans are unique and special. All humans deserve protection, safety, and equal opportunities in life. All humans deserve to be loved. Stop considering yourselves superior to others with foolish ideas. Look into each other’s eyes, look into sky; there are so many places to explore, so many places to go. The potential is limitless, but it only has meaning if you use it. Years ago, there was a beautiful story written for Civilization on a website called trgamer, and if I remember correctly, it had an impactful ending, something like, “A fragmented world is doomed to destruction.” The time for us to come together is here and now.

Gelecek

Evrenin yaşının yaklaşık 13.8 milyar yıl, dünyanın 4,54 milyar yıl, insan ırkının ise yaklaşık 200000 yıl olduğu tahmin ediliyor. Dünyanın bu 4,5 milyar yıllık serüveninde 5 kere yaşamı komple yok edecek bir olay yaşadığını da not edelim. Modern insanı yazının keşfi ile tanımlasak o da yaklaşık 5 bin yıla kadar gidiyor. Tüm bu rakamları yaklaşık 70 yıl yaşayan bir canlının hayatının evren için ne kadar ufak ve manasız olduğunu göstermek için paylaşıyorum. Bu kadar önemsiz bir zaman aralığında yaşayan insan buna rağmen evrende eşi benzeri olmayan (en azından şimdilik) bir anomali veya mucize.

 Bireysel olarak evren açısından yaşamınızın bir anlamı yok ama buna rağmen eşsiz bir canlısınız ve sonsuz bir potansiyele sahipsiniz. Yaşamımızı anlamlı kılmak için insan ırkı olarak birlikte çalışmalı ve evrende bir iz bırakmalıyız. Son 2 bin yılda geldiğimiz noktaya bakacak olursak;

Irk, millet, devlet, din, dil, siyasi görüş, cinsel görüş, para, maddiyat ve bir sürü farklı kavram üretmişiz ve bu farklı kavramları kendimizi diğer insanlardan ayırmak, onları dışlamak ve onları insan olarak görmemek için kullanmışız. Bugün kendini diğerlerinden üstün gören sürüyle insan başkalarını insan olarak görmeyip onları yok etmeye, ezmeye, o bahsettiğim sonsuz potansiyellerini al aşağı etmeye devam ediyor. 

İster bir dine inanın, ister inanmayın, insan eşsiz bir varlık. İnsanın var oluşu ister bir yaratılışa dayansın isterse bilimsel bir teoriye, evrime bu onun ne kadar özel olduğu gerçeğini değiştirmiyor. Tüm çocuklar masum doğuyor, tüm çocuklar sevilmeye muhtaç oluyor ve her birini eşit derecede seviyorum. Büyürken belli teorilerle zihinlerimizi kirletiyor, birbirimize olan sevgimizi, güvenimizi, merakımızı, empatimizi kaybediyoruz. 200000 yılda geldiğimiz nokta bu. Ölen, imkanları elinden alınan çocuklardan birisinin insanlığı kurtarıp kurtarmayacağını, beklediğiniz mesih olup olmadığını, büyük bir sanatçı olup olmayacağı bilmeden hareket ediyoruz. Buna bir dur demenin zamanı geldi de geçiyor.

Tüm insanlar eşittir. Tüm insanlar değerlidir. Tüm insanlar tekil ve özeldir. Tüm insanlar korunmayı, güvenle ve fırsat eşitliğiyle yaşamayı hak eder. Tüm insanlar sevilmeyi hak eder. 

Salakça fikirlerle kendinizi diğer insanlardan üstün görmeyi, onları aşağıda görmeyi bırakın. Gök yüzüne, birbirinizin gözlerinin içine bakın, keşfedilecek, gidilecek çok yer var. Potansiyel sonsuz ama sadece kullanırsanız bir anlamı var. Yıllar önce trgamer isimli bir sitede civization için güzel bir hikaye yazılmıştı, sonu çok etkileyiciydi yanılmıyorsam şöyle bir şey “parçalara ayrılmış bir dünya yok olmaya mahkumdur”. Birleşmemizin zamanı geldi de geçiyor. 

Oyun Geliştiricileri İçin Oyunlardaki Hile Metodları ve Engelleme Yöntemleri

Eski işimden ayrılalı yedi sene oldu ama oyun sektörü içinden ayrılmadım, hala güncel teknolojileri takip ediyor, kendim de bir şeyler üzerine çalışıyorum. Hazır epeydir yazmıyorken burada hem oyuncular hem de yapımcılar için tecrübelerimi aktarmaya çalışayım. 

Öncelikle tecrübelerim online oyunlar üzerine bu yüzden odağım burası olacak. 

İster milyonlarca oyuncusu olsun, isterse indie bir oyun olsun temelde online oyunların çalışma mantığı aynıdır. Client – Server, Client – Client arasında çeşitli veri transferi olur, bu verilerin bir kısmı memory’de bir kısmı database’de bir kısmı da kullanıcıların sabit sürücülerinde tutulur. Oyun oynarken kim nerede, kim kime ne kadar hasar verdi, kimin canı ne kadar, kimin ne kadar mermisi var gibi bir sürü veri client tarafından okunur ve sunucu ile paylaşılır. 

Oyununuzu tasarlarken hangi verilerin localde hangilerinin ise server tarafında tutacağınıza karar verirsiniz. Localde tutulan çoğu şey değiştirilmeye açık olabileceğinden ya da oyun mekanikleri için diğer oyuncuların ihtiyaç duyduğu verileri paylaşmanız gerektiğinden bunun bir dengesi tutturmak zorunda kalırsınız. Her şey tek taraflı olamaz. Çok büyük bir paket gönderirseniz lag oluşması, paket kaybı durumlarıyla karşılaşabilirsiniz, az veri gönderirseniz de hileye daha açık hale gelebilir veya çeşitli özellikleri kullanamayabilirsiniz.

Lokalde ilk hile teşebbüsleri memory üzerinde tutulan geçici değerlerin oynanması üzerine olur. Kullanıcıların hangi değerlerin oyun sırasında değiştiğini takip edip daha sonra bu değerleri istedikleri gibi değiştirecek scriptler hazırlar. Buna karşı çeşitli kütüphanelerle bu verilerin yerleri ve valueları şifrelenmeye çalışılır, değiştirilir, gizlenmeye çalışılır ama günün sonunda buna net önlem almazsanız sürekli güncelleme yapmak gerecektir. Burada işte sınırsız cephane, can, oyunun bazı mekaniklerini değiştirme gibi şeyler yapılır. Bunların ne kadarının sunucuya gideceği veya client tarafında önlenebileceği üzerine çalışmak gerekir. Çeşitli değerleri limitlemek ve kontrol etmek en azından hilenin etkisini azaltmaya yarayacaktır. Örnek:

Does Unity editor contain any anti-cheat protection when you publish the Game?
by inUnity3D

https://forum.unity.com/threads/anti-cheat-toolkit-stop-cheaters-easily.196578/

Başka bir yöntem sunucuya giden paketlerin değiştirilmesi şeklinde olabilir. Network izlenip giden paketlerin içeriğiyle oynanarak istatistik veya sunucu tarafında tutulan bazı başka veriler oynanmaya çalışılabilir. Bunu engellemek için çeşitli kontroller koyabilirsiniz ama latency’e yol açmayacak şekilde işlemler yapıyor olmanız lazım. Her şeyi sunucuda tutmak ayrıca çok büyük maliyet getirecektir. Burada şifreli olarak veri gönderip almanın da işlem maliyetini hesaplamanız lazım. 

Diğer bir yöntemimiz daha basit olan direkt oyun dosyalarının configlerinin değiştirilmesiyle geliştirilen uygulamalardır, burda herhangi bir oyun dosyası veya ayarının değişip değişmediğini bütünlüğünü kontrol etmeniz gerekir. Çeşitli şifreleme algoritmaları ya da yazılımlarla bu özellikleri genelde çoğu oyun elde eder. Checksum kontrolü en basit örneğidir. DRM’de burada işin içine girebilir. 

Yazılım derken, online oyunları açarken yüklenen güvenlik yazılımlarını görmüşsünüzdür. Bunlar bir yandan temel bazı değerleri kontrol ederken diğer yandan da sizin gönderdiğiniz dosya ve uygulamaları engellemeye çalışır. Sürekli bir güncelleme ve kontrol gerekir. Akıllı olmayan özelliklerini takip ederek güncellemeniz gerekir sadece engellemek değil sert yaptırım uygulamakta hile ile mücadelenin olmazsa olmazıdır. Mobil ve Desktop için farklı yazılımlar piyasada bulunmakta. Maalesef hiç biri mükemmel değil ve sürekli takip gerektirir. Single player ise çok fazla uğraşmanın anlamı yok ama multiplayer büyük bir oyunda en azından bunlardan birisi ile anlaşmanız gerekir. 

Bence olmazsa olmaz diğer bir kalem loglama taranın ne kadar detaylı tutulacağı konusudur. Örnek verelim bir MMO üzerinde drop olan, alınan, trade edilen tüm işlemleri loglamalı. Bunları farklı scriptler ile kontrol etmelisiniz. Sürekli bir çalışma olmaz ama periyodik olarak dataları analiz edip sorunlu kullanıcılar üzerine aksiyon alabilirsiniz. 

Anlattıklarımı özetlemek gerekirse;

Kritik variable’ları server tarafında tut,

Client tarafında verileri şifreli tut, build alırken ona göre al,

Oyuncudan gelen veriyi kontrol etmeden kaydetme,

Bir güvenlik yazılımını entegre et,

Detaylı log tut ve periyodik kontrol et.

Umarım yardımcı olur. Detaylı kod örneği paylaşamıyorum kullandığımız motora, dile vs göre değişiyor çok ama genel mantık hepsinde aynı. 

Babalar ve Yapay Zeka

Antik mitolojide çocukların neden babalarını öldürdüğünü, tanrıların nesil nesil sürekli aynı döngü içinde olduklarını merak etmişimdir. Acaba bu hikayeleri anlatan yaşlı insanların ölüm korkusu, yerlerinden edilme korkusunun bir eseri olabilir mi bu hikayeler? Acaba doğada yerini gençlere bırakan hayvanlarda da benzer korku var mıdır yoksa bilinçsiz bir kabullenme içindedirler diyebilir miyiz?

Bilim kurgu eserlerinde genelde felaketlere yol açacak tipik hikayeler vardır, A.I. bunlardan birisi. Acaba biz tanrı kompleksine kapılmış insanlar, bizden sonra geleceğin korkusunu mu yaşıyoruz? Bu hikayelerde beni sıkan şey sonraki nesillerin gelişimi getirdiğinin arada gözden kaçması. İnsanlığın ürettiği bir yaşam veya zekanın insanlığın korkularıyla hareket etmesi zorunlu mu? 

Babalarımız belki ölüm korkusunu yaşamaya başladıklarında bunları düşünmüştür ama günün sonunda evlatları olarak onlara yaşlılıkları sürecinde yardımcı olmayacak mıyız? Yanlarında durmayacak mıyız? Belki insanlık bir süre sonra yok olacak bu bizden sonra gelenin bizden kötü olacağı, bize düşman olacağı anlamına gelmez, benim ümidim hatalarımızdan ders çıkaracak olması, tecrübelerimizden faydalanıp daha iyisini başarmaya çalışması ve belki de evrendeki şu kısacık anlamsız hayatlarımızın toplamında bir iz bırakmayı başarması. 

Foundation İzlenir mi? Okunur mu?

Bu konu üzerine güzel bir podcast kaydetmiştim ama export işinde sıkıntı çıktı haliyle yazalım, yatmadan önce iyi gelir kafamızı dağıtırız!

Asimov’un kim olduğunu biliyordum ama Foundation dizisi çıkmadan önce okumayı hiç düşünmemiştim. Dizi çıkıp ilk üç bölümü izledikten sonra kitaplarına geçmenin daha mantıklı olacağını düşündüm ve tüm serisini alıp okumaya başladım. İlk üç kitap güzel ve akıcı, dört biraz zorluyor, beş açıkçası biraz hızlandıra hızlandıra okundu. 

Vakıf serisinde olay şu, Galaktik bir imparatorluk var, bir bilim adamı çıkıyor ve bunun çökeceğini bilimsel bir yolla iddia ediyor. Ardından uzun bir süre karanlık bir dönem yaşanacağını ve kendisinin bunu kısaltmak için bir vakıf kurup orada ansiklopedi yazacağını söylüyor. Gerisi spoiler ama ilk üç kitabın bu başlangıçtan sonra dönem dönem farklı karakterleri incelediğini söyleyebilirim. Dördüncü ve beşinci kitapsa biraz daha karakterlere odaklanıyor özellikle beş direkt iki üç karakter üzerinden ilerliyor.

Dizi izlenir mi? Kitabı okuduktan sonra youtube’da kısa videolarını izlemek bence yeterli. Peki neden? 

Trump’un seçilmesine bağlıyordum ama artık öyle olduğunu düşünmüyorum, son dönemde amerika da farklı cinsel, tensel, tercihsel insanların da üretim ekonomisine katılıp özgür olmalarını savunan bir akım var… şaka şaka akım falan olsa arkasında bir birikim var gibi bir şey söylemek gerekirdi ama maalesef öyle değil. Geçenlerde critical drinker da bunun üzerine bir kaç video çekti ama kendi görüşüm, kolaya kaçtıkları, tecrübesiz ve tamamen politik görüşlerinden dolayı insanları işe alıp gerçekten iyi senaryo, oyunculuk, konsept gibi şeylerden ziyade ilk eş cinsel bilmem ne, ilk kadın şu, güçlü kadın modeli, kötü erkekler, kötü babalar şeklinde kurulan düzenlerin çıkan işlerin kalitesine etki ettiği. İyi içerikten ziyade dizideki karakterleri ırk ve cinsel yönelimleriyle reklam yapmaya çalışıyorlar. 

Star Wars, Star Trek, Doctor Who ve nicesi baltalanırken vakıf dizimiz nasıl? 

Oyunculuk olarak bir kaç iyi oyuncu var, Lee Pace’i Pushing Daisies’ten biliriz, döktürüyor. Jared Harris de mükemmel. Gerisi tırt. Belki aradaki bölümlerde iyi oyuncular çıkmıştır ama sıkıntı şu. Kitap kısa bölümler şeklinde ilerliyor demiştim ya? Dizi bu bölümlerdeki karakterlere kitaptakinden fazla zaman ayırıyor, cinsiyetini değiştiriyor, farklı farklı işlere sokuyor. Peki bu karakterleri kimler yazıyor? Çömez yazarlar. İyiler mi? Kötüler.

Normalde anlatılıp geçilecek yerlere çok fazla odaklanıp, hikayeyi değiştirip insanları bezdiriyorlar. Çekilmesi zor bir seri ama Dune’u izledikten sonra yetenekli insanların hala var olduğunu biliyoruz, sadece tercih edilmiyorlar. Anlatılabilecek bir sürü bölüm ve insan varken gerçekten insanların umursamadığı bir karakterle zaman harcıyoruz, Lee Pace ve imparatorluk tarafı ilgi çekici, onların olduğu kısımlar sarıyor. 

Kitaba dönelim, ilk üç kitap dönemleri anlatıyor, eski oldukları için bazı şeyleri ilk asimov’un ortaya attığını görmek o zamanki hayal gücünü takdir etmeyi zorunlu kılıyor. Olay döngüleri karmaşık değil. Sonucunda bir şeyler olacağını tahmin ediyorsunuz, detay olarak Expanse gibi şeyler beklememek lazım bence bilim kurguya giriş için çocuklara ya da okumaya yeni yeni başlayan insanlara önerilebilecek kitaplar. Dört ve beş ama sıkar. İlk üç kitabı okutursunuz sonra severlerse devam ederler. Daha sonra hikayenin alt yapısını detaylandırmak için öncesini anlatan iki kitap çıkarmış ama seriyi bitirdikten sonra açıkçası benim merak ettiğim bir şey kalmadı sonu tatmin etmedi. 

Nysera.Com

Baya uzun zamandır bu seriye devam etmiyordum, covid zamanı tekrardan yazmaya başladım. Henüz yeni hikayelerim bu sitede bulunmuyor ama ara ara bir şeyler yayınlamaya başlayacağım, konsept ve hikayenin geçtiği kısımlar değişiyor çünkü. İki kitap planım var birisi Polisiye bir bilim kurgu. Yine bu diyarda geçecek. Diğeri de QA üzerine bir kitap. Tekrardan buralar şenlenecek umarım beğenir takip edersiniz.