1 puan yazan GN⁺ 2023-07-03 | 1 yorum | WhatsApp'ta paylaş
  • Factorio üssünü baştan oynamaya yarayan bir araç değil; mevcut 2D üssün işleyişini UE5’in 3D alanında gezerek incelemeye yönelik deneysel bir proje
  • Varlık üretimi, oyun sprite’ları temel alınarak Cinema4D modelleme, Photoshop dokuları, FBX dışa aktarma ve UE5 shader uygulama sırasıyla yürütüldü
  • FUE5 exporter mod’u Factorio içindeki verileri JSON olarak dışa aktardığında, FUE5 bina türlerini, yönlerini ve kablo bağlantılarını okuyarak üssü görsel olarak yeniden oluşturuyor
  • Bantlar, trenler ve lojistik robotlar UE5 Blueprint’leri ve spline’lardan yararlanıyor; trenler ise Factorio’nun önceden hesapladığı rotayı alıp hareket ediyor
  • Büyük üslerde FPS düşüşü ve Blueprint event’lerinde kararsızlık yaşandığı için poligonlar, dokular, partiküller, on-tick güncellemeleri ve LOD azaltılarak 30~60 FPS hedefiyle optimize edildi

FUE5’in amacı

  • FUE5, Factorio in Unreal Engine 5’in kısaltması; Factorio’nun 2D dünyasını 3D alanda görselleştiren deneysel bir proje
  • 3D sanatçısı Hurricane ve Factorio mod geliştiricisi Nuke tarafından 10 Ocak 2023’ten itibaren yaklaşık 5 ay boyunca geliştirildi
  • Factorio üslerini içe aktarıp işleyişini görsel olarak yeniden canlandıran bir 3D görselleştirme ortamı; oynanış içermiyor
  • Kullanıcılar kendi üslerinin çevresinde 3D alanda uçarak gezinebiliyor

Varlık üretimi ve UE5 entegrasyonu

  • Factorio’daki montaj makineleri ve inserter’lar gibi varlıklar için, oyun sprite’ları temel alınarak 3D modeller ve animasyonlar yeniden oluşturulmak zorundaydı
  • Üretim pipeline’ı şu sıradan oluştu
    • Cinema4D ile 3D modelleme
    • Adobe Photoshop ile doku üretimi
    • Cinema4D’den FBX biçiminde dışa aktarma
    • Unreal Engine 5’e içe aktardıktan sonra cam, metal, baca dumanı gibi shader’ların uygulanması
  • Bantlar, trenler ve lojistik sistemi gibi temel mantıklar UE5’in yerleşik Blueprint node sistemi ile uygulandı
  • Hareket eden trenlerle bant üzerindeki öğelerin hizasını tutturmak için doğru boyutlarda 3D modellere ihtiyaç olduğundan, sistem mantığı modellerin büyük bölümü tamamlandıktan sonra oluşturuldu
  • Factorio üslerini oyundan doğrudan dışa aktarıp Unreal Engine ortamına taşıyarak, UE5 içinde üssü elle oluşturmak için gereken süre büyük ölçüde azaldı

Factorio verilerini FUE5’e aktarma yöntemi

  • Yapı sistemi, Factorio içinde binaların yerleştirilme biçimine benzer şekilde yapılar oluşturuyor
  • FUE5 exporter mod oyun içindeki verileri okuyup JSON dosyası olarak dışa aktarıyor
    • Bina türü
    • Bina yönü
    • Kablo bağlantıları
  • FUE5 bu JSON dosyasını okuyarak gerçek üssün yapısını ve araç hareketlerini görsel olarak kopyalıyor

