- Tham gia
- 08/10/2016
- Bài viết
- 168
NOTES: Post này có người đăng trên minevn rồi, share lại cho ae xem .-. Có chút chỉnh sửa. Với lại @tuangold4321 sẽ ko giải thích j thêm....
Hệ thống tạo world (Mặt đất)
Như các bạn đã thấy có một con lợn nằm bên góc phải của bức hình
và nó là thành phần rất quan trọng trong việc hình thành world trong minecraft. Thực chất để minecraft có được những địa hình tự nhiên, Mojang đã phải sử dụng đến những thuật toán tạo ra những bức hình như thế này.
Nhìn vào thì các bạn cũng thấy nó cũng không liên quan gì tới world, nhưng thực chất đây là những bản đồ đen trắng đầu tiên của minecraft trước khi world được tạo ra. Ban đầu bức tranh màu xám và sẽ được máy phối màu đen và màu trắng với độ đậm nhạt thích hợp để minecraft có thể tương thích với nó. Độ đậm tượng trưng cho độ cao và độ nhạt tượng trưng cho độ thấp của world còn màu xám là ở level default. Khi đã có bản vẽ, minecraft sẽ bắt đầu tương thích và tạo ra những terrain (địa hình) như thế này
Hoặc thế này
Ban đầu chủ yếu các block đều có texture là cỏ như bản beta đầu tiên của minecraft tung ra
Sau đó từ các khối cỏ sẽ tự generate các block xuống dưới đến khi chạm tới 1 chỗ nhất định (bedrock) dược generate từ level default + cho 1 khoảng cách quy định tạo ra stone ( điều này có thể chỉ đúng với một số phiên bản beta, sau này mojang sẽ nâng cấp logic tốt hơn về hệ thống gen world)
Và đấy chúng ta đã có một địa hình đơn giản nhưng còn nữa!
Hệ thống tạo nước và biome
Ở một số level thấp ( màu trắng ), cát sẽ bắt đầu được hình thành và nước cũng thế, để đảm bảo cho nước và cát generate đúng chỗ ở một số nơi không mong muốn như thung lũng sau này mojang đã thêm một số logic cho game minecraft để có thể generate world một cách tự nhiên hơn và cái đó mình cũng chưa có thông tin gì
sẽ update thêm sau
Đối với biome mojang sử dụng phương pháp như generate world nhưng thêm một tí màu mè vào
như hình bên dưới
mỗi màu tượng chưng cho một biome, sau khi tạo world xong, hệ thống sẽ chuyển qua xử lý khối màu này, và gắn cho mỗi block trong minecraft một nhiệt độ nhất định, đấy là vì sao trong code của bukkit hay spigot đều có 1 function trả về nhiệt độ để kiểm tra biome player đang ở.
<block.getTemperature();/>
Sau đó tùy thuộc vào temperature của block thì block đó sẽ biến dạng (màu sắc) hay spawn ra các mob và các đồ trang trí (slime, lilly pad, grass,...)
Hệ thống tạo cave
Mojang không thể dùng các phương pháp trên được nữa mà bây giờ chuyển qua nhờ vả một con AI gọi là Perlin Worm thực chất nó chỉ là một con sâu khổng lồ đi khoét đất và móc , tạo ra những hang động
Mojang đã sử dụng con này với tầng suất hoạt động thấp nhưng có hiệu quả cao (chỉ có 1 2 cave nhưng rất dài và phức tạp, đâm xuyên nhau hoặc nối nhau)
Đây là đường đi chưa được lấp grass của con sâu này (beta)
Và phần cuối cùng bonus thêm cho mọi người
Hệ thống lưu chunk
Cái này có thể một số bạn đã biết rồi nhưng mình vẫn show cho mấy bạn mới để có thêm kiến thức lên forum hay group làm *** đời người ta.
Minecraft không hẳn generate một khối lượng block khổng lồ hay một thế giới khổng lồ cho bạn được, vì thề lão Notch đã tạo ra một logic save chunk vào một folder world của minecraft, thế nên minecraft vẫn có thể chơi được ở một số máy có cấu hình cực yếu (500mb RAM
) mỗi chunk của minecraft còn dựa vào khoảng cách tầm nhìn và tốc độ di chuyển của bạn, khi bạn đi đến một giới hạn nào đó, minecraft sẽ tìm kiếm chunk trong folder lưu chunk của world, nếu không có, nó sẽ generate một chunk mới, còn chunk cũ mà bạn vừa mới đi qua với một khoảng cách nhất định sẽ lập tức del trong world và lưu lại vào file chunk của world. Đó là một phương pháp để giảm lag và có được một thế giới minecraft rộng lớn bao la 
Diện tích 1 chunk: 65,536 block
Tổng cộng: 14,062,500,000,000 chunk trong một world
Đó là vì sao trong một server thường xảy ra nạn lag do phải create chunk cho từng player quá nhiều, để giảm tình trạng lag, trước ngày mở của server các bạn nên dùng plugin nào đó để load một số chunk làm phạm vi cho các player vui chơi mà không bị dính lag
Số liệu được lấy từ Minecraft Wiki nếu có gì sai thì báo để mình sửa
Nguồn: minevn.com
-END-
Hệ thống tạo world (Mặt đất)
Như các bạn đã thấy có một con lợn nằm bên góc phải của bức hình
và nó là thành phần rất quan trọng trong việc hình thành world trong minecraft. Thực chất để minecraft có được những địa hình tự nhiên, Mojang đã phải sử dụng đến những thuật toán tạo ra những bức hình như thế này.
Nhìn vào thì các bạn cũng thấy nó cũng không liên quan gì tới world, nhưng thực chất đây là những bản đồ đen trắng đầu tiên của minecraft trước khi world được tạo ra. Ban đầu bức tranh màu xám và sẽ được máy phối màu đen và màu trắng với độ đậm nhạt thích hợp để minecraft có thể tương thích với nó. Độ đậm tượng trưng cho độ cao và độ nhạt tượng trưng cho độ thấp của world còn màu xám là ở level default. Khi đã có bản vẽ, minecraft sẽ bắt đầu tương thích và tạo ra những terrain (địa hình) như thế này
Hoặc thế này
Ban đầu chủ yếu các block đều có texture là cỏ như bản beta đầu tiên của minecraft tung ra
Sau đó từ các khối cỏ sẽ tự generate các block xuống dưới đến khi chạm tới 1 chỗ nhất định (bedrock) dược generate từ level default + cho 1 khoảng cách quy định tạo ra stone ( điều này có thể chỉ đúng với một số phiên bản beta, sau này mojang sẽ nâng cấp logic tốt hơn về hệ thống gen world)
Và đấy chúng ta đã có một địa hình đơn giản nhưng còn nữa!
Hệ thống tạo nước và biome
Ở một số level thấp ( màu trắng ), cát sẽ bắt đầu được hình thành và nước cũng thế, để đảm bảo cho nước và cát generate đúng chỗ ở một số nơi không mong muốn như thung lũng sau này mojang đã thêm một số logic cho game minecraft để có thể generate world một cách tự nhiên hơn và cái đó mình cũng chưa có thông tin gì
sẽ update thêm sau
Đối với biome mojang sử dụng phương pháp như generate world nhưng thêm một tí màu mè vào
như hình bên dưới
mỗi màu tượng chưng cho một biome, sau khi tạo world xong, hệ thống sẽ chuyển qua xử lý khối màu này, và gắn cho mỗi block trong minecraft một nhiệt độ nhất định, đấy là vì sao trong code của bukkit hay spigot đều có 1 function trả về nhiệt độ để kiểm tra biome player đang ở.
<block.getTemperature();/>
Sau đó tùy thuộc vào temperature của block thì block đó sẽ biến dạng (màu sắc) hay spawn ra các mob và các đồ trang trí (slime, lilly pad, grass,...)
Hệ thống tạo cave
Mojang không thể dùng các phương pháp trên được nữa mà bây giờ chuyển qua nhờ vả một con AI gọi là Perlin Worm thực chất nó chỉ là một con sâu khổng lồ đi khoét đất và móc , tạo ra những hang động
Mojang đã sử dụng con này với tầng suất hoạt động thấp nhưng có hiệu quả cao (chỉ có 1 2 cave nhưng rất dài và phức tạp, đâm xuyên nhau hoặc nối nhau)
Đây là đường đi chưa được lấp grass của con sâu này (beta)
Và phần cuối cùng bonus thêm cho mọi người

