Sıfırdan Başlarken - Tekerleği yeniden icat edersem Hata mı?


31

Genellikle ne zaman bir oyuna başlamak istersem, oluşturma için iyi bir temel mimariye ve sıfırdan daha iyi oyun döngüsüne sahip olacağımı düşüneceğim. Genelde mevcut motorları kullanmak istemiyorum. Bunun nedeni, şeyleri öğrenmek için kendi başıma uygulamak istiyorum.

Ancak birçok blog ve devs, tekerleği yeniden icat etmenin iyi bir seçenek olmadığını söylüyor.

Bir şey mi kaçırıyorum?


Ne sıklıkla "oyuna başlarsın"? Hızlı bir şekilde fikirleri yineliyorsanız, ne işe yararsa yapın. Bir yanlış adımın pahalı olduğu veya zamanın sınırlı olduğu bir magnum opus yapıyorsanız, neden tekerleği yeniden icat etmek için zaman harcıyorsunuz? İşlerin nasıl yürüdüğünü öğrenmekle ilgileniyorsanız, neden kendi teknolojinizi yazmıyorsunuz? Buradaki hedeflerin neler?
ChrisE

Yanıtlar:


16

Hayır, hiç de fena bir şey değil. Öğrenme ve öğrenme yeteneği, iyi bir programcı olmak için kesinlikle esastır.

AMA
Sıfırdan bir şey inşa ederken önemli olan şey onu bitirmek. Ne kadar kaba ve engelsiz olduğu önemli değil, tamamlarsanız başka hiçbir şeye benzemez bir tatmin duygusu var. Hepsi size değerli bir deneyim verecek ve her zaman daha şık bir hale getirebilir veya daha sonra işlevsel bir şeyiniz olduğunda daha iyi bir performans gösterebilirsiniz. Günün sonunda, müthiş programcıları ve vasat olanları ayıran tek şey deneyim ve pratiktir.

Elbette bir şeyler yaptıysanız ve daha fazla oyun oluşturmak istediğinizde, eski kod tabanınızı tekrar kullanmanız için bir neden yoktur.

Oyun geliştirme veya gerçekten her türlü gelişimde bir kariyer başlatmak istiyorsanız, deneyim sizi çok ama çok uzağa götürecektir. Ancak oyunları hızlı ve kolay bir şekilde dağıtmak istiyorsanız (kendi eşyalarınızı yazmakla karşılaştırıldığında nispeten kolay) mevcut bir motoru kullanın.

Dürüst olmak gerekirse, kendi kodunuzu kullanarak VE çeşitli farklı kitaplıklar ve motorlar kullanarak bir deneyim birleşimi sizi daha iyi bir kodlayıcı yapar.


Yararlı Teşekkürler Ray! ama lütfen oyun mekaniklerini de listeleyebilir misin ...
Ayyappa

Sorun değil. Asıl sorunuz bağlamında ne demek istediğinizi tam olarak anlayamadım. Özellikle neyin peşindesin?
Ray Dey,

Tamam, ayrı bir soru yapacağım tamam. Bu yazıdaki diğer soru, içeriği biraz ilişkili olmadığı için kaldırıldı (düzenlendi).
Ayyappa

Çizgiyi bitirmek için +1 - aslında bir projeyi tamamlamak iyi bir deneyim.
Tepegöz

36
i want to implement it on my own to learn stuff.

Muhtemelen en önemli şey budur. Amacınız öğrenmekse, kendi oluşturma ve oyun döngü motorlarınızı sıfırdan yazmak gayet iyi ve mükemmel bir öğrenme deneyimi. Amacınız hızlı ve kolay bir şekilde bitmiş bir oyun yapmak ise, mevcut bir çerçeveyi kullanın.


3
+1. Bir API veya üçüncü taraf kütüphanesinin tüm uygulama ayrıntılarını ortadan kaldırabilmesi , bunları bilmenize gerek olmadığı anlamına gelmez. 'Kullanıma hazır jantları' kullanmak, bitmiş kodu daha hızlı yazmanıza yardımcı olur; ama kendi çarkını yapmak, hangi hazır keklerin en iyisi olduğunu belirlemenize yardımcı olacak ve en önemlisi, konuşmacılar patlamaya başladığında onları nasıl optimize edeceğiniz ve hata ayıklayacağınız ...
sebf

4
+1 Tekerlek yapmayı öğrenmiyorsanız, tekerleği yeniden icat etmeyin.
zzzzBov

4
Bunun oyun motoru tasarımındaki becerilerinizi geliştireceğini ancak oyun tasarımında geliştirmeyeceğinizi unutmayın.
Dave O.

