Berbicara tentang proyek baru, tentu saja, bagus, tetapi tidak selalu semuanya berjalan seperti yang kita inginkan.
Secara umum, mereka mulai mengingat fakap dari masa lalu, ketika solusi untuk satu masalah menambahkan yang baru, terbawa suasana dan memutuskan untuk berbagi pasangan. Cara melarang pemain yang tidak bersalah, membunuh server mereka sendiri, membuat kesalahan dalam satu huruf dan menangkap banyak umpan balik negatif dari pengguna - itu saja yang kami sukai.

Hilang - dapatkan larangan
Ada waktu ketika permainan kami Robot Perang karena kekurangan dalam arsitektur diserang oleh curang. Ada utilitas yang meningkatkan pasokan kesehatan ke nilai-nilai kosmik, yang membuatnya praktis abadi. Akibatnya, kami
menutup tugas dengan curang, tetapi tidak segera.
Pada awalnya, kami ingin menyelesaikan masalah dengan indah di tingkat teknis: memblokir kemampuan untuk mengubah parameter robot pada klien. Kami tidak berhasil melakukan ini (maka, tentu saja, kami menemukan jalan). Dan kemudian solusi kerja pertama adalah banhammer yang menghitung curang sesuai dengan skema sederhana:
- Setiap robot setelah pertandingan diuji kerusakan.
- Jika kerusakan yang diderita oleh robot melebihi nilai kesehatan maksimumnya, maka pemain diakui sebagai penipu, dan akunnya diblokir.
Solusinya adalah penopang, tetapi efektif. Masalah karena dia mulai sedikit kemudian, tetapi pertama-tama Anda harus berbicara sedikit tentang bug lain dan fitur pengembangan PvP ponsel sinkron.
Ketika pemain memiliki koneksi internet yang sangat nakal (yang normal di game mobile), hal-hal yang benar-benar ajaib dapat terjadi ketika bertukar data antara klien dan server. Permintaan dari pelanggan datang tidak lengkap, rusak atau dengan penundaan yang kuat. Secara umum, satu bug server mengizinkan bahwa jika koneksi buruk, klien dapat mengirim hasil pertempuran dua atau bahkan tiga kali berturut-turut. Dengan demikian, pemain dapat menerima hadiah 2-3 kali lebih banyak atau secara tidak sengaja menghabiskan sumber daya dua kali lebih banyak untuk perbaikan.
Kami memecahkan masalah ini dengan cukup cepat: profil server belajar untuk mengabaikan hasil pertempuran yang tidak perlu dari satu klien. Setelah pengujian berhasil, kami merilis versi baru.
Di sinilah yang menutupi kita.
Setiap hari saya mulai melarang sejumlah pemain dengan banhammer, karena itu kami lupa dengan aman masalah robot yang tidak bisa dihancurkan dengan persediaan kesehatan yang tak terbatas adalah masalah masa lalu. Ternyata segera setelah klien pemain mengirim hasil dari satu pertempuran dalam jumlah ganda ke server, pembuat ban pengamat merasakannya sedemikian rupa sehingga setiap robot yang mati terbunuh dua kali - mis. Merusak kesehatannya dua kali lipat. Dan setelah setiap pertempuran, para pemain terbang ke larangan dalam batch.
Semua orang, tentu saja, tidak nyaman dan bahkan membayar kompensasi, tetapi situasinya begitu-begitu, tidak pasti positif.

