Yanıtlar:
Çıkmak
Endişelenecek çok fazla durumunuz olmadığı için kolay oyun (bu bir tuğla değeri dizisidir - yalnızca bir tuğla renginiz varsa, bir bayrak dizisidir), herhangi bir AI yoktur, ve bir Topun düzgün bir şekilde sıçramasını sağlamak için biraz fizik.
Solitaire
Kurallar Breakout'tan biraz daha karmaşık ve arayüzleri çok farklı. Bir oyunu uygulamadaki farklı yöntemler hakkında düşünmeye zorlar. yani, bir oyunda işe yarayan şey, mutlaka başka bir oyunda kullanacağınız şey değildir.
Pac-Man
Bu çok hoş çünkü biraz AI üzerinde çalışacaksınız. Hayaletlerin oyuncuyu takip etmesini sağlamak (ancak çok iyi olmamak - oyuncunun şansa sahip olmasını istersiniz) hızlı bir şekilde uygulanabilir ve tweak yapıp arkadaşlarınıza ve ailenize gösterebileceğiniz eğlenceli bir oyun oynayacaksınız (olumlu geribildirim her zaman başladığınızda iyi bir şey).
Erken video oyunlarında ilham alırsanız, uygulanması nispeten basit tonlarca fikir bulabileceğinize inanıyorum. Ayrıca, süper basit resimler ve sesler ile kurtulabilirsiniz çünkü zaten çok basit bir şeyi kopyalıyorsunuz. Bu, önce temel konulara odaklanmanıza olanak tanır - oyununuzu tekrar başlatıp çalışır duruma getirin, piksellerinizi ekrana nasıl getireceğinizi, sesini çalabilir, skoru tutabilir, oyuncunun oyuna girmesini sağlayabilirsiniz.
Neredeyse ilk önce hangi oyunu seçtiğin önemli değil - sadece hızlı sonuç alabileceğiniz basit bir şey seçtiğinizden emin olun, bu şekilde ertesi gün ilerleyebilir ve bir tane daha oynayabilirsiniz. Ve başka. Ve bir başkası - ne kadar çok yaparsanız, o kadar çok kendinizi zorlarsınız ve sonunda siz bilmeden önce karmaşık oyunlar oynarsınız.
Acemi programcıların yazmak istedikleri en basit oyunla başlamasını şiddetle tavsiye ediyorum . Matt Rix'in bahsettiği gibi, bir oyunla bir demo yazmanın büyük bir kısmı lanet şeyi tamamlamaya itiyor - krediler, menüler, oyun testi, yüksek puanlar, duraklatma, oyun testi, zorluk seviyesi, temiz oyun durumu geçişleri, oyun test etme, vb. Bu şeyler koymak için harcadığınız zamanın en az yarısını alır ve sadece eğlenceli değildir. Değil. Yani kavramı sevmiyorsanız ve gerçekten motive olmuyorsanız, oyun bir oyuna başlamadan önce pes edip devam edeceksiniz .
Bir RPG yazmak istiyorsanız, yapmak ve yapmak istediğinizle başa çıkabileceğiniz en basit, yönetilebilir RPG konseptini bulun . Bir bilim kurgu atıcı, ya da korku temalı bir platformer ya da her neyse yapmak istiyorsanız aynı. Bitireceğiniz bir şeyi seçin, eğlenceli olan her şey bittikten sonra hala bitirmek isteyeceksiniz ama gerçekte işiniz bitmeden önce hala onlarca iş saatine bakıyorsunuz.
"Kanatlarını kazanmak" için en iyi oyun? Tamamladığın kişi. Kaç tane yarım-bit PONG / Breakout / Galaga / Tetris demo yazdığınız umrumda değil, gerçek bir tamamlanmış oyun yayınlayana kadar bir oyun geliştiricisi değilsiniz.
Artı, hiç kimse bu 40 yaşındaki oyunların bir başka versiyonunu oynamak istemiyor ve en azından oyun yazma meselelerinin bir kısmı insanların oynaması için değil mi?
Bu merdiveni bir süre önce TIGsource'ye gönderdim. Çok temelden çok karmaşaya doğru başlar.
Oyun programlamasını öğrenmenin en önemli kuralı: programlamayı öğrenmek zordur. Oyun tasarımını öğrenmek zordur. Nasıl iyi bir oyun sanatı veya ses yapılacağını öğrenmek zor. Bunların hepsini aynı anda yapmaya çalışmak başarısızlık için bir reçetedir. Her seferinde bir şey öğrenin.
Sonuç: tasarım, sanat ve sesin yapıldığı bir oyun programlayın. Orijinal oyunlar değil klonlar yapın.
Sınıflarımda, sırayla bu oyunların başlamasını her zaman öneririm:
1) Tetris. Sanat, Microsoft Paint'te toplam klutz'un bile çizebileceği renkli dikdörtgenlerdir. Sese ihtiyacın yok. Programlama nispeten basittir, ancak yine de birkaç anahtar şey gerektirir: dahili oyun durumu ile ekranda çizilenler arasındaki farkı anlama; Ekranda çizim yapabilme, dönem (muhtemelen sprite ve blending dahil); Kullanıcı girişini, yalnızca onları beklemeniz gereken getch () veya scanf () kullanmak yerine gerçek zamanlı olarak kabul edebilmek.
2) Breakout / Arkanoid. Sanat hala renkli dikdörtgenler ve hala sese ihtiyacınız yok. Topun düzgün bir şekilde hareket etmesi ve zıplaması gerektiğinden, Tetris'in tüm temel kavramlarını, ayrıca bazı temel çarpışma algılamasını ve 2D fiziği kullanır.
3) Gradius / R Tipi. Muhtemelen bunu yapmak için bazı ücretsiz fayans setleri bulabilirsiniz. Burada arka plan kaydırılıyor, bu nedenle sayfa çevirme ve çift arabelleğe alma ve görünen ekranın sınırları dışında bir şeyler çizme gibi teknikler kullanarak grafik belleğinin nasıl çalıştığı hakkında biraz daha fazla şey öğrenmek zorundasınız. Ayrıca dinamik düşman ve mermi yumurtlama eğilimindedir, bu nedenle kendinizden sonra temizlemeyi öğrenmeniz gerekir (yani, ekranınızdaki düşmanlardan ve kurşunlardan kurtulun; böylece oyununuz bir elek gibi hafıza sızdırmaz).
4) Süper Mario Bros Önceki kaydırma projesine benzer şekilde, kaydırma dışında şu anda oyuncu kontrolü altında ve otomatik değil. Ayrıca yerçekimi ve onunla birlikte gelen tüm eğlenceli çarpışma işleriyle uğraşmak zorundasınız (zemine düşmemesi gibi, çünkü sadece son karede birkaç piksel yukarıdaydınız ve bir sonraki karede aşağıda birkaç piksele taşınmak istiyorsunuz) ). Ayrıca yerçekiminin şartlı olduğuna dikkat edin: oyuncuyu ve bazı düşmanları etkiler, ancak tipik olarak platformlardan veya yüzen paralardan veya gerçek dünyadan biraz farklı olan her neyse onu etkiler.
Bunların dördünü de yapabilirseniz, istediğiniz 2B oyunu hemen hemen yapabilmelisiniz; Bütün araçlar orada. Bir 3D oyun yapmak istiyorsanız ... önce 2D'yi öğrenin çünkü çok daha kolay ve matematiği derinlemesine anlamanıza gerek yok ve 2D şeyleri anlamanız gerekmiyor ... ve sonra bununla rahat olun, bazı temel 3B araçlarla çalışmaya başlayın (Torque veya Unity gibi kütüphaneler veya orijinal Doom ve Quake gibi açık kaynaklı oyunlar).
İyi şanslar!
Şimdi bu gerçek bir soru. Nerede olduğunu bilmiyorum, bu yüzden gökyüzü için sallanacağım ve hayatında asla bir kod satırı yazmadığını farz edeceğim. Burun hangi kısmını keserse, bir cümleyi kötüye kullanmak için.
Sanırım istediğinden biraz farklı bir soruya cevap vereceğim ve yerinde sorduğun soruyu cevaplamak için örnekler vereceğim. Bu şekilde yapmamın nedeni hafif ama bakış açısında önemli bir fark olduğuna inanıyorum: Bu, oyunların bir tasarımcıya getirdiği zihniyetler kadar önemli olan özel oyunlar değil.
İnsanların zihniyetlerini, kalplerini ve karaciğerlerini yemek ve böylece güçlü güçlerini kazanmak için çeşitli programlama dilleri öğrenmeniz gerektiğini nasıl konuştuğunu biliyor musunuz? Bunun gerçek bir gerçeği var - ilk saf ya da safya yakın programlama dilinizden sonra, zorunlu dillerde bile, büyük ölçüde yan etki içermeyen fonksiyonları yazmanız yeterli olacak çünkü çok daha iyi tanımlanmışlar ve yazdığınız her şey bu formda olmayan dillerde bile bunun için daha iyi olacaktır. Özellikle hangi dilin olduğu önemli değildir - haskell, ml / ocaml / smlnj, formulaONE, c ++ şablonları, her neyse - hala, yan etki durumuna dayanmadan birçok çalışma sınıfı yapmayı öğreneceksiniz. Sağlam, makineye yakın bir programlama dili ilk defa öğrendiğinizde, Boyut tipi soyutlama hakkında bilgi edineceksiniz. Bir bildirim veya kısıtlama dili ilk defa öğrendiğinizde, isteğe bağlı bir araç olarak sınırlamayı öğreneceksiniz. Geriye dönen bir arama dilini ilk kez öğrendiğinizde, dua etmeyi öğreneceksiniz! La! C'thulhu F'tagn Nagn !, ve sonra kalpleri ve karaciğerleri yemeye geri döndük ve yaşam çemberi gerçekleşti.
Oyun tasarımı farklı değil. Belirli bir dile paralel olarak herhangi bir oyunu öğrenmek zorunda değilsiniz, bunun yerine dil karakteristik aileleri gibi o zihniyeti ele alan bazı sembolik temsili oyunları öğrenmek zorunda değilsiniz. Ayrıca, pek çok yeme karaciğer ve kalbi var. Biber krakeri al.
Buradaki tıkaç (en azından gördüğüm gibi) geniş bir konu listesini ele almak istediğinizdir. Bir karakter sayfasında yetkinlikleri ortadan kaldırmak gibi bir şey - belirli bir durumla başa çıkmak için kendinize daha fazla mekanizma sağlıyorsunuz. Evet, onlar seviye yeteneğine sahipler, ancak tahtanın karşısındaki kadar bir veya iki noktaya sahip olmak, birisini kullanma zamanı geldiğinde, sıfırdan başlamayacağınız ve hangi taktiklerin kullanılabileceğini bildiğiniz anlamına gelir. ölçeklendirmen için.
Öyleyse bak.
İlk önce dişlerini kesmek istiyorsun. Bunlar, yeni bir platform hedeflemeyi öğrenirken veya amnezi durumundan kurtarırken de faydalıdır. Bunlar hızlı olmalı, harika değil.
Sırayla:
Bunları indirdikten sonra, bir platformu hedeflemeye hazırsınız ve öğrenme başlayabilir.
Belirli bir sıra yok. Uygun gördüğünüz gibi onları yeniden düzenleyebilirsiniz. Her birine bir avuç örnek vereceğim, ama normatif değiller; eğer farklı bir oyun size aynı deneyimi veriyorsa ve bir dizi dersin parçası olacak kadar küçükse, onu değiştirmekten çekinmeyin. Onları çok kullanacaksın. Soyutlama dersleri yazmaya başlamadan önce birkaç oyun bekleyin; Eğer yok bir naif soyutlama yakalanmış olmak istiyorum.
... ha. Sıkıldım.
Tetris
Çok yaygın bir oyun, bir sürü açık kaynak klonlanırsa, sıkışırsanız paramparça olur. 2B grafikler, giriş işleme, puanlama vb. Temellerini öğretir.
O zaman bu orijinal fikri alın ve bir dönüşe koyun. Üniversitedeki bilgisayar grafik dersim için 3D grafiklerin / opengl'in temellerini Tetris'in bir 3D versiyonunu yazarak öğrendim .
GameDev.net , oyun geliştirme hakkında daha fazla bilgi edinmek için oyunların ilerlemesini öneren iyi bir makaleye sahiptir . Listeden en sevdiğim tavsiyem aslında bu oyunları cilalamak. Tamamen serbest bırakılabilir bir duruma getirin.
Liste aşağıdaki gibidir (bunlardan bazıları diğer cevaplarda verilmiştir):
Bütün adamlarıma Monopoly ile başlamak isterim. Genellikle alıştırmanın temeli olarak Brett Schuchert'in Tekeli "code kata" kullanıyorum , ancak üzerine çok şey ekliyorum. Bunu yapmayı gerçekten sevmemin birkaç nedeni var.
İyi kodlama uygulamalarına (tasarım kalıpları, TDD, SOLID, sürekli entegrasyon vb.) Çok önem veriyorum ve bu alıştırmayı yaparken geliştiricilerime birçok kısıtlama getiriyorum.
Neredeyse herkes Tekel kurallarını bilir ve tüm oyun tek bir günde tamamlanabilir. Bu, yeni geliştiricilere hızlı bir kazanç sağlar ve gerçekten katılımlarını arttırır.
İlk gereksinimler klavye kontrolleriyle başlar, ancak daha sonra fare kontrolleri için bir gereksinim eklerim. Bu, geliştiricilerin çeşitli şeyleri düşünmesini, mevcut kodu nasıl düzelteceğini, sistemin değişen parçalarını somut sınıflar yerine arayüzlere programlamasını, daha iyi / doğru soyutlamaları, ünite testine ne yapmayı, ünite testine ne yapmamayı, niçin ünite testini ve ne olduğunu düşünmelerini sağlar. İYİ birim testlerini yapar.
Bazen daha sofistike AI takarız, bazen yapmayız. Bazen Chutes ve Ladders gibi biraz daha karmaşık bir mantıkla diğer tahta oyunlarıyla çalışıyoruz. Bazen tahta oyunlarından tamamen koparız ve bir poker oyunu veya blackjack yaparız.
Benim için asıl önemli olan, insanların hızlı bir şekilde kazanmaları ve iyi programlama standartlarını takip ettiğinizde yazılımları ne kadar esnek yapabileceğinizi görmeleri. Bu alıştırmalar çok hızlı bir şekilde güven oluşturuyor. Bazen, daha deneyimli geliştiriciler bunları kendi başlarına yapmaktan, sadece daha karmaşık projelerden bir mola vermek veya öğrendikleri yeni bir tekniği uygulamaktan hoşlanırlar (demeter yasası?).
Seç-Sizin-Macera
Bu ipucunu, bir oyun oluşturarak programlamaya başlayan bir arkadaştan aldım , macera kitabınızı tercih etmeye çok benzer . Temelde böyle bir çıktı ile basit bir metin macera oyunu:
You are standing in a forest clearing in the middle of the night. You hear
some wolves howl in the distance. Should you:
a) make camp for the night
b) go further north
> _
Böyle bir oyun yapmak size bir gameloop, temel konsol girişi ve basit bir komut dosyası hazırlamayı öğretmelidir. Oyunu yazmak için bir grafik motoruna ihtiyacınız olmadığından , yeni başlayanlar için uygulanması oldukça kolaydır . Gelişmiş yeni başlayanlar muhtemelen bir komut dosyası altyapısı yazardı.
Acemi programcılar ile olan deneyimime göre, ilerleme genellikle şöyle bir şeye benziyor:
Breakout, Pong veya Asteroids.
Oyun ve oyun prototipi arasında çok büyük bir fark var . Hayalindeki oyunu bitirmek konusunda ciddiysen, yol boyunca "giriş seviyesi" oyunlarını bitirmelisin. Oyunun oynanış kısmını oluşturmak savaşın sadece yarısı. Menüler ve yüksek puanlar gibi tüm ekstra şeyler genellikle göz ardı edilir veya göz ardı edilir, ancak herkesin beklediğinden daha fazla zaman alır.
Diğer cevaplarda bazı iyi öneriler var, ama sadece oyuma atmak istiyorum: Başa çıkamayacak kadar cılız bir şeyle başla.
Pong iyi bir örnek.
Hedef, oyun tasarımını ve kuralları, o kadar beyin ölümü yapacak ki, tüm dikkatini öğrendiğin yeni şeyi öğrenmeye odaklayabileceksin (bir dil, bir platform, bir API) ve sürekli olmak zorunda değilsin. Oyunun nasıl çalıştığını anlamak için ara verin.
Bir kere gittikten sonra, pong'un ilk bakışta göründüğünden biraz daha karmaşık olduğunu göreceksiniz. (Bir erkeğe programlama öğretiyorum ve öğrenme projesi olarak pong kullanıyor. Bazı özellikler ekledik ve şimdi tüm bu harika özelliklerin nasıl yapılacağını öğrenerek öğrenmeden programa dikkatini dağıtıyor :)
Uygulama # 1'i başkalarına vermeye / satmaya hazır olana kadar baştan sona uyguladıktan sonra , biraz daha karmaşık bir şey edinmeye çalışın (Tetris, macera ya da ne istersen) ama yeni bir teknoloji öğrenmeye başlamak için beyin ölümü programladığınız şey basit.
Diğer örnekler:
Ancak, yine - çok kolay bir şeyle başlayın, böylece aslında bir şeyi tamamlayabilir ve geriye bakıp neyin dahil olduğunu görebilirsiniz. ONE uygulamasının bir dil / platform / SDK / motorda yazılması ile SIFIR uygulamaların yazılması arasındaki fark BÜYÜK . 1 & 2 veya 2 & 5 arasındaki fark çok daha az, böylece daha büyük adımlar atabilirsiniz, ancak 0 ila 1 adım ufacık küçük bir adım olabilir; düşündüğünden daha büyük olacak!
Flappy Bird
benzer. Profesyonel bir programcı olarak, öğleden sonra yapılacak bir çalışmadır ("güzel" olması için bir hafta sonu) ama programa bir başkasını öğretirken, aslında çok fazla küçük komplikasyonları olduğunu öğrendik. Yine, kişi sıfırdan çok daha fazla deneyimdir ve bir kez sahip olduğunuzda, nasıl ilerleyeceğiniz konusunda çok daha iyi bir fikre sahip olacaksınız.
Bu web sitesine göz atın: 12 Bilgisayar bilimi oyunu proje fikirleri
Bu oyunlardan bazıları, başkalarının söylediklerini içeriyor:
Ama aynı zamanda, şöyle yapmayı deneyebileceğiniz diğer oyunlardan da bahseder:
Ayrıca, her oyun için bir zorluk hissi verdiğinden (ve dolayısıyla oyunlarla nasıl başa çıkmanız gerektiğine dair bir plan) ilk önce ne yapmanız gerektiğini bir fikir verir:
Birçok insan Breakout ile başlar çünkü özellikleri:
Oyun yazmanın ya da herhangi bir yazılımın yazılmasının en zor kısmı ne yapılacağını bulmak. Kesinlikle bir şartname ihtiyacınız var! Mevcut bir oyunun bir klonunu yapmanın eğlenceli kısmı bu: teknik özellikler zaten var. Spesifikasyonunuz "Ürün, Diğer Ürünün yaptığı her şeyi yapmalı", ve eğer diğer oyunun bir kopyasına sahipseniz, bunu doğrulamak oldukça kolaydır.
Ne yapmanız gerektiğine karar verdikten sonra , yetenekli bir programcıysanız, nasıl yapılacağını bulmak zor değil. Yetenekli veya deneyimli bir programcı demek istemiyorum; Bu, yapmaya çalıştığınız şeylerin çoğunun nasıl yapılacağını zaten bildiğiniz anlamına gelir. Fakat soyutlamalarda nasıl düşüneceğinizi anlamanız ve programlama için temel olan problem çözme ve mantıksal düşünce becerilerine sahip olmanız gerekir. Bunu yapabilirsen, her şeyi yapabilirsin.
Bunu söyledikten sonra, çoğu insanın gerçekten basit bir şey yazarak oyun yazmayı öğrenmeye çalışmakla ilgili söylediklerine katılmıyorum. Ödül, harcadığınız çaba ile doğrudan orantılıdır. Gerçekten basit bir oyun yazarak oyun yazmayı öğrenirseniz, sonunda bileceğiniz tek şey gerçekten basit oyunların nasıl yazılacağıdır ve bu size pek iyi gelmez.
Öte yandan, ezici bir şeyle başlarsanız, asla bitiremezsiniz. Bu nedenle, ciddi sorunların üstesinden gelmenizi sağlayacak orta zorlukta bir şeyle başlayın. 2B konsol tarzı bir RPG veya yandan kaydırma platformlu bir platform oluşturmak, gerçek oyun programlama kavramlarını öğrenmenin çok iyi bir yoludur.
Bu, şu anki yetkinliklerinizin ne olduğuna bağlı. Programlamada nispeten yeniyseniz, o zaman insanların önerdiği belirli oyunlardan biriyle gidin. Aksi halde, ne tür oyunların deneyiminizi iyi kullanmanıza izin vereceğini düşünmelisiniz.
İlk oyuna başladığımda, oyun geliştirme deneyimim sıfırdı, ancak birkaç yıldan beri kurumsal / iş kolu uygulama geliştirme yapıyorum. İlk oyun projem sıra tabanlı bir strateji oyunuydu ve mimari açıdan konuşursak, kurumsal bir uygulamadan tamamen farklı görünmüyordu. Bir istemci / sunucu sistemi kullandı ve iletişim bir dubleks WCF servis kanalı aracılığıyla gerçekleşti. Çoğu oyuncu işlemi "emir" olarak sıralandı ve dönüşün sonunda sunucuya gönderildi. Tüm sıra işlemleri sunucuda gerçekleşti ve sonrasında oyun dünyası güncellemeleri her müşteriye gönderildi.
Bu ilk proje bana tanıdık bir bölgede başlarken oyun geliştirme yolunda ilerlememe izin verdi. Proje geliştikçe, bir oyun geliştiricisi gibi daha az düşünmeyi ve daha az bir kurumsal uygulama geliştiricisi gibi düşünmeyi öğrendim. Sonuç oldukça iyi çalıştı ve Battleship ya da Tic-Tac-Toe'dan biraz daha etkileyiciydi :).
Nispeten basit AI, Grafik, Oynanış, Kontroller ve bunları eklemek istemediğiniz sürece ses efektleri veya müzik yapmak zorunda değiller. Bunu eklemek için QBasic'te MS-DOS için programlamayı öğrenirken bu ikisiyle başladım. harika ilk oyunlardır. Pac-Man benim başka seçeneğim olurdu.
Moonlander tarzı oyunlar harikadır (yerçekiminden etkilenen bir roket kabiliyetine sahipseniz, oyuncular yönünü ve itişini kontrol ederler, itme kullanılırken sınırlı yakıt). Çok basit fiziği uygulayan deneyim kazanın ve çarpışma sistemi oldukça ilkel olabilir. Endişelenecek AI yok ve en önemlisi eğlenceli ve bağımlılık yapıyor :)
Gauntlet gibi bir şey çünkü bir varlık sistemine, düşman AI'ına, alıcılara, haritalara, çarpışma algılamasına, puanlamaya vb. İhtiyacınız var. Her şey var, ama bunaltıcı değil.
Bir mini Zelda klonu iyidir ve burada çok fazla söz edilmemiş bazı becerileri uygular. Büyük bir karo haritasını ve 8 yönlü basit hareket kontrollerini kaydırmak bilmek iyidir. Bonus puanlar düşmanlar yapabilir, ancak bunun için fazla endişelenmem.
Birkaç Tetris klonundan daha fazlasını yaptım. Her yaptığımda, yine de biraz farklı yaptım. Bugünlerde genellikle bir tür Asteroid klonu yapıyorum. Ayrıca birkaç füze komutanlığı sızıntısından daha fazlasını yaptım.
Temel oyunla başladım ve daha çok şey, power ups vb. Eklemeye başladık.
Her zaman bir Tanks / Gorillas / Worms oyunuyla başlardım. Basit grafiksel ekranda egzersiz yapmanıza ve kullanıcı girdisini okumanıza ek olarak mermiye yerçekimi uygulayan ve çarpışma tespiti için test eden bir oyun döngüsü sunar.
Bundan sonra, Gorillalar için çalışan INPUT ifadeleri yerine, kullanıcı girişini gerçek zamanlı olarak okumanız gereken çok basit bir platform veya shoot-em-up gibi bir oyun olacaktı :)
Solitaire (veya gerçekten herhangi bir kart oyunu), kullanmanız gereken birçok widget ve denetleyici etkileşimi geri bildirim mekanizmasını kullandığından, yeni bir UI sistemiyle ellerinizi kirletmek için iyi bir oyundur. Ayrıca bunun mantığı basit ve açıktır, bu nedenle oyun tasarımı üzerinde değil, öğrenmeye konsantre olabilirsiniz.
Gerçek zamanlı simülasyon oyunları için, Pong'u her zaman iyi basit bir başlangıç noktası olarak öneririm, çünkü yine de tasarım basit olduğu gibi, kontrolör arayüzü de olduğu için sistemin etine - fiziksel simülasyona erişebilirsiniz.
Bir oyun programcısıysanız, bir miktar Space Invaders yapabilmeniz gerektiğini öne sürdüm . Heck, oyun, kendiniz de grafik yapmak mümkün olması gerektiği kadar basit.
Portföyünüzde oldukça faydalı olmanın ek avantajı olarak küçük oyunlardan oluşan bir seçime sahip olmak, örneğin, eğer yeni bir programlama dili veya çerçevesi öğreniyorsam, çoğu zaman basit oyunlarımdan birini nasıl yeni bir yolla yapacağımı görmek için kullanacağım. şeyler yapmak, orijinalleri yazıldığı şekilde eşleşir.
Zaten sahip olduğunuz normal bir programcı olarak hangi becerilere sahip olduğunuza bağlı. Matematiğinizin işe ihtiyacı var mı? Grafik bilginiz? Her ikisi de sarılmış durumda mı?
Her ne kadar genel olarak Tetris ve Breakout'un benim de iki başlangıçım olacağını düşünüyorum. Bundan daha kolay olan herhangi bir şey yeterince teşvik edici değildir. Tetris, verilerinizi algo düzeninde iyi bir testtir, koparma hafif bir matematik örneğidir. İnsanlara daima yüksek hedeflemelerini söylerim, amaç sıkışıp kalmak ve bir çözüm bulmaktır.
Ondan sonra gökyüzü sınırdır. Yine, yüksek amacı. Eğimli arazi, parralax ve 2d teknolojisine sahip iyi bir çantanız var. Bir langırt ekleyin (sinirli olmaya hazırlanın) ve matematiğiniz gelişecektir.
Oradan üçüncü boyuta geçin, temel becerileri (animasyon, render) öğrenin ve çeşitli oyunlarla başa çıkmak için görece iyi bir donanıma sahip olmalısınız.
İlk oyunum Süper Mario gibiydi.
Dolaşın, engellerden kaçının, zıplayın. Ve tüm bu işler herhangi bir fizik hesaplaması yapmadan kolayca yapılabilir.
Belirli bir uygulamaya / çerçeveye / motora çok fazla güvenmeyeceğiniz için basit bir 2B şey almak idealdir.