Unity'de oyun yapmak için C#'da nasıl gelişilir?

iyiouncu

Femtopat
Katılım
21 Aralık 2023
Mesajlar
17
Daha fazla  
Cinsiyet
Erkek
Herkese merhaba. Ömer hocam bu sorum size. Beni hatırlamışsınızdır bana GitHub'ı öğretmiştiniz. Siz benim yazılım hayatıma başlamamda büyük katkı sağladınız sizi idol olarak seçtim umarım ben de sizin gibi yazılımcı olurum. Neyse uzatmayayım ben konuya gireyim. Hocam ben ve arkadaşım 1 ay önce aset aldık 2D oyuna başladık. Tabii hiçbir şey bilmiyorduk. Udemy'e gittik bir video seti aldık oradaki adamda şansa bizmle aynı aseti kullanarak oyun yaptı. Tabii oradaki adam detaya inmeden anlatarak yaptı oyunu. Bizde adamdan bakarak aynısını yaptık videolar bitti ama oyun çok eksik. Ve kendimiz farklı şeyler eklemek istiyoruz. Süre, yıldız sistemi, farklı canavarlar filan ama hiç C# dilini bilmiyoruz. Gittik bir video seti daha aldık C# dilini öğreten ama konular bambaşka. Mesela değişkenler, if else, fonksyonlar filan öğretiyorlar ama biz anlamyoruz daha doğrusu bunu kendimiz nasıl yazacağız? Kodları ezberlemek istemiyoruz. İşin mantığını anlayıp kendşimiz kafamızdan yazmak istiyoruz. Umarım derdimi anlatabilmişimdir. Bu C# dilini en başta öğrenmemizmi gerekiyor yoksa başka bir şey mi yapmamız lazım. Bu işten en iyi siz anlarsınız diye siz aklıma geldiniz. Hocam size zahmet olmazsa sorunumla ilgilenebilir misiniz? Şimdiden teşekkürler.
@Ömerrrrrr
 
Merhaba iyi geceler. İlk defa başladığınızda taklit ederek bir şeyler yapmak kod ezberlemek değil aslında. Bir yerden sonra kafanızda yer ediniyor ve bir şeyi yapmanın yolu olarak aklınıza gelebiliyor. Aslında tecrübe denilen şeyin de çoğu daha önce bir şekilde yapmış olup nasıl yapacağınıza dair aklınıza bir şeyler gelmesi.
Dili öğrenmek için kurstan ayrı olarak Unity için özel c# kurslarından alabilirsiniz (iyi yorumlu olanlardan tabi) çünkü c# bir derya deniz ve bir sürü şey için kullanılıyor. Unity dışında kullanılan kısmını şu aşamada öğrenmek daha zor olabilir. O kurslarda anlatılan şeyleri anlayana kadar kendiniz tekrar edebilirsiniz. Ya bu kod burda napıyor diye anlamakta zorlandığınızda chat gptye verip satır satır naptığını açıklatabilirsiniz. Ancak lütfen öğrenme esnasında algoritmaları gptye yaptırıp geçmeyin. Önemli olan sizin yapmanız.
Temel programlamayı anlamakta zorlanıyorsanız bir şeyi yapmadan önce kağıt kalem ile tasarlamak faydalı olabilir. Örneğin yıldız sistemi yapacaksınız. Bunun için adımlarınızı kağıda dökün. Mesela şöyle başlayalım. Her düşman öldüğünde düşmanın seviyesi kadar yıldız ekleyeceğiz. Ve yıldızımız 100 ü aşınca seviye atlayacağız.
1. Adım düşmanın öldüğü yer neresi ise oraya giderek oyuncumuzun yıldızını kontrol eden yere erişelim. Nasıl erişeceğiz? Belki get component kullanarak belki singleton kullanarak belki başka bir şey. O erişme işi projenize göre değişir. Eriştikten sonra düşmanımın seviyesini tutan değişkeni alıp bu koddaki YıldızEkle(int mevcutSeviye) fonksiyonuna yollayalım
2. Playerımıza eriştik. Şimdi sıra YıldızEkle fonksiyonunu yazmakta. Az önce düşündüğümüz yıldız şartını uygulayalım. Mevcut yıldızı bir yerde bir değişkende tutuyorduk. O zaman yapmamız gereken bu yıldıza mevcut seviye değişkeniyle gelen şeyi eklemek ve eğer seviyem 100 den büyükse level atla() fonksiyonunu yazmak. Bunu nasıl c# a dönüştüreceğinizi deneye deneye bulun.
3. Şimdi seviye atlama kısmı. Burda UI güncellenir efektler oynar vs vs..

