Gim Java dalam satu atau dua hari [ditutup]


9

Kami adalah tiga orang yang akan membuat game sederhana di Jawa sebagai proyek sekolah (Universitas, tahun pertama). Permainan harus berorientasi objek. Kami tidak punya banyak waktu, puncak 10-20 jam . Tidak ada dari kita yang memiliki pengalaman dalam pengembangan game, tetapi kita semua memiliki keterampilan yang adil di Jawa.

Kita bisa memilih game seperti apa, dan di situlah masalahnya. Seberapa tinggi tujuan kita? Ada kompetisi yang terlibat, jadi kami ingin membuat game terbaik di waktu yang kami miliki. Apakah game 3d itu tidak realistis? Haruskah kita menggunakan mesin game / perpustakaan? Fungsi apa yang harus kita hindari?


4
3D bertujuan sedikit terlalu tinggi terlepas dari waktu, mengingat Anda tidak memiliki pengalaman gamedev. ; P
Bebek Komunis

Sayangnya, saya membayangkan bahwa: P
Øyvind

PONG! dayung, bola ada benda sendiri, tambahkan skor. bola menabrak dayung Anda dikalikan dengan -1. jika bola melewati titik dayung tim lain, minta bola untuk pemain lain. atau itu terlalu mudah?>
Spooks

Saya pikir mungkin kita harus bertujuan untuk konsep yang lebih baik, lebih kreatif, meskipun yang mudah dikembangkan ...
Øyvind

1
Bagaimana dengan berbagi permainan Anda dengan kami? :)
ashes999

Jawaban:


23

Hindari 3D , karena Anda perlu tahu cara membuat model 3D atau menemukan yang baik, Anda perlu tahu cara memuat model seperti itu (seringkali tugas epik itu sendiri, sedih), dan cara menggambar mereka di layar (mis. OpenGL atau DirectX membutuhkan banyak pekerjaan untuk mendapatkan sedikit keuntungan, dan bahkan sebuah mesin seperti jMonkeyEngine membutuhkan pengetahuan tentang bagaimana memanfaatkan mesin, bersama dengan pengetahuan dasar 3D). Mem-bling gambar 2D di layar dan memindahkannya jauh lebih mudah daripada berurusan dengan simpul, material, matriks tampilan, transformasi, dll. Saya pikir Anda mengerti maksudnya.

Tetap menggunakan pustaka dan kelas Java bawaan: Graphics2D, ImageIO, pendengar mouse dan keyboard AWT, Canvas, Java Sound API, dan sebagainya. Manfaat bertahan dengan ini daripada menemukan beberapa perpustakaan lain termasuk: Anda sudah mengenal mereka (sampai batas tertentu), Anda tahu mereka sudah teruji dengan baik dan stabil dan secara umum masuk akal, dokumentasi dan sumber daya online berlimpah, dan mereka portabel sehingga Anda tidak perlu khawatir tentang menginstal perpustakaan tambahan dengan perpustakaan asli dan semua itu.

Bangun sedikit cuplikan cuplikan kode sebelumnya. Ini akan mencakup hal-hal seperti memuat gambar, menggambar gambar ke posisi di layar, menskalakan gambar dan efek lainnya, memutar suara, memutar musik latar belakang, mendeteksi tabrakan kotak pembatas, menggambar teks. Juga memiliki aplikasi kerangka yang membuka Bingkai (atau Applet), menambahkan Kanvas ke dalamnya, dan cat kanvas dan metode mengecat ulang harus ditimpa, dan benang harus melingkari metode mengecat kanvas (atau timer menyebutnya). Anda dapat mempelajari hal-hal ini jika Anda mencari-cari Java 2D game programming. Dengan asumsi Anda memiliki akses ke perpustakaan universitas Anda, Anda harus memiliki sejumlah buku permainan Java yang baik yang Anda inginkan; periksalah dan lihat potongan-potongan yang disebutkan di atas, dan lainnya yang saya lewatkan.

