Prototipleme için önerilen 2D Oyun Motoru [kapalı]


76

Hangi yüksek seviye oyun motorunu, pencerelerde 2D oyun prototipi geliştirmek için önerirsiniz? (veya isterseniz mac / linux)

"Yüksek seviye" ile kastettiğim şeyler şunları içerir (ancak bununla sınırlı değildir):

  • Ekran tamponları, grafik bağlamları gibi düşük seviyeli işleri yönetmek zorunda değilsiniz
  • geometrik şekiller çizmek için bir API'ye sahip olmak
  • Pekala, bunu ihmal edecektim ama sanırım gerçek bir "üst seviye" diline dayanmak bir artı (otomatik kaynak yönetimi ve standart kütüphanedeki makul veri yapıları kümesinin aklıma gelmesi).

Bana öyle geliyor ki, Flash bu sorgu için odanın atasözü filiydi, ancak her dil veya SDK'ya göre farklı cevaplar görmek isterdim.

Yanıtlar:


31

Pygame'i geniş bir şekilde kullandım ve çok fazla pozitif özelliği var:

  • yüksek seviye bir dil olan Python için bir kütüphanedir.
  • Açık bir dokümantasyon var
  • aktif bir topluluğu var

Pygame, bir çapraz platform 2D grafik kütüphanesi olan SDL etrafındaki bir sarıcıdır. Pygame'in ayrıca ses, müzik vb. İçin sarmalayıcıları vardır. Python'un üst düzey bir programlama dili olmasına rağmen, pygame'in (çoğunlukla) oldukça düşük seviyeli bir grafik kütüphanesi olduğunu unutmayın.


3
Yüksek seviyede bir dilde olmasına rağmen, oyun çerçevesi olarak hala oldukça düşük seviyede olduğunu söylemek isteyebilirsiniz.
Henk

5
Evet, PyGame'de bir oyun motoru oluşturmak için yavaşça birkaç hafta harcayabilirsiniz. Bu harika bir kütüphane, ancak benim deneyimime göre, daha fazla ilgili fikirlerin hızlı prototiplenmesi için çalışacak önce zaman içinde bazı çerçeve kodları oluşturmanız gerekecek.
James

35

Başka şeylere bakmak istersen. Löve'yi (Lua kullanan) kontrol edebilirsiniz.


4
Bu, Lua öğrenmenin süper eğlenceli bir yoluna benziyor!
GloryFish

9
Sadece not etmek gerekirse, yukarıdaki yorumu 22 Eylül 2010'da yazdım. 7 gün sonra oturdum ve bir gecede daha önce hiç Lua yazmamış olan ilk Löve oyunumu yarattım . O zamandan beri Lua ve Löve ile birkaç oyun yarattım ve şu anda bir Löve oyununu iOS'a taşıyorum. Harika bir prototip dili ve Lua'yı öğrenmenin harika bir yoluydu.
GloryFish

2
Bunu duymak harika: D
furlafur Waage

20

XNA’yı prototip yapmak için çok iyi bir dil olarak buluyorum . Ayrıca yardım forumlarında büyük bir topluluğa ve çeşitli 3. parti araçlara (fizik motorları / yardımcı kütüphaneler / vb.) Sahiptir.


Microsoft XNA DOA olduğundan sonraki en iyi şey Monogame'dir (XNA'nın açık kaynaklı uygulaması).
ashes999

2
Hala onu destekleyecekler, ve onunla hala prototip yapabilirsin. Sadece yeni özellikler göndermiyorlar. Ölü

18

GameMaker iyi bir tanıtım oyunu prototipleme veya yapım aracı gibi gözüküyor. “Tek bir kod satırı yazmanıza gerek kalmadan” sürükle ve bırak yöntemine dayanıyor, bu nedenle yeni başlayanlara yönelik görünüyor. (Hiç kullanmadım, sadece karşısına geçti - ancak web siteleri kesinlikle kaygan görünüyor. :)



14

