• Chào bạn, hãy đăng ký hoặc đăng nhập để tham gia cùng bọn mình và sử dụng được đầy đủ chức năng của diễn đàn :).
ATKLight

Thảo luận ngoài lề Quá trình tạo world trong Minecraft

Nhận xét về bài viết này:

  • Rất chi là bổ ích!

    Bình chọn: 4 57.1%
  • Thường thôi

    Bình chọn: 1 14.3%
  • Như loz

    Bình chọn: 1 14.3%
  • Spam (hoặc farm post)

    Bình chọn: 0 0.0%
  • Ko biết

    Bình chọn: 1 14.3%
  • tuangold4321 đi cướp post của người ta

    Bình chọn: 0 0.0%

  • Số thành viên bình chọn
    7

ATKLight

THÀNH VIÊN
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)
minecraft-01.png

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.
perlin_noise.png

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
picture-4-png.18844

Hoặc thế này
4396628057_e7c709b94f.jpg

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
images

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)
maxresdefault.jpg

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
sshot50632744ae6bc.jpg

Đố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
attachment.php

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
wormscreen.png

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)
2a9a3pu.jpg

Và phần cuối cùng bonus thêm cho mọi người :D
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 :yao: ) 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 :D
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:
xin plugin load một số chunk làm phạm vi cho các player vui chơi mà không bị dính lag =)
 
xin plugin load một số chunk làm phạm vi cho các player vui chơi mà không bị dính lag =)
Đừng hỏi cái này, nó ko liên quan
Dùng clearlagg thì unloadchunk là đc
 
Có ảnh bị die, mik sẽ fix sau :)
 
Similar content Most view Xem thêm
Back
Top Bottom