Gördüğünüz gibi adım adım napacağınızı düşünüp sorunu ufak adımlara bölmek ve ilerlemek bence daha faydalı. Oyun yapmayı tutorial ile öğrenmenin güzel yanı da her adımda yeni bir problemi ufak parçalar ile çözmeleri. İlk başta onları anlayarak takip etmeye çalışın. Anlamadığınız yerde yorumlarda, chat gpt ile ya da burada diğer insanlara sorarak yardım alın. Ve taklit ederek öğrenmeye çalışın. O aşamada sadece baka baka yazmanın bir zararı yok. Bir yerden sonra daha net anlamaya başlıyorsunuz bazı şeyleri. Sadece uğraşıp zaman vermeniz lazım kendinize.

hocam işinize yararmı bilmiyorum ama brackeys diye bi kanal var bence unity nin üstadıdır az çok bi ingilizce bilginiz varsa kodları gösterip anlatıyor bi bakın derim (adam 3 yıl önce video çekmeyı bırakmış çünkü anlatıcak bişeyi kalmamış 😆) https://www.youtube.com/@Brackeys
Unitynin eski kahramanı. Şimdilerde codemonkey de epey iyi tutoriallar yapıyor ama üst seviye biraz daha. Yine de brackeysin ve onun her konudaki tutoriali bayağı öğretici bence. Bu arada ben de bir ricada bulunarak Oyunumuz Swing Into Zero-G'nin Steam sayfası yayında! oyunumu wishliste eklemenizi rica edeceğim 😄
 
tabi hocam hemen istek listesine atıyorum kolay gelsin, brackeysi önerme sebebim de 3d oyun ve bi yarışma için simulasyon yaparken tesadüfen görmüştüm ve çoğu şeyi ondan öğrendim hemde hepsini adım adım anlatıyordu ve açıklıyordu o yüzden favori kanalımdır.
 
Merhaba iyi geceler. İlk defa başladığınızda taklit ederek bir şeyler yapmak kod ezberlemek değil aslında. Bir yerden sonra kafanızda yer ediniyor ve bir şeyi yapmanın yolu olarak aklınıza gelebiliyor. Aslında tecrübe denilen şeyin de çoğu daha önce bir şekilde yapmış olup nasıl yapacağınıza dair aklınıza bir şeyler gelmesi.
Dili öğrenmek için kurstan ayrı olarak Unity için özel C# kurslarından alabilirsiniz (iyi yorumlu olanlardan tabii) çünkü C# bir derya deniz ve bir sürü şey için kullanılıyor. Unity dışında kullanılan kısmını şu aşamada öğrenmek daha zor olabilir. O kurslarda anlatılan şeyleri anlayana kadar kendiniz tekrar edebilirsiniz. Ya bu kod burada ne yapıyor diye anlamakta zorlandığınızda chat GPT'ye verip satır satır naptığını açıklatabilirsiniz. Ancak lütfen öğrenme esnasında algoritmaları GPT'ye yaptırıp geçmeyin. Önemli olan sizin yapmanız.
Temel programlamayı anlamakta zorlanıyorsanız bir şeyi yapmadan önce kağıt kalem ile tasarlamak faydalı olabilir. Örneğin yıldız sistemi yapacaksınız. Bunun için adımlarınızı kağıda dökün. Mesela şöyle başlayalım. Her düşman öldüğünde düşmanın seviyesi kadar yıldız ekleyeceğiz. Ve yıldızımız 100'ü aşınca seviye atlayacağız.
1. Adım düşmanın öldüğü yer neresi ise oraya giderek oyuncumuzun yıldızını kontrol eden yere erişelim. Nasıl erişeceğiz? Belki get component kullanarak belki singleton kullanarak belki başka bir şey. O erişme işi projenize göre değişir. Eriştikten sonra düşmanımın seviyesini tutan değişkeni alıp bu koddaki YıldızEkle(int mevcutSeviye) fonksiyonuna yollayalım
2. Playerımıza eriştik. Şimdi sıra YıldızEkle fonksiyonunu yazmakta. Az önce düşündüğümüz yıldız şartını uygulayalım. Mevcut yıldızı bir yerde bir değişkende tutuyorduk. O zaman yapmamız gereken bu yıldıza mevcut seviye değişkeniyle gelen şeyi eklemek ve eğer seviyem 100'den büyükse level atla() fonksiyonunu yazmak. Bunu nasıl c# a dönüştüreceğinizi deneye deneye bulun.
3. Şimdi seviye atlama kısmı. Burada UI güncellenir efektler oynar vs...