Cara mengatur DDoS untuk Anda sendiri
Kami sudah
menulis tentang evolusi infrastruktur server kami, dan sekarang kami telah mengingat satu kasus waktu itu.
Pada akhir 2015, rilis fitur yang telah lama ditunggu di War Robots - klan. Ketika pembaruan keluar (dan sudah larut malam), kami membuka sampanye dan semuanya akan baik-baik saja. Tapi saya tidak harus bersukacita lama - server tiba-tiba merasa buruk. Ternyata kami melakukan serangan DDoS dengan tangan kami sendiri.
Bagaimana? Sangat sederhana. Klien di layar hasil pertempuran, dalam upaya untuk mendapatkan informasi tentang klan para pemain, membuat terlalu banyak permintaan. Dan ketika server menjawab "tinggalkan aku sendiri, kesalahan", klien kembali ke server tanpa batas waktu.
Pada malam yang sama, kami mencuci bendera (kami belum punya waktu untuk menutup sampanye), yang dikendalikan dari server profil - itu benar-benar memblokir operasi API Klien Hangar. Untuk pemain yang telah bergabung dengan klan, kami meninggalkan bendera ini, yaitu, semuanya bekerja untuk mereka, karena jumlah mereka tidak cukup untuk menjalankan server.
Akibatnya, kami mulai memproses respons server dengan benar di dalam permainan, dan jika terjadi kesalahan, tambah batas waktu untuk mencoba kembali permintaan.
Peringkat "Gratis"
Cerita terpisah adalah ketika implementasi berkualitas rendah memenuhi faktor manusia. Hanya sekarang mereka tidak melarang siapa pun, tetapi sebaliknya mereka membagikan peringkat kiri dan kanan. Singkatnya, suatu malam pemantauan kami (dan kami memantau
semuanya ) mencatat pertumbuhan peringkat pemain yang terlalu cepat.
Kemudian ternyata implementasi scoring dalam teori memungkinkan untuk menggandakan data. Tetapi tidak ada yang akan memperhatikannya jika administrator yang bertugas, karena kesalahan ketik dalam satu huruf, secara tidak sengaja memulai kembali server yang seharusnya tidak berfungsi. Dialah yang mulai menggandakan peringkat pemain.
Saya harus segera melepaskan perbaikan dan pergi melalui pangkalan untuk menghapus semua poin tambahan yang punya waktu untuk bertambah. Untuk mencegah hal ini terjadi - pada semua server kami memotong skema lama untuk menghitung poin dan mengecualikan kemungkinan peluncuran layanan yang salah di mana mereka seharusnya tidak bekerja. Itu perlu dilakukan sejak awal, tentu saja, tetapi itu akan terlalu membosankan.
Hadiah tak ternilai
Ada fakap lain dengan kesalahan ketik, tetapi jauh lebih serius.
Entah bagaimana pada Halloween kami meluncurkan gacha baru - lotre. Jika ada yang tidak tahu, gacha adalah mekanisme mendapatkan item dari beberapa berbeda secara acak. Dalam lotere, pemain memiliki satu set hadiah yang nampak terbatas dari nilai yang berbeda. Untuk setiap pembukaan, pemain menerima 1 hadiah, hadiah ini dikeluarkan dari set, dan harga pembukaan meningkat setiap kali. Dengan demikian, pemain dijamin dapat membeli semua hadiah lotere, dan yang beruntung mengambil hadiah paling berharga pada pembukaan pertama (dan karenanya menerimanya dengan sangat murah).
Secara umum, kemudian dengan darah kami mencuci fitur untuk acara tersebut, mengujinya, menaruhnya. Kami mulai, kami memperbarui jadwal ... Hore! Mereka bergegas! .. Dan pada saat yang sama berton-ton negatif di masyarakat jatuh pada kita bahwa kita diduga menipu para pemain kita.
Dalam setengah jam lotere harus dimatikan. Ya, kami benar-benar membodohi para pemain. Tapi itu bukan masalah peluang atau hadiah - itu dalam satu surat.
Antarmuka lotere menunjukkan biaya pembukaan saat ini (yang meningkat setiap kali), misalnya, HARGA: 100 Emas. Begini konsepnya (perhatikan bahwa sesuai dengan ide, setiap kartu juga memiliki harga pembukaan tambahan):

Dan inilah bagaimana akhirnya, ketika, sebagai hasil dari serangkaian "perbaikan", HARGA (harga untuk partisipasi dalam lotere) tiba-tiba berubah menjadi HADIAH (hadiah) untuk desainer:

Pada saat yang sama, karena kebingungan sebelum rilis dan cek yang buruk dari masing-masing kartu individu, harga pembukaan hilang, yang semuanya membingungkan para pemain.
Dan mereka secara refleks menekan tombol sampai menghabiskan semua kekerasan. Nah, apa, "hadiah" meningkat dengan setiap pembelian. Demikian juga dalam 18 bahasa. Pada saat yang sama, kami juga memiliki "lokal" pada klien, jadi mungkin untuk memperbaiki bahkan satu huruf saja melalui perbaikan terbaru.
Akibatnya, mereka membuka situasi, memperkenalkan pos pemeriksaan tambahan, mengembalikan emas kepada para pemain dan menyelamatkan lokal di server sehingga tidak ada yang seperti ini yang akan terjadi lagi.
Saatnya untuk memperkenalkan
tagar # Kosyakinaprode