Adam Atomic’in Flixel’i de bahsetmeye değer. Flash'ta yazılmış basit, modern, çıplak kemikli bir oyun motoru. Günler değil dakikalar içinde öğrenebilirsin. Ve Flash'ı (veya Processing / Java) kullanmak sizi prototiplemenin en tehlikeli tuzaklarından biri tutar: Prototipin kodunu ciddi bir platformda kullanamazsınız. Prototip yapmak istediğiniz oyun, kod değil.


1
+1, Flixel için. Harika motor Global Game Jam'de kullandık (ve kazandı :). Yarı cilalı prototipleri 48 saatten daha hızlı çıkaramazsınız!
michael.bartnett

Gerçekten gerçekten harika. Bu sabah bir oyun oynamıştım ve bana sıfırdan baş hareketleri öğretildi.
mcintyre321

@ michael.bartnett, kazanan oyununuza link verebilir misiniz? Sadece merak ediyorum :)
James McMahon

@JamesMcMahon Merakını takdir ediyorum :) Bu konuda sohbet ederken beni ping edebilir misin? Ayrıca, gelecekteki yorum okuyucuları için bugünlerde Flixel üzerinden Flashpunk'u tercih edeceğinden bahsetmek istiyorum.
michael.bartnett

8

Özellikle bir oyun motoru değil, İşleme konusuna bakın . İyi noktalardan bazıları:

  • Minimum kurulum gerekli. 30 saniye içinde ekranda bir şey olabilir.
  • Koleksiyonlar için istediğiniz zaman Java'ya daldırılabilir, ancak çizim, animasyon ve etkileşim sözdiziminin çoğu düz Java'dan çok daha az ayrıntılıdır.
  • Yazdığınız her şey Processing.js ile uyumlu olacak , böylece modern bir tarayıcınızın olduğu her yerde çalışabilirsiniz.

8

Novashell kullanıyorum.

Game Maker'ı ana araç olarak kullandım, ancak YoYo Games ile ilgili bir sorunum vardı (şimdi burada açıklamayacağım), sonra Novashell'i buldum.

Novashell GERÇEKTEN bir prototipleme aracıdır, "LORD" (Kızıl Ejder Efsanesi) ve "Dink Smallwood" u da yapan kişi tarafından yapıldı, böylece Ludumdare (48 saatlik bir gamejam yarışması) için hızlıca oyunlar yapabilirdi, bir harita editörü var. , LUA komut dosyasını destekler, C ++ dilinde yapılır, zlib lisansına sahiptir (bu, kaynakla istediğiniz şeyi yapabileceğiniz anlamına gelir, sizin yapmadığınız şeyleri icat etmeyi talep etmek yerine) ve bir fizik motoruna (Box2D) sahip, parçacık sistemi vardır. (ClanLIB için Lineer Parçacık), MikMod ve Fmod'u destekler, Linux, Mac ve Windows'ta çalışır, kullanımı kolaydır ve Seth'e bir şeyler sorabilirsiniz!

EDIT: Seth programcının adıdır (aynı zamanda RAB yaptı)


Teşekkürler! Bunu daha önce hiç duymamıştım, ancak özellik listesi denemek için yeterince ilginç. ayrıca açık kaynak
Nek

Evet! Kendi Novashell versiyonum resmi versiyona göre biraz daha gelişti, ancak yayınlanmadan önce LOOONG zaman alacak :( (fiziksel olarak yakınımdaki bir bilgisayarda bile değil)
speeder

Zaten bu haftasonu Ludum Cesaretinden önce öğrenmek için zamanım yok. Umarım bir sonraki LD'den önce yayınlarsın.
Nek

Ayrıca bu LD'nin açılış konuşması Seth'in kendisi!
Nek,

Yep :) Seth müthiş ... Ben ÖB'ları uydurmak değilim :( Ben de bir sonraki LD olacak olsa hiçbir fikrim yok.
hız yapan

7

