Untuk mengumpulkan tim impian, dalam satu tarikan nafas untuk menghancurkan permainan karya yang akan meledakkan bagian atas. Atau, sebagai seorang jenius yang sepadan, untuk membangun dan melepaskan ke dunia fenomena-permainan di malam hari, permainan adalah magnet bagi uang dan ketenaran. Ternyata di ruang merokok dan di berbagai pertemuan IT, fantasi gelap seperti itu menyiksa tidak hanya siswa yang lebih muda, tetapi juga paman yang terhormat. Lebih sulit bagi mereka untuk mengakuinya.
Bagaimana menjadi pengembang yang jalur kariernya jauh dari pengembang game seperti Hobbiton dari Gerbang Hitam? Mengangkat obsesi dan akhirnya menyelesaikan perpustakaan yang kelihatan begitu mewah di resume. Tetapi jika Anda mengubur impian Anda sendiri - bukan jalan Anda, selamat datang di kucing. Anda akan menemukan kisah jujur ββtentang bagaimana Tendangan dari dunia TI dipraktikkan di depan cermin dan memar penuh. Sejarah permainan, dari garis besar hingga rilis.

Dari pola pikir yang tidak jelas hingga konsep yang sudah jadi
Dalam perkiraan pertama, rencananya adalah sebagai berikut: dalam waktu minimum untuk melewati siklus pengembangan game, tahap terakhir di antaranya adalah rilis rilis penuh.
Batas waktu yang masuk akal dan kebutuhan untuk menerbitkan game membantu menghindari jebakan tipikal yang menunggu noobs di game dev: mengejar gambar "game impian"! Lebih sering daripada tidak, konsep "ideal", ketika dikonkretkan, berubah menjadi proyek di luar jangkauan tim indie. Gagasan itu menjadi ketidaksempurnaan, yang cepat atau lambat akan disembunyikan dengan malu-malu "di meja".
Untuk menghindari kegagalan memalukan dengan pengembangan simulator kapal selam atau penembak 3D online, lebih baik untuk menjeda dan merilis game sederhana. Omong-omong, kesederhanaan bukan berarti arcade kata-kata primitif, klon ular terpotong, dan variasi kerajinan tangan lain yang tidak dapat dimainkan dan tidak asli.
Pertanian Empat Bertani dengan Pelayan, Tanaman vs. Hamster ... Apa ide eksotis untuk dipilih sebagai bola percobaan? Mungkin sesuatu tentang bola. Dan karena ini adalah pancake pertama, biarkan gim ini datar, dalam 2D. Moto dari setiap kejadian yang meragukan kurang masuk akal, langsung ke intinya. Oleh karena itu, ide yang relatif waras pertama diperbaiki. Jadi, sketsa campuran liar biliar dan hoki udara di lingkungan peradaban kuno:
Konsep permainanIni adalah pengaturan bola (zeng) di tengah pertandingan. Pemain membidik seekor kucing zeng di buaya zeng untuk memukulnya di salah satu dari enam kantong dan melihat efek khusus yang kuat dari ledakan itu. Yang pertama merobohkan semua zenges musuh dari lapangan adalah Etsvatsephala (orang hebat). Oh ya Pengaturan peradaban kuno masih di belakang layar.
Tepung pilihan: platform target dan toolkit
Setelah konsep permainan diuraikan secara umum, tidak sulit untuk menentukan platform dan alat.
Melihat pasar PC mengancam masalah dengan layanan distribusi online. Ambil setidaknya sistem
Steam Direct untuk dipublikasikan di toko Steam yang populer. Untuk penambahan setiap produk,
pajak sekitar 6.000 rubel dipungut, dan sejak saat pembayaran hingga publikasi harus satu bulan bagi karyawan Valve untuk "memastikan mereka berurusan". Moderasi permainan sebelum rilis membutuhkan lima hari lagi.
Kolaborasi indie igrodela dengan GOG.com, raksasa distribusi digital lainnya, dimulai dengan mengisi
kuesioner tentang permainan. Butuh beberapa waktu agar gim dipertimbangkan oleh toko, dan risiko penolakan untuk menerbitkan cukup tinggi: gim tersebut mungkin tidak terlihat cukup unik, tidak sesuai, atau tidak sesuai dengan kriteria lain ...
Akal sehat menyatakan bahwa masuk akal untuk menghubungi monster seperti Steam atau GOG.com jika Anda memiliki produk siap pakai (atau hampir siap) dengan kualitas yang sesuai. Tetapi rilis game untuk pemirsa seluler adalah pilihan yang lebih cepat dan lebih terjangkau. Tentu saja, saya mengisyaratkan Android: pembayaran satu kali sebesar
$ 25 untuk mengaktifkan akun pengembang dan akses ke Google Play Developer Console lebih murah daripada
$ 99 tahunan untuk celengan Apple untuk penerbitan di Apple Store. Saya memiliki akun pengembang Google Play sejak dahulu kala, dan ini memberi skala timbangan yang mendukung Android.
Sedangkan untuk Android, pemberani, memutar jalur pengembangan yang licin untuk platform ini, sering kali menemukan diri mereka di persimpangan: apakah akan membuat game di Canvas, mempelajari OpenGL API, atau berurusan dengan mesin game yang lengkap. Bagi saya, bahkan tidak ada pilihan: itu jauh lebih menarik untuk membawa mouse di mesin GUI yang indah daripada menghabiskan malam di debugger dan menyelidiki mengapa adegan itu tidak skala, itu membeku.
Jelas, itu perlu untuk memilih mesin yang memenuhi persyaratan:
- Kemampuan untuk port game untuk dirilis di bawah Android
- Gratis
- Ambang entri rendah
- Kecepatan Prototyping
- Dokumentasi segar, jelas, atau komunitas aktif
Setelah beberapa pencarian, tiga mesin membangkitkan minat: Cocos2D, Unreal Engine, dan Unity. Cocos2D mengesankan dengan ringan dan C ++ sebagai bahasa pengembangan, tetapi menulis game di atasnya tidak menjanjikan untuk cepat. Pilihan yang sulit antara Unreal Engine dan Unity berakhir dengan kemenangan Unity: pada kenalan pertama, sepertinya lebih mudah bagi seorang pemula untuk memahami mesin ini. Apa yang layak setidaknya
tutorial online yang chic untuk membuat game 2D!
Untuk pengembang indie, Unity tersedia di bawah paket tarif Pribadi, yaitu gratis. Perusahaan yang omset tahunannya atau jumlah dana yang dihimpun melebihi $ 100.000 diundang untuk menggunakan langganan berbayar. Ya, segera, segera saja, tetapi untuk sekarang, luncurkan Pribadi.
Tentang mengembangkan game sendiri: di mana waktu menghilang
Sebagai hasil dari melemparkan antara platform dan mesin yang berbeda di komputer, Unity 2017, Visual Studio Community dan Android Studio terdaftar. Omong-omong, build Unity resmi
tersedia untuk instalasi di Linux, dan openSUSE Leap saya diinstal tanpa masalah. Namun, sebagian besar pengembangan game dilakukan di bawah Windows karena Photoshop ada di sana. Dan satu-satunya pengembang proyek paruh waktu adalah satu-satunya desainer yang membawa lada khusus ke proses gamedev.
Misalnya, Anda sering harus beralih di antara dua tugas: menulis kode dan menggambar grafik. Segera setelah proses pengembangan diblokir oleh kebutuhan untuk menambahkan grafik baru ke tempat kejadian, itu perlu untuk menunda semuanya dan desain. Untuk memparalelkan proses-proses ini, gambar "bertopik" digunakan secara aktif, dibuat sketsa entah bagaimana dan sampai yang terakhir menggantikan grafik penuh.
Pengembangan grafik secara bertahapAda juga hit di jalan buntu kreatif ketika grafik, yang dianggap final, memicu penolakan oleh penulis atau pemain, dan tidak jelas bagaimana memperbaiki situasi. Praktek telah menunjukkan bahwa beberapa seni konsep baru berkontribusi untuk memecahkan kebuntuan. Mereka memberi tahu Anda ke arah mana untuk mengulang gambar, atau sepenuhnya menggantinya.
Bagaimanapun, sejumlah besar karya seni tidak akan memasuki perakitan akhir permainan, dan ini normal. Dari sekian ton sketsa yang tidak berhasil, seseorang dilahirkan bahwa semua orang melihat dan berkata, βYa, ini dia. Alpaca yang sama. "
Alpaca yang samaDan di sini adalah lapangan setelah banyak iterasi pembuatan ulang:
Cuplikan layar bidang bermainTernyata dari 72 jam, sekitar 40 dihabiskan hanya untuk menggambar dan desain. Waktu yang tersisa dihabiskan pada siklus pengujian pengembangan, dipercepat oleh tiga faktor:
Kesiapan pos pemeriksaan game untuk dirilis. Gim dengan fungsi mana yang tidak malu dianggap selesai, siap untuk dilewati oleh pengguna yang melihatnya untuk pertama kali? Apakah berhenti seperti itu jika Anda meninggalkan satu atau dua fitur? Jika bukan karena TK read-only yang disusun sebelumnya dan diterjemahkan secara mental, permainan dapat ditingkatkan dan dikembangkan untuk usia. Ketika mereka mendiskusikan kesan mereka dengan para pemain dan munculnya ide-ide mereka sendiri, Wishlist baru muncul hampir setiap jam, dan kemudian menyimpan daftar fitur untuk titik kontrol.
Penolakan kode yang indah. Orang bisa berargumen dengan ini, praktik ini dapat dianggap berbahaya baik untuk proyek maupun untuk pengembang, dan saya setuju dengan sebagian besar argumen ... Tetapi faktanya jelas: jika proyek kecil dan waktu hampir habis, maka kemurnian kode memudar ke latar belakang. Yang utama adalah kode sumbernya masih bisa dipahami. Tetapi kode spaghetti dan salin-rekat lemak tidak begitu berbahaya jika Anda tidak memesan porsi ganda.
Rentang untuk menjalankan bagian. Apakah urutan waktu dihabiskan untuk ledakan, tetapi masih tidak memenangkan hadiah untuk efek visual terbaik? Apakah keanehan dalam animasi sprite hanya terlihat sekarang, karena objek lain menarik perhatian pada diri mereka sendiri? Melakukan debug bagian yang kompleks, menyetel efek khusus, menjalankan animasi ... Untuk peristiwa semacam itu, pendekatan yang baik adalah mengisolasi blok kepentingan sebanyak mungkin dan menempatkannya dalam proyek bersih (atau setidaknya dalam adegan terpisah). Pertama, ini menghilangkan efek samping dari entitas game lain di dalamnya. Kedua, membantu berkonsentrasi pada tugas saat ini, bereksperimen tanpa risiko mengacaukan dan menghancurkan sesuatu di lingkungan itu. Misalnya, dalam adegan terpisah, nyaman untuk menyesuaikan parameter efek ledakan ketika zeng mengenai saku, dan dalam proyek uji pilih opsi untuk tekstur latar belakang.
Kesalahan itu tidak pernah menjadi fatal
Jatuh tanpa kompromi dalam pengujian beta terbuka, referensi nol Β¬- telur paskah di dekat garis dengan frase "// TODO", tergelincir seperti air melalui jari, bug ... Fakta menyedihkan: sebagian besar kesalahan adalah hasil dari kecerobohan dan kurangnya kepemilikan instrumen. Unity memiliki dokumentasi terperinci, dan untuk alasan yang baik. Banyak solusi teknis Unity tidak jelas. Menyumbat dokumentasi menghasilkan berjam-jam ekstra untuk debugging dan berkeliaran di Google ... yang membawa Anda kembali ke dokumentasi online.
Hadirin sekalian, inilah "Top 3" dari kesalahan paling gurih dan memakan waktu yang menghiasi proses pengembangan El Zengo. Mereka penasaran karena mereka adalah kasus khusus masalah khas yang muncul selama perkembangan cepat dari kurangnya waktu untuk studi rinci tentang bidang studi.
3. Tidak berfungsi seperti yang saya inginkan
Ooh, berapa banyak waktu yang terbuang untuk men-debug simulasi tabrakan zeng ... Tentu saja, di Unity, seluruh perhitungan pergerakan benda bekerja di luar kotak. Dan dalam prototipe baku permainan, itu dieksploitasi dengan penuh semangat: zenges berguling-guling di panggung dengan gravitasi nol, memantul satu sama lain dan dari samping, dan tidak ada pertanyaan tentang lintasan mereka setelah tabrakan. Tapi momen penting datang untuk menggambar vektor zenga, dan tiba-tiba terungkap bahwa pantulan zenges yang sebenarnya dari satu sama lain (busur abu-abu di tangkapan layar) berbeda dari yang diharapkan (garis putih):
Jalur bouncing zenga yang diharapkan dan aktualZeng menyimpang dari jalan yang dituju karena terlalu banyak gesekan dan momen puntir yang dihasilkan, yang saat ini menjadi misteri. Faktanya adalah bahwa setiap zeng adalah gim yang dihasilkan GameObject saat memuat adegan, yang ditambahkan komponen Rigidbody 2D dan Circle Collider 2D.
Benda tegar, "tubuh padat", mendefinisikan fisika perilaku objek di dunia game: massa, perlawanan, gravitasi, dan karakteristik berguna lainnya. Collider - komponen yang bertanggung jawab untuk menghitung batas objek dan tabrakan dengan badan lain. Kedua komponen memiliki properti "material" untuk mengatur koefisien gesekan dan elastisitas.
Jadi, memperbaiki bouncing zeng yang salah datang ke pertanyaan: jika dua komponen dilampirkan ke gameObject, Collider dan Rigidbody, dan masing-masing dari mereka memiliki properti "material", materi mana yang akan diterapkan?
Sifat Bahan Collider dan Rigidbody di UnityJadi, jika Collider tidak memiliki material yang ditentukan, maka material Rigidbody digunakan. Jika diatur, maka properti prioritas Collider. Untuk material yang tidak ditentukan secara eksplisit, Rigidbody menggunakan material dengan nilai elastis dan gesekan default. Dengan demikian, kesalahannya adalah asumsi keliru bahwa properti Rigidbody dengan gesekan mendekati nol akan diterapkan dengan bahan Collider yang ditentukan. Dan dia layak menghabiskan malam Sabtu.
2. Berperilaku berbeda pada perangkat yang berbeda.
Perilaku berbeda pada perangkat dengan versi API yang berbeda muncul secara kebetulan saat merender bayangan teks. Teks dengan nama permainan telah ditambahkan ke tempat kejadian. Komponen Shadow terlampir pada teks:
Komponen bayangan ditambahkan ke teks dalam UnityWarna gelap, transparansi. Ini sempurna menaungi teks di semua perangkat ... kecuali untuk Android lama dengan API 15, di mana bayangan keras kepala tampak biru pucat bukannya biru:
Bayangan yang ditarik dengan tidak benar di antarmuka gameItu tidak mungkin untuk dengan cepat menentukan penyebab kesalahan dan solusi, jadi demi kecepatan pengembangan, bayangan harus ditinggalkan.
Intinya: tetap waspada. Pada perangkat yang berbeda, bahkan elemen sepele dari game dapat terlihat dan bekerja secara berbeda. Ini sering dimanifestasikan dalam hal-hal sepele yang hampir tidak terlihat.
1. Itu tidak dimulai pada perangkat tertentu
Pada malam sebelum rilis (atau bagaimana biasanya memulai cerita seperti itu?) Ditemukan bahwa pada salah satu smartphone, game pada dasarnya tidak ingin memulai. Saya harus segera berpegang pada debugger dan melihat apa yang salah.
Secara desain, game ini diluncurkan secara paksa dalam orientasi lanskap. Di Unity 2017, pengaturan orientasi Default (Edit -> Pengaturan proyek -> Player -> Orientasi) bertanggung jawab untuk ini:
Mengatur orientasi layar dalam UnitySaat mengekspor ke proyek untuk Android Studio, pengaturan orientasi Default berubah menjadi properti screenOrientation yang ditentukan dalam manifes:
android:screenOrientation="landscape"
Tampaknya apa yang salah? Memang, di semua perangkat, penerbangan normal ... Kecuali untuk Android 8.0.0 (API 26), di mana aplikasi mogok saat diluncurkan dengan pengecualian:
java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
Itu diperbaiki dengan menonaktifkan transparansi dalam gaya yang ditentukan dalam styles.xml:
<item name="android:windowIsTranslucent">false</item>
Kecelakaan total yang terdeteksi secara tidak sengaja yang mengarah ke moralitas: kebenaran operasi harus diperiksa pada semua API yang didukung oleh aplikasi.
Tentang promosi dan monetisasi, atau "Hari ini saya sangat mengerti"
Setelah menyiapkan sekumpulan tebal materi promosi untuk penempatan di toko Android, di bawah teriakan gembira seorang programmer dan desainer, rilis terjadi. Namun, segera menjadi jelas bahwa selain nama permainan di Play Store tidak mungkin ditemukan. El Zengo, seperti galleon cekung dengan doubloons emas, beristirahat di suatu tempat di dasar lautan permainan dan sedang menunggu penyelamnya ... Tampaknya, para penyelam tidak menyelam begitu dalam.
Nol unduhan per minggu tidak sesuai harapan. Catatan: harapan bukanlah fantasi yang tidak berdasar, tetapi didasarkan pada pengalaman yang nyata, meskipun sudah ketinggalan zaman. Kembali pada tahun 2014, ketika Google Play secara aktif memperluas dan memikat pengembang baru, penulis menerbitkan permainan logika yang belum pernah terjadi sebelumnya. Dan meskipun tujuan utama dari publikasi ini adalah penggunaan pribadi untuk pesta dengan teman dan kolega, dan desain meninggalkan banyak hal yang diinginkan, urusan permainan berjalan sangat lancar. Dia menjulang di bagian berita, dari mana dia merangkak ke puncak permainan berdasarkan kategori di Rusia dan negara-negara tetangga. Dan semua ini tanpa usaha sedikitpun.
Sejak itu, Google Play telah dipenuhi dengan aplikasi, pengembang telah mulai mengeluarkan jumlah besar untuk
evakuasi dari bawah ke kemajuan ke atas, dan upaya untuk membuat game dikenal sehingga untuk memulai dengan pengguna potensial, entah bagaimana dapat menemukannya, menjalankan
bisnis.
Bisnis Gajah. Prince sedang menunggu petualangan yang tidak direncanakanPerusahaan yang menawarkan layanan promosi, ulasan video dari YouTube, ulasan tentang portal permainan, iklan di berbagai platform ... Jika Anda benar-benar tidak menolak promosi berbayar, Anda akan terkejut dengan banyaknya cara untuk menghilangkan beberapa gaji dengan gaya. Tetapi seberapa efektif mereka, di mana kombinasi dan proporsi memberikan efek terbaik untuk permainan tertentu? Pertanyaannya tetap terbuka.
Mencoba cara-cara gratis, termasuk topik-topik di forum-forum permainan, PR yang kurang ajar di jejaring sosial dan propaganda yang merajalela di lingkaran komunikasi, membawa hasil-hasil yang sederhana. Kesimpulannya menunjukkan sendiri: jika Anda benar-benar berpikir tentang promosi gim, maka lakukan terlebih dahulu dan alokasikan sumber daya yang sesuai. Pada saat yang sama, semua upaya dapat dikurangi menjadi nol, jika Anda tidak mengikuti tren pasar dan karakteristik audiens target.
Epilog
Apakah mungkin dalam beberapa bulan untuk merilis game sendiri atau tim kecil, tanpa prasangka untuk bekerja dan kehidupan pribadi? Dan agar tanpa mengatasi diri sendiri dan "kemenangan kehendak" karena kurang tidur. Ya cukup! Dan dengan mesin modern, IDE, dan stackoverflow, lebih mudah dari sebelumnya.
Tetapi jika pengembangan game indie bukanlah tujuan itu sendiri, dan timbul pertanyaan tentang promosi dan monetisasi, maka ... ada nuansa. Promosi - monster dengan tiga kepala: ilmu terpisah di mana kesalahan perhitungan kecil sudah merugi; proses berkelanjutan yang membutuhkan pemantauan konstan; lubang hitam untuk waktu, tenaga dan uang.
Dan akhirnya. Pengembangan indie bukan hanya tentang kode, grafik, dan kursus geometri yang menyenangkan untuk dibaca kembali. Ini juga komunikasi dengan orang-orang antusias yang siap untuk meninggalkan umpan balik dan bahkan berpartisipasi dalam proyek dengan antusiasme murni. Sebagai contoh, satu ton saran dan kritik pada gameplay dan UI diberikan oleh pengembang, yang umumnya keren tentang pembunuhan biasa. Dan musik untuk versi kedua El Zengo diciptakan oleh komposer, yang menyukai permainan. Jika Anda susah payah dan mencari, pasti ada yang ingin menguji permainan dan meninggalkan ulasan. Dan dengan pilihan alat yang baik dan mengamati aturan sederhana kipas dari pengembangan, inspirasi dari rilis dan tidak memompa pengalaman yang lemah hanya disediakan.