Halo, saya ingin berbicara tentang bagaimana saya menciptakan game pertama yang relatif serius untuk iOS dan Android.
Latar belakang
Kembali di sekolah menengah, teman saya dan saya sangat pandai dalam pelajaran ilmu komputer, saya suka coding dan memecahkan berbagai masalah menggunakan pemrograman. Selain itu, saya selalu menyukai permainan, dan saya, seperti banyak penggemar yang bermain, tergoda oleh peluang hantu untuk menulis sendiri.
Seperti yang seharusnya, saya telah mengembangkan minat pada bahasa pemrograman lain, dan saya memutuskan untuk "tumbuh" dari Pascal yang terkenal kejam. Pilihan saya jatuh pada Python terkenal, karena saya telah mendengar tentang berbagai aplikasi dan pengembangan yang relatif mudah. Bergerak sedikit dalam membaca literatur yang relevan, untuk latihan saya memecahkan masalah dari
Proyek Euler .
Sebenarnya, selama ini saya ingin mulai melakukan sesuatu yang sangat serius, dan pada tahap tertentu saya merasa bahwa jika tidak sekarang, maka tidak akan pernah.
Ini "serius", seperti yang Anda duga, permainan menjadi.
Setelah menemukan perpustakaan PyGame untuk pelajaran ini, saya mulai bekerja. Untuk mulai dengan, saya memutuskan untuk berlatih sesuatu yang dangkal. Namun Tetris tidak melakukannya, tetapi menyadari, meskipun tidak segera, permainan lama yang bagus "hidup", yang sangat ia sukai.
Hidup

Kemudian mereka bergabung dengan kreasi saya: sebuah DX-Ball yang hampir lengkap, yang saya mainkan dengan minat pada komputer paman saya di tengah nol, salinan Supaplex saat masih bayi (nostalgia yang sama) dan, dalam keadaan yang sama, sebuah arcade yang terinspirasi oleh The Binding yang relatif modern. dari Ishak.
Dx ball '

Ishak

Awal siswa dan impuls pertama untuk membuat proyek mereka sendiri
Seiring waktu, saya menyadari sesuatu yang tidak menyenangkan untuk diri saya sendiri: Saya tidak menyelesaikan apa pun dari proyek, meskipun pada awalnya ada lebih dari cukup antusiasme. Begitulah yang terjadi: semakin lama saya kembali ke perkembangan lama, terkadang dengan antusias mengambil yang baru, tetapi hasilnya adalah satu.
Kemudian, periode paling menakutkan dalam kehidupan setiap siswa dimulai: ujian. Pemrograman telah memudar ke latar belakang, tetapi setelah lulus ujian dan memasuki "Elektronik dan Nanoelektronika" di Politeknik St. Petersburg, saya kembali ke pemrograman. Selain itu, kehidupan siswa sedikit mengguncang saya, mengajari saya tanggung jawab, itulah sebabnya saya memutuskan bahwa mulai sekarang saya akan menyelesaikan semua proyek saya.
Jadi saya memutuskan untuk menulis sesuatu untuk Android. Semuanya berhenti dengan Python yang sama, karena itu adalah satu-satunya hal yang entah bagaimana saya ketahui dan apa yang bisa saya pegang teguh. Mulai belajar kerangka kerja Kivy. Sayangnya, sebanyak yang saya tidak suka, Python + Kivy bukan pilihan terbaik untuk pengembangan untuk android, dan saya menyadari bahwa saya tidak bisa pergi jauh ke arah ini.
Akibatnya, setelah menghabiskan banyak waktu pada aplikasi sederhana seperti tes dengan kesimpulan beberapa opsi untuk hasil akhir, saya masih membawa proyek sederhana ini sampai akhir dan bahkan mengunggahnya ke GooglePlay. Kemudian, di tengah popularitas pertempuran dua pertarungan rap yang terkenal, teman saya menawarkan untuk melakukan tes pada topik ini dan menyiapkan pertanyaan untuknya. Jadi proyek kami yang pertama selesai muncul, dan sebuah tim yang terdiri dari dua orang muncul, mengambil nama "Aspid Dynamics".