Game Maker çok havalı, temelde tarif ettiğiniz her şeyi yapıyor. Yeni başlayanlar için sürükle ve bırak simgeleri ve ileri düzey kullanıcılar için kod vardır. Ancak, C ++ 'ı sadece bir yıldan fazla kullandıktan sonra, Game Maker'a geri dönmek ... acı vericiydi.

Downsides:

  • Kullanıcı tanımlı veri yapıları yok (C yapı veya C ++ sınıfları gibisi yoktur, sadece “nesneler”)
  • Dinamik olarak yazılmış ("varAwesome = 0" yazın ve aman tanrım daha yeni ortaya çıktı)
  • YoYo Games kötü

Upsides:

  • Kullanımı kolay, ustalaşması zor
  • Sizin için çok düşük seviyeli şeyler yapar
  • Canlı ve aktif topluluk

2002'de Game Maker kullanarak oyun yapmaya başladım. :)


6
lol dinamik olarak yazılmış - olumsuz ...
RCIX

Evet, o ve zayıf yazarak. Modül operatörünün kayan noktaya cevapları döndürdüğünü fark etmeden önce gerçekten garip bazı hatalar var.
James

Hiçbir kullanıcı tanımlı veri yapısı bir acı değildir. Bir işlevden birden fazla değer döndürmeniz gerekirse, bunun için bir nesne oluşturmanız gerekir, ancak tüm nesneler konum, olaylar, vb. İle dolu oyun aktörleridir. bir dizin, varsayım [0])
Bart van Heukelom 12

Oyun tasarımınızı hızlı bir şekilde prototip yapmak istiyorsanız GameMaker'ı da öneririm. GameMaker çok güçlü ve onunla birlikte bazı inanılmaz şeyler gördüm. Oyun tasarımınızı GameMaker'da prototiplerseniz, C ++ veya XNA'da bir oyun motoru geliştirmek için harekete geçmeden önce kendinize zaman kazandırabilir ve üzülebilir.
Cooper

Aslında özellikle veri yapılarının eksikliğini aşmak için dinamik bir bellek ayırma komut dosyası kütüphanem var. Bu tür kütüphanelere sahip olmanın ve bunu lite versiyonunda yapabilmenin kesinlikle çalışmayı çok kolaylaştırdığını söyleyeceğim.
Büyük Ördek

5

DarkBASIC Professional'ı 2 yıldır kullanıyorum ve gerçekten çok zevk alıyorum. Tam sürümü satın almaya gücünüz yoksa, ücretsiz reklam destekli sürümü indirebilirsiniz. DBPro yapımcıları Game Creators da oldukça iyi bir okuma yapan düzenli bir bülten yayınlar; ayrıca oldukça geniş bir aktif toplulukları vardır; Yukarıdakilerin hepsi burada bulunabilir:

https://www.thegamecreators.com/

Şuna bir bakın, umarım orada bir şeyler bulursunuz.

Şerefe, BFM


5

pyglet kullanan cocos2d . Bu iki Python kütüphanesini prototipleme için yoğun olarak kullanıyorum.

Pygame'den çalışmak çok daha kolay.

Henüz söylenmemiş olmasına şaşırdım!


5

Yeni başlayanlar ve hızlı prototipleme için Scirra Construct'ı tavsiye ederim .

Oyun motorunun kendisi soyutlanmıştır, böylece oyununuza tamamen odaklanabilirsiniz. Eklentiler ek işlevsellik sağlar, "kod" sürüklenebilir olay, koşul ve eylem blokları vb.

Yapı aktif bir gelişim içindedir ve aynı zamanda aktif bir topluma sahiptir.


3

Kaydırma Oyun Geliştirme Kiti versiyon 2 prototip ve basit 2-D oyun geliştirme tam olarak bu tür bir oyun geliştirme IDE ve çerçevenin ikinci büyük yineleme (yeniden yazma) 'dir. İkinci yineleme olarak, modern dillerden (C #) ve teknolojilerden (özel kod üzerine yansıtma) faydalanır, ayrıca tasarımdaki temel kusurlardan bazılarını çözer (şimdi artık sprite'ları doğrudan harita editörüne yerleştirmenize izin verir. sadece bir sprite harici olarak bağlanması gereken bir yoldur ve tam olarak böyle bir Wysywig editörü olmaya çalışmaz çünkü sadece çalışma zamanında olmak istediğiniz bazı şeyler ve sadece tasarım zamanında istediğiniz bazı şeyler vardır).

