Saya menanyakan hal ini sebelumnya di utas ini di stackoverflow.com. Salah satu komentar awal mengarahkan saya di sini ke gamedev.stackexchange.com, jadi saya melakukan reposting di sini.
Mencari pertanyaan terkait Saya menemukan sejumlah pertanyaan yang sangat spesifik, tetapi saya khawatir spesifikasinya terbukti tidak berhasil bagi saya dan setelah 4 jam di Google saya tidak lebih dekat dari yang saya mulai, jadi saya merasa menjangkau komunitas mungkin dalam urutan.
Pertama, tujuan saya: Saya belum pernah membuat permainan sebelumnya, meskipun saya sudah bingung tentang kemungkinan beberapa kali. Saya memutuskan untuk akhirnya duduk dan mulai belajar cara membuat kode game, menggunakan mesin game, dll. Semua sehingga suatu hari (mudah-mudahan segera) saya akan dapat membuat game fungsional (walaupun sederhana). Saya dapat mulai menambahkan kompleksitas nanti, untuk saat ini saya akan senang memiliki kamera yang dikendalikan keyboard yang bergerak di dunia 3D tanpa interaksi di luar itu.
Latar belakang saya: Saya telah bekerja dalam beberapa bahasa pemrograman BEBERAPA mulai dari PHP hingga C ++ ke Java ke ASM. Saya tidak takut dengan tantangan yang datang dengan mempelajari sintaks baru atau batasan yang melekat dalam bahasa baru. Semua pengalaman pemrograman saya di masa lalu, bagaimanapun, telah benar-benar non-grafis dan biasanya dengan sedikit atau interaksi yang sangat sederhana selama eksekusi. Saya telah membuat algoritma yang luas dan brilian untuk memecahkan masalah logis dan matematis serta masalah grafik. Namun dalam setiap kasus input didefinisikan dalam file, melewati formulir formulir HTML, atau diketik ke konsol. Interaksi real-time dengan pengguna adalah sesuatu yang saya tidak punya pengalaman.
Pertanyaan saya: Di mana saya harus mulai mencoba membuat game? Lebih baik lagi- di mana saya harus mulai mencoba menciptakan lingkungan 3D yang dapat dilewati papan tombol? Dalam pencarian online, saya menemukan beberapa sumber daya yang menghubungkan mesin game, mesin grafis, dan mesin fisika. Berikut ini ringkasan singkat pengalaman saya dengan beberapa mesin yang saya coba:
Unreal SDK: Video tutorial mengasumsikan bahwa Anda sudah memiliki pengetahuan mendalam tentang pemodelan 3D, mesin grafis, animasi, dll. Halaman "Persiapan" tidak menawarkan penjelasan formal tentang pengembangan game, tetapi melompat ke bagaimana Unreal dapat merampingkan proses yang diasumsikan Anda. sudah terbiasa. Setelah mengunduh SDK dan meluncurkannya untuk melihat apakah alat itu seintuitif yang mereka klaim, saya disambut dengan sekitar 60 tombol dan kekosongan kosong untuk pemodelan 3D saya. Mengklik "tambahkan volume" (untuk mencoba menambah kubus dasar) saya bertemu dengan menu 30 pilihan. Karena panik, saya menutup editor.
Crystal Space: Situs web ini kelihatannya agak informatif, menjelaskan bahwa Crystal Space hanya untuk grafik dan perangkat lunak pendampingnya, CEL, menyediakan logika entitas untuk membuat game. Sebuah game demo disediakan, yang dibangun menggunakan "CELStart", alat sederhana mereka untuk orang-orang yang tidak memiliki pengetahuan pemrograman game. Saya meluncurkan game untuk melihat apa yang mungkin ingin saya ciptakan. Membeku beberapa kali, menunya buggy, ada ribuan gangguan grafis, musuh tidak merespons kerusakan, dan ketika saya menutup permainan itu terkunci. Menyerahkan mesin itu.
IrrLicht: Tutorial ini mengasumsikan saya memiliki Visual Studio 6.0 (Saya punya Visual Studio 2010). Mengikuti instruksi mereka, saya tidak dapat mengimpor perpustakaan dengan benar ke Visual Studio dan tidak dapat memanggil salah satu fungsi yang mereka terus gunakan. Menyalin file header, file kelas, dan DLL secara manual ke folder proyek saya - proyek gagal dikompilasi dengan benar.
Jelas saya bukan awal yang baik dan saya akan berputar-putar. Bisakah seseorang mengarahkan saya ke arah yang benar? Haruskah saya mulai dengan mengunduh program seperti Blender dan mempelajari pemodelan 3D, atau haruskah saya belajar cara menggunakan mesin grafis? Haruskah saya mencari mesin permainan yang inklusif, atau lebih baik mencoba dan membuat kode logika permainan saya sendiri? Jika ada yang benar-benar membuat game sendiri, saya lebih suka mendengar bagaimana mereka memulai permainan mereka.
Juga mengambil kelas di sekolah saya bukanlah pilihan. Tidak ada yang ditawarkan.
Jawaban:
Saya telah mengajukan pertanyaan seperti itu ketika saya bergabung dengan GD. Berikut adalah beberapa tautan yang mungkin menarik bagi Anda yang saya harap akan memandu Anda menuju tujuan Anda.
Singkatnya, saya akan pergi
XNA Game Studio
untuk menguasai pengembangan game. Kemudian, bergerak maju ke apa yang ingin Anda capai sebagai ilmu / teknologi.XNA
mengajari saya tentang bekerja dengan sprite, dan memungkinkan saya untuk menerapkan beberapa pengetahuan saya sejak awal kurva belajar saya sehingga saya bisa mendapatkan pemahaman yang cukup cepat untuk memahami bagaimana saya harus merancang permainan saya untuk menggunakan kelas sambil bekerja dengan injeksi ketergantungan dan sebagainya. Jadi, saya membuat Anda tidak menunggu lagi.Mengapa XNA akan Anda tanyakan? Hanya karena latar belakang Java Anda. XNA menggunakan C # yang mirip dengan Java pada beberapa cara, dan juga kerangka kerja sederhana untuk menggunakan abstrak dari Game Loop dan hal-hal lain sehingga Anda dapat berkonsentrasi pada apa yang penting.
Saya benar-benar berharap ini akan membantu Anda memulai. =)
sumber
Game1
kelas saya digunakan sebagai pengontrol permainan, yang menurut saya adalah kelas yang akan mengontrol dan memberi tahu kelas lain apa yang harus dilakukan, dll. Saya menjelaskan sedikit aspek ini tautan # 4 dan # 5.Anda dapat mencoba Unity 3D , karena
(Penafian: Saya sama sekali tidak terkait dengan pembuat Unity, saya hanya menggunakannya sendiri dan menemukan itu alat yang hebat untuk mempelajari dasar-dasarnya).
Tapi ya - Anda mengatur diri Anda untuk beberapa tugas. Saya sekarang di semester 6 saya belajar desain game, dan saya masih merasa seperti tidak tergores lebih dari permukaan. Tidak heran industri memiliki spesialis untuk hampir setiap aspek dari proses pembuatan game.
Sunting: Ada komentar tentang Unity yang dilihat sebagai bukan mesin permainan yang "tepat", yang bisa disalahpahami seperti yang saya katakan - karena itu memunculkan komentar di bawah ini. Bukan maksud saya untuk menyarankan bahwa Unity tidak dapat digunakan untuk melakukan desain game yang tepat, sebaliknya. Saya menggunakannya sendiri, dan saya menyukainya. ;)
sumber
Nah jika Anda memiliki masalah dengan irrlicht, Anda juga harus mencoba Ogre3D; itu tidak mudah, tetapi mungkin bekerja lebih baik jika Anda meluangkan waktu ke dalamnya. Hal penting yang harus Anda pahami adalah apa itu framelistener, cara mendapatkan waktu sejak frame terakhir ditampilkan, dan itu cukup banyak satu-satunya hal yang harus Anda pahami jika Anda ingin membuat aplikasi ini yang sedang Anda bicarakan.
Saya juga mengalami beberapa kesulitan dengan irrlicht, tutorialnya tidak terlalu terkini, tetapi Anda harus mencoba sampelnya!
Saya juga banyak berlari di lingkaran di awal, bermain-main dengan panda3d dan hal-hal lain seperti pygame dll. Cobalah untuk fokus pada beberapa ide permainan dan menerapkan satu hal pada satu waktu.
Dan cobalah untuk mengingat beberapa matrik matematika, itu akan ada gunanya dalam 3D!
sumber
Saya baru saja memulai pengejaran yang sama seperti Anda. Saya bertemu dengan mesin java murni yang disebut jMonkeyEngine yang telah menuntun saya melalui serangkaian tutorial yang fantastis. Saya tidak tahu apakah itu benar-benar menjelaskan desain game ke tingkat yang luas tetapi itu membantu Anda memulai di bagian grafis.
Ini menyarankan / tautan ke alat-alat yang mungkin Anda gunakan untuk pemodelan dan memiliki contoh-contoh yang dapat disalin dan ditempel dengan baik untuk membantu Anda dengan meletakkan kotak di layar untuk menyiapkan mesin fisika.
Pasti layak dibaca - saya punya ide bagus tentang apa yang saya lakukan setelah hanya beberapa jam.
sumber
Anda harus benar-benar mencoba Flixel http://flixel.org/ Saya membuat game "demo" pertama saya menggunakan flixel. Komunitas yang bagus, tutorial yang bagus.
Ini bukan 3D tetapi memiliki banyak fitur bagus yang membuat langkah pertama Anda ke dalam lingkungan pemrograman game mudah.
Sedemikian rupa: Menampilkan ribuan objek bergerak
Tabrakan dasar antar objek
Mengelompokkan objek bersama-sama untuk kesederhanaan
Menghasilkan dan memancarkan partikel dengan mudah
Membuat level game menggunakan tilemaps
Tampilan teks, simpan game, gulir
input mouse & keyboard Input
matematika & utilitas warna
Dan gratis untuk penggunaan komersial, yang luar biasa.
sumber
Jika Anda belum pernah bekerja dengan grafik sama sekali. Sebelumnya, pelajari saja open gl atau direct x adalah awal. Saya memprogram game pertama saya dengan cara itu. Engine perusahaan kami ada di rumah dan sebagian besar sistem mendukung gl terbuka dalam beberapa bentuk. Saya belajar sambil mencari kode yang ditulis sebelum saya mulai bekerja. Anda mungkin ingin melihat beberapa proyek sumber terbuka untuk melihat bagaimana struktur game diatur dan mulai memodifikasi mereka sampai Anda merasa nyaman memulai hal Anda sendiri. Saya juga menyarankan "Game coding complete" sebagai referensi yang bagus untuk semua bagian kecil dari pemrograman game yang tidak Anda sadari, seperti struktur file yang tepat dan manajemen sumber daya.
sumber
Coba Sumber Mesin . Sangat mudah untuk mengembangkan game di dalamnya dan Anda bisa mendapatkan platform distribusi (Steam) dan menjual game Anda secara gratis jika Anda menandatangani perjanjian dengan Valve Corportaion.
sumber
Saya akan merekomendasikan memulai dengan game flash, karena Anda benar-benar memiliki semua yang Anda butuhkan dalam satu paket untuk membuat game sederhana. Ada banyak blog dengan penelusuran, misalnya Emanuele Feronato . Dia bahkan memiliki buku dengan 10 game lengkap atau lebih.
Saya telah menggunakan FlashDevelop, yang cukup untuk pengembangan.
"Menciptakan Asteroid Flash Game" karya Chris Moeller adalah contoh yang sangat bagus, dengan pendekatan langkah demi langkah lengkap menggunakan pengembangan flash.
Untuk game berbasis Tile, ada tutorial yang sangat bagus di Ironcoding .
Berbekal semua itu, rekomendasi saya adalah untuk menemukan tempat di mana ada tantangan video game, dengan komunitas orang membangun game. Buat satu video game sebulan, dengan fokus pada sesuatu yang kecil yang bisa Anda selesaikan, poles, dan sajikan sebelum melanjutkan ke proyek Anda berikutnya. Saya berpartisipasi dalam tantangan gim video bulanan di sini .
Pertahankan ukurannya kecil agar Anda bisa menyelesaikannya dan melepaskannya.
sumber