Dapatkan kendala dari kehidupan nyata
Seringkali jawaban tentang bagaimana menemukan algoritma yang tepat dimulai dengan melihat bagaimana hal-hal ini terjadi dalam kehidupan nyata. Apakah Anda sudah melihatnya? Dari atas kepala saya, saya bisa memikirkan hal berikut:
- Ada jalan untuk menghubungkan bangunan dan tempat menarik lainnya
- Bangunan ditempatkan di sepanjang jalan yang ada, jika memungkinkan
- Jika tidak ada jalan, bangunan diletakkan di tempat kosong dan terhubung ke jalan terdekat melalui jalannya sendiri
- Bangunan ditempatkan di dekat bangunan lain yang menarik bagi penghuninya: Orang-orang pindah untuk tinggal di dekat tempat kerja mereka, makanan dan toko pakaian dll.
- Bangunan ditempatkan di dekat sumber daya yang diperlukan untuk tujuan penggunaannya. Misalnya penggergajian kayu ditempatkan di dekat hutan, atau bahkan di pembukaan hutan. orang membutuhkan air dan makanan (tanaman, hewan) untuk hidup di suatu tempat.
- Bangunan ditempatkan jauh dari bangunan lain yang merusak kegunaan yang dimaksudkan, atau bahwa mereka akan merugikan. Misal toko pewarna berbau mengerikan, jadi biasanya tidak diletakkan di area perumahan. Demikian pula, warung dan restoran keras, sehingga penghuni tidak ingin tinggal di atasnya, tetapi membutuhkan pelanggan, jadi harus dekat dengan daerah perumahan.
- Beberapa negara memiliki undang-undang zonasi yang juga memengaruhi penempatan bangunan. Biasanya ini adalah cara yang lebih formal untuk mengantisipasi jenis bangunan apa yang dapat saling merugikan, atau sumber daya apa yang unik untuk daerah tersebut (seperti, tanah berkualitas tinggi untuk ladang, bukan untuk membangun tempat parkir).
- Bangunan adalah untuk penghuni, dan gaya dan preferensi pribadi mereka tercermin di dalamnya. Misalnya, jika populasi miskin, mereka lebih cenderung berbagi tanah (gedung pencakar langit, gedung apartemen), jika mereka lebih kaya, mereka mungkin mendapatkan kondominiom, jika mereka kaya, mereka mendapatkan vila mandiri. Jika kelompok tertentu tidak menyukai kelompok lain, mereka cenderung tidak akan tinggal bersama. Jika ada kedekatan antara kelompok-kelompok tertentu, mereka dapat pindah ke bidang yang sama.
Terapkan ke topografi Anda
Setelah Anda memiliki kendala ini, Anda dapat mencoba membangun algoritma di sekitarnya. Misalnya, hasilkan topografi Anda dan bagikan sumber daya yang dibutuhkan di sekitar peta (mungkin mengawasi penempatan simpanan kecil dari sumber daya paling penting di area awal, lalu simpanan yang lebih besar semakin jauh dan dari satu sama lain). Di sinilah kebutuhan permainan Anda dan mekanik ikut bermain, tentu saja, tetapi Anda mungkin juga akan menambahkan elemen acak.
Kemudian bangun bisnis (dan bangunan tempat tinggal mereka) di dekat sumber daya yang menggunakannya. Misalnya tambang di sebelah gunung besar. Kemudian tambahkan infrastruktur yang dibutuhkan oleh mereka. Misalnya sebuah pos perdagangan dengan kantor pos dan kedai tempat mereka dapat melakukan bisnis dan menjual produk mereka, seorang pandai besi untuk menyediakan alat, dll.
Untuk memutuskan apa yang terjadi, pisahkan peta menjadi ubin tempat Anda menghitung angka untuk setiap ubin seberapa diinginkannya untuk tujuan tertentu, menggunakan fungsi pembobotan. Letakkan bangunan di ubin yang paling diinginkan untuk bangunan semacam itu. Tambahkan aturan seperti "satu pos perdagangan dapat menangani 50 bisnis atau 100 rumah", yang meningkatkan kemungkinan menambahkan pos perdagangan lain jika suatu kota mencapai ukuran tertentu.
Setelah Anda memilikinya, Anda harus mendapatkan beberapa peta yang cukup baik. Jika Anda melihat bahwa peta semua berakhir sebagai bentuk yang tidak alami, tambahkan hukuman ke fungsi bobot Anda untuk bentuk itu, seperti "jika jalan saya berakhir tepat di sebelah jalan lain, -100 keinginan", atau "jika jalan saya melintasi sendiri, -100 keinginan "dll. Anda selalu dapat menambahkan elemen acak untuk memungkinkan ini untuk merasa lebih unik, atau menambahkan mekanik lain seperti" jika persimpangan memiliki lebih dari N bangunan terhubung ke jalan-jalannya, ubahlah menjadi bundaran ".
Anda bahkan dapat menggunakan batasan-batasan ini untuk memberikan nuansa berbeda pada peta yang berbeda, seperti membuat negara tertentu memiliki lebih banyak gunung dalam topografinya, atau memiliki budaya tertentu membangun jalan yang lebih berliku, dan yang lain lebih suka jalan lurus dll. Semua hanya dengan memodifikasi salah satu dari Anda fungsi pembobotan.
Menyederhanakan
Tentu saja, pendekatan ini terlalu rumit untuk gim yang bukan simulasi perdagangan, tetapi tetap selesaikan ini, dan lihat jenis bangunan apa yang masuk akal untuk gim Anda, dan hilangkan yang tidak dibutuhkan. Kemudian muncul dengan aturan yang disederhanakan seperti "tempatkan kota di dekat sungai, gunung atau tanah yang bagus. 1 bangunan per 100 sumber daya, bisnis berdasarkan jenis sumber daya, 10 bangunan tempat tinggal untuk setiap rangkaian penuh sumber daya makanan / kerajinan ... atau hanya" 1m sungai / 1sqm tanah dapat mendukung 10 bangunan tempat tinggal ... apa pun yang masuk akal untuk sebuah game. Namun, begitu Anda tahu berapa banyak area yang Anda miliki (mis. Tidak ada bangunan di sisi gunung yang curam), dan berapa banyak bangunan yang dapat didukung oleh area tersebut, cukup tempatkan set bangunan di area itu hingga penuh (seperti, 1 bangunan bisnis, 10 perumahan) , 3 infrastruktur, atau apa pun) dan menghubungkannya dengan jalan.