İlgilendiğiniz özelliklerden bazıları:

  1. Çerçeve kodun büyük çoğunluğu IDE içinde ortaya çıkar ve düzenlenebilir. "PushTowardSprite" yerleşik işlevinin çalışma şeklini beğenmiyorsanız, düzenleyiciyi açıp değiştirebilir veya listede bulunan tüm yerleşik komutların yanında görünecek olanı ekleyebilirsiniz.
  2. Çokgen çizme yeteneğinden bahsettiniz. Bu çerçeve, OpenGL etrafında bir .NET sarmalayıcısı olan OpenTK’yı temel alır. Böylece OpenGL’in tüm gücüne parmaklarınızın ucundasınız. Çerçeve kodunda IDE içinde düzenleyebileceğiniz tek bir sınıf "Display.cs" var, istediğiniz çizim özelliklerini ekleyin.
  3. Çerçevenin çoğu, yan kaydırma fiziği (yokuşlarda yürüme, binicilik platformları, vb.) Olarak hedeflenmiştir, bu yüzden bu kodun çoğu sizin için zaten yapılmıştır; Tabii ki diğer 2 boyutlu oyun türleri için kişiselleştirebilir veya yok sayabilirsiniz. Bununla beraber bir Tetris oyunu yazılmıştır.
  4. Paralaks kaydırma
  5. Alfa yarı saydamlığı grafiklere gömülebilir veya herhangi bir grafiğin çizimine uygulanabilir.
  6. Tüm proje verileri tek bir XML dosyasına (bir .NET veri kümesi) kaydedilir. Harici editörler dosyaya erişebilir ve böylece IDE'de mevcut olan özellikleri genişletebilir.
  7. Projeler önce C # projects (Visual Studio ile uyumlu) ve sonra EXE dosyalarına (tüm kaynaklar gömülü olarak) derlenir. Gerekirse, gelişmiş hata ayıklama veya kod geliştirme arayüzü için projeyi Visual Studio'ya yükleyebilirsiniz.

3

Hızlı prototipleme konusunda uzmanlaşmış bir şirket olan PreviewLabs ile 2D Oyunları prototip yapmak için genellikle Unity3D kullanıyoruz.

3D bir motor olmasına rağmen, 2D prototipleme için kullanmanın birkaç yolu var. Bunlar ana avantajlar:

  • PC ve Mac platformları için ücretsiz
  • Ücretli versiyonlar, iOS ve Android için de çalışarak konseptinizin farklı bir platformda nasıl çalışacağını görmenize izin veriyor.
  • 2D oyunları prototip ederken de kullanabileceğiniz bir fizik motoru ile birlikte geliyor.

Unity3D'nin 2D oyun prototiplemesi için nasıl kullanılabileceğine dair bir dizi blog yazısı yazıyorum; ilki: Unity3D'de 2D Oyunları prototip yapmak


3

Kaygan Çerçeve Java ile yazılmış iyi bir seçimdir. Programlamayı öğrendiğim ilk şey buydu. Avantajları, çapraz platformda çalışması, web için uygulamalar üretebilmesi ve Eclipse veya Java ortamının sahip olduğu her şeyde harika araç / kütüphane desteğine sahip olmasıdır. Sonunda sadece Flash'a geçtiğimi söyledi çünkü oyunlarınızı dağıtmak istiyorsanız daha kolay ya da daha etkili hiçbir şey yok.


2