Bantlar, trenler ve lojistik sistemi

  • Taşıma bantları

    • Tekil taşıma bantlarının 3D modellerinin yanı sıra, öğelerin bant boyunca hareket etmesini sağlayan mekanizmaya da ihtiyaç vardı
    • Taşıma bantları spline ile temsil ediliyor
    • FUE5 exporter bir üssü dışa aktarırken, bağlı taşıma bantlarının tünelde bittiği, kendi başına sona erdiği ya da döngü oluşturduğu kesintisiz bölümler ayrı sistemler olarak ele alınıyor
    • FUE5 her bölüm için spline oluşturuyor ve öğeler gerçek oyundakiyle aynı rotayı izleyerek hareket ediyor
  • Trenler

    • Tren tarifelerini, sinyalleri ve lokomotif rota bulmayı doğrudan kopyalamak zor olduğundan Factorio’nun varsayılan rota bulma sistemi kullanılıyor
    • FUE5’te bir trenin oluşturulup hareket edebilmesi için, üssü dışa aktarmadan önce hedefin ayarlanması ve yeşil ışık verilmesi gerekiyor
    • Ardından Factorio’nun önceden hesapladığı tren rotası okunup spline’a dönüştürülüyor ve FUE5 içinde tren hareketi kontrol ediliyor
  • Lojistik robotlar

    • İnşaat robotları hariç tutuldu; bina oluşturma işlemi UE5’in yerleşik Construction Script sistemiyle ele alındı
    • Bunun yerine, yarı gelişmiş bir Factorio üssünde önemli bir görsel unsur olan lojistik robotların uygulanmasına odaklanıldı
    • Her roboport belirli bir olasılıkla rastgele lojistik robot kümeleri oluşturuyor
    • Her robot çevredeki lojistik sandıklarını bulup aralarında uçarak kaynak taşımayı görsel olarak yeniden canlandırıyor
    • Taşıma işi bittiğinde en yakın roboport konumuna gidip kayboluyor

Performans sorunları ve optimizasyon

  • Büyük üsler FUE5’e aktarıldığında FPS ciddi biçimde düşüyor ve Blueprint event sonuçları kararsız hâle geliyordu
  • 30~60 FPS’de çalışmak için şu unsurları azaltan optimizasyonlar gerekiyordu
    • Poligon sayısı
    • Doku çözünürlüğü
    • Partiküller
    • on-tick güncelleme sayısı
  • Başlangıçtaki takılmaların çoğu taşıma bandı sisteminden kaynaklanıyordu; bu bölüm azaltılarak performans iyileştirildi
  • Yapıların animasyonlu parçalarında LOD ayarlanarak ek FPS kazanıldı
    • Örnek: santrifüjün dönen silindiri
    • Örnek: montaj makinesi çatısındaki dişliler ve pistonlar
  • Factorio geliştiricisi Wube Software’in onayı da gerekiyordu; projenin yalnızca ticari olmayan kullanım şartıyla yayımlanmasına izin verildi

Fragman ve görsel sunum

  • Geliştirmenin ilk iki ayında temel fikir ve prototiplemenin büyük bölümü netleştikten sonra, çeşitli Factorio varlıklarını ve sistemlerini kopyalamak kolaylaştı
  • Sonrasında odak, genel görsel bütünlüğe ve ana sürüm fragmanının hazırlanmasına kaydı
  • Fragman, FUE5 exporter ile oluşturulmuş büyük ölçekli bir üssü ve FUE5 ortamında yapılabilecek çeşitli şeyleri gösteriyor
  • Factorio oyunundaki üssü dışa aktarmak tek başına temiz ve sinematik bir sonuç vermediğinden, kameraya uyacak şekilde pek çok bölüm elle ayarlandı
  • Yüksek SPM için tek bir binanın uzun dizildiği yapılara kıyasla, karmaşık biçimde iç içe geçmiş spagetti üsler görsel olarak daha ilginçti

Kullanım koşulları ve yayımlama planı

  • FUE5 bir oyun değil ve kullanıcı arayüzü de yok; kullanmak için temel düzeyde UE5 bilgisi gerekiyor
  • Kullanım yöntemi GitHub sayfasında açıklanmış durumda
  • Temel süreç, UE5’i kurup projeyi çalıştırdıktan sonra dışa aktarılacak üs chunk’ını seçerek FUE5’e aktarmak şeklinde
  • Ayrıntılı adımlar how-to guide içinde görülebilir
  • Proje GitHub üzerinden açık kaynak olarak paylaşıldı; amacı Factorio topluluğunun aşina olduğu dünyayı yeni bir boyutta deneyimlemesini ve yeni çıktılar üretmesini sağlamak
  • Mevcut sistemleri daha kolay kullanılabilir hâle getirme ve büyük üslerde de iyi çalışacak şekilde iyileştirme çalışmaları sürüyor; gelecekte mod içeriği eklenmesi de değerlendiriliyor

