Unity İle Github Kullanımı
53:22
Пікірлер
@OweL946
@OweL946 17 күн бұрын
Hocam 1 kişi sadece yazılım olarak modellemeye girmeden mmorpg metin2 silkroad knight seviyesinde ne kadar sürede yapabilir projeye göre değişebilir tabi ama tahmini tüm zamanını buna ayıracak.
@xoxgames
@xoxgames 17 күн бұрын
Direk yapamaz desek yanlış olmaz, sen kısa bir süre içerisinde servera bağlanabilen, oyuncuların birbirini gördüğü bir yapı oluşturabilirsin ama bu pazarlanabilir olmaz. Bunun pazarlanabilmesi için bu yapının bir çok testten geçmesi gerek, bağlantı sorunları vs için. Oyun kısmını katmıyorum bile. En mantıklı hamle serverla vs ile uğraşmadan bu kısmı ayrı bir firmaya bırakmak olur. Albion online nın yapımcıları yanlış hatırlamıyorsam ufak bir ekiple başlayıp, bu kısımları photon a bırakarak oyunu geliştirdiler. Burada ben yapıcam diyorsan her şeyi vazgeçmeni öneririm ama diyorsan ki bu kısımlara ellemeyi düşünmüyorum o zaman yapılabilir ama yine uzun sürer. Oyunundaki animasyon bugları, ping e göre farklı davranan oyuncular falan derken çok uğraşman gerekir. Yine destek almak zorunda kalırsın. Yani yapıyı kurarsın ama 10 kişi server a bağlı iken farklı çalışır, 100 kişi bağlı iken farklı çalışır. Bir hata olduğunda bunu bulup çözmen uzun sürer. Böyle bir oyunda genel olarak oyuncu tutamayacağı için batarsın. İnat ettin diyelim gece gündüz çalışıyorsun herşey de düzgün gitti, oyunu 1000 kişi oynuyor olsun. Oyuncu sayısı arttıkça server masrafların artmaya başlayacak (server/serverlar kendinin olsa bile), bu durumda da yatırıma ihtiyacın olacak. Çoğu kişi/firma tek kişinin geliştirdiği oyuna yatırım yapmaz. Söylediğim sebeplerden dolayı, yine batarsın. Fark ettiğin üzere oyun kısmına hiç girmedim, iş modeli olarak saçma olduğu için tek kişi mmo yapamaz diyorum. Ama yaptım demek için basit bir mmo altyapısından bahsediyor isen, kişiye göre değişir 2 3 ayda yapıyı yapanda olur, 6 ayda yapanda olur. Kafayı kırmış biri 1 haftada da yapabilir. Yine kişiye ve projeye bağlı bir durum. Ama bahsettiğin oyunlara eş bir yapı kurmak, uzun yıllar boyunca bir çok oyuncuya hizmet veren, tek kişi için %99 imkansız, %1 ihtimalde üzerine iş kurup yatırım almak için yeterli bir ihtimal değil. Olsa bile istisna bir durum olur ve çok uzun bir süre gerekir. (Oyunu tek kişi uzun süre güncelleyemeyeceği için, oyuncular sıkılıp oyunu bırakır yine batarsın :D)
@OweL946
@OweL946 17 күн бұрын
@xoxgames çok teşekkür ederim cevabın için umarım kanalın hakettiği yeri bulur aklımda birşey daha vardı 2d platform oyun hikayeli dentures and demons vardı buna ne dersin :)
@xoxgames
@xoxgames 17 күн бұрын
@@OweL946 ​ @OweL946 Rica ederim, oyunu bilmiyorum ama 2d platform oyunları genel olarak mekanikleri basit olan oyunlar. Çok fazla zaman almaz, zaman alacak şeyler mekanikleri çeşitlendirmek ve level tasarımı gibi şeyler olur. Senin bahsettiğin oyun hikaye odaklı ise asıl zamanı alan şey o hikayedir. Mekanik tarafta npc ler için diyalog sisteminin hazırlanması, olay sisteminin yapılması (oyuncunun hikayenin neresinde olduğunu takip etmek için) bunlar olur. Bunlarda genel geçer mekanikler olduğu için hazır sistemler de kullanılarak hızlıca yapılabilir. Daha çok hikayeyi oluşturmak ve o hikayeyi oyuna yerleştirmek zaman alır. Bu da hikayenin uzunluğuna vs göre yapım süresini değiştirir. Tabi görsellerin, efeklerin, animasyonların hazırlanması gibi konulara girmiyorum.
@kkemal59
@kkemal59 18 күн бұрын
Merhaba hocam IAP sistem kurdum herşey ama APK çıktısi alip açık test göndermem lazım satın alma işlemleri olması bir bilginiz varmi
@xoxgames
@xoxgames 17 күн бұрын
Tam anlamadim aip konusunda mi aip ı test etmek konusunda mi? Yanlış bilmiyorsam aip de test edilebiliyor, açık testte test ediliyor mu emin degilim ama kapalı testte test kullanıcıları aip yi sorunsuz test edebiliyor diye aklımda kalmış.
@takyonyazılım
@takyonyazılım Ай бұрын
Teşekkürlerrr
@xlaser_yt6957
@xlaser_yt6957 Ай бұрын
Merhaba size discord yada Instagram dan ulaşa bilir miyim 😊
@xoxgames
@xoxgames Ай бұрын
.dinc discord kullanıcı adım
@UnityAtölyesi
@UnityAtölyesi 2 ай бұрын
Güzel anlatım olmus tşkler
@2525kenants
@2525kenants 2 ай бұрын
Eline sağlık çok faydalı
@parsher_
@parsher_ 3 ай бұрын
dc sunucusu açmayı düşünür müsün ve ya dc kullanıyorsan nickini yazma şansın var mı
@xoxgames
@xoxgames 3 ай бұрын
.dinc nick im, şuan için açmayı planlamıyorum ama ileride olabilir.
@semih-ze9uo
@semih-ze9uo 3 ай бұрын
Hocam ben genelde kendımı gelıstırmek ıcın basıt hypercasual oyunlar yapıyor yaparken once gıthubdan bır repo olustuyorum sonra bunu clonlayıp unıtyde acıp ıslerımı halledıkten sonra gıthuba pushluyorum genel olarak boyle kullanıyorum
@xoxgames
@xoxgames 3 ай бұрын
Projeye göre değişir ama hyper casual bir proje olsa bile projenin önemli noktalarında commitler atmanı tavsiye ederim, mesela reklam servislerini eklediğinde. Bir arkadaşım hyper casual oyun yaparken reklam servislerini her şeyden önce entegre ederdi, ikinci bir proje yapacağın zaman o committeki halini de kopyalayabilirsin projenin.
@muhammetgumusdag7869
@muhammetgumusdag7869 3 ай бұрын
ilk
@muhammetgumusdag7869
@muhammetgumusdag7869 3 ай бұрын
eline sağlık hocam
@muhammetgumusdag7869
@muhammetgumusdag7869 3 ай бұрын
aydınlattın reis eyvallah katılacaktım bende iyi ki katılmamışım. başarılarının devamını diliyorum 3 evetle uğurluyoruz
@jander4763
@jander4763 4 ай бұрын
Emeğine sağlık.👌
@ScenicJourneysHub
@ScenicJourneysHub 4 ай бұрын
Merhaba, Biraz daha detaylı öğrenmek için bir kaynak varmı ? Nodes lar vs.
@xoxgames
@xoxgames 4 ай бұрын
Açıklamalardaki bu linkde gezinmeni öneririm, github.com/comfyanonymous/ComfyUI_examples Bu comfyui ın github sayfası, sürekli olarak da güncelliyorlar. Comfyui manager kurulumu adlı bir video daha var kanalda oradaki uzantıyı kullanarak da nette bulduğun workflow ları vs uğraşmadan kopyalayabilirsin, ekstra uzantılar hakkında bilgi alabilirsin.
@yusufgoker8604
@yusufgoker8604 5 ай бұрын
Merhaba ben şuan test aşamasında tıkandım bağlantı linki ne yazık ki gözükmüyor bende kapalı test yapıyorum yardımcı olabilir misiniz android studio üzerinden geliştirmemi yapıyorum
@xoxgames
@xoxgames 5 ай бұрын
Sorunu tam olarak anlamadım, biraz daha detaylandırırsan ve bildiğim bir şey ise yardımcı olmaya çalışırım. ".aab" çıktısını dahili testte test edebilmen gerekiyor. Kapalı test / beta testi, uygulamanın incelenmesi adımını içeriyor, testi yapabilmen için önce incelemeden geçmesi lazım eğer değiştirmedilerse. Eğer apk çıktı alıyorsan google uzun süre önce apk ları kabul etmeyi bırakmıştı, belki o yüzden problem yaşıyorsun diyecektim ama o zamanda uyarı verir büyük ihtimalle "aab" yükle diye. Tam anlamadım sıkıntıyı biraz daha açabilir misin?
@yusufgoker8604
@yusufgoker8604 5 ай бұрын
@@xoxgames Çok teşekkür ederim hemen cevapladığınız için."abb" olarak yükledim dosyayımı kapalı testte şuan kişi listemde de 4 kişi bulunmakta en alta webb te katılın bölümdeki link şuanlık çalışmıyor bağlantı kopyalayamıyorum.Kapalı test yaptım direkt öncelik olarak açık test veya dahilli testle mi başlamam gerekti bilmiyorum.Ayrıca sizin yaptığınız gibi bir zip dosyası güklemedim sadece "abb" dsoyası yükledim.Şuan çok amatörüm elimden gedliğince anlatmaya çalıştım umarım başarabildim.
@xoxgames
@xoxgames 5 ай бұрын
@@yusufgoker8604 Rica ederim, kapalı test olduğu için büyük ihtimalle şuanda beklemededir. Yanlış bilmiyorsam kapalı test uygulamaları ve oyunları tıpkı direk paylaşılan uygulamalar gibi önce bir denetimden geçiyor. O sebeple bağlantı kısmı aktif olmamıştır. Dahili test üzerinden bir deneme yapabilir misin? Dahili test denetime tabi olmadığı için bağlantı kısmının direk aktif olması lazım.
@yusufgoker8604
@yusufgoker8604 5 ай бұрын
@@xoxgames Deneyip bilgilendireğim çok teşekkür ederim.Discord kanılınız falan var mı acaba katılabileceğim?
@xoxgames
@xoxgames 5 ай бұрын
@@yusufgoker8604 Rica ederim, henüz açmadım malesef şuan için yok.
@eneskocak6930
@eneskocak6930 6 ай бұрын
Kanal şansa düştü karşıma ve güzel içerikler var gibi duruyor. Sınavlardan sonra bakacam
@mercury6740
@mercury6740 7 ай бұрын
cunfyui ayrı davaaa. model nedir hangi modeli seçelim hangisine hangisini monte edelim ayrı dava. siz olmasanız kötü ingilizceyle bu işe zor çözerdik. sağolun
@xoxgames
@xoxgames 7 ай бұрын
Rica ederim
@Frat.By8
@Frat.By8 7 ай бұрын
hocam ben örnek olarak ocak ayı kullanıp şubat kullanmayacağım martta tekrar kullanacağım ödeme aylık olarak mı yapılıyor yoksa kabul ettikten sonra 1 yıl kullanma zorunluğu var mı
@xoxgames
@xoxgames 7 ай бұрын
Aylık olarak yapılıyor, aboneliğini iptal edip sonra tekrar başlatabilirsin.
@elaavnur
@elaavnur 7 ай бұрын
workflowlarınızı paylaştığınız bir yer var mı?
@xoxgames
@xoxgames 7 ай бұрын
Hayır ama açıklama kısmındaki kaynak linklerinden farklı workflowlara bakabilirsin.
@tayyip6784
@tayyip6784 7 ай бұрын
Teşekkürler, dahili test ile kapalı test arasındaki fark nedir?
@xoxgames
@xoxgames 7 ай бұрын
Benim bildiğim kadarı ile hemen hemen büyük bir fark yok ama genelde dahili testler ufak gruplar ile yapılıyor. Biraz daha genel problemleri keşfedip çözmek için, kapalı testler ise daha geniş gruplar ile yapılıyor.
@xoxgames
@xoxgames 7 ай бұрын
Birde yanlış hatırlamıyorsam playstore üzerinde onay süreci gerekebilir uygulama/oyun için, dahili testte herhangi bir sürece tabi olmadan uygulamayı test edebiliyorsun.
@emirhanorjj6386
@emirhanorjj6386 20 күн бұрын
​@@xoxgames hocam kapalı test geliştirme aşamasında mı oluyor. Yani kapalı test yaparak da yayınlayabiliyor muyum
@xoxgames
@xoxgames 19 күн бұрын
@@emirhanorjj6386 dahili testi alpha süreci olarak düşünebilirsin. Kapalı testi ise beta süreci olarak düşünebilirsin. Yani oyun veya uygulamanın yayımlanma haline daha yakın versiyonu. Yüzde yüz emin değilim ama oyunu veya uygulamayı test sürecindeyken yayınlayabilmek için açık beta / open beta falan olarak kaydetmen lazın diye aklımda kalmış. Kapalı beta iken yayınlayamıyor olman lazım. Ama uygulamayı kapalı beta iken test edip sonra açık betaya da çekebiliyorsun.
@mehmetemreozdemir-qb5oj
@mehmetemreozdemir-qb5oj 7 ай бұрын
Hocam devamını bekliyoruz
@bhruzmehrli
@bhruzmehrli 8 ай бұрын
👌👌
@hayvanhaklarianayasaya
@hayvanhaklarianayasaya 8 ай бұрын
elline koluna sağlık dostum.
@dascapital217
@dascapital217 8 ай бұрын
çok teşekkürler hocam çok faydalı bir video olmuş sayenizde anladım bu mereti : )
@alperenekiz3163
@alperenekiz3163 9 ай бұрын
Hocam oyunda bir player tasarladım ve bir marangoz atölyesinin yanına geldiğinde etkileşime girmelerini istiyorum nasıl yapacağım acaba yardımcı olursanız çok sevinirim
@xoxgames
@xoxgames 9 ай бұрын
(Rigidbody kullandığını varsayıyorum)Mesela marangoz atolyesinin içinden geçip gitmeyecekse player, hem player üzerinde hem de marangoz atolyesinin olduğu yerde bir collider bulunmalı ve isTrigger özelliği kapalı olmalı. Diyelimki marangoz atolyesinin yakınlarında geldiğinde de bir menü vs birşey göstereceksin oyuncuya, bu seferde ikinci bir collider koyarak bunu yapabilirsin. En çok kullanılan yaklaşım menü vs birşey göstermek için collider ın isTrigger özelliğini açmaktır. Bu sayede collider ın boyutunu ayarlayarak istediğin mesafeden OnTriggerEnter ile menünü aktif hale getirirsin.
@xoxgames
@xoxgames 9 ай бұрын
Özetle player üzerine rigidbody koyarak ve bir collider koyarak, etkileşime girilecek nesnelere de bir collider koyarak ve bunların isTrigger özelliğini aktif hale getirerek, OnTriggerEnter/OnTriggerEnter2D fonksiyonları ile etkileşimi kontrol edebilirsin. Örnekte menü göstermeyi verdik, OnTriggerExit fonksiyonu ile de oyuncu collider ın içinden çıkınca menünü kapatabilirsin.
@semih-ze9uo
@semih-ze9uo 9 ай бұрын
Reis bide beraber github üzerinden mi çalıştınız gamejamde eğer çaliştiysaniz çakışma nasil oldu biz farkli şubelerden maine gondermemize rağmen çakişiyordu
@xoxgames
@xoxgames 9 ай бұрын
3 farklı branch şeklinde çalıştık, main ve dev vardı. 3. branch ler ise yapılacak sistemleri/özellikleri içeriyordu. Görev dağılımı ile sistemleri paylaştık, işini bitiren kendi branch ini dev e merge liyordu. Dev de çakışmaları çözüp, main e öyle geçiriyorduk. İster istemez özellikle sahne üzerinde değişiklikler olduğunda, taglerde değişiklikler olduğunda vs çakışma oluyor ama orada iki tarafa da bakıp karar verdik. Ufak tefek şeyler olduğu için gerekirse birkaç dk da tekrar main üzerinde yaptık. Bazı sistemleri falan kontrol etmeden attığımızda oldu zaman kazanmak için.
@semih-ze9uo
@semih-ze9uo 9 ай бұрын
Hocam ses efekti daha mantıklı gibi ama benim gibi yazilim muh 3.sinif olup iyi bir portfolyo oluşturup işe girmek isteyenler için yada indie oyunlar yapabilmek için daha cok egitim oyun yapma videolari gelirse efsane olur
@xoxgames
@xoxgames 9 ай бұрын
İleride kodlamada belirli bir seviyeye gelelim, yine kendi oyun grafiği ve oyun seslerimizi yapmayı öğrenelim, hızlı hızlı sadece tasarımsal açıklamaların olduğu projeler yaparız. Veya kısa gamejamlere katılıp onların videolarını çekebilirim. Kodlama kısmı gayet basit indie oyunlar yapabilmek için yeterli seviyede ama diğer assetleri netten araştırıp bulursunuz deyip geçmek istemiyorum.
@ibrahim-uq6jd
@ibrahim-uq6jd 9 ай бұрын
reis liste ses olursa güzel olur gibi 😅
@xoxgames
@xoxgames 9 ай бұрын
her türlü gelecek ama biraz geç gelebilir
@ibrahim-uq6jd
@ibrahim-uq6jd 9 ай бұрын
@@xoxgames teşekkürler
@kasmekmen7564
@kasmekmen7564 10 ай бұрын
Abi iyi günler ben unity nasıl indiririm? Bununla kodlama bilmeden oyun yapmak istiyorum nasıl kullanixam? 2d siyah Beyaz Limbo tarzı oyunl yalicam
@xoxgames
@xoxgames 10 ай бұрын
unity.com/download ile indirebilirsin, yazılım bilgin yoksa bolt gibi görsel olarak yazılım oluşturabileceğin paketler var. Tabi bolt un kullanımını da öğrenmen gerekecek. Benim tavsiyem eğer unity kullanacaksan direk c# öğren. Limbo tarzı oyunlar için youtube da birçok 2d platformer eğitimi mevcut farklı kanalların. Bir taraftan onlara bakarken bir taraftan da ufak ufak c# üzerinde birşeyler öğrenmiş olursun.
@xoxgames
@xoxgames 10 ай бұрын
Birçok basit kodu da chatgpt veya gemini gibi ücretsiz yapay zekalara yaptırabilirsin.
@kasmekmen7564
@kasmekmen7564 10 ай бұрын
@@xoxgames buradan ankatmak zor oluyor da
@xoxgames
@xoxgames 10 ай бұрын
@@kasmekmen7564 tamamdır, limbo gibi oyun yapmak istiyorsan ilk önce youtube da 2d platformer unity eğitimi diye arat, genellikle 2d platformer olarak geçer limbo tarzı oyunlar. O eğitimler ile birlikte hem unity i biraz öğrenirsin hem de biraz kodlama öğrenirsin. Takıldığın yerlerde chatgpt veya gemini yi kullanmayı unutma, sana çok büyük yarar sağlar. Kendini biraz geliştirdikten sonra ingilizce bilmiyorsan biraz biraz ingilizce de öğrenmeye çalış, çünkü ingilizce olarak bulabileceğin eğitim miktarı çok fazla, kendini daha çok geliştirip istediğin oyunları daha rahat yapabilirsin.
@kasmekmen7564
@kasmekmen7564 10 ай бұрын
@@xoxgames abi iletişim adresin var mı lütfen ya
@Maeve472
@Maeve472 10 ай бұрын
Hocam şimdi izlemeye başlayacağım inş güzeldir video :D like attım
@xoxgames
@xoxgames 10 ай бұрын
teşekkürler :D
@Ahmet-wt8ng
@Ahmet-wt8ng 11 ай бұрын
Merhaba, ComfyUI-Manager-maini, custom nodes'a attım ama hala manage buttonu gözükmüyor. Her şeyi silip bir daha denedim ama sonuç aynı. Neden kaynaklanıyor acaba?
@xoxgames
@xoxgames 11 ай бұрын
İndirdiğin .zip dosyasının içine girip içinde bulunan ComfyUI-Manager-main dosyasını çıkarman lazım, belki direk .zip dosyasını custom nodes a taşımışsındır. Veya kurulu olan comfyui versiyonu ile uzantı eşleşmiyor olabilir, onu önlemek içinde comfyui klasörü içerisinde update adında bir klasör mevcut. Önce o klasöre giderek update_comfyui.bat dosyasını çalıştır sonra comfyui manager ı yüklemeye çalış.
@boronez6487
@boronez6487 11 ай бұрын
Tam olarak ihtiyacim olan video teşekkürler
@xoxgames
@xoxgames 11 ай бұрын
Rica ederim, anlamadığın bir yer olursa veya eksik gördüğün sormaktan çekinme.
@cetecco
@cetecco 11 ай бұрын
Teşekkürler!
@_B3ater
@_B3ater 11 ай бұрын
Hocam bu embeddingleri nerden bulabiliriz yardımcı olur musun? Benim karakterler cok ucube oluyor 50 negatif prompt koymama rağmen :(
@xoxgames
@xoxgames 11 ай бұрын
"embedding:EasyNegative" gibi prompt üzerinden kullanabilirsin, civitai adında bir site var birçok embedding mevcut orada. Yada huggingface üzerinde bazı paylaşılmış embeddingler de mevcut. Bunları indirip ComfyUI\models\embeddings kısmına koyabilirsin.
@_B3ater
@_B3ater 11 ай бұрын
@@xoxgames saolsın kral hallettim, ama comfyui hala her 10fotodan 5ini 3 kafalı yapıyor malesef 😂
@xoxgames
@xoxgames 11 ай бұрын
@@_B3ater Rica ederim, o comfyui ile ilgili değildir büyük ihtimalle kullandığın model veya prompt ların ile ilgili olabilir, ksampler üzerindeki ayarlara da dikkat etmek isteyebilirsin. Automatic1111 in üzerinde belirli bir modelle hangi ayarlarda hangi çıktıları alıyorsan comfyui üzerinde de aynı model ve ayarlarla benzer çıktıları alırsın. Ürettiğin görseller hakkında fikrim yok ama mesela ben sdxl modelini genelde thumbnail üretmek için kullanıyorum. Açıklamalar kısmında "SDXL kullanıyorsanız" diye bir link var. Oradaki workflow a basit birkaç prompt girerek gayet güzel çıktılar alabilirsin.
@_B3ater
@_B3ater 11 ай бұрын
@@xoxgames Hocam şöyle, Pozitif ve negatif promptlar aynı, hi res fix ekli , cfg step vesaire herşey aynı.Fotoğrafların kalitesi daha yüksek gibi hissediyorum ama tek sorun her fotografta ektra kol bacak oluyor sebebini anlamadigim bise sekilde, o kadar fazla negatif prompt koydumki her uzuv için yinede çare bulamadım.Yardım için çok teşekkürler çözersemde buraya yazarım belki başka arkadaşlarada yardımcı olmuş olur
@mercury6740
@mercury6740 7 ай бұрын
@@_B3ater redditte cumfyui'ın promptlarda özellikle negatiflerde daha hassas olduğunu okudum. birçok insan bunda hemfikir. kendim bunu test edip anlayacak kadar olayı çözemedim ama bir ara zaman ayırıp girişicem bu işe.
@semih-ze9uo
@semih-ze9uo Жыл бұрын
birde hocam public int sayı { get { return sayı; } set { sayı = 5; } } boylede olur neden degısken tanımlayıp sonra otopropertynın ıcıne yazıyorsunuzkı dakıka 13:50dekı gıbı yapmanıza gerek yok sankı
@xoxgames
@xoxgames Жыл бұрын
Burada get ile property nin kendisini döndürmeye çalışırsan, tekrar property ye eriştiği için tekrar o property nin get methodu çalışacaktır, bu durumda sürekli aynı property nin get methodunun çağırılmasına sebebiyet verir, yani sonsuz bir döngüye sokar. Aynı durum set işlemi içinde geçerli. Eğer property nin get ve set fonksiyonları altında tekrar o property ye erişmeye çalışırsan, property nin yapısı gereği tekrar o property nin get ve set fonksiyonunu çağırmış olursun. Kendimizi sonsuz bir döngüye sokmamak için veriyi bir field alanında tutarız ki, property üzerinden rahatça erişim sağlayalım. Eğer property bir oto property değilse senin için bir field alanı oluşturmaz. Belki yazım sırasında hata almazsın ama verdiğin örnekteki gibi bir kullanımın seni sonsuz döngüye sokması gerekir. Video da bahsetmeyi unutmuş olabilirim. Soruyu sorduğun için teşekkürler.
@semih-ze9uo
@semih-ze9uo Жыл бұрын
Hocam otoProperty ıle ılk yaptıgımız yontem arasındakı fark nedır yanı ilk basta herkesınde yaptıgı gıbı fonksyon, metot tanımlayıp yaptık bırde otoProperty ıle yaptık ya farkı nedır cunku ıkısınınde ıcıne ıf for koyabılıyoruz
@xoxgames
@xoxgames Жыл бұрын
haklısın ama otoproperty i kulladığımıız zaman field alanını görmediğimiz için field kısmını sadece bu kod içinde olsa bile yanlışlıkla değiştirme ihtimalimizi ortadan kaldırıyoruz. Property ye gelirsek eğer ben property içinde bir kontrol sağlıyorsam ve propertynin değerini değiştirmek istersem kendimi o kontrole mağruz bırakıyorum. İlk yaptığımız fonksiyonlu yöntem property ler mevcut değilken insanların bu soruna getirdiği çözüm. Yani encapsulation sadece property kullanmak değil, aslında bir yaklaşım. Propertyler mevcut değilken bile insanlar bu yaklaşımı kullanıyormuş onu belirtmek istedim.
@semih-ze9uo
@semih-ze9uo Жыл бұрын
@@xoxgames hocam anladımda fonksıyonlu yontemı kullandıgımızda da ınsanlar baska sınıftan erısemıyorlar kı propertylerdede erişemıyorlar demek ıstedıgım bıraz gereksız olmamıs mı cunku ıkısıde aynı ıslevı goruyor bır de burada sunu soylemıssınız:sadece bu kod içinde olsa bile yanlışlıkla değiştirme ihtimalimizi ortadan kaldırıyoruz. Ben su sekıl bır kod yazıp degıstırebılıyorum aynı classta private int dayı; public int sayı { get { Debug.Log("se"); return dayı; } set { Debug.Log("sek"); dayı = 5; } } void Start() { sayı = 10; dayı = 25; Debug.Log(sayı); } ekrana 25 yazıyor mesela
@semih-ze9uo
@semih-ze9uo Жыл бұрын
@@xoxgames internetten de arastırdıgımda modern programlama dılınde bu daha cok kullanılıyor ve daha kısa kod yazmamızı saglıyor dıyor hocam baska bır ozellıgı yok dıyor
@xoxgames
@xoxgames Жыл бұрын
@@semih-ze9uo Burada sen normal bir property kullanarak private bir field ın (dayı) değerini değiştiriyorsun, ki property lerin amacı budur(field lara erişimi ve yönetimi sağlamak). Oto property lerde ise sen field alanını göremezsin ve direk o filed a erişemezsin. "public string OtoProperty { get; set; }" şu örnekteki gibi. Dolayısıyla oto property nin field alanını göremediğin için aynı kod içerisinde bile olsa o field ı direk değiştirme ihtimalin olmaz, mecburen oto property üzerinden o field a erişmen gerekir. Ama verdiğin örnekteki gibi normal bir property kullanırsan aynı kod içerisinde rahatça private bir field a erişerek onun değerini değiştirebilirsin. Field ın private olması sadece başka class lar üzerinden değiştirilmesini veya ulaşılmasını engeller. Dolayısıyla sen dayı field ını rahatça aynı kod içerisinde değiştirip bir debug log ile de ona ulaşabilirsin. Fonksiyonlu kullanıma gelirsek, belirttiğim gibi property lerden önce insanlar field larını güvence altına almak için bu tarz bir yöntem geliştirmişler. Programlama dillerindeki property özelliğinden önce zaten insanlar bu tarz bir yaklaşıma ihtiyaç olduğunu biliyorlarmış. Programlama dilleri ise zamanla yazılımcıların bu ihtiyaçlarını daha rahat giderebilmeleri için property leri ortaya çıkarmış, kolaylık olması açısından. İkisininde yaptığı işlem aynı, field a erişimi kontrol etmek.
@xoxgames
@xoxgames Жыл бұрын
İnternette daha kısa kod yazmanızı sağlıyor demesi ise, eğer property kullanmak yerine her bir field ın get i ve set i için bir fonksiyon oluşturursan dolayısıyla bu kodun uzunluğunu ve karışıklığını arttırır. Property ler ise bize burada bu açılardan yardımcı olur. Hem kod karışıklığını azaltarak hem de daha kısa kod yazmamızı sağlar. Ama hangi yöntemi kullanırsan kullan buradaki asıl amaç field a erişimi kontrol etmek yani field ı kapsüllemektir. Ben ise videoda özellikle fonksiyonlar ile göstermeye başladım ki olayın aslında property leri kullanmak değil, field larımızı kapsüllemek olduğunu daha iyi anlatabileyim.
@semih-ze9uo
@semih-ze9uo Жыл бұрын
Hocam lütfen egitimlere devam edın beraber oyun yapalım hypercasual falan solıd oop desıgn pattern kullanarak cok faydalı olur
@xoxgames
@xoxgames Жыл бұрын
şuanda yeni başlayanlara yönelik bir seri mevcut kanalda, onu bitirdikten sonra başka projelerede giriş yaparız. Hem unity kısmını hemde kod tarafını aynı playlistte gösterirsem kafa karışıklığı yaratır diye iki ayrı playliste böldüm.
@semih-ze9uo
@semih-ze9uo Жыл бұрын
hocam bir şey yazmaya başlarken otomatik dolduran bir eklenti mi var sizde bende yokta ondan eger varsa nasıl vısual studıoya eklıyecegımı soyler mısınız yeniyimde tesekkurler
@xoxgames
@xoxgames Жыл бұрын
visual studio 2022 ye videoyu çektiğim sıralarda bir güncelleme ile gelmişti ama açıp kapatmak için ayarı nerede tam olarak bilmiyorum.
@furkanylmaz2662
@furkanylmaz2662 Жыл бұрын
eline sağlık reis bende yeni başladım inşallah videolarınla ilerlerim
@xoxgames
@xoxgames Жыл бұрын
Rica ederim, elimden geldiğince basit ve detaylı bir şekilde ilerlemeye çalışıyorum özellikle 3. videodan sonra. Playlist içinde bir çok unity özelliğinede değiniyorum, eksik gördüğün yerleri veya anlamadığın yerleri sormaktan çekinme.
@furkanylmaz2662
@furkanylmaz2662 Жыл бұрын
@@xoxgames teşekkür ederim tekrardan
@onalbass
@onalbass Жыл бұрын
Tebrik ediyorum hocam sizi göbeğini hoplatanlara karşın sizin gibi insanların da olması umut verici. Detaylı anlatımızınız için teşekkür ederim.
@xoxgames
@xoxgames Жыл бұрын
Anlamadım ama rica ederim hocam.
@bohreffect
@bohreffect Жыл бұрын
Peki "Polymorphism" oyun yaparken hangi kısımlarda kullanılıyor UI damı veya Skill sistemlerinde mi nerede bilen biri varsa paylaşabilir mi ?
@xoxgames
@xoxgames Жыл бұрын
@bohreffect hemen hemen her yerde, kod yazdığın her yerde gerek kod tekrarını azaltmak için gerekse objeleri ortak paydada buluşturmak için polimorfizmi kullanıyorsun. Mesela videoda EncapsulatedEnemy adında bir class ımız var ve bir adette ChildEnemy class ımız var, EncapsulatedEnemy class ını inherit eden ondan kalıtım alan. Diyelim ki bir adette ChildEnemy1 adında bir class ımız daha olsun, bu class ta EncapsulatedEnemy class ından kalıtım alsın. Ben sahnede EncapsulatedEnemy nesnelerini ararsam ChildEnemy ve ChildEnemy1 nesnelerinede ulaşırım. ChildEnemy ve ChildEnemy1 nesnelerinin birbirlerinden farklı özellikleri olabilir ama ben bu nesneleri EncapsulatedEnemy ile işaretlersem EncapsulatedEnemy üzerinde tanımlanmış mesela fonksiyonları bütün nesnelerde çalıştırabilirim. Çünkü iki class ta EncapsulatedEnemy class ından kalıtım alıyor. Mesela EncapsulatedEnemy class ımda HasarAl() fonksiyonu bulunuyor ve ben sahnedeki bütün düşmanların hasar aldığı bir yeteneği yapıyorum. Bu yetenek devreye girdiği anda sahnedeki bütün ChildEnemy ve ChildEnemy1 nesneleri hasar alacak. Ben bu nesnelere EncapsulatedEnemy tanımı ile ulaşabilirim ve hepsini EncapsulatedEnemy ile işaretleyerek bu nesneler üzerinden HasarAl() fonksiyonunu çalıştırabilirim. Bir sonraki oop playlistindeki video Abstraction, sonraki iki videoda ise örnekleri görebilirsin. Benim tavsiyem daha çok polimorfizmin mantığına odaklanman olur. Bir kere mantığı kafanda oturttuğun sürece kullanabileceğin yerleri daha rahat kafanda canlandırabilirsin. Onun dışında aklına takılan yerleri sormaktan çekinme elimden geldiği sürece yardımcı olmaya çalışırım.
@bohreffect
@bohreffect Жыл бұрын
​@@xoxgames Cevabınız için çok teşekkür ederim belkide küçük kaçırdığım birşey var oda şu:Biz ChildEnemy ve ChildEnemy1 nesnelerini EncapsulatedEnemyden kalıtım ettik diyelim [EncapsulatedEnemy childenemy =new EncapsulatedEnemy(); EncapsulatedEnemy childenemy2=new EncapsulatedEnemy();] dolayısıyla ChildEnemy ve ChildEnemy1, EncapsulatedEnemynin bütün özelliklerini kullanabilir hale geldi buraya kadar tamam ama biz bunun dışında birde EncapsulatedEnemyi başka bir clasa eşitliyoruz EncapsulatedEnemy child=new ChildEnemy(); burda ki tanımlanan instance ile biz hangi özellikleri kullanabiliyoruz ChildEnemyde EncapsulatedEnemynin özelliklerini kullanabiliyorsak yine aynı şey oluyor düz kalıtım alındığında tanımlamakla ekstradan ne değişiyor burada orasını anlamadım son kez cevaplarsanız çok sevinirim
@xoxgames
@xoxgames Жыл бұрын
​@@bohreffect Rica ederim, öncelikle "EncapsulatedEnemy childenemy=new EncapsulatedEnemy();" ile bir obje oluşturursam adı ne olursa olsun burada new lediğim class "new EncapsulatedEnemy();" olduğu için bu bir EncapsulatedEnemy objesi olmuş olur. "EncapsulatedEnemy child=new ChildEnemy(); " ile objemi oluşturursam da burada new lediğim class "new ChildEnemy(); " olduğu için bu bir ChildEnemy objesi olmuş olur. Peki neden biz bir ChildEnemy objesini onun base/parent class ı ile işaretliyoruz. Burada istediğimiz şey ChildEnemy objesinin üzerindeki gereksiz özelliklerden kurtulmak ve iki farklı class tan oluşmuş objeyi aynı paydada buluşturmak ama abstraction/soyutlama bir sonraki videonun konusu o yüzden basitçe verdiğim örnek üzerinden anlatayım. Diyelim ki EncapsulatedEnemy adında bir class ım var ve içerisinde "public float can;" adında bir field var, birde "public void HasarAl()" adında bir fonksiyon var(youtube süslü paranteze kızıyor sen varmış gibi düşün). Benim ChildEnemy adında bir class ım daha var ve "public class ChildEnemy : EncapsulatedEnemy " bu şekilde EncapsulatedEnemy class ından kalıtım alıyor yani EncapsulatedEnemy class ı üzerinde bulunan can field ı ve HasarAl() fonksiyonu ChildEnemy class ınada geçmiş oluyor. Diyelimki benim bir tane daha düşman tipim olsun ve bunuda ChildEnemy1 adını vereyim. Bu class ımda bu şekilde "public class ChildEnemy1 : EncapsulatedEnemy " EncapsulatedEnemy class ından kalıtım alsın. Burada ChildEnemy ve ChildEnemy1 class ları üzerinde farklı farklı özellikler olabilir ama uzatmamak için ekstra belirtmiyorum. Benim sahne üzerinde sadece 2 tipte değil çok daha fazla tipte düşman objemde olabilir. Benim istediğim şey ne peki bütün düşmanlara hasar vermek. Ben inheritance/kalıtım videosunda gördüm ki benim ChildEnemy objelerim veya ChildEnemy1 objelerim aslında birer EncapsulatedEnemy objeside, neden çünkü EncapsulatedEnemy nin bütün özelliklerini kendi içerisinde de barındırıyor. Yani benim birbirleri ile alakası olmayan iki tipte objem aynı paydada buluşarak sanki kendi base class larından oluşmuş birer objeymiş gibi davranabiliyor. Bende polimorfizmi burada kullanıp bu birbirleri ile alakası olmayan objeleri farklı bir objeymiş gibi davranmaya zorlarsam, tek bir döngü içerisinde basitçe bütün objelerdeki HasarAl() fonksiyonunu çalıştırabilirim. Diyelimki daha önceden objeleri EncapsulatedEnemy listesi içerisinde toplamış olayım. ( List<EncapsulatedEnemy > list = new List<EncapsulatedEnemy >(); EncapsulatedEnemy child=new ChildEnemy(); EncapsulatedEnemy child1=new ChildEnemy1(); list.Add(child); list.Add(child1); //burayı sahnedeki bütün düşman objelerine eriştiğin kısım olarak düşünebilirsin biraz daha anlaşılır olsun diye bu şekilde yazdım ) "foreach (EncapsulatedEnemy dusman in list) dusman.HasarAl();" Özetle bir yapının birden fazla davranış sergilemesine polimorfizm denir. Ve biz, bu birden fazla davranış sergileyebilme durumunu birçok yerde kendi avantajımıza kullanabiliriz. Diğer türlü bütün düşman tipleri için farklı sorgular veya farklı döngüler oluşturmam gerekirdi.
@osan99999
@osan99999 Жыл бұрын
maşallah
@xoxgames
@xoxgames Жыл бұрын
Eğer sahnede çok fazla nesneniz bulunuyorsa ve singleton ınızı runtime da oluşturacaksanız findobjectoftype bir kerelik ufak bir gecikmeye sebebiyet verebilir, bu sebeple isterseniz findobjectoftype 'ı kullanmayabilirsiniz. Findobjectoftype 'ı , yeni bir game object oluşturmadan önce ekstra bir önlemmiş gibi düşünebilirsiniz fakat tamamen sildiğiniz durumda da bir problem olmadan kodunuz çalışacaktır. İsterseniz awake içinde de instance null mu, ""if (_instance == null)" null sa şu şekilde ata "_instance = this as T;". Değilse ise "Destroy(this);" ile destroy et diye değiştirebilirsiniz. Biraz daha düzgün görünmüş olur kodunuz. Normalde video içerisinde de değinecektim bunlara fakat videoyu kısaltayım derken unutmuşum, burada belirteyim dedim(tekrar video render ı almaya üşendim).
@osan99999
@osan99999 Жыл бұрын
bölüm 1 nerede
@xoxgames
@xoxgames Жыл бұрын
aynı adda ikinci bir playlist var kanalda, oyun projesi olarak başlamıştım ama sonra c# eğitim serisine döndü playlist bende ayırdım ikisini.
@xoxgames
@xoxgames Жыл бұрын
c#eğitimi için bu videoyu bölüm bir olarak düşünebilirsin
@cekconi1773
@cekconi1773 Жыл бұрын
👍👍👍
@omerseval944
@omerseval944 Жыл бұрын
hocam automatic1111'den sonra baya zor geldi çok karmaşık ama baya yararlı oldu teşekkürler.Umarım yakın zamanda az da olsa Türk stable diffusion community'si oluşması dileğiyle
@xoxgames
@xoxgames Жыл бұрын
Beğendiysen sevindim hocam, kısa bir süre sonra emin ol alışırsın. Hatta sadece görseli sürükleyerek bütün workflowu bir anda yüklemek o kadar çok rahat geliyor ki insana automatic1111'i aramıyorsun. Birkaç tane işine yarayacak workflow oluşturursan veya açıklamadaki kaynakları da kullanabilirsin, bir süre sonra sadece prompt değiştiriyorsun. Uzun uzun 4 5 kere img2img e gidip farklı iterasyonlar oluşturmana gerek kalmıyor.
@fatihkoc8237
@fatihkoc8237 Жыл бұрын
burada bahsettiğiniz o video ne zaman gelecek ?
@xoxgames
@xoxgames Жыл бұрын
Kanalda unity oop adında bir playlist var, o playlist in son iki videosu bu konu hakkında.
@fatihkoc8237
@fatihkoc8237 Жыл бұрын
@@xoxgames ben onları oop ye giriş videosu sanmışım :) Bu ara da oldukça güzel ve açıklayıcı şekilde anlatıyorsunuz çok teşekkürler
@xoxgames
@xoxgames Жыл бұрын
@@fatihkoc8237 Rica ederim, beğenmenize sevindim.
@fatihkoc8237
@fatihkoc8237 Жыл бұрын
@@xoxgames şöyle ki bu konuları az çok biliyorum ama bir projede kullanırken nerede kullanacağımı pek bilemiyordum. aklıma gelmiyordu. Siz videolarda hiç yoktan kullanım alanları , kullanım tarzlarını gösterdiğiniz için daha iyi oturuyor. Yine genel olarak proje içinde kullandığınız yeni proje de yaparsanız seve seve izlerim
@xoxgames
@xoxgames Жыл бұрын
@@fatihkoc8237 Magical Raid playlist i şuan için c# odaklı eğitim serisi gibi oldu -bir süre playlist i boş bıraktığım için yakın zamanda başka videolarda ekleyeceğim Magical Raid playlist ine-. Ayrıca kanalda "Sıfırdan Sona Casual Mobil Oyun Projesi" adında bir playlist de var, bilgi seviyesini sınırlı tutarak yapmaya çalıştığım bir proje. Özellikle direk projeyi geliştirdiğim için o playlist de, bir çok sistemi proje geliştirilirken ki süreçte görebilirsin. Bilgi düzeyi seviyesi yeni yeni oop kısmına geldi. Yeni videolar ekledikçe o playlist e, kullanım alanlarını da görmüş olursun. Unity üzerinde proje geliştirmeye yeni başladıysan da playlist i tamamen izlemeni tavsiye ederim. Bilerek yeni başlayanların yaptığı hatalar üzerinde durmaya çalışıyorum, zamanı geldikçe.
@TrendMüzikTR
@TrendMüzikTR Жыл бұрын
ben bir şey sormak istiyorum.benim 16 gb ramim 6 gb v ramim var ekran kartı da 1660 Ti bu sistem stable duffusionun hangi sürümünü kaldırır kurmak istiyorum. XL ye baktım biraz rtx ekran kartı falan olması lazımmış sanırım onu kuramam ama XL gibi güzel görseller oluşturabileceğim başka bir sürüm va rmı acaba
@xoxgames
@xoxgames Жыл бұрын
XL i dene bence ama comfyui üzerinde dene büyük ihtimalle problemsiz kullanabilirsin. Bende 1650 var yavaşta olsa xl i comfyui üzerinde kullanabiliyorum. Onun dışında 1.5 , 2 veya 2.1 sürümlerinden oluşturulmuş custom modelleri kullanabilirsin. Genellikle 1.5 sürümünden oluşturulmuş dreamshaper, rev animated, deliberate, anything v5 gibi modeller benim bildiğim popüler modeller. Ama xl kullanmıyorsan promptlarının algılanması için bir miktar uğraşman lazım, en iyi prompt algılması xl de.
@betulunlu7047
@betulunlu7047 Жыл бұрын
Öncelikle çekmiş bulunduğunuz eğitim videosu için teşekkürler. Linke tıklayarak Colab'e girdiğimde model download'ın altında token yapıştırmam için bir seçenek çıkmıyor ve eğitime başlayamıyorum. Sebebini ve çözümünü biliyorsanız paylaşabilir misiniz?
@xoxgames
@xoxgames Жыл бұрын
Rica ederim. Büyük ihtimalle hugging face token 'a gerek kalmayacak şekilde düzenlemişlerdir colab sayfasını. Hugging face token kısmını atlayarak deneme yapabilirsiniz.
@xoxgames
@xoxgames Жыл бұрын
Bazı özellikleri nasıl input olarak alabileceğinizi gösterdim videoda ama inputu hangi node ile vereceğinizi göstermeyi unutmuşum, sağ tıklayarak : add note / utils / primitive ile primitive node u ekleyebilirsiniz. Bu nodu herhangi bir input alan yere bağladığınızda ihtiyacınız olan değerde bir input node una dönüşür. Örneğin : KSampler(Advanced) üzerindeki end_at_step özelliğini input olarak değiştirdiniz. Buraya primitive node unu bağlarsanız, end_at_step bir sayı talep ettiği için primitive node üzerinde bir sayı girebileceğiniz yer açılır.