Kendi kendine öğretme oyununun gelişmesinin tehlikeleri nelerdir? [kapalı]


58

Oyun geliştirme yolculuğuna çıkmak üzereyim. Son soruma verilen cevapların ardından C # ve XNA kullanacağım.

Ancak, başka hiçbir oyun geliştiricisini şahsen tanımıyorum ve sektörde çalışmıyorum, bu yüzden kendi kendine öğretilecek. Bunun istisnası açıkça soru sormak ve çevrimiçi / basılı bilgilerin okunmasıdır, ancak yine de bunu kendi kendini öğreten olarak sınıflandırdım.

Bununla, “beni kanatları altında tutacak” birinin bulunmaması nedeniyle karşılaşabileceğim sorunlara hazırlıklı olmak istiyorum.

Bir benzetme olarak, kendime gitar çalmayı öğretirken, A büyük akorunu daha sonra daha zor öğrendiğim bir akorun üzerine çıkacak şekilde çaldım.

Oyun geliştirme öğrenimde neyin yanlış gidebileceği konusunda öğrendiğiniz dersleri ve tavsiyeleri paylaşabilirsiniz. Minnettar olurum.

Hata yapmanın öğrenmenin en büyük parçası olduğunun farkındayım, ancak hatalar varsa hazırlanabileceğim bir durum var.


Bir göz atın, paylaşılan dersler sorunu açık uçlu olarak döndürebilir ve geçersiz kılabilir, bu yüzden kapanabilir.
Gustavo Maciel

İyi bir noktaya değindin. Herhangi bir ziyaretçiye kapsamlı bir cevap almayı planlıyorum.
Ste

Ste, yenisinin daha iyi olduğunu düşünüyorsanız, onay işaretini başka bir cevaba taşıyabileceğinizi unutmayın. Gustavo’ya özür dilemem, ona mal olmaya çalışmamak :) Ama bu sitelerin amacı ve oylama ve onaylama, bir sorunun en iyi cevabını vurgulamak . Eğer bu harika rağmen Ayrıca, yaptığımız bir cevabı kabul, o birini kabul etmek gerekli değildir hızlı bir saat sizin yayınlanmıştır sorudan sonra biraz yakında -. Bir cevabı kabul etmeden önce genellikle en az bir gün, belki daha fazla beklerim. Bakalım neyin var?
Tepegöz

@Cyclops - evet, soruyu bu kadar popüler kanıtlamak için beklemiyordum. Gelecek hafta gözden geçireceğim. Şimdiye kadar gelen büyük cevaplar için herkese teşekkürler.
Ste

Tüm güzel cevaplar için teşekkür ederim. Kabul edilen cevabı en fazla oy alan kişiye verdim. Bunu topluluk fikrini yansıtmak için yaptım. Umarım @Gustavo
Ste

Yanıtlar:


54

Oyun geliştirme yapı mühendisliği gibidir

İşlevsellik için minimum gereksinimler vardır. Asgari şartlar son derece zorlayıcı değildir ve birçok insan nasıl yerine getirileceğini öğrenebilir. Budur fonksiyon parçası. Bu küçük kısım. Hangi dilin kullanılacağı, geliştirilecek bir platform veya hangi kütüphanelerin kullanılacağı konusundaki kararlar buradadır.

Bir sonraki kısım büyük kısımdır. Form parçası. Form, iyi oyunları gerçekten harika oyunlardan ayıran şeydir. Bu, oyun geliştirme sanatı olan kısımdır . Sadece duyusal varlıklardan (grafik, ses vb.) Bahsetmiyorum. Bir deneyim oluşturmaktan bahsediyorum. Bu zor kısmı.

İşlev bölümü derslerden, kütüphanelerden ve biraz zamandan gelir. Herkes yapabilir.