Hệ thống lưu chunk
Cái này có thể một số bạn đã biết rồi nhưng mình vẫn show cho mấy bạn mới để có thêm kiến thức lên forum hay group làm *** đời người ta.
Minecraft không hẳn generate một khối lượng block khổng lồ hay một thế giới khổng lồ cho bạn được, vì thề lão Notch đã tạo ra một logic save chunk vào một folder world của minecraft, thế nên minecraft vẫn có thể chơi được ở một số máy có cấu hình cực yếu (500mb RAM
) mỗi chunk của minecraft còn dựa vào khoảng cách tầm nhìn và tốc độ di chuyển của bạn, khi bạn đi đến một giới hạn nào đó, minecraft sẽ tìm kiếm chunk trong folder lưu chunk của world, nếu không có, nó sẽ generate một chunk mới, còn chunk cũ mà bạn vừa mới đi qua với một khoảng cách nhất định sẽ lập tức del trong world và lưu lại vào file chunk của world. Đó là một phương pháp để giảm lag và có được một thế giới minecraft rộng lớn bao la 
Diện tích 1 chunk: 65,536 block
Tổng cộng: 14,062,500,000,000 chunk trong một world
Đó là vì sao trong một server thường xảy ra nạn lag do phải create chunk cho từng player quá nhiều, để giảm tình trạng lag, trước ngày mở của server các bạn nên dùng plugin nào đó để load một số chunk làm phạm vi cho các player vui chơi mà không bị dính lag
Số liệu được lấy từ Minecraft Wiki nếu có gì sai thì báo để mình sửa
Nguồn: minevn.com
-END-
Sửa lần cuối:




