MadMax

Yeni üye
13 Tem 2021
4
1
3
(6) Ankara
Merhaba, programlama temelim yok. C++ öğrenmek yerine BluePrint ile elle tutulur oyunlar çıkarabilir miyiz? Araştırmalarıma göre çoğu kişi BluePrint'i tercih ediyor fakat hiç kullanmadım, kullanma mantığını da henüz bilmiyorum. BluePrintle kod tarafının ihtiyacını yeterince karşılayabilir miyim sizce?
 
Yapacağın oyunun çapı cep telefonu oyunları gibi küçük çapta oyunlar ise sadece BP ile devam edebilirsin ve ihtiyacını karşılayabilirsin. Ancak çap büyüdükçe BP ile iş yapmak gittikçe zorlaşacaktır. Eğer BP kullanırken temel  programlama konsept ve tekniklerine aşina değilsen bu zorlaşma ivmesi çok daha hızlanacaktır.
 
Yani bir tarafta oturup programlama dilini uzun sürede öğrenmek var bir tarafta da çıkaracağın oyunu kullanabileceğin blueprint becerisine kadar sınırlandırmak var. İki tarafta da pek karlı çıkmıyoruz sanırım..
 
BP nin öyle çok bir sınırı yok aslında ama sen kodlama kültürüne sahip değilsen ve projende öyle basit değilse duvara toslaman yada zor zamanlar geçirme ihtimalin artar. Çok geniş bir konu olduğu için ve göreceli olduğu için böyle kısa ve öz anlatmak lazım diye düşünüyorum.
 
BP de sınır yok istediğin her şeyi yapabilirsin asıl sorun o değil zaten.

BP de bir nizam gerekecek o nodelerin düzenleri gruplandırılmaları. Yapacağın bir şey varsa arapsaçına dönüşebilir. Tekrar baktığında bir şey anlamayabilirsin. Ben 6 yıldır BP kullanıyorum çokta severim. C++ bilsem bile BP kullanırdım heralde. C kullandığın zaman tüm gün yazı yazacaksın. Bir şeyleri sürekli test etmen daha uzun sürecek. Görsel olmadığı için gözlerini yoracak. Ekstra bir sürü yazı gireceksin.Şimdilik senin gibi biri için gereksiz.

İkisinde de önemli olan tek şey programlama mantığı. C de sadece ekstradan yordamlar çağırmalar syntaxlar falan değişecek ama bunlar da seni zorlar. Benim C bilgim yok mesela. BP de bunlar kalıplar halinde geliyor ama yine de mantık önemli. Performans kayıplarına sebep veren kodlar yazmayacaksan ve arapsaçı yapmayacaksan BP kültürünü öğrenip uygulayabilirsin.
 
Merhaba MadMax hoşgeldin. Ben yeni başlayıp ilk oyununu tamamlayacak biri olarak cevap vereyim. 

Tüm bunlara başlamadan önce yazılımla alakalı hiç bilgim yoktu. Blueprint ile başladım. Sonradan c++ da öğrenmek istedim. birkaç ay blueprint ile kendi kafama göre sorunlara çözüm bulduğum için baktım ki c++ da aynı mantık. Sadece yazıyorsun. Yapmak istediğin şeyleri aynı şekilde yapıyorsun. Tek sorun sadece c++ ile yapmak istersen çok uzun zaman alıyor compile süresi uzun olduğu için. 

Ayrıca birkaç test de yaptım performans için. Youtube da gördüğüm bir testi kendi bilgisayarımda yaptım. Bir matematik işlemini bir loop içinde 50-100 bin defa yaptırdım hem BP hem C++ da. Build alarak test ettim c++ kesinlikle daha hızlı ama şunu gördüm. Oyun performansını optimize ederken stat unit yazdığında game thread, draw thread ve gpu var. Bende hiçbir zaman game thread 10-12ms üstüne çıkmadı full blueprint yaptığımda bile. her zaman bottleneck dediğimiz şey draw thread ya da gpu oldu. Yani performans olarak dert etmene değmez. Sadece BP ile de oyununu yapabilirsin.

Ancak yukarda denildiği gibi her yer node olacağı için en baştan düzenli şekilde herşeyi sonradan baktığında anlayabileceğin şekilde düzenle. Ben çoğu şeyi eventler yerine fonksiyonlarda yapıyorum ve gruplara ayırıyorum ki liste liste hepsini görebileyim. Eğer oyunda tickte yapmama gereken ve performansı etkileyen bir fonksiyon olursa onu c++ a taşıyorum. 

Ha bir de başıma şöyle bir şey geldi. Bir oyuna BP ile başladım açarken. Oyunda ilerleyince c++ eklemem gerekti ve c++ class eklediğimde compile hataları aldım çözemedim. Ondan sonra tüm projelere c++ ile başladım sorun çıkmasın sonradan diye. Sen de öyle yap BP kullanacaksan bile tamamen c++ ile başla belki kullanacağın tutar sorun yaşamazsın.
 
Klasik bir soruya klasik bir cevap vereyim ben de,

Bence başlangıç seviyesinde birisi her zaman BP ile başlamalı, hep söylerim istersen yazılım mühendisi ol, oyun motorunun mantığını bilmediğin sürece C++ sana yardımcı olamaz. BP ile olayın mantığını anlayarak başlarsan daha sonra C++ ile devam etmen daha kolay olacaktır.
BP ile C++ arasındaki en temel fark da C++ bilindiği üzere makina dili kullanır, BP ise görselden önce makina diline çevrilir ki bu çevirme BP üzerinde ihtiyacın olmayan, hiç node bağlamadığın kısımları da kapsar ve sonra kullanılır. Arada oluşan performans farkının da temeli burada yatmaktadır. Cpp ile yaptıklarının %95' ini BP ile de yaparsın dolayısıyla BP ile başlamanda hiçbir sakınca yoktur.