MMORPG saja (penguntit 2d)

Hai teman-teman! Teks di bawah ini akan memberi tahu Anda tentang bagaimana saya mengembangkan game MMO saya tentang penguntit, artefak, emisi, dan sepeda di sekitar api selama dua setengah tahun.



Semuanya dimulai dengan fakta bahwa, untuk pertama kalinya dalam hidup saya, saya dapat mentransfer informasi dari satu perangkat ke perangkat lainnya, menggunakan soket. Menekan tombol sentuh pada layar smartphone membuat kotak hitam pada monitor laptop bergerak. Sukacita saya tidak mengenal batas. Ini semacam sihir, pikirku. Segera diputuskan - "Itu saja, saya sedang membuat game online." Karena saya penggemar penguntit, pertanyaan - “Game online macam apa?” ​​Bahkan tidak tahan. Tentang fakta bahwa permainan tidak mudah dibuat, saya tahu. Fakta bahwa melakukan permainan online tidaklah mudah, saya kira. Tetapi pada saat itu, mabuk oleh kegembiraan dan inspirasi, saya tidak mementingkan sedikit pun padanya.

Dan perkembangannya sudah dimulai. Karena saya tidak tahu cara menggambar, pertanyaan segera muncul tentang grafik. Dan jawaban untuk pertanyaan ini ditemukan. Sekali waktu, pada telepon tombol-tekan lama (j2me), seorang penggemar independen mengembangkan game "Zone of Aliation". Jika menggambarkan permainan secara singkat, maka ini adalah penguntit 2D untuk seluler. Grafik dari game ini sempurna untuk proyek saya. Saya menghubungi pembuat gambar, Pavel Shevelev, dan meminta izin untuk menggunakannya dalam permainan saya. Paul tidak menolak dan bahkan menggambar sesuatu yang lain, yang karenanya banyak terima kasih kepadanya.



Selanjutnya diperlukan untuk menulis kode. Memindahkan kotak hitam adalah satu hal, dan membuat permainan penuh adalah hal lain. Jika Anda mengemudi di mesin pencari - "Cara membuat game online?", Anda tidak akan menemukan jawaban spesifik yang bahkan dapat sedikit membantu. Informasi di RuNet tentang kucing ini menangis, tetapi tentang contoh-contoh yang biasanya saya hening. Namun demikian saya berhasil menemukan informasi tentang ceramah video Vitaliy Chibrikov tentang Habré, yang memberi tahu cara menulis server untuk permainan online. Setelah mempelajari semua 9 kuliah secara menyeluruh (rata-rata satu kuliah berlangsung sekitar dua jam), saya masih berhasil membangun kerangka interaksi klien-server yang kuat atas dasar permainan saya di masa depan. Jika itu bukan untuk Vitaly, saya tidak akan mencapai hasil seperti itu, yang karenanya banyak terima kasih kepadanya. Beberapa kata tentang teknologi yang saya gunakan - server ditulis dalam java, database MySql, koneksi jaringan netty. Klien juga ditulis dalam java menggunakan kerangka libgdx.



Memiliki grafik dan mekanisme transfer data, yang paling "sederhana" tetap ada - untuk membuat game. Untuk memulai, dia membuat lokasi. Kemudian dia menambahkan karakter permainan, mengajarinya berjalan. Lalu dia mengacaukan perubahan siang dan malam, ditambah efek cuaca. Kemudian ia menciptakan gerombolan pertama - babi. Kemudian dia menambahkan penembakan agar babi hutan ini bisa dibunuh. Kemudian dia membuat pvp sehingga memungkinkan untuk membunuh tidak hanya babi hutan, tetapi juga pemain lain. Dan sekarang ada sesuatu yang menyerupai game. Tampaknya hampir tidak ada fungsi gaming, tetapi butuh banyak waktu untuk mengimplementasikan semua hal di atas. Semuanya menjadi rumit berkali-kali oleh kenyataan bahwa ini adalah game MMO. Hampir semua tindakan yang Anda lakukan dalam permainan harus dilihat oleh para pemain di sekitar Anda. Pada tahap awal pengembangan, server terhenti dari setiap bersin. Hampir setiap hari, saya menemukan banyak masalah dan kesalahan. Sebelum memulai pengembangan, saya tidak dapat membayangkan berapa banyak masalah yang harus saya selesaikan. Namun perkembangannya berjalan lambat dan game berkembang.



