1 điểm bởi GN⁺ 2023-07-03 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đâ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

 
GN⁺ 2023-07-03
Ý kiến trên Hacker News
  • Space Exploration được nhắc thoáng qua và render ở đây là một mod Factorio cực kỳ đồ sộ, và là một trong những trò chơi có chiều sâu nhất mà tôi từng chơi
    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
    • Tôi chỉ khuyến nghị Space Exploration khi bạn đã phá đảo game gốc vài lần và vẫn muốn chơi thêm. Cảm giác là số linh kiện cần cho căn cứ cơ bản có giảm đi, nhưng bù lại độ phức tạp tăng mạnh hơn rất nhiều
      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
    • Cá nhân tôi thấy tắt hẳn biter còn tốt hơn. Ở các hành tinh khác chúng vẫn còn, nhưng cảm giác căng thẳng ở hành tinh mẹ sẽ biến mất
    • Tôi đang chơi Space Exploration ngay lúc này và nó thực sự rất hoành tráng. Nhưng ngay cả Dosh Doshington, một YouTuber chuyên sâu được xem là chơi Factorio ở đẳng cấp hàng đầu thế giới, cũng mất 300 giờ mới hoàn thành SE với sự trợ giúp
      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
    • Nếu bạn thích kiểu “Factorio liên hành tinh”, Dyson Sphere Program cũng đáng cân nhắc: https://store.steampowered.com/app/1366540/Dyson_Sphere_Prog...
    • Một modpack khác đáng nhắc ở đây là pyanodons. Nó cũng mở rộng trò chơi rất mạnh sau khi phóng tên lửa như Space Exploration, nhưng còn bổ sung nội dung cả trước đó nữa. Thực tế, việc phóng tên lửa tự thân trở nên khá ít quan trọng hơn, và lúc đầu nó gần giống một công nghệ khoa học xanh dương có thể chọn
      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ới tư cách là một nhà phát triển game, mã nguồn gốc của Factorio thật sự là một trong những thứ tôi rất muốn xem
    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”
    • Nhóm Factorio nhìn chung khá thoải mái với kiểu việc này, và có lẽ đó cũng là lý do họ làm game thân thiện với mod đến vậy ngay từ đầu. Lần duy nhất tôi nhớ họ có động thái pháp lý là để xử lý mấy vụ bán lại key bị đánh cắp. Có một nhận thức ngầm rằng nếu cộng đồng làm ra thứ gì đó hay ho thì điều đó cũng tốt cho Factorio
      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
    • một phần mã nguồn Factorio được đưa lên GitHub — https://gist.github.com/Rseding91
      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
    • Factorio có một blog phát triển rất hay. Nó không cho xem code, nhưng đi khá sâu vào những bài toán mà họ phải giải quyết
      https://www.factorio.com/blog/
    • Ngây thơ mà nói thì tôi lại có câu hỏi ngược lại. Tại sao chuyện này phải là bất hợp pháp? Tại sao nhất định phải là lao động vì đam mê? Việc sử dụng tài sản trí tuệ của Factorio có vẻ chỉ giới hạn ở cảm hứng thị giác và phân tích định dạng tệp, và ngay cả theo nghĩa pháp lý thì rõ ràng cũng là sử dụng có tính chuyển đổi
  • Tôi cười phá lên ở đoạn: “Nếu không biết lập trình thì bạn cứ nối các node lại với nhau, không chạy thì nối thêm nữa, rồi mọi thứ ngày càng hỗn loạn. Nghe đáng ngờ là rất giống trò chơi nhà máy mà tôi chơi gần đây”
    • Tôi cũng thích đoạn đó. Đặc biệt là ở chỗ kể cả khi biết lập trình thì rốt cuộc bạn vẫn làm đúng y như vậy. Chỉ là vài thứ bớt dài dòng hơn thôi, và đôi khi vẫn đầy spaghetti
    • Thế vẫn chưa là gì. LabVIEW còn có cả phối màu na ná nữa!
      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ôi đã cài Factorio 4 lần và xóa nó 3 lần
    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
    • Xin lỗi trước vì giới thiệu một nguy cơ có thể phá hỏng cuộc sống của bạn, nhưng tôi cực kỳ đề xuất Captain of Industry
      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
    • Nếu muốn một Factorio với đồ họa đẹp mắt, bạn có thể chơi Satisfactory
    • Satisfactory cũng là một lựa chọn đáng cân nhắc
  • Nói chính xác thì đây không phải kiểu client của Factorio mà là một công cụ trực quan hóa. Dù vậy nó vẫn thật sự rất ngầu
    • Như bài viết cũng đã nói, sẽ rất thú vị khi xem những người sáng tạo trong cộng đồng Factorio hack thứ này để làm ra gì
      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
  • Nó làm tôi nhớ đến các bản trực quan hóa 3D từng thấy trong Dwarf Fortress. Có cái được tạo bằng cách “vẽ”, có cái khác thì cố gắng cập nhật theo thời gian thực
  • Wow, làm được nhiều model 3D như vậy chỉ trong 5 tháng đúng là tài năng đáng nể. Tôi cũng tự hỏi có phải dạo này các công cụ dựng hình 3D đã tốt lên rất nhiều rồi không
    • Trước đây tôi từng dựng vài cỗ máy trong Factorio để in 3D làm đồ trang trí bàn, mỗi cái mất khoảng 6 tiếng. Nên việc hoàn thành toàn bộ trong vài tháng là điều hoàn toàn có thể hình dung được
      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
    • “Quá trình dựng lại model thực sự rất vui, nhưng lần tới có lẽ nên xin luôn model gốc của Factorio để giữ gìn phần tinh thần còn sót lại”
      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
  • Hoặc bạn có thể chơi Satisfactory trên nhánh Unreal 5 Experimental mới
  • Thành thật mà nói tôi còn chưa đọc bài. Nhưng nếu muốn biết lập trình khi biến thành game sẽ trông như thế nào, hãy chơi Factorio. Trong đó có đủ refactoring, giảm coupling, debugging
    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ị
  • Nếu bạn thực sự muốn chơi một game kiểu Factorio ở dạng 3D, tôi khuyên dùng Satisfactory
    • Satisfactory cũng là kiểu game có thể làm bạn mất nguyên vài ngày liền. Nó vui thật sự, giống như Factorio
    • Hoặc còn có Dyson Sphere Program