- Đây không phải là công cụ để chơi lại căn cứ Factorio, mà là một dự án thử nghiệm cho phép quan sát hoạt động của một căn cứ 2D hiện có trong không gian 3D của UE5
- Việc tạo asset được thực hiện theo trình tự: dựng mô hình bằng Cinema4D dựa trên sprite của game, tạo texture bằng Photoshop, xuất FBX, rồi áp dụng shader trong UE5
- Khi mod FUE5 exporter xuất dữ liệu nội bộ của Factorio ra JSON, FUE5 sẽ đọc loại công trình, hướng và kết nối cáp để tái dựng căn cứ về mặt hình ảnh
- Băng chuyền, tàu hỏa và robot logistics sử dụng Blueprint của UE5 cùng spline; tàu hỏa di chuyển bằng cách lấy tuyến đường đã được Factorio tính trước
- Với các căn cứ lớn, tình trạng sụt FPS và sự thiếu ổn định của sự kiện Blueprint xảy ra, nên dự án tối ưu bằng cách giảm polygon, texture, particle, cập nhật on-tick và LOD, đặt mục tiêu 30~60 FPS
Mục đích của FUE5
- FUE5 là viết tắt của Factorio in Unreal Engine 5, một dự án thử nghiệm nhằm trực quan hóa thế giới 2D của Factorio trong không gian 3D
- Dự án được 3D artist Hurricane và modder Factorio Nuke thực hiện trong khoảng 5 tháng, bắt đầu từ ngày 10/1/2023
- Đây là một môi trường trực quan hóa 3D nhập căn cứ Factorio và tái hiện hoạt động của nó về mặt hình ảnh, không bao gồm gameplay
- Người dùng có thể bay quanh căn cứ của mình trong không gian 3D để quan sát
Tạo asset và tích hợp với UE5
- Các asset của Factorio như máy lắp ráp và inserter cần được tạo lại thành mô hình 3D và animation dựa trên sprite của game
- Pipeline sản xuất gồm các bước sau
- Dựng mô hình 3D bằng Cinema4D
- Tạo texture bằng Adobe Photoshop
- Xuất từ Cinema4D ở định dạng FBX
- Nhập vào Unreal Engine 5 rồi áp dụng các shader như kính, kim loại, khói ống khói
- Các logic cốt lõi như băng chuyền, tàu hỏa và hệ thống logistics được triển khai bằng hệ thống node Blueprint mặc định của UE5
- Để căn chỉnh chính xác tàu hỏa đang di chuyển và item trên băng chuyền, cần các mô hình 3D có kích thước chuẩn, nên phần lớn mô hình được hoàn thành trước rồi mới xây dựng logic hệ thống
- Việc xuất trực tiếp căn cứ Factorio từ game rồi nhập vào môi trường Unreal Engine giúp giảm đáng kể thời gian phải dựng căn cứ thủ công trong UE5
Cách đưa dữ liệu Factorio vào FUE5
- Hệ thống cấu trúc tạo các công trình theo cách tương tự như đặt công trình trong Factorio
- Mod FUE5 exporter đọc dữ liệu nội bộ trong game và xuất ra file JSON
- Loại công trình
- Hướng công trình
- Kết nối cáp
- FUE5 đọc file JSON này để sao chép trực quan cấu trúc của căn cứ thực và hoạt động của phương tiện
Băng chuyền, tàu hỏa, hệ thống logistics
-
Băng chuyền vận chuyển
- Không chỉ cần mô hình 3D của từng băng chuyền vận chuyển, mà còn cần cả cơ chế để item di chuyển dọc theo băng chuyền
- Băng chuyền vận chuyển được biểu diễn bằng spline
- Khi FUE5 exporter xuất căn cứ, các đoạn liên tục của băng chuyền vận chuyển được kết nối, kết thúc ở tunnel, tự kết thúc hoặc tạo thành vòng lặp đều được xử lý như các hệ thống độc lập
- FUE5 tạo spline cho từng đoạn, và item di chuyển theo đúng tuyến như trong game thật
-
Tàu hỏa
- Do khó sao chép trực tiếp lịch trình tàu, tín hiệu và việc tìm đường của đầu máy, dự án sử dụng hệ thống tìm đường mặc định của Factorio
- Để tàu được tạo và di chuyển trong FUE5, cần đặt đích đến và cấp đèn xanh trước khi xuất căn cứ
- Sau đó, FUE5 đọc tuyến đường tàu đã được Factorio tính trước, tạo thành spline và điều khiển chuyển động của tàu trong FUE5
-
Robot logistics
- Robot xây dựng bị loại trừ, còn việc tạo công trình được xử lý bằng hệ thống Construction Script mặc định của UE5
- Thay vào đó, dự án tập trung triển khai robot logistics, một yếu tố hình ảnh quan trọng trong các căn cứ Factorio đã phát triển ở mức vừa phải
- Mỗi roboport sẽ ngẫu nhiên tạo ra một cụm robot logistics với một xác suất nhất định
- Mỗi robot tìm các rương logistics xung quanh, bay qua lại giữa chúng và tái hiện trực quan việc vận chuyển tài nguyên
- Khi hoàn tất nhiệm vụ vận chuyển, robot di chuyển đến vị trí roboport gần nhất rồi biến mất
Vấn đề hiệu năng và tối ưu hóa
- Khi đưa một căn cứ lớn vào FUE5, FPS giảm mạnh và kết quả sự kiện Blueprint trở nên thiếu ổn định
- Để chạy ở mức 30~60 FPS, cần tối ưu bằng cách giảm các yếu tố sau
- Số lượng polygon
- Độ phân giải texture
- Particle
- Số lượng cập nhật on-tick
- Phần lớn hiện tượng giật ban đầu đến từ hệ thống băng chuyền vận chuyển, và hiệu năng được cải thiện bằng cách giảm tải phần này
- Các bộ phận animation của cấu trúc được điều chỉnh LOD để có thêm FPS
- Ví dụ: xi-lanh quay của máy ly tâm
- Ví dụ: bánh răng và piston trên mái máy lắp ráp
- Dự án cũng cần sự chấp thuận của Wube Software, nhà phát triển Factorio, và được phép công bố với điều kiện chỉ sử dụng cho mục đích phi thương mại
Trailer và dàn dựng hình ảnh
- Sau khi ý tưởng cơ bản và phần lớn việc tạo prototype được hoàn tất trong hai tháng đầu, việc sao chép nhiều asset và hệ thống của Factorio trở nên dễ dàng hơn
- Sau đó, trọng tâm chuyển sang hoàn thiện tổng thể về mặt hình ảnh và sản xuất trailer phát hành chính
- Trailer cho thấy một căn cứ quy mô lớn được tạo bằng FUE5 exporter và nhiều yếu tố có thể thực hiện trong môi trường FUE5
- Chỉ xuất căn cứ trong game Factorio thôi không tạo ra kết quả gọn gàng và giàu chất điện ảnh, nên nhiều phần đã được điều chỉnh thủ công để phù hợp với camera
- So với cấu trúc đặt kéo dài một công trình đơn lẻ để đạt SPM cao, một căn cứ spaghetti đan xen phức tạp trông thú vị hơn về mặt thị giác
Điều kiện sử dụng và kế hoạch công bố
- FUE5 không phải là game và cũng không có giao diện người dùng, nên để sử dụng cần có kiến thức UE5 cơ bản
- Cách sử dụng được trình bày trên trang GitHub
- Quy trình cơ bản là cài UE5 và chạy project, sau đó chọn các chunk căn cứ cần xuất rồi xuất sang FUE5
- Quy trình chi tiết có trong how-to guide
- Dự án đã được chia sẻ mã nguồn mở qua GitHub, với mục tiêu giúp cộng đồng Factorio trải nghiệm thế giới quen thuộc ở một chiều không gian mới và tạo ra các sản phẩm mới
- Công việc đang tiếp tục để tinh chỉnh các hệ thống hiện có cho dễ dùng hơn và hoạt động tốt với căn cứ lớn; việc bổ sung nội dung mod trong tương lai cũng đang được xem xét
1 bình luận
Ý kiến trên Hacker News
Trong Factorio, bạn thắng khi phóng tên lửa, nhưng Space Exploration tiếp tục từ đó. Bạn sẽ xây dựng căn cứ trên nhiều hành tinh trong hệ Mặt Trời, tận dụng tài nguyên riêng của từng hành tinh để phát triển cả hệ, rồi mở rộng ra không gian liên sao và các hệ sao khác
Có một màn hình chiến thắng ở “mốc một phần tư chặng đường”, nhưng còn một màn hình chiến thắng khác khi bạn khám phá bí ẩn trải dài khắp vũ trụ đã biết, và nó còn đòi hỏi kha khá kiến thức toán học. Đây là kiểu chơi kéo dài hàng trăm giờ và được hoàn thiện rất tốt
Mod này đã thay đổi trò chơi để bạn có thể dùng tàu vũ trụ di chuyển giữa các hành tinh bằng bản đồ sao và hệ sao, và nhìn chung nó hoạt động rất tốt. Tuy vậy, nên giảm mạnh biter. Mod này đòi hỏi sự kiên nhẫn, còn cường độ chiến đấu thì không hợp với nhịp đó, và bản thân mod cũng hiện popup lúc bắt đầu để khuyên bạn giảm biter
Số lượng nhà máy và dây chuyền sản xuất bạn phải xây để lên bước tiếp theo cứ tăng mãi. Hình như phải gần 100 giờ tôi mới tới đoạn nhập về từ hành tinh khác hai dây chuyền sản phẩm cần cho cấp khoa học tiếp theo
Một mẹo nữa là nên tăng chi phí nghiên cứu khoa học. Việc mở rộng sang giai đoạn tiếp theo mất hàng giờ, nên rất dễ rơi vào cảnh hết thứ để nghiên cứu trước, thành ra nhà máy trông như bị dừng vì không còn việc để làm
SE rất tuyệt, nhưng cũng là một cỗ máy nuốt thời gian khủng khiếp. Tôi đã chơi Factorio hơn 3500 giờ rồi, chắc là có gì đó không ổn
Dù vậy, nhìn Factorio ở dạng 3D thực sự rất ngầu và ấn tượng
pyanodons bổ sung chuỗi xử lý quặng rất thực tế, quy trình hóa dầu, cơ chế phát điện, làm lại linh kiện điện tử, và các yếu tố nông nghiệp gồm thực vật lẫn động vật. Nhà phát triển chính, pyanodon, làm nghề kỹ sư hóa học ngoài đời
Một lần chơi trọn bộ py dễ dàng vượt quá 1500 giờ. Với phần lớn người chơi vanilla thì chưa chắc đặc biệt vui, nhưng nếu bạn thích những mod như Space Exploration hay Nullius thì có thể sẽ thấy hay
[0]: https://mods.factorio.com/user/pyanodon
Và để trích cho những ai phản ứng đầu tiên là “sao cái này lại hợp pháp được nhỉ?”: “Khi được hỏi về tính hợp pháp của công việc này, phía Factorio tỏ ra rất thấu hiểu và cho phép công khai dự án với điều kiện không dùng vào mục đích thương mại”
Với tư cách là người từng xem mã nguồn gốc, tôi thấy code tương đối ổn nhưng không phải kiểu quá phi thường. Đó là C++ dùng đa kế thừa, các đối tượng trong game gọi phương thức lẫn nhau qua nhiều tầng, và cũng có khá nhiều đoạn kiểu “có thể không phải tốt nhất nhưng chạy được nên giờ chưa đổi”
Thứ giúp tất cả vận hành trơn tru là hệ thống kiểm thử tự động rất toàn diện và văn hóa mà nếu bạn gửi PR với code kém tối ưu hơn thì Rseding sẽ chỉnh lại ngay. Phần thú vị nằm ở thuật toán, và chuyện đó được nói trong Friday Facts
Và https://old.reddit.com/r/factorio/comments/13bsf3s/technical... cũng rất đáng đọc. Trong đó có những chi tiết như việc dùng danh sách liên kết kép và đa kế thừa
https://www.factorio.com/blog/
https://physics.highpoint.edu/~bbarlow/courses/phy2100/docum...
Màu cam, và trong chế độ xem ‘GUI’ còn xuất hiện cả các ô xám
Tốc độ chậm ở giai đoạn đầu và đồ họa isometric 2D hơi thiếu sức sống ban đầu không hợp với tôi lắm. Nhưng các bài blog thì rất thú vị, mọi người lại cứ hết lời khen ngợi, nên đến lần cài thứ 4 tôi quyết định cố bám trụ và chơi thử nghiêm túc hơn một chút
Giờ thì tôi đánh giá đây là một trong những game hay nhất mọi thời đại. Về mặt kỹ thuật, nó ấn tượng đến mức khó tin, và có thể chạy những căn cứ khổng lồ đầy tàu hỏa, băng chuyền, robot, inserter v.v. ở 60FPS. Không bị crash, cực kỳ vui và gây nghiện. Mod rất tuyệt, cộng đồng cũng rất tốt
Tôi thật sự rất mong chờ bản mở rộng. Có lẽ hoàn toàn có thể kỳ vọng nó sẽ được trau chuốt ngay từ đầu ở mức như Factorio
Game vào nhịp nhanh hơn, xử lý các quy trình thực tế hơn, có cả thay đổi địa hình, và theo tôi thì ở mọi mặt đều tốt hơn Factorio. Tôi nghĩ Factorio là tựa game đã định hình cả thể loại, còn Satisfactory và Dyson Sphere Program thì suýt nữa đã vượt qua được nó, nhưng do đặc tính 3D nên các câu đố lại dễ giải hơn
Captain of Industry có nhiều chiều hơn nhưng vẫn khiến các câu đố khó ngang Factorio, đồng thời có nhiều tài nguyên phải quản lý hơn rất nhiều
Có vẻ sẽ xuất hiện một kiểu hệ thống chiến đấu mang phong cách Factorio trong UE5
Hãy tưởng tượng một trò chơi nơi bạn phải vận hành và bảo trì nhà máy. Đồng thời, người chơi PvP bắn súng góc nhìn thứ nhất chạy khắp nhà máy để giao chiến và liên tục phá hỏng các tuyến tiếp tế, còn bạn thì phải sửa chúng. Bạn có thể tham gia đội bảo trì nhà máy, hoặc trở thành người chơi PvP, vừa quét sạch đối thủ vừa phá nát các tuyến tiếp tế của nhà máy đội bên kia
Tất nhiên, model để in 3D thì không cần UV mapping hay texturing bài bản, nên công việc của tôi đúng là dễ hơn nhiều
Một số công cụ đúng là đã tốt hơn rất nhiều. Ví dụ Substance 3D để làm texture đặc biệt hữu ích khi tính năng auto UV cho ra kết quả dùng được. Nhưng các công cụ dựng model 3D cốt lõi thì về bản chất vẫn không khác xưa quá nhiều
Các model trong ảnh chụp màn hình cũng có vẻ có topology khá dày, nên chắc khối lượng công việc cũng lớn lắm
Tôi đã chơi điên cuồng suốt 3 tuần rồi phải ép bản thân dừng lại. Một tựa game thật sự độc nhất vô nhị