Sebagian besar waktu dihabiskan untuk mengenal Kivy dan perpustakaan KivyMD lain yang menyediakan elemen Desain Bahan Google. Sisa waktu dihabiskan untuk menggambar ikon dan banyak desain ulang (Ternyata pada akhirnya, tidak terlalu, tetapi bisa lebih buruk). Karena saya tidak bekerja sendirian, itu membuat proses pengembangan sedikit lebih mudah dan memotivasi saya.
Awal yang baru
Hasilnya tidak seperti yang saya inginkan, tetapi saya memutuskan untuk pindah. Saya melihat dengan dekat pada alat pengembangan baru bagi saya, yang merupakan mesin Unity yang terkenal. Pilihan arah pengembangan lebih lanjut akhirnya dibuat, itu tetap (hanya sesuatu) untuk berkenalan dengan C # dan mengeksplorasi kemampuan Unity itu sendiri. Dengan demikian, kami semakin dekat dengan peristiwa yang terjadi baru-baru ini.
Seperti sebelumnya, saya memutuskan untuk tidak segera menangani sesuatu yang tidak mungkin. Idenya sederhana: untuk membuat permainan di mana orang akan menulis kata-kata yang cocok untuk kondisi yang telah ditentukan. Satu contoh sederhana: "Masukkan kata-kata yang mengandung tiga huruf" o "", setelah itu Anda masukkan, misalnya, "bel". Pada awalnya, gagasan itu tidak tampak baru, tetapi setelah memeriksa Play Market, saya tidak menemukan permainan seperti itu, yang akhirnya meyakinkan saya akan keberhasilan gagasan itu.
Proyek βAhli Kataβ
Setelah memilih nama yang sepele, tetapi menarik, "Pakar Kata" untuk permainan, saya mulai mempertimbangkan dengan hati-hati proses pengembangannya. Implementasinya tampak tidak rumit, setidaknya setelah analisis yang dangkal. Mungkin memang demikian, jika kita hanya memformalkan mekanika dasar, tetapi dengan pertimbangan terperinci, fungsinya telah berulang kali tumbuh dan telah diperluas secara signifikan.
Setelah menyelesaikan deskripsi proyek, saya dengan antusias mulai mengimplementasikan poin demi poin. Gagasan utama benar-benar menjadi kenyataan dengan cukup cepat: kemampuan untuk membuat level berdasarkan beberapa templat telah ditambahkan.
Template adalah semacam dasar untuk beberapa kriteria yang harus dipenuhi oleh kata, di antaranya: awal kata pada "substring", yaitu huruf atau urutan huruf, isi "substring" dalam kata, isi N huruf, kemerataan / keanehan jumlah huruf dalam kata, dll.
Selanjutnya, kata-kata yang dimasukkan oleh pemain diperiksa untuk kesesuaian dengan templat dan keberadaan dalam kamus. Poin diberikan tergantung pada frekuensi kata, dan saya mulai mengatur level kelulusan tergantung pada jumlah poin yang saya terima dalam 5 menit. Dalam level standar permainan, seseorang harus memasukkan jumlah kata sebanyak mungkin agar dapat melewati level berikut.
Pakar Kata