Form kısmı sizden geliyor. İlk etapta oyun yapmak istemenizi sağlayan tutkudur. Bir hikaye anlatmak, telafi etmek (ya da süslediğiniz gerçek bir hikaye). Hikayeyi ne kadar çok anlatırsanız, o kadar iyi olur. Yazılım geliştirmede yineleme diyoruz. Hikayen senin kodun. İlk söylediğinde çok iyi olmayacak. İşler yerinden çıkacak, bu bitin oraya gitmesi gerektiğinin farkına varacaksınız. Bir şeyleri bu şekilde düzenlerseniz veya bu bit üzerinde genişlediyseniz muhtemelen daha iyi akacağını göreceksiniz. Böylece, iyi bir hikaye gibi, anlatacak, ne kadar iyi olduğunu ölçecek ve sonra düzenleyeceksiniz. Bu özveri ve bu zaman alır. Ürettiğiniz ilk şey altın değilse üzülmeyin. Bir düşünce çünkü sadece onları söküp sonra uzun ve benim oyunun birçok yerinde üzerinde çok çalıştık çokBunu yapmanın daha iyi bir yolu. Bu konuda endişelenme, hepsi öğrenme sürecinin bir parçası. Her zaman hatalarından ders alırsın, ve çoğu zaman bu hataları yapmak seni daha iyi şeyler yapmanın yoludur.

Öyleyse bundan kaçınmanız gereken şey şudur:

  • Sık sık test oynayın.
  • Şu anda işleve yakalanma. Optimizasyon hakkında çok endişelenmeyin, ya da uzun vadede hangi kütüphanenin en iyisi olacağı konusunda endişelenmeyin. Sadece minimum işlevselliği edinin, sonra yineleyin.
  • İşlev bittiğinde, kendinizi tebrik edin, yaptığınız işin küçük bir kısmını siz yapın.
  • Güneş ekranı giymek
  • Bu, gelişmesi zaman alan bir beceridir, bir müzik aleti öğrenmekten bu farklı değildir, daha iyi olacağınızı bilirsiniz.
  • Bunun için ne yarattığınızı, yaratma sevincini unutmayın! İşler sıkıcı hale gelirse, o zaman başka bir şeye geçin (geliştirme zamanınızı bölmek için bazı oyun sıkışmalarını deneyin). Ama istifa etme çünkü zor.
  • SE'deki oyun geliştirme topluluğu harika. İhtiyacınız olan her şeyi burada bulacaksınız. Bir soru gönderebilir veya sohbete girebilir ve fikirlerinizi tartışabilirsiniz.

İnternet, blog yazılarındaki, derslerdeki ve bunun gibi topluluklardaki bilgilerle doludur. Toplu olarak, bunun altında olmak için oldukça iyi bir kanat olduğunu söyleyebilirim. Temel olarak, tehlikeler ciddi değildir. Bir süre için "yanlış" veya zor yoldan şeyler yapabilirsiniz, ancak sonunda öğreneceksiniz. Bol miktarda programlama deneyimine sahip görünüyorsunuz, bu yüzden hızlıca fonksiyon kısmını anlayacağınızı düşünüyorum. Oyun geliştirme ve "normal" gelişimde yapılan hatalar çok fazla örtüşüyor. Deneyiminiz, yeni oyun geliştiricilerin ortaya çıktığı ortak sorunların çoğundan kaçınmanıza yardımcı olacaktır. Bence iyi olacaksın. İyi şanslar.


6
Awesomeness için +1, yazımda eksik olan her şey burada bulunur: D
Gustavo Maciel

1
"Güneş ekranını giy" Bununla ne demek istiyorsun? deyim "Güneş Koruyucu Giyin"?
Lukasz Madon

4
Mary Schmich'in "Wear Sunscreen" adlı makalesine dayanan bir şaka . Temel olarak, "Güneş koruyucusunun uzun vadeli faydaları, bilim adamları tarafından kanıtlandı, ancak tavsiyemin geri kalanının kendi kıvrımlı deneyimlerimden daha güvenilir bir temeli yok." Belki de daha popüler olan bu şarkı şeklinde .
MichaelHouse

4
Güneş kremi aslında 2 kadar iyi değil . Sadece içeride kalın ve programlamaya devam edin.
bobobobo

28

Evet, size daha önce ne söyleyeceğinizi, nasıl düzelteceğinizi vb. Söyleyen birisinin olmaması, geçtiğiniz en kötü şey olabilir. Ama korku yok! Orada olan birçok insanın bloglarını hala okuyabilir, sektördeki deneyimlerini, başarıya nasıl girdiklerini, önceki bir oyunun nasıl başarısız olduğunu ve neden, vb.

İyi örnekler:

Ve çok daha fazlası!

Son sözlerim: Korkma. Ben de kendi kendime öğretildim, 4 senedir dev oyun ile tanıştığım, birçok engel çıktık, ama googling ve bazı metinleri okuyamayacağınız hiçbir şey yok. Yolculuğunuzda iyi şanslar :)


