Drawn Story: pengenalan gambar sebagai dasar mekanika game

Tentang apa game ini?
Secara singkat, game Drawn Story dapat digambarkan sebagai sebuah pencarian di mana, alih-alih mencari objek yang diperlukan untuk bergerak di sepanjang plot, Anda perlu menggambar objek ini sendiri.Ini adalah game tentang dunia yang digambar di selembar kertas. Anda mengontrol dua karakter: salah satu pria kecil yang hidup di dunia ini, dan seorang seniman yang melihat selembar kertas dari suatu tempat di atas. Dalam peran seorang seniman, Anda menggambar benda-benda yang kemudian dapat diambil dan digunakan oleh penduduk dunia ini.Misalnya, Anda dapat menggambar gergaji dan memotong pohon dengannya untuk membangun rakit. Atau segera menggambar perahu, dan kemudian kebutuhan akan rakit akan hilang. Anda dapat menggambar kunci untuk membuka pintu yang terkunci, atau menggambar kapak untuk mendobrak pintu. Keindahannya adalah bahwa dalam peran artis Anda sendiri memilih bagaimana berinteraksi dengan dunia. Begini tampilannya:Tujuan dari permainan ini adalah untuk membuat objek yang cocok untuk membantu seseorang yang hidup di dunia yang dilukis menghadapi semua masalah sehari-harinya: pergi ke suatu tempat atau, sebaliknya, melarikan diri, mengalahkan musuh atau berteman dengan mereka, menyelamatkan sang putri atau menemukan harta. Tidak perlu menjadi seorang seniman nyata untuk permainan, dan sketsa kasar benda akan dilakukan. Yang utama adalah imajinasi dan akal sehat Anda.Bagaimana semuanya dimulai
Selama beberapa tahun terakhir, saya telah mengembangkan game ini dalam mode pasif, menggabungkannya dengan pekerjaan utama seorang programmer. Dan selama beberapa bulan sekarang, saya berhenti dan mulai mencurahkan lebih banyak waktu untuk mengembangkan game.Gagasan untuk membuat game seperti itu muncul secara bertahap. Setelah saya berpartisipasi dalam pembuatan layanan pencarian sketsa untuk gambar, saya hanya berurusan dengan masalah pengenalan gambar. Layanan itu tidak sukses. Tetapi kemudian kami perhatikan bahwa banyak pengguna pergi ke situs hanya untuk bermain-main dengan teknologi - menggambar sesuatu dan melihat apa yang dapat mereka temukan. Kemudian timbul pemikiran tentang membuat komponen proses yang menghibur menjadi dasar.Saya juga terinspirasi oleh permainan menawan Crayon Physics Deluxe. Dalam arti tertentu, proyek saya adalah pengembangan ide-idenya.Dan sebagai seorang anak, saya suka menggambar dan sering duduk di atas selembar kertas kosong, belum membayangkan apa yang akan saya gambarkan. Dia datang dengan komplotan di sepanjang jalan: di sini ada benteng, di sini ada pembela, di sini ada lelaki kecil lainnya menyerbunya; di sini mereka membuat pelanggaran di gerbang, dan di sini mereka meletakkan tangga ke dinding, para pembela perlu entah bagaimana mengusir semua serangan ini ... Menarik setelah beberapa saat untuk melihat gambar seperti itu dan memilah plot lagi.Secara bertahap, semua prasyarat ini terbentuk dalam keinginan untuk membuat permainan tentang menggambar dengan mekanik yang tidak biasa.Rincian teknis
Kerangka kerja
Gim ini dikembangkan dalam C ++ menggunakan kerangka Qt untuk OS desktop utama: Windows, Mac, Linux. Ada juga prospek suatu hari nanti membuat versi untuk tablet. Mungkin pilihan beberapa mesin permainan khusus (Unity, misalnya) akan lebih rasional, tetapi ketika saya baru saja memulai pengembangan, saya ingin memahami semua nuansa membuat game sendiri: output grafis, timer, animasi, dll. Selain itu, saya tidak yakin dengan kemungkinan menyesuaikan solusi yang sudah jadi untuk mekanik game non-standar. Jadi saya memilih Qt berdasarkan preferensi pribadi saya. Meskipun tidak diasah untuk membuat game, itu adalah kerangka kerja yang bijaksana dan dikembangkan dengan baik dengan mekanisme yang nyaman untuk slot dan sinyal. Selain itu, ini memungkinkan Anda untuk menggunakan akselerasi perangkat keras grafik hampir secara transparan, tanpa menggunakan panggilan langsung ke perpustakaan OpenGL.Pengenalan gambar
Untuk mengenali objek yang digambar pemain, pustaka dan algoritma yang ditulis sendiri digunakan. Secara umum, skemanya adalah sebagai berikut. Ada basis gambar referensi dari berbagai objek (pedang, perisai, gergaji, perahu, kunci, dll.), Untuk setiap objek beberapa gambar berbeda dimungkinkan (misalnya, perisai dapat digambarkan dengan cara yang sangat berbeda) dan beberapa sudut rotasi di mana mereka akan diakui. Pada prototipe awal, benda-benda tidak dikenali ketika orang melukisnya berbalik 45 derajat, yang membuat para pemain yang marah mencoba menarik pedang pria kecil itu langsung ke tangannya. Algoritma mengidentifikasi karakteristik tertentu dari gambar, membandingkannya dengan sampel dari database dan menemukan yang paling cocok. Dengan demikian, adalah mungkin untuk menentukan jenis objek dan ke arah mana ia diputar.Kemudian dalam permainan, model fisik dari objek yang ditarik dibuat (untuk fisika, terima kasih khusus kepada perpustakaanBox2D !) Dan model perilakunya. Berkat yang terakhir, akan mungkin untuk melambai dengan objek yang diidentifikasi, misalnya, sebagai pedang, dan memantulkan pukulan dengan objek yang diidentifikasi sebagai perisai. Secara total, saat ini dalam gim Anda dapat membuat sekitar 40 item berbeda.Tentu saja, algoritma pengenalannya tidak sempurna. Saat ini, menurut perkiraan saya, akurasi pengenalan adalah 83% - ini adalah persentase objek yang diklasifikasikan dengan benar. Ini bukan angka yang saya akan benar-benar puas, jadi saya kembali bekerja secara berkala untuk meningkatkan akurasi algoritma. Jadi, dalam iterasi terakhir, dimungkinkan untuk meningkatkan akurasi sekitar 10% karena penggunaan fungsi kesamaan gambar lainnya. Secara umum, dari sudut pandang pemain, objek yang diidentifikasi secara salah jauh dari selalu menjadi sumber frustrasi. Terkadang ini hanyalah sumber kesenangan tambahan dalam gim.Grafik
Awalnya, saya berencana untuk membuat grafik dalam permainan sangat primitif, sehingga sesuai dengan sketsa hitam dan putih yang digambar pemain. Itu terlihat seperti ini:
Tapi saya segera menyadari bahwa itu terlihat sangat buruk, dan secara bertahap bereksperimen dan meningkatkan hasilnya, saya sampai pada gambar yang jelas, mungkin bergaya seperti gambar guas:
Karakter permainan itu sendiri juga mengalami peningkatan. Itu:
Itu menjadi:
Namun demikian, tingkat grafis tetap sangat amatir - setelah semua, artis dari saya tidak terlalu. Sekarang saya mulai berpikir apakah akan menarik desainer profesional ke proyek.Status saat ini
Versi demo permainan dengan 5 level (dan satu lagi "rahasia") sekarang siap. Anda dapat mengunduhnya di situs web permainan: drawstory.com/Downloads.html (Windows, Mac, Linux 64-bit)Saya juga baru-baru ini meluncurkan kampanye tentang Steam Greenlight. Jika Anda menyukai game dan ingin berkontribusi untuk pengembangan lebih lanjut, Anda dapat memberikan suara di halaman ini: steamcommunity.com/sharedfiles/filedetails/?id=568322436Pekerjaan utama dalam menciptakan mesin game telah dilakukan, di masa mendatang rencana menambah level baru dan mempersulit yang sudah ada.Source: https://habr.com/ru/post/id387821/
All Articles