Bu da değerli bir cevap ... teşekkürler ... ama iki cevabı işaretleyemem çok kötü :(
Ayyappa

10

Tekerleği yeniden icat etmek, tekerlerin nasıl çalıştığını öğretir.


5

Neyin peşinde olduğuna bağlı. Öğrenmek istiyorsan, istediğin kadar tekerleği yeniden icat et. Bunun için kendi JVM'lerini veya PNG yükleyicilerini yazan insanları tanıyorum.

Blogların çoğu muhtemelen hızlı bir şekilde ödeme yapmanıza yardımcı olan öğelere nasıl ulaşabileceğiniz konusunda tavsiyede bulunur, ancak bunun uzun vadeli bir strateji olup olmadığını bilmiyorum. Ne ile oynadığınızı bilmiyorsanız, iyi bir seçim olup olmadığını nasıl anlarsınız? Ne yapacaksın zaman sorunlarla çarptı forumlarında sızlanan gidin, yoksa kendiniz anlamaya?


4

Genel programlama topluluğunda bu cümleyle ilgili çok fazla cesaret kırıcılık var ama hepimizin biliyoruz ki, birçoğumuz tekerleği yeniden icat etmekten ve onu biraz daha iyi, daha hızlı ve daha serin bir hale getirmenin bir yolunu bulmaktan başka bir şey sevmiyor.

Tekerleği yeniden icat etmek için insanlara ihtiyaç duyan her zaman yeni teknolojiler ortaya çıkıyor. OpenCL ve diğer GPU hesaplama dilleri iyi bir örnektir.

Bu yılki yeni yetenekleri içeren ancak kendi başınıza yapan bir çerçeve kullanabilirsiniz, eğer gerçekten araştırma yapmakta ve halihazırda orada olan şeyle ilgili iyileştirmeler yaparsanız, gerçekten de performans ve fayda konusunda yeni bir temel oluşturabilirsiniz.

Sizi yuvarlamak için birkaç teker icat ettikten sonra, eşyalarınızı oldukça iyi bir bonus olarak bilirsiniz!

Ayrıca çok eğlenceli.


1

Ve tekerleği yeniden icat ettikleri için daha verimli olduklarını iddia edenler var.

Örnek olarak: World of Love'ın yaratıcısı Eskil Steenberg (oyunu, motoru ve harika araçları ve felsefesi hakkında konuştuğu mükemmel video : http://vimeo.com/18423305 )


1

İlk defaysanız, sadece öğrenmek için olsa bile, bir tür motor kullanmak daha iyidir, çünkü motorun sizin için neler sağlayabileceğini öğreneceksiniz.

Metaforda kullanılan "tekerlek" uygulama değil kavramdır. Tekerleği yeniden icat etmeyecekseniz bile, bir tane satın alıp almayacağınızı ya da kendi başınıza mı yapacağınızı seçmeniz gerekir. Dolayısıyla, kendi motorunuzu yaratmak tekerleği yeniden icat etmek değildir, sadece öğrenmek için, düşük maliyetle, küçük boyutta veya herhangi bir özel kullanım veya gereksinim için bir amaç için kendi tekerleğinizi oluşturmak istersiniz.


0

Mesele şu ki, bir oyun yaparken çok zaman alan, asıl içerik ve varlık yaratma ve test etmedir - genellikle kod yazmaz. Bu nedenle, bu parçayı atlamanın ve mevcut bir motoru kullanarak içerik, oyun tasarımı ve daha üst düzey hatalara daha fazla zaman ayırabilmenin kolay olmasının nedeni budur.

Sıfırdan öğrenmek için bir şeyler yapmak, mevcut motorların arkasındaki iş için iyi bir his yaratacağını ve gerektiğinde birini seçebilme yeteneğini geliştireceğini düşünüyorum.

Eğlenmek ve öğrenmek için ne istersen onu yap. İçerik sistemi sınıflarını sıfırdan yazmak zorunda kalsaydım, tüm sinir bozucu detayları ve dosya sistemi ve varlık yükleyicileri hakkındaki son durumları ele alırsam çıldırırdım - nasıl yapılacağı konusunda gerçekten iyi bir kavrayışa sahip olacak kadar öğrendiğim sürece, Birisi zaten iyi yaptıysa, bunu yapmaktan kaçınma eğilimindeyim (doğru olsa da, pek çok çerçeve ve motor bir şeyleri yeniden yazmaya neden olacak kendi “iyi” fikrime uymaz). Nasıl yapılacağını bilmiyorsam, en azından bir kez tamamlanması için yapmaktan gerçekten hoşlanıyorum, sadece ne olduğunu daha ince ayrıntılarıyla kavramaktan - Ray Dey'in daha önce de belirtildiği gibi.


0

Öğrenmeye vaktin yoksa, sadece bir hata. Zamanınız varsa, bunun için gidin. Yapmazsan, yapma.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.