Latih kontrol sumber dan pembagian kerja dengan tim Anda sebelumnya.Apakah Anda akan menggunakan Subversi, Git, Mercurial, atau yang lainnya? Apakah komputer semua orang disetel ke versi Java yang sama dan terkini? Buat repositori Anda, komit / dorong beberapa file, pastikan semua orang memiliki repositori yang telah diperiksa dan siap untuk digunakan di sistem Anda. Mungkin melakukan aplikasi 'hello world' dan memastikan semua orang dapat menarik dan memodifikasi dan melakukan itu; dan pastikan Anda tahu cara menangani penggabungan (apakah Anda menghindarinya sepenuhnya dengan komunikasi yang baik atau pemrograman berpasangan, atau Anda tahu cara menggunakan alat gabungan). Atau, jika Anda tidak terbiasa dengan kontrol sumber, pastikan Anda mencari solusi yang berfungsi; apakah itu pemrograman pasangan sementara orang ketiga melakukan seni atau suara, atau sesuatu yang lain, pastikan untuk diatur dari awal atau Anda akan membuang banyak waktu.

Tautan bookmark ke situs web yang menyediakan media gratis. Ada cukup banyak situs jenis ini yang terdaftar dalam pertanyaan lain di sini; situs seperti freesoundsempurna untuk menemukan media yang berguna untuk digunakan dalam gim Anda dengan cepat ketika Anda tidak punya waktu untuk membuatnya dari awal. Tandai situs ini tentu saja, sehingga Anda dapat mengajukan pertanyaan jika Anda terjebak pada sesuatu. Tandai forum seperti forum gamedev.net sehingga Anda dapat mencari jawabannya. Jika Anda memilih untuk menggunakan perpustakaan pihak ketiga, bookmark situs web mereka. Atur bookmark ini ke dalam folder dan ambil sebanyak mungkin, dan pastikan untuk membaginya sehingga Anda bertiga memiliki perpustakaan bookmark yang berguna sama. Tidak perlu banyak waktu untuk berkeliling dan mengumpulkan bookmark ini dan mengaturnya berdasarkan jenis / subjek, tetapi menghemat banyak waktu ketika Anda tidak harus mengingat semua situs web di tengah proyek Anda.

Untuk saran lainnya, lihat jawaban atas pertanyaan saya "Bagaimana mempersiapkan kompetisi pengembangan game?" .


Untuk menjawab sisa pertanyaan Anda ... Saran umum adalah: jangan bertujuan tinggi . Namun, itu bisa sangat bervariasi tergantung pada seberapa siap Anda (yaitu saran saya di atas) dan keterampilan Anda di Jawa. Ini sebagian besar penilaian pribadi berdasarkan sejarah Anda, tetapi karena tidak ada di antara Anda yang memiliki sejarah membuat game (dan karena itu tidak dapat menilai waktu yang diperlukan), bidiklah dengan sangat rendah . Munculkan ide yang sangat mendasar yang dapat dengan mudah diimplementasikan dalam 2D ​​tanpa konsep lanjutan (mis. Hindari tabrakan pixelwise, perhitungan fisika gila, efek partikel, dll.). Tetapi kemudian buat daftar prioritasfitur permainan, sedetail mungkin (misalnya pecah setiap fitur menjadi tugas terpisah sebanyak mungkin). Dengan cara ini, Anda sedapat mungkin menyusuri daftar, dan jika Anda tidak mendapatkan beberapa tugas prioritas rendah, itu seharusnya tidak menjadi masalah besar. Ini harus dilakukan dengan hati-hati (Anda masih membutuhkan permainan fungsional pada akhir waktu, sehingga ada satu set tugas minimum yang perlu dilakukan dan beberapa tugas tergantung pada tugas lain), tetapi secara umum saya pikir ini adalah pendekatan terbaik ketika Anda tidak tahu berapa lama hal akan berlangsung.


Itu saran yang bagus.
Alexander Gessler