3
Buna ek olarak, profesyoneller bile bu sorunu sık sık yaşıyor. Ve Google’ı öğrenebildiğiniz sürece, hemen hemen her şeyi anlayabilirsiniz.
ashes999

2Dboy'u birbirine bağlaman çok garip. Bildiğim kadarıyla, son birkaç yıldır var olan tüm platformlara Goo Dünyası limanları dışında çok az şey yaptılar. Orada uzun zamandır gamedev ile ilgili bir şeyler okudum.
TravisG

@TravisG Oyun süreci releasesadece sonuçta onu geliştirmekle ilgili değildir. Yine de okumak güzel. Bağlantıları daha fazla referans olarak yayınladım, blogu izlememek için. Arşive geri dönerseniz, birkaç prototip örneği ve bunlara goo dünyası ve diğer "daha az" küçük prototipler konusunda yardımcı olan birkaç örnek var: D
Gustavo Maciel

18

Bu tutum Bu, "mükemmel şekilde nasıl yapılacağını öğrenene kadar ona dokunma" tutumu. Bu seni gerçekten tutacak.

Her ne kadar her türlü yeni geliştiriciler arasında bu tutumu görüyorsunuz - sadece oyunlar değil. Web siteleri de. Hey, bir web sitesi bir javascript ile html ön ucu olan bir veritabanıdır. Teknolojileri mümkün olduğunca öğrenirsiniz, ilk sitenizi bir araya getirirsiniz. Fevkalade olmayacak, ama en iyi şekilde bir şeyleri yaptıktan sonra büyük bir hilkat garibesi değil !! İlk seferinde "uzun yol" yaparsanız, ikinci seferinde her zaman daha iyisini yapabilirsiniz. Demek istediğim, tehlike yok. Belki de bu tutum dışında. Bu tutum sizi asla bir şey yapmadan durduracak olan şeydir, çünkü her zaman göreve katlanacaksınız ve “henüz nasıl yapacağımı bilmiyorum” diyeceksiniz.

Bir şeyler yapmak için "doğru bir yol" olduğu tutumu. Yok. Her şey göründüğü gibi. Ekrana pikseller koymanız ve işler olduğunda ses çıkarmanız gerekir.


3
Çok doğru. Bu hala beni çok tutar. Her ne kadar bir şekilde katılmıyorum da, terimlerle yapmamız gereken daha “doğru yollar” ve daha çok “yanlış yollar” var, ancak mükemmeliyetçilik ve analiz felci bir sorun olabilir. Mükemmel cevap!
Petr Abdulin

6

Bunu daha sonra mesleğiniz yapmak isteyip istemediğinize bağlı olarak (Sadece bunu düşündüğünüzü farz edeceğim ve bu sadece hobi bir şey değil), işte son derece etkili buldum:

  1. Küçük başla

Daha önce söylendi, ama tekrar söyleyeceğim - küçük parçalarla başlayın, bir motor, bir çerçeve, bir araç veya program hakkında bilgi edinin. Bir kere temelleri çözdüğünüzde -> büyütün.

  1. Her şeyi öğrenin

Bu biraz aşırı görünebilir, ama ne demek istediğim oyun geliştirmenin HER yönü hakkında elinizden geldiğince öğrenmektir - kodlayıcı, sanatçı veya tasarımcı olsanız da olmasanız da. Boru hattını bilmek, işleri en verimli şekilde yapmanın anahtarıdır. Bir silah uyguluyorsanız -> tasarlayın, tasarlayın, modelleyin, uygulayın, kodlayın! Açıkça bir A Konsept sanatçısı, tasarımcı ve Pipeline nerd olması gerekmez - ancak sürecin tüm araçlarına aşina olmanız ve yaratmanın her adımını anlamanız gerekir. Ayrıca, iş dünyasındaki haberler ve güncellemeler için oyun web sitelerini inceleyin - gamasutra.com, kotaku vb. Hem iş hem de teknik konularında harika makaleler var. Kendinizi yalnızca bir gelişim alanıyla sınırlamayın - elde edebileceğiniz tüm bilgiyi elde edin :)

  1. Sıklıkla başarısız olunca, çok başarısız olun.