1 yorum

 
GN⁺ 2023-07-03
Hacker News yorumları
  • Burada kısaca bahsedilip görselleştirilen Space Exploration, inanılmaz bir Factorio modu ve oynadığım oyunlar arasında en derin olanlardan biriydi
    Factorio’da roket fırlatınca kazanmış oluyorsunuz, ama Space Exploration tam oradan devam ediyor. Güneş sistemindeki çeşitli gezegenlere üsler kuruyor, her gezegenin kendine özgü kaynaklarını kullanarak güneş sistemini geliştiriyor, ardından yıldızlararası uzaya ve diğer güneş sistemlerine açılıyorsunuz
    Ortalarda bir yerde “çeyrek nokta” zafer ekranı var, ama bunun dışında bilinen evrenin tamamına yayılan bir gizemi keşfederek ulaşılan ve epey matematik bilgisi de gerektiren başka bir zafer ekranı daha bulunuyor. Yüzlerce saatlik bir deneyim ve oldukça da cilalı
    Oyunu, yıldız ve güneş sistemi haritalarını kullanarak gezegenler arasında uzay gemileriyle seyahat edebileceğiniz şekilde değiştirmişler ve genel olarak çok iyi çalışıyor. Yalnız biter’ları ciddi biçimde azaltmak iyi olur. Bu mod sabır istiyor, savaş yoğunluğu bu akışa pek uymuyor ve mod da başlangıçta açılan bir pencerede biter’ları düşürmenizi öneriyor
    • Space Exploration’ı ancak temel oyunu birkaç kez bitirip daha fazlasını istediğinizde öneririm. Hissiyat olarak temel üs için gereken parça sayısı azalıyor, ama onun yerine karmaşıklık çok daha sert biçimde artıyor
      Bir sonraki aşamaya geçmek için kurmanız gereken fabrika ve üretim hattı sayısı sürekli büyüyor. Sanırım ancak yaklaşık 100 saat civarında, sonraki bilim aşaması için gereken iki ürün hattını başka bir gezegenden getirdiğim noktaya ulaşmıştım
      Ek bir ipucu olarak bilim maliyetlerini artırmayı öneririm. Bir sonraki aşamaya genişlemek saatler alabiliyor ve araştırılacak şeyler önce tükenmeye çok yatkın oluyor; bu yüzden fiilen fabrikanın yapacak işi kalmayıp durmuş gibi hissettirdiği zamanlar oluyor
    • Ben şahsen biter’ları tamamen kapatmayı daha iyi buluyorum. Diğer gezegenlerde hâlâ varlar, ama ana gezegende hissedilen baskı ortadan kalkıyor
    • Şu anda Space Exploration oynuyorum ve gerçekten destansı. Ama Factorio’yu dünyadaki en iyi oyuncular seviyesinde oynadığı düşünülen profesyonel YouTuber Dosh Doshington bile yardım alarak SE’yi bitirmek için 300 saat harcadı
      SE harika ama muazzam bir zaman yutucu. Factorio’da 3500 saatten fazla geçirdim; sanırım burada bir sorun var
      Yine de Factorio’yu 3D görmek gerçekten çok havalı ve etkileyiciydi
    • Eğer “gezegenler arası Factorio” tam size göreyse, Dyson Sphere Program’ı da düşünebilirsiniz: https://store.steampowered.com/app/1366540/Dyson_Sphere_Prog...
    • Burada anılmayı hak eden bir başka mod paketi de pyanodons. Space Exploration gibi roket fırlatıldıktan sonraki oyunu ciddi biçimde genişletiyor, ama ondan önce de içerik ekliyor. Hatta roket fırlatma kendi başına epey önemsiz hâle geliyor ve başlangıçta seçilebilir mavi bilim teknolojisine daha yakın bir konuma düşüyor
      pyanodons; son derece gerçekçi cevher işleme zincirleri, petrokimya süreçleri, enerji üretim mekanikleri, elektronik bileşenlerin elden geçirilmiş hâli ve bitkilerle hayvanları da içeren tarımsal unsurlar ekliyor. Baş geliştirici pyanodon’un asıl mesleği kimya mühendisliği
      Tam bir py oynanışı kolayca 1500 saati aşar. Vanilya oyuncularının çoğu için özellikle eğlenceli olmayabilir, ama Space Exploration ya da Nullius gibi modları sevdiyseniz bunda da keyif bulabilirsiniz
      [0]: https://mods.factorio.com/user/pyanodon
  • Bir oyun geliştiricisi olarak Factorio’nun orijinal kaynak kodu, gerçekten görmek istediğim oyunlardan biri
    Ve aklına ilk olarak “Bu nasıl yasal olabilir?” sorusu gelenler için alıntılayayım: “Bu çalışmanın yasallığı sorulduğunda, Factorio tarafı büyük anlayış gösterdi ve ticari amaçla kullanılmaması şartıyla projenin yayımlanmasına izin verdi”
    • Factorio ekibi genel olarak bu tür şeylerde oldukça rahat görünüyor; sanırım oyunu baştan bu kadar mod dostu yapmalarının nedeni de bu. Yasal işlem yaptıklarını hatırladığım tek durum, çalıntı anahtarların yeniden satışı gibi şeylerle uğraştıkları zamandı. Topluluğun havalı şeyler üretmesinin Factorio’ya da yaradığı yönünde bir anlayış var
      Orijinal kaynak kodunu görmüş biri olarak söyleyebilirim ki kod nispeten iyi, ama özellikle hayranlık uyandırıcı değil. Çoklu kalıtım kullanan bir C++ kod tabanı; oyun nesneleri birkaç katman boyunca birbirlerinin metodlarını çağırıyor ve “en iyi çözüm olmayabilir ama çalışıyor, o yüzden şimdilik değiştirmeyeceğiz” türünden epey kod var
      Bütün bunların düzgün çalışmasını sağlayan şey kapsamlı otomasyon testleri ve daha az optimize kodla PR açarsanız Rseding’in bunu hızla düzeltmesi yönündeki kültür. İlginç olan kısım algoritmalar ve onlar Friday Facts’te ele alınıyor
    • GitHub’da Factorio kaynak kodunun bir kısmı yayımlanmış durumda — https://gist.github.com/Rseding91
      Ayrıca https://old.reddit.com/r/factorio/comments/13bsf3s/technical... da çok ilgi çekici bir okuma; çift bağlı liste ve çoklu kalıtım kullandıkları gibi ayrıntılar yer alıyor
    • Factorio’nun harika bir geliştirici blogu var. Kod göstermiyor ama çözmeleri gereken meseleleri oldukça derinlemesine ele alıyor
      https://www.factorio.com/blog/
    • Safça bakınca bende tam tersi soru uyandı. Bu neden yasa dışı olsun ki? Neden mutlaka karşılıksız emek olmak zorunda olsun? Görünüşe göre Factorio fikri mülkiyetinin kullanımı görsel esinlenme ve dosya biçimi ayrıştırmayla sınırlı ve hukuki anlamda da açıkça dönüştürücü bir kullanım gibi duruyor
  • “Kod yazmayı bilmiyorsanız düğümleri rastgele birbirine bağlayıp çalışmayınca daha fazlasını eklersiniz ve gittikçe daha karmaşık bir hâl alır. Son zamanlarda oynadığım bu fabrika oyununa şüpheli derecede benziyor” kısmında koptum
    • Ben de o kısmı sevdim. Özellikle de kod yazmayı biliyor olsanız bile sonunda tam olarak aynı şeyi yapmanız yüzünden daha da komik. Sadece bazı şeyler daha az laf kalabalığına dönüşüyor, ama bazen yine bolca spagetti oluyor
    • O kadar da değil. LabVIEW’in renk düzeni bile benziyor!
      https://physics.highpoint.edu/~bbarlow/courses/phy2100/docum...