Gördüğünüz gibi adım adım napacağınızı düşünüp sorunu ufak adımlara bölmek ve ilerlemek bence daha faydalı. Oyun yapmayı tutorial ile öğrenmenin güzel yanı da her adımda yeni bir problemi ufak parçalar ile çözmeleri. İlk başta onları anlayarak takip etmeye çalışın. Anlamadığınız yerde yorumlarda, chat GPT ile ya da burada diğer insanlara sorarak yardım alın. Ve taklit ederek öğrenmeye çalışın. O aşamada sadece baka baka yazmanın bir zararı yok. Bir yerden sonra daha net anlamaya başlıyorsunuz bazı şeyleri. Sadece uğraşıp zaman vermeniz lazım kendinize.

Unity'nin eski kahramanı. Şimdilerde codemonkey de epey iyi tutoriallar yapıyor ama üst seviye biraz daha. Yine de brackeysin ve onun her konudaki tutoriali bayağı öğretici bence. Bu arada ben de bir ricada bulunarak Oyunumuz Swing Into Zero-G'nin Steam sayfası yayında! oyunumu wishliste eklemenizi rica edeceğim 😄

Hocam teşekkür ederim. Şimdi oturup taklit ettiğim videoları tekrar izleyip anlamaya çalışacağım
Ama benim merak ettiğim şey bu dilin bir mantığı yok mu mesela hani şöyle kuralları var buna göre şu kod yazılır filan. Mesela yıldız sisteminin yapılışını anlatmışsınızya orada kullandığınız terimlerin çoğunu bilmiyorum bile. Zaten Unity'i az biliyorum. Beni en baştan güzel seviyeye getirebilecek başka taktik yok mu acaba? Hocam mesela siz nasıl öğrendiniz bu işi tamam uzun süredir yapıyorsunuz filanda en başta sizdemi taklitle başladınız yoksa dilin matığınımı öğrendiniz
Dediğiniz kanala baktım İngilizce olması biraz sıkıntı. Bu arada oyununuzu istek listeme ekledim fiyatı uygun olursa alacağım.

Hocam işinize yararmı bilmiyorum ama brackeys diye bir kanal var bence Unity'nin üstadıdır az çok bir İngilizce bilginiz varsa kodları gösterip anlatıyor bir bakın derim (adam 3 yıl önce video çekmeyı bırakmış çünkü anlatacak bir şeyi kalmamış 😆) https://www.youtube.com/@Brackeys

Hocam teşekkürler o kanalı görmüştüm ing olması biraz sorun gibi duruyor ama bakmaya çalışacağım sizdemi oyun geliştiriyorusunuz
 
Son düzenleme:
hocam teşekkür ederim. şimdi oturup taklit ettiğim videoları tekrar izleyip anlamaya çalışıcam
ama benim merak ettiğim şey bu dilin bir mantığı yokmu mesela hani şöyle kuralları var buna göre şu kod yazılır filan. mesela yıldız sisteminin yapılışını anlatmışsınızya orada kullandığınız terimlerin çoğunu bilmiyorum bile. zaten unity i az biliyorum. beni en baştan güzel seviyeye getirebilecek başka taktik yokmu acaba. dediğiniz kanala baktım ingilizce olması biraz sıkıntı.bu arada oyununuzu istek listeme ekledim fiyatı uygun olursa alıcam.
Tabi ki var. Buna da tasarım örüntüleri diye berbat bir şekilde Türkçe'ye çevirebileceğim Design Patterns deniyor. Ancak siz bu patternleri öğrenmeye başlamadan önce temel seviyede bilgisayara bir şey yaptırmak istediğinizde nasıl yapacağınızı anlatma yeteneğini kazanmalısınız. Kafanızda bir şeyi yapmak istediğinizde onun algoritması nasıl kurulur bunun adımları nasıl tasarlanır bunu öğrenmelisiniz. Acele etmeyin. Zaman verin. Üzerine düştükçe anlayacaksınız. Design patternleri oturup sıfırdan öğrenmeye çalışmak çok verimli değil. Onun yerine günün birinde x probleminiz olduğunda onun y patterni ile çözüldüğünü görünce daha iyi kafanıza oturacak. Ve hiçbir zaman bir şeyi yapmanın tek bir yolu olmayacak. Sizin yolunuz yanlış gibi düşünmeyin. Çalıştığı sürece en büyük problemi çözmüş olursunuz.
 
