Şimdi Ara

Oyun motoru

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
15
Cevap
0
Favori
621
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar ben 2 d basit platformer oyun yapacağım game maker veya unity kullanmayı düşünüyorum ama seçemedim unity de altyapımım var ama hangi oyun motorunda daha iyi oyun yapılabilir çünkü daha öğrenme aşamasındayım yani hangi oyun motorunu öğrensem bilemiyorum bilen biri varsa cevap yazarsa sevinirim

    < Bu ileti DH mobil uygulamasından atıldı >



  • bildiğin gibi yap :)

    Unity yeter de artar bile.
  • Unity, android studio , game maker seçen beğen al hocam

    < Bu ileti DH mobil uygulamasından atıldı >
  • Delifisek.Tux kullanıcısına yanıt
    Teşekkürler cevabınız için

    < Bu ileti DH mobil uygulamasından atıldı >
  • unity kullan gerisine bakma.

    android studio diyen var. forum yine formunda



    < Bu mesaj bu kişi tarafından değiştirildi Guest-E41040413 -- 28 Ağustos 2020; 3:23:12 >
  • Bence unity kullan. unity kaynağı nette bol. takıldığın bişi olursa bi şekilde çözersin. benim görüşüm bu şekilde iyi çalışmalar.
  • Cikti onemlidir. Dolayisi ile kullanicin hangi oyun motorunu kullandiginal ilgilenmez. bence boyle seylerde zaman kaybetme iyi bildigin ile terettutsuz ilerle
  • Unity iyidir.
  • Gamemaker öneririm çünkü arayüz ve basitliliği daha çekici buna düşük pc deki performansı da dahil ama mobile sürümü malum 269 tl di sanırım pahalı ve Türkçe döküman pek yok . Unity önermememin amacı hem pc yi yorması hem C# ın hemde Unity nin basit bir 2d platformer oyunu için daha yorucu olduğunu düşünmem haa dersen ki “ben algoritma ya da motorun özelliklerini anlamak istemiyorum bana hareket etme, zıplama, collision , animasyon vb şeylerin kodlarını nokta atışı olarak versinler bende ezberleyip aynısını yazıyım” o zaman Unity den devam et derim



    < Bu mesaj bu kişi tarafından değiştirildi Guest-7FA365660 -- 29 Ağustos 2020; 3:38:13 >
    < Bu ileti DH mobil uygulamasından atıldı >
  • herhangi bir kıyaslama ya da bilgilendirici bir yorum yapmadan

    unity

    diyenler yüzünden belki de oyun sektöründeki tek büyük başarımız hyper casual dır.


    oyun motoru, farklı konulardaki avantajları/dezavantajları, pratikliği, gücü, erişilebilirliği ve bunların kıyaslaması; kişinin alışkanlıkları ve ısınmasına göre yine kişinin kendisi tercih yapması gereken bir konudur. maalesef ki kendi sevdiğimizi başkasına diretme gibi bir huyumuz var ülkecek.



    Daha önce bu konuda uzunca yazdığım bir yazıdan kısa parçalar alıntılayarak sorunu cevaplayacağım.





    GameMaker her ne kadar 3D oyun geliştirmenize olanak verse de 3D için hiç mantıklı bir seçim olmayan, 2D oyun geliştirme hedeflenerek geliştirilmiş, güçlü, ama diğer motorlardan en çok ayrılan yanı olarak, kolay, pratik ve hızlı prototiplemeye en elverişli 2D oyun motorlarından biridir.



    Özellikle 2.3.1 versiyonundan sonra, artık 2D oyunlar için (hyper casual hariç), GameMaker'ın Unity'den çok daha verimli iş çıkarttığını, çok daha pratiklik sağladığını düşünüyorum. Unity ise, özellikle Scene Editor'ü ile GameMaker'dan daha iyi iş çıkartmakta, ve bunun bariz bir şekilde en çok işe yaradığı oyun türü ise hyper casual oyunlar.



    Her motorun birbirine kıyasla iyi ve kötü yanları vardır. İyi ve kötü yanlarını, avantajlarını ve dezavantajlarını iyi araştırdıktan sonra, hangisi sizin yapmak istediğiniz oyun türlerine, ya da ilerlemek istediğiniz alan için daha elverişli ise, bunun kararını kendiniz verip ona göre tercihinizi yapmalısınız. İyi oyun motoru, kötü oyun motoru yoktur. X konusunda daha iyi, Y konusunda daha kötü motor vardır.



    Oyun sektörü alanında kariyer yapmak ve iş bulmak istiyorsanız, günümüzde Unity, GameMaker'dan 1000 kat daha iyi bir seçenek olacaktır. Daha rahat iş bulmak için Unity, ancak GameMaker kullanarak iş bulamayacağınız anlamına gelmez bu. Türkiye'de belki bu oran daha da düşük olabilir ancak GameMaker komünitesinde, GameMaker'da iyi olan neredeyse herkes birbirini tanır, orada kendinizi bi gösterirseniz, yabancılarla freelancer olarak çok rahat iş bulabilirsiniz. GameMaker daha çok kişisel projeler, indie projeler ve freelance çalışmak için uygun bir motordur, kariyer yapmak istiyorsanız bakmanız gereken yer Unity ya da Unreal olmalı.




    Ufak bir kod karşılaştırması yapalım, bu sayede C# ve GML arasındaki pratiklik ve syntax kolaylığı daha rahat ayırt edilebilir.

    2D Platformer oyunu için, karakterin sağa sola hareketi ve zıplama kodları :


    Unity C#

    Kod

    Yığını:
    1 | public class Move2D : MonoBehaviour { 2 | public float moveSpeed = 5f; 3 | 4 | void Update() { 5 | Jump(); 6 | Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0f, 0f); 7 | transform.position += movement * Time.deltaTime * moveSpeed; 8 | } 9 | 10| void Jump() { 11| if (Input.GetKeyDown(KeyCode.UpArrow)){ 12| gameObject.GetComponent<Rigidbody2D>().AddForce(new Vector2(0f, 5f), ForceMode2D.Impulse); 13| } 14| } 15| }


    GameMaker GML

    Kod

    Yığını:
    1 | movement = keyboard_check(vk_right) - keyboard_check(vk_left); 2 | moveSpeed = 5; 3 | static grav = 1; 4 | static verticalSpeed = 0; 5 | 6 | function Jump() { 7 | if keyboard_check_pressed(vk_up) 8 | verticalSpeed = -5; 9 | } 10| 11| Jump(); 12| x += movement * moveSpeed; 13| y += verticalSpeed; 14| 15| verticalSpeed += grav;



    ────── GML vs. C# ──────

    Şimdi gelelim kodlar arasındaki farklara :


    1- Unity daha fazla hazır fonksiyon ve sistem içerir, GameMaker biraz daha kendi sistemini kendin kodla kafasındadır.


    C# kodundaki 6. satıra bakın, movement isminde bir değişken oluşturmuşuz ve değerini Input.GetAxis fonksiyonunu kullanarak buldurtmuşuz. Bu fonksiyon sağ tuşuna bastığınızda 1, sola bastığınızda -1, hiçbirşeye basmazsanız ise 0 döndürür.


    GameMaker da doğrudan bu işi yapan bir fonksiyon yok. Fakat bu kolaylıkla yapamayacağınız anlamına da gelmez. GML kodunda ilk satıra bakın. Orada yaptığımız işlem de tam olarak aynısı, sadece hazır bir fonksiyon kullanmak yerine işlemi kendimiz yaptırıyoruz. keyboard_check(vk_right) sağ tuşuna basılıp basılmadığını kontrol ettiriyor, basılıyorsa true yani 1, basılmıyorsa false yani 0 döndürür. Sol tuşunu kontrol eden fonksiyon için de aynısı geçerli. Sağ tuşunun değerinden sol tuşunun değerini çıkartarak aynı şeyi yapmış oluyoruz. Yani yine movement değişkeni sağa basılırsa 1, sola basılırsa -1, hiçbirşeye basılmazsa 0 a eşit olmuş oluyor. Ancak bunu yapmak zor birşey değil, basit matematik bilgisi. Ya da eğer oyunun birçok yerinde kullanacaksanız bu işlemi, direk bunu fonksiyon olarak tanımlarsınız ve istediğiniz yerde kullanırsınız.



    2- Syntax kolaylığı ve pratikliği


    Peki şimdi bir de şöyle düşünün. Evet Unity'de o hazır fonksiyon var. Sırf bu sebepten Unity kullanmak daha mı kolay ? Yine o movement değişkeni üzerinden düşünelim, GameMaker'ı yeni öğreniyorsunuz diyelim ki, klavyede bir tuşa basılmasını kontrol ettirmek istiyorsunuz, yani klavye ile ilgili bir işlem yapacaksınız. GML de klavye ile ilgili bütün ama bütün fonksiyonların ismi keyboard_ şeklinde başlar. Ve otomatik tamamlama için sizin sadece "ke" diye yazmanız bile yeterli. Zaten fonksiyon isimleri yeterince anlaşılır, otomatik öneri penceresinde de fonksiyonların argümanlarının isimleri de yeterince açık olarak yazılıyor, yani İngilizce biliyorsanız, GML de ne işe yaradığı anlamayacağınız bir fonksiyon bulmanız nadir karşılaşılacak bir durumdur. Herşeyin ismi yeterince net ve açık. Unity'de ise yalnızca İngilzce bilmek yeterli değil. İlk defa gören birisi Input.GetAxis in ne işe yaradığını hemen anlayamayabilir. Bu öğrenilebilirlik ve kolaylık açısından GameMaker'ın Unity'den daha iyi olduğunu gösteriyor.


    Pratiklik konusuna gelirsek, GameMaker'da birkaç satır fazladan kod yazmanız gerekebilse de, şu iki koda tekrar bir baksanıza. Herşey sadece satır sayısından mı ibaret ? GML de bütün yapılar çok basit, bir değişkeni bir şeye eşitliyorsunuz ya da bir fonksiyon kullanıyorsunuz, ortalıkta sadece değer, değişken, ya da fonksiyonun kendisi var, C#'a bakın, 6. ve 12. satıra mesela. GML'in kolaylığı ve pratikliği burada işte. Değişkenlerin tiplerini belirlemiyorsunuz, integer, float, string vs. vs. hiç takmayın, siz sadece değişken ismi = değer yapın geçin. GM otomatik olarak onun tipini algılar zaten. Vektörlerden zerre anlamanıza gerek yok. Bakın hareket kodunda hiç vektör kullanmadık. Bütün oyunda hiç kullanmayadabilirsiniz. Ha kullanmak da mümkün tabi. Ama bilme ve anlama zorunluluğunuz yok. Tabi bu kadar temel birşeyi de bilseniz çok iyi olur orası ayrı mesele.  


    GML genel anlamda bu yönleriyle C + JavaScript karışımına benziyor. if (condition) şeklinde parantez zorunluluğunuz yok, ister kullanın ister kullanmayın. Her işlemden sonra ; koyma zorunluluğunuz da yok, ister koyun ister koymayın. if ten sonra { } parantezleri açmanıza gerek yok, yine ister kullanın ister kullanmayın. Ya da if variable == 3 yapmak yerine if variable = 3 bile yapabilirsiniz yine doğru çalışır. Ama güzel bir alışkanlık değil yapmayın  



    ────── GameMaker vs. Unity ──────


    Unity gerçekten GameMaker'a göre aşırı hantal bir motor. Yeni proje dosyası açıyorsun, varolan bir proje dosyanı açıyorsun, bir script'i açmak istiyorsun Visual Studio'nun açılması, Visual Studio da gidip koddaki tek bir harfi değiştirsen bile Unity ye geri döndüğünde o değişikliğin kaydedilip Unity'nin donduktan sonra kendine gelmesi, Build süresi, hepsi de 1 asır sürüyor. hadi hepsini geçtim, bir programın kapanırken bile 1 asır loading göstermesi gerçekten garip ya  

    GameMaker'da çarpıya basıyorsun kapanıyor.


    GameMaker da yeni proje dosyası oluşturmak yaklaşık 2 saniye sürüyor bende. Varolan bir proje dosyasını açmak 1 saniye civarı. Bir script'i açmak istersen, zaten 3. parti bir Code Editor açılmayıp, direk kendi içerisinde pat diye kendi editörü açıldığı için, Unity'deki gibi bir sürü Visual Studio'nun açılmasını beklemiyorsun. 1 harfi değiştirdin diye hiçbir donma da olmuyor.

    Build süresi de Unity den çok çok daha kısa.


    Bu arada her iki oyun motoru ve test ettiğim proje dosyaları da M2 SSD'de kurulu. Her iki motorda da hem Windows, hem de Android Build'leri aldım.



    GameMaker hakkında negatif şeylere gelecek olursak, hani pratik dedik ya, bazen de pratik olmuyor işte, fonksiyon adlarını anlaşılır yapacağız diye, bazen gereksiz uzun yapabiliyorlar. Mesela bir array'iniz var GML de bu array'in uzunluğunu çekmek isterseniz, array_length(a); , C# da ise a.Length; bazen bu tarz durumlar olabiliyor.


    Bunun dışında GameMaker'da yerleşik olarak bir UI sistemi bulunmuyor. Unity'deki gibi direk sağ tıklayıp şuraya bi buton oluşturayım olayı yok yani. Buton objesini kendiniz bir oyun objesi gibi yapmanız gerekiyor. Ha tabi bu tarz eksiklikler de eklentiler ile karşılanabiliyor orası ayrı mesele.



    ────── GameMaker Güçsüz Bir Motor mu ? ──────


    GameMaker genel anlamda bütün 2D oyunlar için Unity'den daha fazla kolaylık ve pratiklik sağlıyor ve fazlasıyla da güçlü bir motor. GameMaker'ın gücüne inanmayanlar için şu örnekleri bırakıyorum :


    Mineimator Bu bir Minecraft animasyon programı fakat basit bir program değil, içerisinde gerçekten particle editörleri, fizik, ışık motorları gibi gelişmiş özellikler barındıran kapsamlı bir 3D animasyon programı. Şimdi izleyeceğiniz kısa animasyon ise, GameMaker ile yapılmış bu program kullanılarak yapılan kısa bir animasyon örneği :


    EEEEE bu öyle aman aman mükemmel birşey de değil diyorsunuz değil mi ? GameMaker 2D odaklı bir oyun motoru, 3D yapmak da mümkün ama 3D de herhangi bir iddiası yok, buna rağmen böyle bir 3D animasyon programı bile geliştirilebiliyor. Bunu GameMaker ile ancak pacman yaparsın diyen cahiller için söylüyorum.  




    ve Evet, 3D material editoru bile geliştiren var, tekrar hatırlatayım, GameMaker 2D odaklı bir motordu





    Umarım yeterince bilgilendirebilmişimdir. Herşeyi bildiğimi iddia etmiyorum, elbette benim de hatalarım vardır, fakat hiçbir sebep, gerekçe, kaynak ve bilgi göstermeden git şunu kullan diye diretmiyorum. GameMaker'ın iyi yönlerinden Unity'ye kıyasla daha fazla bahsettiğimin de farkındayım, çünkü internette Unity yi övecek adamı aramana gerek yok, en çok kullanılan olduğu için herkes nedensizce kendi kullandığını övüyor işte. Ciddi ve geçerli kıyaslamalar, bilgilendirmeler yaptıktan sonra GameMaker'ı gömseniz bile desteklerim  


    Eğer kendini GameMaker da geliştirmek istiyorsan GameMaker Türkiye'ye bakabilirsin.

    https://www.gamemakerturkiye.com/


    Unity de geliştiriyorsan kendini Unity Türkiye'ye katılabilirsin.  

    https://www.facebook.com/unsupportedbrowser





  • K3llyll K kullanıcısına yanıt
    Yazdıklarınızın hepsini okudum ve unity'nin benim açımdan daha sağlıklı olacağını düşündüm.Game maker kendi amaçlı küçük oyunlar geliştirebilirsin ama Unity'de genel projelere yakın şeyler yapabilirsin.Yani ben unity oyun motorunda projelerimi yapacağım.
  • gamemaker gibi kendin pisir kendin ye tarzi framework/engine'leri de denedim. daily active user sayisi yuzbinlerce olan projeleri de gordum ve calistim. hepsi, unity yaninda otistik isi.


    uzun uzun yazmasi bir sey ifade etmiyor. unity devam et. ilk amacin urun cikarmak.




    < Bu mesaj bu kişi tarafından değiştirildi Guest-E41040413 -- 29 Aralık 2020; 10:3:50 >
  • kesinlikle. oyun motoru kişisel bir tercihtir, benim karşı çıktığım şey, hiçbir neden, fikir, bilgi sunmadan x kullan y kullan, bu sadece oyun motoru konusunda da değil. Adam hangi 3D modelleme programını kullanmalıyım diye sorduğunda onda da aynı herkes kendi kullandığını söyleyip "X kullan" diyor geçiyor, hayır kendi kullandığını savunacaksan da bi gerekçe sun ortaya.


    Yazıda da dediğim gibi, GameMaker ile pek bir kariyerin olması zor zaten, iş için birinci sırada Unity, ikinci sırada Unreal geliyor, sektördeki kullanım ve kabul görme oranı olarak. GameMaker daha çok kendini geliştirebileceğin, ya da kendi projelerini veya bi ekip ile indie projelerini yapabileceğin bir motor. Benim yazımda anlatmak istediğim ikinci nokta da oydu aslında, adama GameMaker kullanıyorum diyince aldığın cevap "sen git space shooter yap, biz burada gerçek oyun yapıyoruz". Benim kızdığım bu, araştırmadan soruşturmadan cahil cahil konuşmasınlar, ciddi ve büyük bir iş için GameMaker'ın sektörde kullanım olarak mantıklı bir seçim olmadığını çok iyi biliyorum. Ama GameMaker sadece bir space shooter yapılacak kadar güçsüz bir motor değil, her kullanan da space shooter gibi basit oyun yapıyor, oyun yapmaktan anlamıyor anlamına da gelmiyor.


    Yukarıdaki arkadaşın da dediği gibi, GameMaker baya kendin pişir kendin ye kafasında, kaynaklar aşırı sınırlı değil ama Unity'deki kadar da her aradığın şeyi bulamayabiliyorsun. Unity'deki kadar çeşitli Asset ve Extension yok. Bunlar tabi kullanım oranıyla alakalı, ne kadar kullanılırsa o kadar içerik çıkar.


    Bahsettiğim gibi GameMaker kullananı görünce alay eden bi arkadaş bu yazıyı okuyorsa eğer, ona söyleyeceğim şey şu olur. İyi yapılmış aynı kalitede bir oyunu bir kişi Unity de bir kişi ise GameMaker'da yaptığında, genelde GameMaker ile yapan arkadaş Unity ile yapana göre daha bilgili olabiliyor. Bu cümle fazla genelleme oldu biliyorum, ben max yapabilme sınırına göre kıyaslıyorum, yoksa işinde uzman bi adam uğraşmazsa güzel bir oyun yapamaz. Ama her ikisinin de maks yapabildiği oyun aynı kalitede ise, GameMaker kullanan daha fazla şey biliyor oluyor genelde benim gördüğüm. Onun nedeni de şu, Unity de o adamın o oyunu yapması için kendini kasmaya bile ihtiyacı yok, o oyunda kullanacağı neredeyse bütün sistemleri daha önce yapmış birisi oluyor zaten, adam sadece tutorial den tutoriale gezip aynısını yapsa o oyunun büyük bir kısmını ortaya çıkarabiliyor zaten, GameMaker kullanan arkadaşın da yararlanabileceği kaynaklar olsa da, büyük çoğunluğunda kendi emeği geçiyor. Öteki adam "ben bu oyunu yaptım ben çok iyi biliyorum" diye geziyor ama internetini kes laptopu eline ver bakalım aynı kalitede bir oyunu yapabiliyor mu. GameMaker kullanan arkadaş ise o kalitede bir oyunu yapabiliyorsa zaten birçok şeyi biliyor demektir, tutorial olmadan da birçok şey yapabilir.


    Şimdi yukarıdaki paragrafı oldukça tersinden anlayacak olan arkadaşlar vardır. Unity kullanan birşey bilmez GameMaker kullanan bilir diye birşey demiyorum. Benim 10 yıl boyunca bu sektördeki tanıdığım özellikle de öğrenme aşamasında olan arkadaşlarda bu durumu çok sık gördüm. Aynen şu oluyor, biriyle tanışıyorum mesela, adamın oyununa bakıyorum "oha çok güzel", sonra zamanla daha çok tanışıyorsun, sesli sohbet ediyorsun vs. vs. ve aslında tanıdıkça adamın birçok temel konsept ve bilgide eksik olduğunu farkediyorsun. Bu herkes için geçerli değil, dediğim gibi öğrenme aşamasında olup bu şekilde olan çok kişi tanıdım. Bunun yanı sıra 3-4 yıldır GameMaker kullanıp daha hala for loop u bilmeyenler de tanıdım. Benim burada yapmak istediğim şey kıyaslama, genelleme değil aslında, dediğim gibi sırf Unity kullanmıyorsun diye "kötü/bilgisiz oyun geliştiricisi" olarak anılmak, alaya alınmak, Godot kullanana da yapıyorlar bunu.


    Benim görüşüm her zaman sabit ve bunu kimse değiştiremez:

    Her motorun bir diğerine kıyasla avantajları/dezavantajları vardır. İnsanlar hangi avantaja ve özelliklere daha fazla ihtiyaç duyuyorsa onu tercih eder.


    kimseyi tercih ettiği oyun motoruna göre yargılayamam, Unity tercih etmişsin, öyleyse başarılar, umarım başarılı projelere imza atar güzel oyunlar ortaya çıkarırsın  





  • dediklerine katiliyorum. gelismis engine kullanmayi bilen adam dogrudan pro olmuyor. unity uzerinde kendi framework'um var mesela. bir cok seyi otomatize ediyor ve bir structure ortaya koyuyor.


    ben libgdx, cocos2d, phaser gibi engine/framework ler ile de calistim. daily active user'i 100 binlerce olan oyunlari da gordum, o oyunlarda da calistim ve uzerinde calisiyorum. bence oyun isi ozellikle mobil taraf, artik teknik yeterlilikten daha fazlasini istiyor. tamamen product odakli dusunmek lazim. devamli yeni feature'lar deneyip bunlari test etmek lazim. aksi durumda market ile yarisamiyorsun. hal boyle olunca da senin development sureni ne kadar kisabilecek tool varsa kullanmak lazim. unity de bunu sagliyor.


    hobi olarak yapilacaksa istedigini sec gitsin.


    bu iste para kazanmak istiyorsan, mobil tarafta unity'den baskasi yok. digerleri icin parasini versen bile developer bulamazsin.


    keza editor o kadar gelismis ki, unity bilen artist bile development surecini inanilmaz hizlandiriyor.




    < Bu mesaj bu kişi tarafından değiştirildi Guest-E41040413 -- 29 Aralık 2020; 14:3:29 >




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.