Ne yaptığını emeceksin. Başlangıçta. Her zaman böyle (inan bana, biliyorum.: D), ancak devam etmeyi sürdürürseniz ve işinizi iyileştirmenin yollarını aramaya ASLA son vermezseniz daha iyi olur. İnternet, rehberler, referanslar ve yardım için harika bir kaynaktır. Asla sıkışıp kalmayacaksınız, bu yüzden en çılgın fikirlerden utanmayın, başarısız olun, hatalarınızdan ders alın ve bu süreçle daha fazla iç karartıcı olun.

  1. İnsanlarla konuş!

İnternet harika bir kaynak olsa da, yüz yüze geri bildirim almak, ALOT işinde uğraşmanız gereken bir şeydir. Dolayısıyla, yumuşak becerilerinizi geliştirmek de önemlidir. Henüz bir mentorunuz yoksa veya genel olarak sektörde çalışan çok fazla kişi tanımıyorsanız, bölgenizdeki indie dev buluşmaları için etrafınıza bakmalı, sözleşmelere gitmeli ve inşa etmeye başlayabileceğiniz diğer etkinlikleri kontrol etmelisiniz. kişisel bir bilgi ve iletişim ağı. Aynı zamanda diğer insanlarla bir şeyler inşa etmenize yardımcı olur - kendi kendine öğretilen harikadır, ancak oyun geliştirme takım tabanlı bir oyundur, bu nedenle hobi projesi için forumları kontrol edin - örneğin UDK projeleri için Epic Forum, Unity forumları ve hatta CryEngine Forumları - bu motorların üçü yaygın bir şekilde yayılmış durumda, orada yan projeler üzerinde çalışan bir kamyon dolusu yetenekli insan var.

Sanırım verebileceğim tüm tavsiyeler buydu. Umarım bu size bir şekilde yardımcı oldu :)


Tüm puanlarınız çok önemli, bu listede 1 numara! :)
bobobobo 20:12

3

Hiçbir C # ve XNA deneyimim yok, ancak aşağıdaki ifadede beni yanlış yapmayacağını düşünüyorum:

Bir öğretmen olmadan programlama öğrenmek için gayet iyi. Eğer kodunuz * çalışıyorsa, nasıl kodlandığı önemli değildir. İşbirlikçi programlama için de geçerli, fakat o zaman artık yalnız kodlamayacaksınız, değil mi? Ayrıca, kodunuzu gelecekte sizin için daha az okunabilir hale getirebilir, eski bileşenleri kullanmayı veya yeni hatalar ayıklamayı zorlaştırabilir, ancak uzun vadede tüm hatalarınız güçlü yanlarınız olacaktır. OOP ve MVC tasarımını öğrenmede en zor şey neden "bu" "bu şekilde" yapmam gerektiğini anlamam. Zaten kötü programlar yapma konusunda deneyiminiz varsa, modellerin gücünü bilecek ve bunları kendi lehinize kullanacaksınız. Birinin size öğrettiği kalıpları izleyerek her zaman iyi programlar yaptıysanız, o zaman iyi (geçerli kod anlamında) programlar yapmaya devam edersiniz, ancak kalıplardan faydalanmak yerine, faydalı değişiklikler yapmak için onları yeterince anlayamayacağınız için, onlar tarafından sınırlanacaksınız. Sonunda, nasıl yapılacağına değil, her iki durumda da er ya da geç pratik yapman çok önemlidir.

* Yine de bir şey önemlidir! Güvenlik durumunda Kodunuz iyi yapılırsa deneyimli birisine gerçekten sormalısınız, çünkü güvenlik delikleri hata uyarılarını açmaz.


3

Her nasılsa bu harika bir soru! :-)