Tabi ki var. Buna da tasarım örüntüleri diye berbat bir şekilde Türkçe'ye çevirebileceğim Design Patterns deniyor. Ancak siz bu patternleri öğrenmeye başlamadan önce temel seviyede bilgisayara bir şey yaptırmak istediğinizde nasıl yapacağınızı anlatma yeteneğini kazanmalısınız. Kafanızda bir şeyi yapmak istediğinizde onun algoritması nasıl kurulur bunun adımları nasıl tasarlanır bunu öğrenmelisiniz. Acele etmeyin. Zaman verin. Üzerine düştükçe anlayacaksınız. Design patternleri oturup sıfırdan öğrenmeye çalışmak çok verimli değil. Onun yerine günün birinde x probleminiz olduğunda onun y patterni ile çözüldüğünü görünce daha iyi kafanıza oturacak. Ve hiçbir zaman bir şeyi yapmanın tek bir yolu olmayacak. Sizin yolunuz yanlış gibi düşünmeyin. Çalıştığı sürece en büyük problemi çözmüş olursunuz.
hocam tamamdır sizin tavsiyelerinize uyacağım chat gtb e baktım biraz. ben böyle birşey görmedim takır takır yazıyor kodları bide aşağısında anlatıyor.size birkez daha teşekkür ederim
 
hocam tamamdır sizin tavsiyelerinize uyacağım chat gtb e baktım biraz. ben böyle birşey görmedim takır takır yazıyor kodları bide aşağısında anlatıyor.size birkez daha teşekkür ederim
Rica ederim ama aman diyim her şeyi GPT'ye yaptırmayın. Siz yazın. Baktığınızda anlamadığınız bir şeyle iyice uğraşın. Uğraştıktan sonra bakın. Yoksa siz hiçbir şey öğrenemezsiniz. Bayağı profesyonel seviyede yazıyor yani o. O gelişir siz gelişemezsiniz öyle giderse
 
Hocam teşekkür ederim. Şimdi oturup taklit ettiğim videoları tekrar izleyip anlamaya çalışacağım
Ama benim merak ettiğim şey bu dilin bir mantığı yok mu mesela hani şöyle kuralları var buna göre şu kod yazılır filan. Mesela yıldız sisteminin yapılışını anlatmışsınızya orada kullandığınız terimlerin çoğunu bilmiyorum bile. Zaten Unity'i az biliyorum. Beni en baştan güzel seviyeye getirebilecek başka taktik yok mu acaba? Hocam mesela siz nasıl öğrendiniz bu işi tamam uzun süredir yapıyorsunuz filanda en başta sizdemi taklitle başladınız yoksa dilin matığınımı öğrendiniz
Dediğiniz kanala baktım İngilizce olması biraz sıkıntı. Bu arada oyununuzu istek listeme ekledim fiyatı uygun olursa alacağım.



Hocam teşekkürler o kanalı görmüştüm ing olması biraz sorun gibi duruyor ama bakmaya çalışacağım sizdemi oyun geliştiriyorusunuz
Hocam profesyonel olarak değil ama can sıkıntısından 2d ve 3d oyunlar ve simulasyon yaptım ve evet maalesefki türkçe kaynak bulmak zor (aslında var ama yabancılardan türklere göre daha çok şey öğrendim öyle desem daha doğru olur) ingilizce hertürlü alanda işe yarıyor ama türkçe kaynaklarıda sizin için araştırabilirim.
 
Hocam profesyonel olarak değil ama can sıkıntısından 2d ve 3d oyunlar ve simulasyon yaptım ve evet maalesefki türkçe kaynak bulmak zor (aslında var ama yabancılardan türklere göre daha çok şey öğrendim öyle desem daha doğru olur) ingilizce hertürlü alanda işe yarıyor ama türkçe kaynaklarıda sizin için araştırabilirim.
hocam nası öğrendiniz uniity neler yaptınız

Rica ederim ama aman diyeyim her şeyi GPT'ye yaptırmayın. Siz yazın. Baktığınızda anlamadığınız bir şeyle iyice uğraşın. Uğraştıktan sonra bakın. Yoksa siz hiçbir şey öğrenemezsiniz. Bayağı profesyonel seviyede yazıyor yani o. O gelişir siz gelişemezsiniz öyle giderse.

Ömer hocam size bir şey soracağım. Kabul edeceğini sanmam çünkü zamanınız olmayabilir ya da uğraşmak istemeyebilirsiniz. Hocam biz oyunumuza bayağı şeyler ekledik ama bir iki şey eksik kaldı(kodlama bilmediğimiz için). Oyunumuza yıldız sistemi eklemek istiyoruz. Mesela 1. bölümde toplam 30 altın var. Eğer bütün altınları toplarsam oyun bittiğinde 3 yıldız kazanmak istiyorum. 15 altın toplarsa 2 yıldız 5 altın toplarsa 1 yıldız. Bu yıldızlarlada mağazada farklı güçler skinler, alnabilir. Bunu yapmak istiyorum. Acaba size Telegram adresimi versem bana yazsanız size GitHub'dan projemi atayım siz bunu ekleyip bana gönderebilirmisniz. Hayır derseniz kırılmam çünkü böyle bir şeye zaman ayrımak istemeyebilirsiniz normal olarak.

@Ömerrrrrr
 
Son düzenleme:

Geri
Yukarı