Turuncu; ayrıca ‘GUI’ görünümünde gri karolar da görünüyor

  • Factorio’yu 4 kez kurdum, 3 kez sildim
    Başlardaki yavaş tempo ve biraz cansız 2D izometrik grafikler bana pek uymamıştı. Ama blog yazıları ilginçti ve insanlar durmadan övdüğü için, 4. kurulumda dayanıp gerçekten biraz ilerlemeye karar verdim
    Şimdi onu gelmiş geçmiş en iyi oyunlardan biri olarak görüyorum. Teknik olarak inanılmaz derecede etkileyici ve trenler, bantlar, robotlar, inserter’larla dolu devasa üsleri bile 60FPS’te çalıştırabiliyor. Çökmüyor da; ayrıca inanılmaz eğlenceli ve çok bağımlılık yapıyor. Modları da harika, topluluğu da iyi
    Ek paketi gerçekten sabırsızlıkla bekliyorum. En baştan itibaren Factorio kadar cilalı olacağını varsaymak makul görünüyor
    • Hayatınızı mahvetme riskini tanıttığım için şimdiden özür dilerim ama Captain of Industry’yi şiddetle tavsiye ederim
      Başlangıcı daha hızlı, gerçek dünyadaki süreçleri ele alıyor, araziyi değiştirme var ve bence her açıdan Factorio’dan daha iyi. Factorio’nun türü tanımlayan oyun olduğunu düşünüyorum; Satisfactory ve Dyson Sphere Program da bunu neredeyse aşmayı başardı ama 3D yapıları yüzünden bulmacalar daha kolay çözülüyor
      Captain of Industry ise daha fazla boyuta sahip olmasına rağmen bulmacaları Factorio kadar zor yapmayı başarıyor ve yönetmeniz gereken kaynak da çok daha fazla
    • Güzel grafiklere sahip bir Factorio istiyorsanız Satisfactory oynayabilirsiniz
    • Satisfactory de düşünmeye değer
  • Teknik olarak bu, bir Factorio istemcisi falan değil; bir görselleştirme aracı. Yine de gerçekten harika
    • Yazıda da söylendiği gibi, topluluktaki Factorio üreticilerinin bunun üstüne ne tür şeyler hackleyip yapacağını görmek çok ilginç olacak
      Sanki bir çeşit UE5 tabanlı, Factorio tarzı savaş sistemi çıkabilir
      Düşünün; bir yandan fabrikanızı işletip bakımını yapmanız gereken bir oyun var. Aynı anda PvP birinci şahıs nişancı oyuncuları fabrikanın içinde koşuşturup savaşıyor ve ikmal hatlarını durmadan sabote ediyor, sizin de onları tamir etmeniz gerekiyor. Fabrika bakım ekibine katılabilir ya da PvP oyuncusu olup düşmanları biçerken aynı zamanda karşı takımın fabrika ikmal hatlarını da paramparça edebilirsiniz
  • Bu, Dwarf Fortress için gördüğüm 3D görselleştirmeleri hatırlatıyor. Bazıları “elle çizilerek” yapılmıştı, bazılarıysa gerçek zamanlı güncellemeyi deniyordu
  • Vay canına, 5 ayda bu kadar çok 3D model yapmak muazzam bir yetenek. Yoksa bugünlerde 3D modelleme araçları da gerçekten çok mu gelişti diye düşündürüyor
    • Eskiden masa süsü olarak 3D basmak için birkaç Factorio makinesini modellemiştim; her biri yaklaşık 6 saat sürmüştü. O yüzden birkaç ay içinde hepsini yapmak gayet mümkün görünüyor
      Tabii 3D baskı için hazırlanan modellerde düzgün UV mapping ya da texturing gerekmiyor; dolayısıyla benim işim çok daha kolaydı
    • “Yeniden modelleme süreci gerçekten çok eğlenceliydi ama bir dahaki sefere, kalan akıl sağlığımı korumak için orijinal Factorio modellerini istemem daha iyi olur.”
      Bazı araçlar gerçekten çok daha iyi hale geldi. Örneğin texturing için Substance 3D, özellikle otomatik UV işe yarar sonuç verirse çok yardımcı oluyor. Ama temel 3D modelleme araçlarının kendisi, özünde eskisine göre çok da farklı değil
      Ekran görüntüsündeki modellerin topolojisi de oldukça yoğun görünüyor; yani iş yükü epey fazla olmuştur
  • Ya da yeni Unreal 5 Experimental branch’indeki Satisfactory’yi oynarsınız
  • Dürüst olmak gerekirse yazıyı hiç okumadım. Ama programlamanın oyunlaştırılmış hâlinin nasıl göründüğünü merak ediyorsanız Factorio oynayın. İçinde refactoring, coupling’i azaltma, debugging var
    3 hafta boyunca deliler gibi oynadım ve sonra kendimi zorla bırakmak zorunda kaldım. Gerçekten eşi benzeri olmayan bir oyun
  • Gerçekten 3D bir Factorio benzeri oyun oynamak istiyorsanız Satisfactory’yi öneririm
    • Satisfactory de günlerinizi tamamen yok edebilir. Factorio gibi gerçekten çok eğlenceli bir oyun
    • Ya da Dyson Sphere Program var