Nhận các ràng buộc từ cuộc sống thực
Thường thì câu trả lời về cách tìm ra thuật toán phù hợp bắt đầu bằng việc xem xét những điều này xảy ra như thế nào trong cuộc sống thực. Bạn đã nhìn vào đó chưa? Ngoài đỉnh đầu, tôi có thể nghĩ về những điều sau đây:
- Đường ở đó để kết nối các tòa nhà và các điểm quan tâm khác
- Các tòa nhà được đặt dọc theo các con đường hiện có, nếu có thể
- Nếu không có đường, một tòa nhà được đặt ở một vị trí trống và được kết nối với một con đường gần đó thông qua con đường của chính nó
- Các tòa nhà được đặt gần các tòa nhà khác mà người dân của họ quan tâm: Mọi người chuyển đến sống gần nơi làm việc, cửa hàng thực phẩm và quần áo, v.v.
- Các tòa nhà được đặt gần các tài nguyên cần thiết cho mục đích sử dụng của họ. Ví dụ, một xưởng cưa được đặt gần rừng, hoặc thậm chí trong một khu rừng trống. con người cần nước và thức ăn (thực vật, động vật) để sống ở đâu đó.
- Các tòa nhà được đặt cách xa các tòa nhà khác gây bất lợi cho mục đích sử dụng của chúng, hoặc chúng sẽ gây bất lợi. Ví dụ, cửa hàng của thợ nhuộm có mùi rất kinh khủng, vì vậy thường không được đặt trong khu dân cư. Tương tự, quán rượu và nhà hàng rất ồn ào, vì vậy cư dân không muốn sống trên đỉnh của họ, nhưng cần khách hàng, vì vậy cần phải ở gần khu dân cư.
- Một số quốc gia có luật quy hoạch cũng ảnh hưởng đến vị trí xây dựng. Thông thường đây là một cách chính thức hơn để dự đoán loại công trình nào có thể gây bất lợi cho nhau hoặc tài nguyên nào là duy nhất cho khu vực (như đất chất lượng cao dành cho các cánh đồng, không phải để xây dựng bãi đỗ xe).
- Các tòa nhà dành cho cư dân, và phong cách và sở thích cá nhân của họ được phản ánh trong đó. Ví dụ, nếu dân số nghèo, họ có nhiều khả năng chia sẻ mặt đất (tòa nhà chọc trời, chung cư), nếu họ khá giả hơn, họ có thể nhận được bao cao su, nếu họ giàu, họ có một biệt thự độc lập. Nếu một số nhóm nhất định không thích các nhóm khác, họ sẽ ít có khả năng cùng sinh sống. Nếu có một mối quan hệ giữa các nhóm nhất định, họ có thể di chuyển vào các khu vực tương tự.
Áp dụng chúng cho địa hình của bạn
Khi bạn có những ràng buộc này, bạn có thể cố gắng xây dựng một thuật toán xung quanh nó. Ví dụ: tạo địa hình của bạn và phân phối các tài nguyên cần thiết trên bản đồ (có thể để mắt đến việc đặt các khoản tiền gửi nhỏ của các tài nguyên quan trọng nhất trong khu vực bắt đầu, sau đó các khoản tiền gửi lớn hơn ở xa và xa nhau). Tất nhiên, đây là lúc nhu cầu và cơ chế trò chơi của bạn phát huy tác dụng, nhưng có khả năng bạn cũng sẽ thêm một yếu tố ngẫu nhiên.
Sau đó xây dựng các doanh nghiệp (và các tòa nhà dân cư của họ) gần những tài nguyên sử dụng chúng. Ví dụ một mỏ đá bên cạnh một ngọn núi lớn. Sau đó thêm cơ sở hạ tầng cần thiết cho họ. Ví dụ, một bưu điện giao dịch với bưu điện và quán rượu nơi họ có thể kinh doanh và bán sản phẩm của họ, một lò rèn để cung cấp các công cụ, v.v.
Để quyết định xem đi đâu, hãy chia bản đồ thành các ô trong đó bạn tính một số cho mỗi ô như thế nào là mong muốn cho một mục đích nhất định, sử dụng hàm trọng số. Đặt các tòa nhà trong gạch mong muốn nhất cho loại công trình đó. Thêm các quy tắc như "một bài giao dịch có thể xử lý 50 doanh nghiệp hoặc 100 nhà", điều này làm tăng khả năng thêm một bài đăng giao dịch khác nếu một thành phố đạt đến quy mô nhất định.
Một khi bạn có điều này, bạn sẽ nhận được một số bản đồ khá phong nha. Nếu bạn nhận thấy rằng tất cả các bản đồ đều có hình dạng không tự nhiên, hãy thêm các hình phạt cho các hàm trọng số của bạn cho các hình dạng đó, như "nếu đường của tôi kết thúc ngay bên cạnh một đường khác, -100 mong muốn" hoặc "nếu đường của tôi đi qua chính nó, -100 mong muốn "v.v. Bạn luôn có thể thêm vào một yếu tố ngẫu nhiên để cho phép điều này mang lại cảm giác kỳ quặc hơn, hoặc thêm các cơ chế khác như" nếu một ngã tư có nhiều hơn N tòa nhà được kết nối với đường của nó, hãy biến nó thành một bùng binh ".
Bạn thậm chí có thể sử dụng các ràng buộc này để tạo cho các bản đồ khác nhau một cảm giác khác nhau, như làm cho một quốc gia nào đó có nhiều ngọn núi hơn trong địa hình hoặc có một nền văn hóa nhất định xây dựng nhiều con đường quanh co hơn và một con đường khác thích những con đường thẳng, v.v. Tất cả chỉ bằng cách sửa đổi một trong những hàm trọng số.
Đơn giản hóa
Tất nhiên, cách tiếp cận này quá phức tạp đối với các trò chơi không giao dịch mô phỏng, nhưng dù sao đi nữa, và xem loại công trình nào có ý nghĩa cho trò chơi của bạn và loại bỏ những thứ không cần thiết. Sau đó, đưa ra các quy tắc đơn giản như "đặt các thành phố gần sông, núi hoặc đất tốt. 1 tòa nhà trên 100 tài nguyên, các doanh nghiệp dựa trên loại tài nguyên, 10 tòa nhà dân cư cho mỗi bộ tài nguyên chế biến / thực phẩm đầy đủ ... hoặc chỉ" 1 triệu sông / 1m2 đất có thể hỗ trợ 10 tòa nhà dân cư ... bất cứ điều gì có ý nghĩa cho một trò chơi. Tuy nhiên, một khi bạn biết bạn có bao nhiêu diện tích (ví dụ: không có tòa nhà nào ở sườn núi dốc) và khu vực đó có thể hỗ trợ bao nhiêu tòa nhà, chỉ cần đặt các tòa nhà trong khu vực đó cho đến khi đầy (như, 1 tòa nhà kinh doanh, 10 khu dân cư , 3 cơ sở hạ tầng, hoặc bất cứ điều gì) và kết nối chúng với đường.