Gamedev faaliyetime çok uzun zaman önce başlamamıştım ve bu ikinci kez olacak, böylece düşüncelerimi paylaşabiliyorum. Aslında haklısın, bir akıl hocası olması iyi bir şey. Bu akıl hocası internet olacak. Dolayısıyla, internette ne kadar fazla bilgi paylaşılırsa, sizin için o kadar kolay öğrenmek olacaktır. Bu nedenle XNA / C #, başlamak için mükemmel bir seçimdir. Hem makaleler hem de web'de paylaşan amatör ve profesyonel indie gamedev'lerin çoğu var. Söylenecek diğer şeyler:

  1. Kaynak aç! Codeplex, GitHub, Google.Code, Bitbucket. Orada bir sürü değerli şey var.
  2. Topluluğa git! Buradasın ve bu iyi bir şey. Ancak, bazı iyi resmi görevlere sahip büyük bir Microsoft XNA topluluğu da bulunmaktadır . Codeproject da iyi bir kaynaktır (ancak gamedev'in etkinliği orada oldukça düşüktür).
  3. Muhtemelen çok okumanız / izlemeniz gerekecektir . Zaten daha önce bahsetti. Oyun geliştirme sadece kodlama değildir. Oyun tasarımı da önemlidir. Coşku önemlidir.
  4. Her zamanki gibi aynı anda çok fazla ısırmaya çalışmayın, size tetris veya koparma kopyasını yazmak gerçekten iyi bir fikirdir.
  5. Başlangıçta zor olabilir, oyun geliştirme sadece zor değil, aynı zamanda "kurumsal" uygulamalardan da çok farklı. Grapics, ses, vb. Birçok yeni yön vardır. Gittikçe daha kolaylaşır (her zamanki gibi).
  6. Bir blog yaz. Geliştirme sürecinizi (bu süreçte kendi sorularınızın cevaplarını bulacaksınız) ifade edin, değerli makalelerle ilgili yorumlarınızı içeren bağlantıları saklayın.
  7. Kodunuzun gördüğünüz en kötü şey olduğunu düşünmeyin. Oyun kodunu kontrol etmek zordur, her zaman bir şekilde biraz "kirli" olanlardan daha kirlidir. Fakat sizi temin ederim ki, orada indie oyunlarının başarılı olduğu bazı korkunç yaratıklar (kaynak kod kalitesi ve oyun organizasyonu) gördüm. O yüzden kendine zarar verme, esp. başlangıçta.

1

Bu, yaratıcı bir sektörle ilgili herhangi bir disiplin için geçerlidir:

En büyük tehlike, kapıdan 'çok büyük' ​​veya 'epik' bir şey inşa etmeye çalışmaktır.

Örneğin, biraz müzik yapmaya başlarsanız, 50 parça 2 saatlik bir senfoni yapmaya çalışmakla başlamazsınız.

Seviye tasarımında bu, “şimdiye kadarki en büyük haritayı” yapmaya çalışmak veya oyun motorunu, oyun motorunun kullanabileceği en karmaşık en karmaşık şeyi yapmak için kullanmak olarak ortaya çıkıyor. Programlamada bu sıfır kaynak koduyla başlayarak 'kendin oynayarak bütün bir oyun yapmak' anlamına gelebilir. Sıfır kaynakla başlamak için gerçekten çok fazla tecrübe ve disipline ihtiyacınız var ve o zaman bile inanılmaz derecede zor ve her şey için tasarım kararları vermek, her şeyi tasarlarken her zaman çok zor. Basit bir oyun bile bugünlerde modern bir işletim sistemi ve dilde oldukça fazla miktarda programlama gerektirir. Ayrıca birisinin koddan başka bir kodla başlarsanız, neyin işe yarayıp neyin işe yaramadığını öğrenebilirsiniz, bu yüzden mümkün olduğu kadar çok motorla çalışmak çok büyük bir artı.

Bu yüzden başlangıçta aşağıdaki planlar gibi bir şey öneriyorum:

  • Seviye Tasarım: küçük bir oda inşa etmek, yarım bina inşa etmek, tam bir bina inşa etmek vb.
  • Sanat: TF2 için bir şapka veya benzer bir şeyi basitleştirin, ya da iskelet veya morf örgülerine girmeden ve onları iyi bir şekilde boyamanın nasıl iyi olacağını boyamadan önce Skyrim'in ya da başka bir ısırık büyüklüğü görevi için bazı doku değişikliklerini yapın.
  • Programlama: mevcut modaya uygun veya açık kaynaklı bir oyun motorunu alın ve bir kısmını (bir silah gibi) değiştirin, sonra yeni bir silah oluşturun. Oyun kodunu beğenmediyseniz, grafik motorunu hacklemeye başlayabilirsiniz.

Yapılacak en iyi şey mevcut bitmiş bir motoru (modaya uygun veya bir açık kaynak kodlu olanı) almak ve onu kırmaya başlamak ve bunu beğenene kadar birkaç farklı motorda birkaç kez yapmaktır.

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.