1
Poin bagus. Meskipun saya pikir kontrol sumber juga dapat membuat hal-hal lebih rumit untuk pemula (bayangkan seseorang mengacaukan repo). Ketika waktu sangat penting, seseorang seharusnya tidak mulai menggunakan alat baru. Tetapi jika Anda sudah terbiasa dengan VCS maka pasti harus digunakan.
bummzack

4
Saran Ricket untuk membidik rendah dan menggunakan daftar prioritas sangat bagus - saran tersebut tentang meminimalkan risiko dan meningkatkan iterasi. Anda ingin menghindari situasi di mana Anda harus bekerja selama 8 jam sebelum menjalankan apa pun. Jika tidak berhasil atau jika butuh lebih lama dari itu Anda mungkin berakhir dengan ketiadaan. Alih-alih mencoba menjalankan game dalam waktu kurang dari 1 jam dan kemudian menghabiskan sisa 10 jam Anda menambahkan hal-hal, bermain pengujian, memperbaiki. Saat bermain, Anda akan terus menemukan lebih banyak hal untuk ditambahkan.
amitp

@bummzack Setuju! Ini bisa BENAR-BENAR menghalangi, jadi berlatih dan yakin tentang itu adalah kuncinya, tetapi juga bisa sangat luar biasa dan berguna jika digunakan dengan benar.
Ricket

Hal terbaik bagaimana membuat hal-hal bekerja dengan cepat adalah melakukannya dengan cara pemrograman yang ekstrim (lebih baik daripada svns), yang saya maksudkan bahwa seluruh tim duduk bersama di depan satu komputer. Ini bekerja sangat baik dalam tim kecil (2-3 maks). Anda saling mendukung dan masalah diselesaikan lebih cepat - Anda tidak merasa frustrasi.
Notabene

2

Jangan membidik terlalu tinggi. Pilih sesuatu yang Anda minati dan buat sesuatu yang sederhana di sekitar itu. Contoh: Mungkin Anda benar-benar tertarik mempelajari mesin fisik. Mengapa tidak membuat puzzle fisika seperti penghancur totem atau sejenisnya? Cobalah untuk berputar di sekitar elemen inti dan jangan memasukkan hal-hal rumit lainnya seperti AI, rendering / grafik / shader canggih dll.

Fokus pada satu aspek dan cobalah untuk menemukan mekanik-permainan yang sesuai dengan itu. Jika Anda tertarik dengan 3D, gim Anda bisa sesederhana tic-tac-toe, tetapi fokuslah untuk mendapatkan grafik 3D yang bagus di layar.

Jangan mencoba mempelajari terlalu banyak hal baru sekaligus. Manfaatkan kerangka / alat yang ada sebanyak mungkin.

Untuk mengatasinya, berikut adalah beberapa ide untuk permainan "memulai": Apa permainan yang baik untuk "mendapatkan sayap Anda"?

Pembaruan: Karena Anda benar-benar kekurangan waktu, saya akan mengurangi "hal baru untuk dipelajari" ke minimum absolut. Mesin fisika mungkin sudah berlebihan jika Anda tidak pernah menggunakannya sebelumnya. Juga pilih mekanik-gim yang sudah Anda kenal, lebih disukai dengan seperangkat aturan yang didefinisikan dengan baik dan kecil serta jumlah gim yang terbatas.


2

Jika Anda tidak memiliki pengalaman sebelumnya dalam menulis game 3D, saya akan segera membatalkan ide 3D. Alih-alih, fokuslah pada konsep permainan sederhana dan cobalah menerapkannya menggunakan grafik 2D sederhana. Pastikan Anda menerapkan mekanisme permainan terlebih dahulu - jika Anda selesai lebih awal, Anda masih bisa menambahkan efek visual yang canggih.

Tapi gim tanpa gim bukan gim sementara gim tanpa grafis yang memukau masih bisa menyenangkan.

20-30 jam kerja adalah waktu yang sangat sedikit untuk permainan yang bagus, jadi Anda benar - benar perlu merencanakan dan memprioritaskan tugas Anda dengan cermat atau Anda tidak akan pernah mendapatkan hasil yang tepat.


Poin yang bagus memang :)
Øyvind
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.