Masalah baru dan solusi tak terduga
Semuanya akan baik-baik saja, tetapi ternyata cukup sulit untuk membuat banyak level berbeda satu sama lain. Sekali lagi, teman saya berusaha untuk membantu saya, dan pada saat saya berusia empat puluhan, masalahnya bukan hanya karena level-levelnya sulit dipikirkan, tetapi juga, karena beberapa fitur linguistik dari persepsi manusia, kita juga sering memilih huruf-huruf tertentu dan pola, keras kepala mengabaikan orang lain.
Ini diperhatikan secara tepat waktu, dan upaya dilakukan untuk memperkuat kendali atas diri saya, tetapi tidak memberikan hasil yang diinginkan, jadi saya harus menghitung dan mencatat frekuensi untuk penggunaan huruf dan pola di tingkat kami. Setelah itu, menjadi lebih mudah untuk mengurus diri sendiri, tetapi pada akhirnya hanya 60 level yang dilakukan.
Karena kenyataan bahwa kebutuhan untuk menemukan level menghambat pengembangan, serta karena masalah yang dijelaskan di atas, saya memutuskan untuk mengimplementasikan generator level yang akan membuat tugas yang waras berdasarkan template kami. Saya tidak dapat menemukan korelasi antara jumlah kata yang sesuai dengan penugasan, frekuensi mereka dan berapa banyak poin yang diperoleh (Ini berarti bahwa level harus seimbang juga - secara manual).
Rupanya, ini disebabkan oleh kenyataan bahwa kata-kata lebih mudah untuk beberapa kondisi, walaupun jumlahnya lebih sedikit. Sebagai contoh, dalam kesadaran kata-kata cukup sederhana, dengan kondisi mulai pada beberapa substring, misalnya, ambil kata-kata pada 'ba'. Seolah-olah kita mengatakan kepada diri kita sendiri kondisi awal ini "ba", dan otak dengan mudah melengkapinya dengan banyak kata: "tank", "bank", "pisang", dll.
Tetapi jika kondisinya mengandung tidak lebih dari 4 vokal dan tepat 8 huruf, maka walaupun ada 6 kali lebih banyak kata-kata seperti itu, kecepatan pemilihan jelas akan berkurang. Pada beberapa templat, kami menemukan satu kata dan menemukan diri kami di seluruh kluster (misalnya: berakhir dengan 'cemara', jika kata guru muncul di benak kami, kami akan melihat bahwa banyak profesi berakhir seperti ini: 'pembangun', 'pengemudi' dan dll.) Jika tidak ada koneksi, tidak ada yang akan menyatukan kata-kata ini, maka dengan pencarian sederhana di kepala kita, kita akan menebak lebih sedikit.
Poles, mode baru, sentuhan akhir
Generator yang dibuat benar-benar memfasilitasi penciptaan level dan, secara bertahap meningkatkan jumlah level, teman saya dan saya sudah mencapai ratusan. Itu terinspirasi oleh keberhasilan generator yang terlibat dalam menciptakan level yang kami putuskan untuk memperkenalkan mode permainan baru.
Itu adalah "bertahan hidup," di mana Anda perlu memasukkan kata-kata sampai penghitung waktu berakhir. Perbedaan dari mode klasik adalah kenyataan bahwa di sini pemain dihadapkan dengan tugas memasukkan kata dalam N detik sesuai dengan kondisi yang diberikan. Setelah pemenuhan syarat berhasil, tugas baru dihasilkan, dan timer diperpanjang.
Kemudian, kami memutuskan bahwa untuk terus mempertahankan konten, kami perlu menambahkan multi-pemain. Tentu saja, jauh lebih menarik untuk mengukur kosakata Anda dengan seorang teman saat istirahat, atau bermain dengan orang asing di internet. Mode multiplayer "klasik" menyiratkan kompetisi dalam jumlah poin yang diterima selama waktu tertentu. Cukup lama membawa-bawa implementasi game melalui jaringan, saya masih menemukan dan menyelesaikan 2 mode multiplayer yang sesuai.
Banyak masalah dalam proses pengembangan membawa kami desain. Tangkapan utama adalah bahwa saya sendiri, jauh dari menjadi seorang desainer, teman saya juga tidak memiliki keterampilan yang diperlukan, dan saya ingin membuat gambar yang memadai. Seorang kenalan ketiga setuju untuk membantu saya, tetapi setelah beberapa konsep yang tidak berakhir, ia tidak dapat melanjutkan.
Sebagai hasilnya, melalui pemrosesan berulang dan pengumpulan umpan balik dari teman-teman, saya sendiri mengembangkan versi final desain.
Rilis game, rencana untuk masa depan
Awalnya, Pakar Kata seharusnya memasuki Play Market hanya karena anggaran terbatas, tetapi teman saya membantu saya mendapatkan $ 99 yang diperlukan untuk rilis di AppStore.
Kami berencana untuk menambah dan memperbarui game. Level ekstra, pencapaian, peringkat pemain, dan banyak lagi. Mungkin kita akan membuat lokalisasi berbahasa Inggris, yang sedikit mahal dalam konteks game ini.
Terima kasih banyak atas perhatian Anda kepada semua orang yang membaca posting panjang ini.
Hormat kami
Tim Dynamics Aspid.