Yazdığınız koddan parçalar(snippetlar) paylaşmak isterseniz göze hoş gelecek şekilde yapmanızı sağlayan bir araç keşfettim. Yazılımcı arkadaşlara öneriyorum.
https://carbon.now.sh/

Carbon

Carbon is the easiest way to create and share beautiful images of your source code.
BeğenFavori PaylaşYorum yap

Nesne Yönelimli Programlamadan(OOP) Veri Yönelimli Programlamaya(DOD) geçip,benim gibi hardcore DP yiyenlere gelsin.
https://youtu.be/kR9i0yMK57g?t=45

Ibrahim tatlises buda gecer

ibrahim tatlises alayina gider
BeğenFavori PaylaşYorum yap

Çıldırıyorum. Unity ECS Fizikleri beni delirtiyor azizim. Objeler birbiriyle çarpışıyor ama çarpışmıyor gibi algılanıyor :/

BeğenFavori PaylaşYorum yap

Dün burada paylaştığım karadelik shader'ının tutorial'ını hazırladım. #Unity shadergraph kullandım. Buradan izleyebilirsiniz:

https://youtu.be/SWJZcQvTmnw

UNITY SHADER GRAPH with Black Hole Shader

We will create a black hole shader in this video with refracting the scene, by doing that you will also learn fundemental nodes of shader graph. You can find...
BeğenFavori PaylaşYorum yap

Uzun süredir kısa bir tutorial yapmak istiyordum, bu sabah oturdum eski bir shader forge makalesini örnek alarak #Unity shadergraph ile bir karadelik shader'ı yaptım. Bu gün de eğer uykuya yenik düşmez isem tutorialini hazırlamak niyetindeyim 😛 #karadelik

BeğenFavori PaylaşYorum yap

#Unity ECS ile çalışmalarımda ilk sonuçları elde etmeyi başardım. Kırmızı lazerlerin her biri yeni spawn oluyor pooling yapılmıyor ve 140 fps ile çalışıyor. Lazerlerin her biri küp, fizikleri ve çarpışmaları var.(collision)

IJobChunk interface'ini Job struct'ına implement ettim. Bu interface'in özelliği RAM'deki chunklara tek tek erişip query döndürebiliyor olmamız. Main Thread'de de bu job'ı schedule ediyorum ve job worker threadlerinde çalışıyor. Tabi memory'de native olarak yönetildiği için çok etkileyici şekilde hızlı çalışıyor.

Gif[4mb]

BeğenFavori PaylaşYorum yap
  • fatihkaya41 @fatihkaya41

    Kısaca avantajı nedir cahiller için 😀

    • Mert Kırımgeri @mertkirimgeri

      Unity normalde "kasıyor gibi" hissettirebiliyor çünkü c# ile yazılıp sanal makine üzerinde çalışıyor. Ama bu yöntemde makine koduna derleniyor, çok çekirdeğe erişip birden çok çekirdeği kullanabiliyoruz ve ramdeki verileri biz yönetiyoruz. Bu sayede c#'ın işleri yönetmek için yaptığı tonla yavaşlatıcı işlem aradan çıkmış oluyor.

      TL;DR: Bu sayede milyon tane obje spawn ediyorsun kasmıyor çünkü teknik olarak daha iyi. M&B filan bu yöntemi kullanıyor, kendi motorlarında.

    • Onur Eryilmaz @onurery

      @mertkirimgeri Sanal makine üzerinde çalışıyor derken tam olarak neyi kast ettiniz? Bu arada öyle bir bahsetmişsiniz ki c#(ve diğer programlama dilleri) kötü bir şey ve c#'ta yazılan kodlar arka planda makine diline derlenmiyor 🙂 Öyle olsa programlama dilleri geliştirilmez onun yerine hala assembly'de kodlama yapardık.
      Bu sistemin avantajı object oriented design'ın bir tık daha altına inip verileri daha düzgün bir şekilde ve bizim istediğimiz şekilde tutabilmemiz desek daha doğru olur sanki. Böylece yok olan bir objenin verilerini daha hızlı yok edip, var olan objelerinde verilerine daha hızlı bir şekilde ulaşabiliyoruz.

    • Onur Eryilmaz @onurery

      @onurery Gerçi siz bir süredir uğraşıyorsunuz sanırsam, benim yazdıklarım bir kaç yerde okuduklarım ile sınırlı ama o makalelerden böyle bir şey anladım.

    • Mert Kırımgeri @mertkirimgeri

      @onurery Selamlar,
      Sanal makine olarak CLR VM ortamını kastediyorum. Tıpkı java gibi C# ta VM üzerinde çalışıyor ki birden çok mimaride çalışabilsin. Garbage collection, memory management burada yapılıyor.

      Bilerek öyle bahsettim, c#'ı çok severim evet ama managed bir dil olduğu için multithreading bile tam olarak multithreading olmayabiliyor. Managed bir dilin performansı asla ama asla unmanaged native koda yaklaşamaz bunu siz de biliyorsunuz.

      Makine diline derlenme konusuna gelince, c# önce CIL'ye derleniyor çalışma zamanında ise makine koduna tabiki, ama burada bahsettiğim sistem yeni Burst Compiler sayesinde IL2CPP'den bile optimize şekilde SIMD instructionları olacak şekilde makine kodu oluşturuyor her bir mimariye göre. Ve vektörizasyon yapıyor bahsettiğimiz veriler için de. Böylece çok çok daha hızlı çalışabiliyor.

      Son paragrafta dediğiniz şey kısaca özetlersek bu durumu açıklıyor ama dediğim gibi kodlar derlenmiyor değil,hepsi makine koduna derleniyor dillerin, ama kodların nasıl derlendiği önemli olan şey, bu sistem ile kodlar platforma özel olarak vectorization yapılarak derleniyor.

      Böyle bir artısı var ki bu da normalde Roslyn ile compile ettiğinizde 5 FPS aldığınız bir küp demosunu, 100 FPS te çalıştırmanızı sağlıyor. Hemde crossplatform olarak.

      Ek olarak şöyle diyebilirim bu sistem memory management, multithreading(native seviyede) yapabilme imkanı veriyor ama normal c# kodu yazmıyorsunuz. Çünkü managed("blittable") kütüphaneler ve tipler yasak. Bu da c#'ın matematik fonksiyonlarına erişemezsiniz demek. Bunun için adamlar kendileri native matematik kütüphanesi, native rendering kütüphanesi, native collections(arrayler listler vs yasak) yaptılar. onlar kullanılıyor.