İlk oyun geliştirme projem için FlashPunk kullanmaya başladım ve şimdiye kadar çok kaygan oldu. Oyun tasarımı için oluşturulmuş bir Flash kütüphanesidir. Flixel'e benzeyen çıplak kemikli bir oyun motorudur, ancak daha yeni başlayanlar için Flixel'den daha kullanıcı dostu olan GameMaker gibi. Ogmo Editör ile birlikte FlashPunk, kodlama için çok zaman harcamak zorunda kalmadan seviye tasarımına ulaşmayı çok verimli hale getirir. Bunların üçü hakkında daha fazla bilgi Flash Game Dojo'da bulunabilir .


1

Oyun Yapıcı'dan bahseden ikinci olacağım. Her oyun motoru "kullanımı kolay / öğrenmesi kolay ancak yapabileceklerinizle sınırlı" arasında "gerçekten güçlü, ama ustalaşması uzun zaman alır" dan bir süreye düşerse ... Game Maker hemen hemen tanımdır Kullanımı kolay aşırı. Cyclops'un dediği gibi, temel işlevlerin çoğu (sprite, oyun nesnesi oluşturma, hareket, çarpışma algılama, puanlama vb.), Sürükle ve bırak ikonlarıdır. Aslında iyi kullanmaya başladığınızda, kullanabileceğiniz oldukça sağlam bir betik dili de var ... ama oyununuzu gömülü bir betik dilinde yazmaya başladığınızda, belki Flash veya Scripting diline "mezun olma" zamanı gelmiştir. pygame.

Yine de, Game Maker'da yeni başlayan, oyun tasarımı öğrencileri için programlama gerektirmeyen bir araç olarak büyük başarılar elde ettim ve bunu yeterince öneriyorum.


1

Oyun yapımında çok acemiyim ve oyundan çok hızlı ve kolay bir şekilde çıkmayı başardım. Python + SDL = kolaylık garanti edildi.


1

Eğer prototipleme içinse, kaynak yönetimi ve bunun gibi şeylerle gerçekten kaygan bir yere ihtiyacınız yok. Grafik yükleyebildiğiniz ve görüntüleyebildiğiniz sürece çoğunlukla hazırsınız. Tahıl aleyhine gidiyorum ve 'kendin yaz' önerisini yapıyorum. Birisinin API'sini nasıl kullanacağınızı bulmak için sıfır zaman kaybedeceksiniz. Kendinizinkini yazmak gerçekten bir seçenek değilse, DirectX en temel hizmetleri sağlayan örnek bir çerçeveyle birlikte gelir. Bir çerçeveye bağlı olmamak, kurallarına uygun bir zaman kaybetmemek ve kapsamı ile sınırlı olmamak anlamına gelir. Bir iş olarak prototip yapıyorum ve en hızlı sonuçlarım, bir çerçeve hakkında endişelenmeden veya bunlarla uğraşmadan sadece kodda baskı yapabildiğim zamandı. Bir 2B sargının gerçekten görüntü yüklemek ve bunları x, y - büyük olasılıkla ölçekle görüntülemek döndürme ve trippy olmak istiyorsanız, gölgelendirici. Gerisini istediğiniz gibi kodlayabilirsiniz. Bu bir prototip için - kod hoş olmayacak.


1

Torque-2d by GarageGames, harika bir topluluğa, gerçekten etkileyici eklentilere ve Windows, Mac ve Wii'ye ve hatta iOS'a (ayrı bir lisansta) yönelik yerleşik desteğe sahip harika bir oyun motorudur. 99 dolara mal oluyor.

Unity3d (üzerinde 2d oyunlar geliştirebilirsin) girişe nispeten düşük bir engel olan bir başka çok iyi kaliteli oyun motorudur. Yine, büyük topluluk ve Win / Mac, Wii, Xbox, Playstation ve web'e ek olarak iOS ve Android dahil olmak üzere gerçekten harika çoklu platform desteği.

Harika bir iPhone merkezli oyun motoru, iOS için cocos2d'dir.


1