Sampai titik tertentu, pengujian hanya dilakukan pada PC pribadi saya. Baik server dan beberapa salinan klien diluncurkan pada mesin yang sama dan dikomunikasikan satu sama lain melalui localhost. Tetapi seiring dengan perkembangan proyek, pemikiran itu semakin sering muncul di benak saya: “Bukankah sudah waktunya untuk menunjukkan permainan kepada orang-orang dan mengatur pengujian nyata dengan pemain langsung?” Dan pada satu titik, saya memutuskan sudah waktunya. Saya menyewa besi, konfigurasi minimum dengan Linux on board. Saya mengunduh program server saya di sana, dan setelah bagian baru wasir dan menari dengan rebana, server mulai berhasil. "Wow!" Saya pikir, itu berhasil. Orang pertama yang memasuki permainan adalah artis Pavel. Kami berlari di sekitar peta, mengobrol, dan menembak babi hutan. Setelah itu saya senang dan senang bahwa semuanya bekerja, dan mulai berkembang dengan sepenuh hati. Hari-hari berlalu, permainan tumbuh dan berkembang, kira-kira sekali setiap dua minggu saya mengorganisasi pengujian terbuka, di mana setiap orang bisa bermain dan menguji fitur baru. Terkadang jumlah pemain online melebihi seratus. Itu adalah waktu yang tepat, saya menciptakan dunia virtual yang hidup sesuai dengan aturan dan hukum saya, selama pengujian saya merasa hampir seperti dewa. Kadang-kadang saya pergi ke server dan hanya menonton para pemain, mereka berlari di sana, berbicara, bertengkar, mendamaikan, membuat klan, berkelahi, mengumpulkan artefak, membobol anomali, patuh berkeliaran di sekitar rumah selama rilis. Dan berapa banyak cerita menarik yang terjadi dalam game! Saya ingat bahwa beberapa orang menyatakan diri mereka bandit dan merampas harta rampasan karena memasuki lokasi tertentu. Mereka yang menolak membayar ditembak (termasuk saya). Atau suatu kali, sekelompok penguntit selama pengusiran bersembunyi di sebuah rumah yang dikelilingi oleh pagar dan seseorang memblokir satu-satunya jalan keluar dengan anomali elektron (ada artefak yang menciptakan anomali) setelah pengusiran, kelompok itu ditutup di halaman rumah ini sampai akhir tes, jadi seperti pada waktu itu, setelah kematian, pemain dilahirkan kembali di tempat yang sama di mana dia meninggal.



Saat ini, permainan telah dilaksanakan: 20 lokasi, siang dan malam, hujan, pvp, pve, 3 jenis gerombolan dengan perilaku berbeda, serangan gerombolan besar di pangkalan, 1 bos serangan, 13 artefak dengan karakteristik berbeda, 8 anomali dengan efek berbeda, baut untuk mencari dan menjinakkan anomali, 8 pencarian, sistem pengalaman dan keterampilan leveling, penguntit pda, radiasi, emisi, pengelompokan, perang pengelompokan wilayah, NPC yang dapat menembak mutan dan bersembunyi dari emisi di rumah, sistem ransel dan barang, berdagang dengan NPC dan pemain, 9 jenis baju besi, 7 jenis senjata, detektor anoma detektor radiasi, gitar, plus sekitar 15 item berbeda, dan tentu saja kesempatan untuk duduk di dekat api unggun dan mengobrol dengan pemain lain. Saya juga ingin memikirkan metode penggalian artefak. Artefak terlahir setelah ejeksi dalam anomali, dan awalnya tidak terlihat oleh pemain, agar artefak dinaikkan, perlu untuk memenuhi sejumlah kondisi tertentu yang unik untuk setiap artefak. Misalnya, untuk mendapatkan artefak "Darah", diperlukan bahwa anomali elektron tingkat kedua, ketika dipicu (bolt throw), bersentuhan dengan anomali awan asam (terbang sepanjang peta dengan arah yang sewenang-wenang). Atau untuk mendapatkan "Jantung", Anda perlu menggunakan artefak "Biru" (menciptakan anomali baru) sehingga anomali baru masuk ke momentum anomali, ditambah kurangnya sinar matahari yang dibutuhkan, yaitu artefak hanya dapat diperoleh pada malam hari.



Saya mengerjakan semua ini selama lebih dari dua tahun, tetapi semua garam dalam konten itu sudah cukup untuk tiga atau empat hari, setelah itu tidak ada yang bisa dilakukan dalam permainan. Karena itu, jumlah pemain dalam game secara bertahap berkurang, dan saya semakin mengerti bahwa saya tidak bisa menyelesaikan permainan. Saya menghabiskan banyak waktu untuk pengembangan, tetapi tampaknya saya tidak menyelesaikan proyek bahkan setengahnya. Saya pikir saya telah mencapai hasil yang baik, tetapi saya masih harus menghadapi kebenaran - tidak mungkin membuat MMORPG lengkap atau hampir mustahil. Saya mencoba mencari programmer lain, tetapi tidak banyak orang yang mengenal java dengan sempurna dan memiliki pengalaman dalam mengembangkan aplikasi client-server. Ya, dan sedikit orang yang ingin memahami kode saya, karena ditulis jauh dari sempurna, dan yang paling penting, ada banyak, banyak, banyak yang benar-benar langsung. Saya tidak akan memposting kode dalam akses terbuka, mungkin suatu hari nanti, setelah bermain cukup di penguntit 2, saya akan menyelesaikannya semua sama.

Ini adalah kisah seperti itu. Tim proyek di vk - Zona proyek 2d online .

Source: https://habr.com/ru/post/id451242/


All Articles