Sorunuz 2B oyun prototipini yazmak için gerekenler hakkında, ama bence göz önünde bulundurulması gereken başka bir şey var: Flash'ın en büyük avantajı bu prototipi başkalarıyla paylaşmak için gereken şey. Hemen hemen herkes Flash yüklü. Bir SWF yükleyebilir ve URL'yi sohbet veya e-postayla birisine iletebilirim. İndirme yok, kurulum yok, unzip yok, exe yok, platformlar arası sorun yok. Flash'ı seçmeye başladım çünkü paylaşmak ve geri bildirim almak çok kolaydı. Yineleme tekrar yüklemeyi ve yeniden yüklemelerini bildirmeyi içerir ve prototip oluşturma için hızlı yineleme yapmak istedim. (Javascript + Canvas / SVG başka bir kullanışlı seçenektir ve yakında Flixel / Flashpunk for JS gibi kütüphaneleri göreceğimize eminim).


1

HGE Harika Görünüyor. Parçacık Düzenleyicisi, GUI Düzenleyicisi ve profesyonel programcılar tarafından kullanılıyor.


1

Her zaman GLBasic vardır .

Oldukça yüksek bir dildir ve son zamanlarda mobil desteğini genişletmektedir.

  • 2B ve 3B
  • Ticari olmayanlar için ücretsiz
  • Temel sprite komutları, piksel veya blok çarpışması ile
  • Bir kere yaz ve birçok cihaz ve platforma dağıt (çoğunlukla)
  • Paketleyici üzerinden Box2D desteği var (arama forumları)
  • İşlevli özel veri türleri (sınıfa yakın ancak çok fazla OOP işlevselliği eksik)
  • Birkaç satır kod ile kısa sürede ekranda hareket eden bir sprite alabilir.

1

PixieEngine web tabanlı bir IDE ve oyun geliştirme ortamıdır. Komut dosyası yazmak için CoffeeScript kullanır ve piksel sanatı ve ses efektleri için yerleşik düzenleyiciler sunar.

PixieEngine IDE


1

Benzer bir görevdeydim ve burada belirtilmeyen diğer birkaç araçla karşılaştım:

  • Stencylworks, Flash oyunlarını çok hızlı ve kolay bir şekilde oluşturmak için bir IDE / dev ortamıdır, mevcut modüller için görsel arayüzdür. % 100 ücretsiz, açık kaynak değil gibi görünüyor ve temel avantajları kaygan, kodsuz kodlamayı içeriyor (Gamemaker'ın schitzoid senaryosu / görsel arayüzü gibi değil). Görsel arayüzün sınırları hakkında endişeleniyorum - nesneye yönelik gerçekte ne kadar doğru olduğu belli değil; kesinlikle basit şeyler var; Muhtemelen javascript script editörü orada bir yerlerde, ama henüz görmedim. Özünde işbirlikçi gelişim için düşünülmüş gibi görünüyor (IDE'ye yerleşik sohbet; bir sunucuda barındırılan tüm kaynaklar ve davranışlar, kullanıcı tarafından katkıda bulunuldu). Prototip geliştirme için BÜYÜK olabilir. Ben henüz fazla bir şey yapmadım ama eğitim çok basitti ve işte

Birkaç tane daha garip olanı da denedim.

Alice açık kaynaklı bir 3D oyun / dev ortamıdır - biraz tuhaf görünüyor.

Çocuklara yönelik kolay / sınırlı spektrumda Gamemaker'ın ötesine geçen Kodu, Xbox denetleyicisiyle oyun kurmanıza olanak tanıyor. Microsoft Research'ten ücretsiz

MIT Labs'dan Scratch, çocukları kodlamaya sokmayı amaçlayan ücretsiz ve gerçekten basit bir 2D. Görme engelli. Yine de esnek.

Tekrar tekrar Papert'in LOGO'suna geri dönecek olan Microworlds JR, iddiaya göre logo yazmanıza izin veriyor. Bir güncellemenin yararlı olması gerekiyor, IMO.

Benim için, şimdiye kadar, Stencylworks'e karşı Construct 2'ye iniyor ... yine de Unity'yi bildiğim ve sevdiğim gibi Unity'de iyi bir 2D oyun yapmanın ne kadar kolay olduğunu kontrol edeceğim.


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.